diff --git a/Assets/Resources/Games/sumoBrothers.prefab b/Assets/Resources/Games/sumoBrothers.prefab
index 633201fc6..d2a14a3f7 100644
--- a/Assets/Resources/Games/sumoBrothers.prefab
+++ b/Assets/Resources/Games/sumoBrothers.prefab
@@ -11941,7 +11941,7 @@ SortingGroup:
m_Enabled: 1
m_SortingLayerID: 0
m_SortingLayer: 0
- m_SortingOrder: -1
+ m_SortingOrder: -2
--- !u!1 &6987104331872438193
GameObject:
m_ObjectHideFlags: 0
@@ -13031,6 +13031,7 @@ GameObject:
- component: {fileID: 2762256219519098174}
- component: {fileID: 8586851493466339267}
- component: {fileID: 4014474221203422495}
+ - component: {fileID: 5703616812285415365}
m_Layer: 0
m_Name: impact
m_TagString: Untagged
@@ -13126,6 +13127,17 @@ Animator:
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
+--- !u!210 &5703616812285415365
+SortingGroup:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8949106469928414165}
+ m_Enabled: 1
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: -1
--- !u!1 &8980866925709474031
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Resources/Sprites/Games/SumoBrothers/Animations/SumoBrothers/SumoPoseG4Alt.anim b/Assets/Resources/Sprites/Games/SumoBrothers/Animations/SumoBrothers/SumoPoseG4Alt.anim
new file mode 100644
index 000000000..adf39a0f2
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/SumoBrothers/Animations/SumoBrothers/SumoPoseG4Alt.anim
@@ -0,0 +1,53 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: SumoPoseG4Alt
+ serializedVersion: 6
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves: []
+ m_PositionCurves: []
+ m_ScaleCurves: []
+ m_FloatCurves: []
+ m_PPtrCurves: []
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings: []
+ pptrCurveMapping: []
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 1
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 1
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves: []
+ m_EulerEditorCurves: []
+ m_HasGenericRootTransform: 0
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/Assets/Resources/Sprites/Games/SumoBrothers/Animations/SumoBrothers/SumoPoseG4Alt.anim.meta b/Assets/Resources/Sprites/Games/SumoBrothers/Animations/SumoBrothers/SumoPoseG4Alt.anim.meta
new file mode 100644
index 000000000..f519a4ad2
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/SumoBrothers/Animations/SumoBrothers/SumoPoseG4Alt.anim.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 35eceac5313c5fe43875c2f6998959c1
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 7400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Games/SumoBrothers/SumoBrothers.cs b/Assets/Scripts/Games/SumoBrothers/SumoBrothers.cs
index 04424caa9..91c6c1819 100644
--- a/Assets/Scripts/Games/SumoBrothers/SumoBrothers.cs
+++ b/Assets/Scripts/Games/SumoBrothers/SumoBrothers.cs
@@ -69,11 +69,12 @@ namespace HeavenStudio.Games.Loaders
new GameAction("stompSignal", "Stomp Signal")
{
- function = delegate { var e = eventCaller.currentEntity; SumoBrothers.instance.StompSignal(e.beat, e["mute"], !e["mute"], e["look"]); },
+ function = delegate { var e = eventCaller.currentEntity; SumoBrothers.instance.StompSignal(e.beat, e["mute"], !e["mute"], e["look"], e["direction"]); },
parameters = new List()
{
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 at Camera", "The Sumo Brothers will look at the camera if transitioning from slapping."),
+ new Param("direction", SumoBrothers.StompDirection.Automatic, "Stomp Direction", "Which direction the Sumo Brothers will begin stomping in."),
},
inactiveFunction = delegate { var e = eventCaller.currentEntity; if (!e["mute"]) { SumoBrothers.StompSignalSound(e.beat);} },
defaultLength = 4f,
@@ -100,9 +101,9 @@ namespace HeavenStudio.Games.Loaders
{
new Param.CollapseParam((x, _) => !(bool)x, new string[] { "type" })
}),
- new Param("type", new EntityTypes.Integer(1, 4, 1), "Pose", "The pose that the Sumo Brothers will make.", new List()
+ new Param("type", SumoBrothers.PoseType.Squat, "Pose", "The pose variant that the Sumo Brothers perform on a successful input.", new List()
{
- new Param.CollapseParam((x, _) => (int)x == (int)4, new string[] { "throw" })
+ new Param.CollapseParam((x, _) => (int)x == (int)SumoBrothers.PoseType.Finale, new string[] { "throw" })
}),
new Param("throw", true, "Throw Glasses", "If the Blue Sumo Brother will throw his glasses on a successful input."),
new Param("alternate", true, "Alternate Background", "Alternates between which of the backgrounds appear on a successful input.", new List()
@@ -201,13 +202,14 @@ namespace HeavenStudio.Games
public static SumoBrothers instance;
- /* public enum PoseType
+ public enum PoseType
{
- Crouching,
- Crossed,
- Pointing,
- Finale
- }*/
+ Squat = 1,
+ Stance = 2,
+ Pointing = 3,
+ Finale = 4,
+ // finale but without throwing glasses will just be = 5
+ }
public enum BGType
{
@@ -229,6 +231,13 @@ namespace HeavenStudio.Games
private SumoState sumoState = SumoState.Idle;
private SumoState sumoStatePrevious = SumoState.Idle;
+ public enum StompDirection
+ {
+ Automatic = 0,
+ Left = 1,
+ Right = 2,
+ }
+
protected static bool IA_PadAltPress(out double dt)
{
return PlayerInput.GetPadDown(InputController.ActionsPad.South, out dt);
@@ -329,7 +338,7 @@ namespace HeavenStudio.Games
continue;
}
bool isOnGameSwitchBeat = entity.beat == beat;
- if(entity.datamodel == "sumoBrothers/stompSignal") {StompSignal(entity.beat, true, true, entity["look"]);}
+ if(entity.datamodel == "sumoBrothers/stompSignal") {StompSignal(entity.beat, true, true, entity["look"], entity["StompDirection"]);}
if(entity.datamodel == "sumoBrothers/slapSignal") {SlapSignal(entity.beat, true, true);}
}
@@ -421,7 +430,7 @@ namespace HeavenStudio.Games
}
- public void StompSignal(double beat, bool mute, bool inu, bool lookatcam)
+ public void StompSignal(double beat, bool mute, bool inu, bool lookatcam, int startingDirection)
{
if (sumoState == SumoState.Stomp || cueCurrentlyActive)
{
@@ -429,7 +438,15 @@ namespace HeavenStudio.Games
}
CueRunning(beat + 3);
- sumoStompDir = true;
+ // true = left, false = right
+ // Automatic = 0, Left = 1, Right = 2
+ /*if (startingDirection != 2)
+ {
+ sumoStompDir = true;
+ } else {
+ sumoStompDir = false;
+ }*/
+
if (lookatcam && sumoState == SumoState.Slap) {
lookingAtCamera = true;
@@ -459,6 +476,17 @@ namespace HeavenStudio.Games
sumoState = SumoState.Stomp;
int stompType = 1;
+ bool startingLeftAfterTransition = false;
+
+ if (startingDirection == 1)
+ {
+ startingLeftAfterTransition = true;
+ }
+
+ if (startingDirection == 2)
+ {
+ stompType = 2;
+ }
if (sumoStatePrevious == SumoState.Slap) {
stompType = 3;
@@ -466,7 +494,7 @@ namespace HeavenStudio.Games
stompType = 4;
}
- StompRecursive(beat + 3, 1, stompType);
+ StompRecursive(beat + 3, 1, stompType, startingLeftAfterTransition);
}
@@ -479,7 +507,7 @@ namespace HeavenStudio.Games
}, forcePlay: true);
}
- private void StompRecursive(double beat, double remaining, int type)
+ private void StompRecursive(double beat, double remaining, int type, bool startingLeftAfterTransition)
{
if (sumoState != SumoState.Stomp) { remaining -= 1; }
@@ -538,13 +566,13 @@ namespace HeavenStudio.Games
});
}
- if (type == 2) {type = 1;} else { type = 2; }
+ if (type == 2 || startingLeftAfterTransition == true) {type = 1;} else { type = 2; }
var stompInput = ScheduleInput(beat , 1, InputAction_BasicPress, StompHit, StompMiss, Nothing);
BeatAction.New(instance, new List()
{
- new BeatAction.Action(beat, delegate { StompRecursive(beat + 2, remaining, type); })
+ new BeatAction.Action(beat, delegate { StompRecursive(beat + 2, remaining, type, false); })
});
stompInput.IsHittable = () => {
@@ -688,7 +716,7 @@ namespace HeavenStudio.Games
sumoStatePrevious = sumoState;
sumoState = SumoState.Pose;
- if (sumoPoseTypeNext > 0 & randomPose) {
+ if (sumoPoseTypeNext > 0 & sumoPoseTypeNext < 4 & randomPose) {
poseType = UnityEngine.Random.Range(1, 3);
if (poseType >= sumoPoseTypeNext) poseType++;
} else if (randomPose) {
@@ -696,11 +724,15 @@ namespace HeavenStudio.Games
}
if (alternateBG) {
- if (bgType == BGType.None || bgType == BGType.OtaniOniji) { backgroundType = 0; } else {
+ if (bgType != BGType.GreatWave) { backgroundType = 0; } else {
backgroundType = 1; }
}
+ if (!throwGlasses & poseType == 4) {
+ poseType = 5;
+ }
+
var cond = Conductor.instance;
ScheduleInput(beat, 4f, InputAction_Alt, PoseHit, PoseMiss, Nothing);
@@ -740,11 +772,22 @@ namespace HeavenStudio.Games
sumoPoseTypeCurrent = sumoPoseTypeNext.ToString();
sumoPoseType = sumoPoseTypeNext;
- sumoBrotherP.DoScaledAnimationAsync("SumoPoseP" + sumoPoseTypeCurrent, 0.5f);
+ if (sumoPoseType == 4) { glasses.DoScaledAnimationAsync("glassesThrow", 0.5f); }
+
+ if (sumoPoseType == 5)
+ {
+ sumoBrotherG.DoScaledAnimationAsync("SumoPoseG4Alt", 0.5f);
+ sumoBrotherGHead.DoScaledAnimationAsync("SumoGPoseAlt4", 0.5f);
+ sumoPoseType = 4;
+ sumoPoseTypeNext = 4;
+ sumoPoseTypeCurrent = "4";
+
+ } else {
sumoBrotherG.DoScaledAnimationAsync("SumoPoseG" + sumoPoseTypeCurrent, 0.5f);
sumoBrotherGHead.DoScaledAnimationAsync("SumoGPose" + sumoPoseTypeCurrent, 0.5f);
+ }
- if (sumoPoseType == 4) { glasses.DoScaledAnimationAsync("glassesThrow", 0.5f); }
+ sumoBrotherP.DoScaledAnimationAsync("SumoPoseP" + sumoPoseTypeCurrent, 0.5f);
if (bgType == BGType.GreatWave)
{
@@ -786,6 +829,8 @@ namespace HeavenStudio.Games
{
SoundByte.PlayOneShotGame("sumoBrothers/miss");
+ if (sumoPoseTypeNext == 5) { sumoPoseTypeNext = 4; }
+
sumoPoseType = sumoPoseTypeNext;
sumoPoseTypeCurrent = "Miss" + sumoPoseTypeNext.ToString();