diff --git a/Assets/Resources/Sprites/Editor/GameIcons/sumoBrothers.png b/Assets/Resources/Sprites/Editor/GameIcons/sumoBrothers.png index 8475ad4c6..130a33d16 100644 Binary files a/Assets/Resources/Sprites/Editor/GameIcons/sumoBrothers.png and b/Assets/Resources/Sprites/Editor/GameIcons/sumoBrothers.png differ diff --git a/Assets/Resources/Sprites/Editor/GameIcons/sumoBrothers.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/sumoBrothers.png.meta index f2d9b253e..f8a30d92a 100644 --- a/Assets/Resources/Sprites/Editor/GameIcons/sumoBrothers.png.meta +++ b/Assets/Resources/Sprites/Editor/GameIcons/sumoBrothers.png.meta @@ -3,10 +3,10 @@ guid: 8ef626c00ca3da041bc12d25aa951efd TextureImporter: internalIDToNameTable: [] externalObjects: {} - serializedVersion: 11 + serializedVersion: 12 mipmaps: - mipMapMode: 0 - enableMipMap: 0 + mipMapMode: 1 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -24,6 +24,7 @@ TextureImporter: streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -33,7 +34,7 @@ TextureImporter: textureSettings: serializedVersion: 2 filterMode: 1 - aniso: 1 + aniso: 8 mipBias: 0 wrapU: 1 wrapV: 1 @@ -62,9 +63,34 @@ TextureImporter: textureFormatSet: 0 ignorePngGamma: 0 applyGammaDecoding: 0 + cookieLightType: 0 platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 @@ -88,6 +114,7 @@ TextureImporter: edges: [] weights: [] secondaryTextures: [] + nameFileIdTable: {} spritePackingTag: pSDRemoveMatte: 0 pSDShowRemoveMatteOption: 0 diff --git a/Assets/Resources/Sprites/Editor/GameIcons/sumoBrothers_mask.png b/Assets/Resources/Sprites/Editor/GameIcons/sumoBrothers_mask.png new file mode 100644 index 000000000..5b3f1bb95 Binary files /dev/null and b/Assets/Resources/Sprites/Editor/GameIcons/sumoBrothers_mask.png differ diff --git a/Assets/Resources/Sprites/Editor/GameIcons/sumoBrothers_mask.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/sumoBrothers_mask.png.meta new file mode 100644 index 000000000..3249de8b6 --- /dev/null +++ b/Assets/Resources/Sprites/Editor/GameIcons/sumoBrothers_mask.png.meta @@ -0,0 +1,123 @@ +fileFormatVersion: 2 +guid: 68c659fc14ad1dc4abd9b944a5127034 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 1 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 8 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 024a60d8c..ab168e8a6 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -551,9 +551,9 @@ RectTransform: m_Father: {fileID: 574002313} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -21} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 32, y: 32} m_Pivot: {x: 0, y: 0.5} --- !u!114 &9435782 @@ -4172,9 +4172,9 @@ RectTransform: m_Father: {fileID: 539838476} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 32, y: -21} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 32, y: 32} m_Pivot: {x: 1, y: 0.5} --- !u!114 &121871281 @@ -4396,9 +4396,9 @@ RectTransform: m_Father: {fileID: 539838476} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 72, y: -21} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 32, y: 32} m_Pivot: {x: 1, y: 0.5} --- !u!114 &129013734 @@ -4532,9 +4532,9 @@ RectTransform: m_Father: {fileID: 539838476} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 112, y: -21} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 32, y: 32} m_Pivot: {x: 1, y: 0.5} --- !u!114 &151246938 @@ -37250,9 +37250,9 @@ RectTransform: m_Father: {fileID: 574002313} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 40, y: -21} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 32, y: 32} m_Pivot: {x: 0, y: 0.5} --- !u!114 &1345846031 @@ -46876,9 +46876,9 @@ RectTransform: m_Father: {fileID: 574002313} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 80, y: -21} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 32, y: 32} m_Pivot: {x: 0, y: 0.5} --- !u!114 &1783491359 diff --git a/Assets/Scripts/Games/SumoBrothers/SumoBrothers.cs b/Assets/Scripts/Games/SumoBrothers/SumoBrothers.cs index 25f6e9777..0b869b637 100644 --- a/Assets/Scripts/Games/SumoBrothers/SumoBrothers.cs +++ b/Assets/Scripts/Games/SumoBrothers/SumoBrothers.cs @@ -1,29 +1,29 @@ -/* Hello my brothers, it is RaffyTaffy14 here in the code comments with another monologue. -I still do not know much crap about Unity or C#. -Despite that, I have managed to cobble together Sumo Brothers in a fairly functional state. -A lot of the code may be very weird or just useless (especially the older stuff), but it works for now. -I started making Sumo Brothers for Heaven Studio all the way back in January of 2023 (13 months ago!) -Sumo Brothers at that time was VERY janky. Heck, I used blurry screenshots from videos as reference guides for everything. -Progress on Sumo stopped a few weeks into the project, being as functional as how I left Lockstep for rasmus to pick up. -In June, I finally learned how to cue inputs (I was doing something wrong for the longest time), so now Finishing Poses could be cued. -Nothing happened until December, when I coded most of the functionality for the Slapping/Stomping/Posing -switching, which is how it currently works now. +// Hello my brothers, it is RaffyTaffy14 here in the code comments with another monologue. +// I still do not know much crap about Unity or C#. +// Despite that, I have managed to cobble together Sumo Brothers in a fairly functional state. +// A lot of the code may be very weird or just useless (especially the older stuff), but it works for now. +// I started making Sumo Brothers for Heaven Studio all the way back in January of 2023 (13 months ago!) +// Sumo Brothers at that time was VERY janky. Heck, I used blurry screenshots from videos as reference guides for everything. +// Progress on Sumo stopped a few weeks into the project, being as functional as how I left Lockstep for rasmus to pick up. +// In June, I finally learned how to cue inputs (I was doing something wrong for the longest time), so now Finishing Poses could be cued. +// Nothing happened until December, when I coded most of the functionality for the Slapping/Stomping/Posing +// switching, which is how it currently works now. -From the end of January 2024 to the middle of February 2024, I spent dozens of hours meticulously animating -every animation (there's *74* when you factor out duplicate animations for the Glasses Brother) for the game, from "SumoSlapPrepare" all -the way to "SumoPoseGBopMiss2". -No one thought that there would be anyone crazy enough to hecking animate Sumo Brothers. -People said that it would be animator suicide to even attempt to animate Sumo Brothers. -Yet, here I am, still alive and still too crazy. +// From the end of January 2024 to the middle of February 2024, I spent dozens of hours meticulously animating +// every animation (there's *74* when you factor out duplicate animations for the Glasses Brother) for the game, from "SumoSlapPrepare" all +// the way to "SumoPoseGBopMiss2". +// No one thought that there would be anyone crazy enough to hecking animate Sumo Brothers. +// People said that it would be animator suicide to even attempt to animate Sumo Brothers. +// Yet, here I am, still alive and still too crazy. -Sometime during the mass animation process, I managed to get back in contact with the upscaler for this game for a potential -redo of the Inu Sensei sprites. -Let's just say that the sprites got a MASSIVE glow up (thx UnbrokenMage) -Animation for Sumo Brothers still isn't done, as I am yet to animate the 3rd and 4th poses which are (currently) absent. -Despite the absense for those 20 animations (yes 2 poses takes up 20 animations), I have managed to do a whopping 54 animations -during my ~2 week grind. +// Sometime during the mass animation process, I managed to get back in contact with the upscaler for this game for a potential +// redo of the Inu Sensei sprites. +// Let's just say that the sprites got a MASSIVE glow up (thx UnbrokenMage) +// Animation for Sumo Brothers still isn't done, as I am yet to animate the 3rd and 4th poses which are (currently) absent. +// Despite the absense for those 20 animations (yes 2 poses takes up 20 animations), I have managed to do a whopping 54 animations +// during my ~2 week grind. -I hope that whomever may be reading this shall enjoy the wonders of Sumo Brothers and have a great rest of your day. */ +// I hope that whomever may be reading this shall enjoy the wonders of Sumo Brothers and have a great rest of your day. using HeavenStudio.Util; using HeavenStudio.InputSystem; using System; @@ -45,10 +45,10 @@ namespace HeavenStudio.Games.Loaders function = delegate { var e = eventCaller.currentEntity; SumoBrothers.instance.Bop(e.beat, e.length, e["bopInu"], e["bopSumo"], e["bopInuAuto"], e["bopSumoAuto"]); }, parameters = new List() { - new Param("bopInu", true, "Bop Inu", "Whether Inu Sensei should bop or not."), - new Param("bopSumo", true, "Bop Sumo", "Whether the Sumo Brothers should bop or not."), - new Param("bopInuAuto", false, "Bop Inu (Auto)", "Whether Inu Sensei should bop automatically or not."), - new Param("bopSumoAuto", false, "Bop Sumo (Auto)", "Whether the Sumo Brothers should bop automatically or not."), + new Param("bopInu", true, "Bop Inu", "Whether Inu Sensei should bop."), + new Param("bopSumo", true, "Bop Sumo", "Whether the Sumo Brothers should bop."), + new Param("bopInuAuto", false, "Bop Inu (Auto)", "Whether Inu Sensei should bop automatically."), + new Param("bopSumoAuto", false, "Bop Sumo (Auto)", "Whether the Sumo Brothers should bop automatically."), }, defaultLength = 1f, resizable = true @@ -59,8 +59,8 @@ namespace HeavenStudio.Games.Loaders function = delegate { var e = eventCaller.currentEntity; SumoBrothers.instance.Crouch(e.beat, e.length, e["inuT"], e["sumoT"]); }, parameters = new List() { - new Param("inuT", true, "Inu Sensei", "Whether Inu Sensei crouches or not."), - new Param("sumoT", true, "Sumo Brothers", "Whether the Sumo Brothers crouch or not.") + new Param("inuT", true, "Inu Sensei", "Whether Inu Sensei should crouch."), + new Param("sumoT", true, "Sumo Brothers", "Whether the Sumo Brothers should crouch.") }, defaultLength = 1f, resizable = true @@ -71,7 +71,7 @@ namespace HeavenStudio.Games.Loaders function = delegate { var e = eventCaller.currentEntity; SumoBrothers.instance.StompSignal(e.beat, e["mute"], e["look"]); }, parameters = new List() { - new Param("mute", false, "Mute", "Disables the sound and animations that cue for the transition to stomping."), + new Param("mute", false, "Mute", "Disables Inu Sensei's sound cues and animations."), new Param("look", true, "Look Forward", "The Sumo Brothers will look at the camera if transitioning from slapping.") }, defaultLength = 4f, @@ -83,7 +83,7 @@ namespace HeavenStudio.Games.Loaders function = delegate { var e = eventCaller.currentEntity; SumoBrothers.instance.SlapSignal(e.beat, e["mute"]); }, parameters = new List() { - new Param("mute", false, "Mute", "Disables the sound and animations that cue for the transition to slapping.") + new Param("mute", false, "Mute", "Disables Inu Sensei's sound cues and animations.") }, defaultLength = 4f, priority = 3 @@ -246,7 +246,7 @@ namespace HeavenStudio.Games { var cond = Conductor.instance; - if (PlayerInput.GetIsAction(InputAction_BasicPress) && !IsExpectingInputNow(InputAction_BasicPress)) + if (PlayerInput.GetIsAction(InputAction_BasicPress) && !IsExpectingInputNow(InputAction_BasicPress) && !IsExpectingInputNow(InputAction_Alt)) { // Slap whiffs if (sumoStatePrevious == SumoState.Slap || sumoStatePrevious == SumoState.Idle) @@ -541,11 +541,16 @@ namespace HeavenStudio.Games private void SlapRecursive(double beat, double remaining) { - if (sumoState != SumoState.Slap) { remaining -= 1; } + if (sumoState != SumoState.Slap) {remaining -= 1; } if (remaining <= 0) { return; } - if (remaining == 1 && sumoState == SumoState.Stomp) { sumoSlapDir = 2; } + if (remaining == 1 && sumoState == SumoState.Stomp) { + BeatAction.New(instance, new List() + { + new BeatAction.Action(beat - 0.5, delegate { sumoSlapDir = 2; }) + }); + } ScheduleInput(beat - 1, 1, InputAction_BasicPress, SlapHit, SlapMiss, Nothing); BeatAction.New(instance, new List() @@ -560,20 +565,18 @@ namespace HeavenStudio.Games public void Crouch(double beat, float length, bool inu, bool sumo) { - if (sumoState == SumoState.Idle) { + if (sumoStatePrevious == SumoState.Idle) { if (inu) { allowBopInu = false; inuSensei.DoScaledAnimationAsync("InuCrouch", 0.5f); } if (sumo) { sumoBrotherP.DoScaledAnimationAsync("SumoCrouch", 0.5f); sumoBrotherG.DoScaledAnimationAsync("SumoCrouch", 0.5f); allowBopSumo = false;} - } - - BeatAction.New(instance, new List() { - new BeatAction.Action(beat + length, delegate { if (sumoState == SumoState.Idle) allowBopInu = true; }), - new BeatAction.Action(beat + length, delegate { if (sumoState == SumoState.Idle) allowBopSumo = true; }), - new BeatAction.Action(beat + length, delegate { if (goBopSumo && sumoState == SumoState.Idle) BrosBop(); }), - new BeatAction.Action(beat + length, delegate { if (goBopInu && sumoState == SumoState.Idle) inuSensei.DoScaledAnimationAsync("InuBop", 0.5f); }) + BeatAction.New(instance, new List() { + new BeatAction.Action(beat + length, delegate { if (sumoStatePrevious == SumoState.Idle) allowBopInu = true; }), + new BeatAction.Action(beat + length, delegate { if (sumoStatePrevious == SumoState.Idle) allowBopSumo = true; }), + new BeatAction.Action(beat + length, delegate { if (goBopSumo && sumoStatePrevious == SumoState.Idle) BrosBop(); }), + new BeatAction.Action(beat + length, delegate { if (goBopInu && sumoStatePrevious == SumoState.Idle) inuSensei.DoScaledAnimationAsync("InuBop", 0.5f); }) }); - + } } public void LookAtCamera(double beat, float length) @@ -590,7 +593,6 @@ namespace HeavenStudio.Games new BeatAction.Action(beat + length, delegate { print("lookun"); }) }); } - } public void EndPose(double beat, bool randomPose, int poseType, int backgroundType, bool confetti)