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)