New Icon & Bug Fixes

Added a shiny new icon made by Seanski2, fixed a bug about poses in tap mode being a bit bugged and fixed the Slap-to-Stomp slap animation being able to be played too soon.
This commit is contained in:
RaffyTaffy14 2024-02-17 00:23:05 -05:00
parent e6a62807de
commit 80bfa07547
6 changed files with 218 additions and 66 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 714 KiB

View file

@ -3,10 +3,10 @@ guid: 8ef626c00ca3da041bc12d25aa951efd
TextureImporter: TextureImporter:
internalIDToNameTable: [] internalIDToNameTable: []
externalObjects: {} externalObjects: {}
serializedVersion: 11 serializedVersion: 12
mipmaps: mipmaps:
mipMapMode: 0 mipMapMode: 1
enableMipMap: 0 enableMipMap: 1
sRGBTexture: 1 sRGBTexture: 1
linearTexture: 0 linearTexture: 0
fadeOut: 0 fadeOut: 0
@ -24,6 +24,7 @@ TextureImporter:
streamingMipmaps: 0 streamingMipmaps: 0
streamingMipmapsPriority: 0 streamingMipmapsPriority: 0
vTOnly: 0 vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0 grayScaleToAlpha: 0
generateCubemap: 6 generateCubemap: 6
cubemapConvolution: 0 cubemapConvolution: 0
@ -33,7 +34,7 @@ TextureImporter:
textureSettings: textureSettings:
serializedVersion: 2 serializedVersion: 2
filterMode: 1 filterMode: 1
aniso: 1 aniso: 8
mipBias: 0 mipBias: 0
wrapU: 1 wrapU: 1
wrapV: 1 wrapV: 1
@ -62,9 +63,34 @@ TextureImporter:
textureFormatSet: 0 textureFormatSet: 0
ignorePngGamma: 0 ignorePngGamma: 0
applyGammaDecoding: 0 applyGammaDecoding: 0
cookieLightType: 0
platformSettings: platformSettings:
- serializedVersion: 3 - serializedVersion: 3
buildTarget: DefaultTexturePlatform 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 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
textureFormat: -1 textureFormat: -1
@ -88,6 +114,7 @@ TextureImporter:
edges: [] edges: []
weights: [] weights: []
secondaryTextures: [] secondaryTextures: []
nameFileIdTable: {}
spritePackingTag: spritePackingTag:
pSDRemoveMatte: 0 pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0 pSDShowRemoveMatteOption: 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -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:

View file

@ -551,9 +551,9 @@ RectTransform:
m_Father: {fileID: 574002313} m_Father: {fileID: 574002313}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: -21} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 0, y: 0.5} m_Pivot: {x: 0, y: 0.5}
--- !u!114 &9435782 --- !u!114 &9435782
@ -4172,9 +4172,9 @@ RectTransform:
m_Father: {fileID: 539838476} m_Father: {fileID: 539838476}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 32, y: -21} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 1, y: 0.5} m_Pivot: {x: 1, y: 0.5}
--- !u!114 &121871281 --- !u!114 &121871281
@ -4396,9 +4396,9 @@ RectTransform:
m_Father: {fileID: 539838476} m_Father: {fileID: 539838476}
m_RootOrder: 1 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 72, y: -21} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 1, y: 0.5} m_Pivot: {x: 1, y: 0.5}
--- !u!114 &129013734 --- !u!114 &129013734
@ -4532,9 +4532,9 @@ RectTransform:
m_Father: {fileID: 539838476} m_Father: {fileID: 539838476}
m_RootOrder: 2 m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 112, y: -21} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 1, y: 0.5} m_Pivot: {x: 1, y: 0.5}
--- !u!114 &151246938 --- !u!114 &151246938
@ -37250,9 +37250,9 @@ RectTransform:
m_Father: {fileID: 574002313} m_Father: {fileID: 574002313}
m_RootOrder: 1 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 40, y: -21} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 0, y: 0.5} m_Pivot: {x: 0, y: 0.5}
--- !u!114 &1345846031 --- !u!114 &1345846031
@ -46876,9 +46876,9 @@ RectTransform:
m_Father: {fileID: 574002313} m_Father: {fileID: 574002313}
m_RootOrder: 2 m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 80, y: -21} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 0, y: 0.5} m_Pivot: {x: 0, y: 0.5}
--- !u!114 &1783491359 --- !u!114 &1783491359

View file

@ -1,29 +1,29 @@
/* Hello my brothers, it is RaffyTaffy14 here in the code comments with another monologue. // 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#. // 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. // 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. // 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!) // 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. // 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. // 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. // 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 // Nothing happened until December, when I coded most of the functionality for the Slapping/Stomping/Posing
switching, which is how it currently works now. // 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 // 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 // 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". // the way to "SumoPoseGBopMiss2".
No one thought that there would be anyone crazy enough to hecking animate Sumo Brothers. // 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. // 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. // 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 // 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. // redo of the Inu Sensei sprites.
Let's just say that the sprites got a MASSIVE glow up (thx UnbrokenMage) // 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. // 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 // 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. // 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.Util;
using HeavenStudio.InputSystem; using HeavenStudio.InputSystem;
using System; 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"]); }, function = delegate { var e = eventCaller.currentEntity; SumoBrothers.instance.Bop(e.beat, e.length, e["bopInu"], e["bopSumo"], e["bopInuAuto"], e["bopSumoAuto"]); },
parameters = new List<Param>() parameters = new List<Param>()
{ {
new Param("bopInu", true, "Bop Inu", "Whether Inu Sensei should bop 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 or not."), 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 or not."), 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 or not."), new Param("bopSumoAuto", false, "Bop Sumo (Auto)", "Whether the Sumo Brothers should bop automatically."),
}, },
defaultLength = 1f, defaultLength = 1f,
resizable = true 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"]); }, function = delegate { var e = eventCaller.currentEntity; SumoBrothers.instance.Crouch(e.beat, e.length, e["inuT"], e["sumoT"]); },
parameters = new List<Param>() parameters = new List<Param>()
{ {
new Param("inuT", true, "Inu Sensei", "Whether Inu Sensei crouches or not."), new Param("inuT", true, "Inu Sensei", "Whether Inu Sensei should crouch."),
new Param("sumoT", true, "Sumo Brothers", "Whether the Sumo Brothers crouch or not.") new Param("sumoT", true, "Sumo Brothers", "Whether the Sumo Brothers should crouch.")
}, },
defaultLength = 1f, defaultLength = 1f,
resizable = true 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"]); }, function = delegate { var e = eventCaller.currentEntity; SumoBrothers.instance.StompSignal(e.beat, e["mute"], e["look"]); },
parameters = new List<Param>() parameters = new List<Param>()
{ {
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.") new Param("look", true, "Look Forward", "The Sumo Brothers will look at the camera if transitioning from slapping.")
}, },
defaultLength = 4f, defaultLength = 4f,
@ -83,7 +83,7 @@ namespace HeavenStudio.Games.Loaders
function = delegate { var e = eventCaller.currentEntity; SumoBrothers.instance.SlapSignal(e.beat, e["mute"]); }, function = delegate { var e = eventCaller.currentEntity; SumoBrothers.instance.SlapSignal(e.beat, e["mute"]); },
parameters = new List<Param>() parameters = new List<Param>()
{ {
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, defaultLength = 4f,
priority = 3 priority = 3
@ -246,7 +246,7 @@ namespace HeavenStudio.Games
{ {
var cond = Conductor.instance; 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 // Slap whiffs
if (sumoStatePrevious == SumoState.Slap || sumoStatePrevious == SumoState.Idle) if (sumoStatePrevious == SumoState.Slap || sumoStatePrevious == SumoState.Idle)
@ -541,11 +541,16 @@ namespace HeavenStudio.Games
private void SlapRecursive(double beat, double remaining) 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 <= 0) { return; }
if (remaining == 1 && sumoState == SumoState.Stomp) { sumoSlapDir = 2; } if (remaining == 1 && sumoState == SumoState.Stomp) {
BeatAction.New(instance, new List<BeatAction.Action>()
{
new BeatAction.Action(beat - 0.5, delegate { sumoSlapDir = 2; })
});
}
ScheduleInput(beat - 1, 1, InputAction_BasicPress, SlapHit, SlapMiss, Nothing); ScheduleInput(beat - 1, 1, InputAction_BasicPress, SlapHit, SlapMiss, Nothing);
BeatAction.New(instance, new List<BeatAction.Action>() BeatAction.New(instance, new List<BeatAction.Action>()
@ -560,20 +565,18 @@ namespace HeavenStudio.Games
public void Crouch(double beat, float length, bool inu, bool sumo) 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 (inu) { allowBopInu = false; inuSensei.DoScaledAnimationAsync("InuCrouch", 0.5f); }
if (sumo) { sumoBrotherP.DoScaledAnimationAsync("SumoCrouch", 0.5f); sumoBrotherG.DoScaledAnimationAsync("SumoCrouch", 0.5f); if (sumo) { sumoBrotherP.DoScaledAnimationAsync("SumoCrouch", 0.5f); sumoBrotherG.DoScaledAnimationAsync("SumoCrouch", 0.5f);
allowBopSumo = false;} allowBopSumo = false;}
} BeatAction.New(instance, new List<BeatAction.Action>() {
new BeatAction.Action(beat + length, delegate { if (sumoStatePrevious == SumoState.Idle) allowBopInu = true; }),
BeatAction.New(instance, new List<BeatAction.Action>() { new BeatAction.Action(beat + length, delegate { if (sumoStatePrevious == SumoState.Idle) allowBopSumo = true; }),
new BeatAction.Action(beat + length, delegate { if (sumoState == SumoState.Idle) allowBopInu = true; }), new BeatAction.Action(beat + length, delegate { if (goBopSumo && sumoStatePrevious == SumoState.Idle) BrosBop(); }),
new BeatAction.Action(beat + length, delegate { if (sumoState == SumoState.Idle) allowBopSumo = true; }), new BeatAction.Action(beat + length, delegate { if (goBopInu && sumoStatePrevious == SumoState.Idle) inuSensei.DoScaledAnimationAsync("InuBop", 0.5f); })
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); })
}); });
}
} }
public void LookAtCamera(double beat, float length) public void LookAtCamera(double beat, float length)
@ -590,7 +593,6 @@ namespace HeavenStudio.Games
new BeatAction.Action(beat + length, delegate { print("lookun"); }) new BeatAction.Action(beat + length, delegate { print("lookun"); })
}); });
} }
} }
public void EndPose(double beat, bool randomPose, int poseType, int backgroundType, bool confetti) public void EndPose(double beat, bool randomPose, int poseType, int backgroundType, bool confetti)