mirror of
https://github.com/RHeavenStudio/HeavenStudio.git
synced 2025-06-12 10:47:39 +02:00
Bug Fixes + Small Additions (#412)
* lotta stuffs
* dj school bug fixed
* dog ninja overhauled AGAIN. you can start a cue outside of the game now (something i planned months ago lol)
* also two objects will not overlap when they're the same but when they're not the same they will overlap
* commiting cause im gonna try half-recoding meat grinder
* also im trying to fix mrupbeat's beeping cuz oh my god how is this not fixed yet
* meat grinder finished + tap trial bug fixed + mute dog ninja
MUTE DOG NINJA ONLY WHEN INACTIVE ‼️
* last minute stuff + mr upbeat
i will be reworking mr upbeat in another branch but i wanna not bloat this pr any further so bleehhhh :P
* dj school final bug fix
This commit is contained in:
@ -56,9 +56,9 @@ namespace HeavenStudio.Games.Loaders
|
||||
},
|
||||
new GameAction("dj voice lines", "DJ Yellow Banter")
|
||||
{
|
||||
function = delegate { DJSchool.instance.VoiceLines(eventCaller.currentEntity.beat, eventCaller.currentEntity["type"]); },
|
||||
function = delegate { DJSchool.VoiceLines(eventCaller.currentEntity.beat, eventCaller.currentEntity["type"]); },
|
||||
defaultLength = 2f,
|
||||
inactiveFunction = delegate { DJSchool.WarnDJVoiceLines(eventCaller.currentEntity.beat, eventCaller.currentEntity["type"]); },
|
||||
inactiveFunction = delegate { DJSchool.VoiceLines(eventCaller.currentEntity.beat, eventCaller.currentEntity["type"]); },
|
||||
parameters = new List<Param>()
|
||||
{
|
||||
new Param("type", DJSchool.DJVoiceLines.CheckItOut, "Voice Lines", "The voice line to play"),
|
||||
@ -343,34 +343,23 @@ namespace HeavenStudio.Games
|
||||
{
|
||||
if (djYellowHolding) return;
|
||||
|
||||
string[] sounds = new string[] { };
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case 0:
|
||||
sounds = new string[] { "djSchool/breakCmon1", "djSchool/breakCmon2", "djSchool/ooh" };
|
||||
break;
|
||||
case 1:
|
||||
sounds = new string[] { "djSchool/breakCmonAlt1", "djSchool/breakCmonAlt2", "djSchool/oohAlt" };
|
||||
break;
|
||||
case 2:
|
||||
sounds = new string[] { "djSchool/breakCmonLoud1", "djSchool/breakCmonLoud2", "djSchool/oohLoud" };
|
||||
break;
|
||||
}
|
||||
string[] sounds = type switch {
|
||||
0 => new string[] { "djSchool/breakCmon1", "djSchool/breakCmon2", "djSchool/ooh" },
|
||||
1 => new string[] { "djSchool/breakCmonAlt1", "djSchool/breakCmonAlt2", "djSchool/oohAlt" },
|
||||
2 => new string[] { "djSchool/breakCmonLoud1", "djSchool/breakCmonLoud2", "djSchool/oohLoud" },
|
||||
};
|
||||
|
||||
if (doSound)
|
||||
{
|
||||
var sound = new MultiSound.Sound[]
|
||||
{
|
||||
new MultiSound.Sound(sounds[0], beat),
|
||||
new MultiSound.Sound(sounds[1], beat + 1f, offset: 0.030f),
|
||||
new MultiSound.Sound("", beat + 2f)
|
||||
};
|
||||
List<MultiSound.Sound> sound = new List<MultiSound.Sound>()
|
||||
{
|
||||
new MultiSound.Sound(sounds[0], beat),
|
||||
new MultiSound.Sound(sounds[1], beat + 1f, offset: 0.030f),
|
||||
};
|
||||
|
||||
if (ooh)
|
||||
sound[2] = new MultiSound.Sound(sounds[2], beat + 2f);
|
||||
if (ooh) sound.Add(new MultiSound.Sound(sounds[2], beat + 2f));
|
||||
|
||||
MultiSound.Play(sound);
|
||||
MultiSound.Play(sound.ToArray());
|
||||
}
|
||||
|
||||
|
||||
@ -415,24 +404,21 @@ namespace HeavenStudio.Games
|
||||
ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, student.OnHitHold, student.OnMissHold, student.OnEmpty);
|
||||
}
|
||||
|
||||
|
||||
public void AndStop(float beat, bool ooh, bool doSound = true)
|
||||
{
|
||||
if (djYellowHolding) return;
|
||||
|
||||
if (doSound)
|
||||
{
|
||||
var sound = new MultiSound.Sound[]
|
||||
List<MultiSound.Sound> sound = new List<MultiSound.Sound>()
|
||||
{
|
||||
new MultiSound.Sound("djSchool/andStop1", beat),
|
||||
new MultiSound.Sound("djSchool/andStop2", beat + .5f, offset: 0.1200f),
|
||||
new MultiSound.Sound("", beat + 1.5f)
|
||||
new MultiSound.Sound("djSchool/andStop1", beat),
|
||||
new MultiSound.Sound("djSchool/andStop2", beat + .5f, offset: 0.1200f),
|
||||
};
|
||||
|
||||
if (ooh)
|
||||
sound[2] = new MultiSound.Sound("djSchool/oohAlt", beat + 1.5f);
|
||||
if (ooh) sound.Add(new MultiSound.Sound("djSchool/oohAlt", beat + 1.5f));
|
||||
|
||||
MultiSound.Play(sound);
|
||||
MultiSound.Play(sound.ToArray());
|
||||
}
|
||||
|
||||
|
||||
@ -553,7 +539,7 @@ namespace HeavenStudio.Games
|
||||
{
|
||||
Student.soundFX = toggle;
|
||||
}
|
||||
public void VoiceLines(float beat, int type)
|
||||
public static void VoiceLines(float beat, int type)
|
||||
{
|
||||
string[] sounds;
|
||||
var sound = new MultiSound.Sound[] { };
|
||||
@ -568,7 +554,7 @@ namespace HeavenStudio.Games
|
||||
new MultiSound.Sound(sounds[2], beat + .5f),
|
||||
};
|
||||
|
||||
MultiSound.Play(sound);
|
||||
MultiSound.Play(sound, forcePlay: true);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
@ -579,7 +565,7 @@ namespace HeavenStudio.Games
|
||||
new MultiSound.Sound(sounds[1], beat + .5f),
|
||||
};
|
||||
|
||||
MultiSound.Play(sound);
|
||||
MultiSound.Play(sound, forcePlay: true);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
@ -590,7 +576,7 @@ namespace HeavenStudio.Games
|
||||
new MultiSound.Sound(sounds[1], beat + .5f),
|
||||
};
|
||||
|
||||
MultiSound.Play(sound);
|
||||
MultiSound.Play(sound, forcePlay: true);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
@ -602,11 +588,11 @@ namespace HeavenStudio.Games
|
||||
new MultiSound.Sound(sounds[2], beat + 1f),
|
||||
};
|
||||
|
||||
MultiSound.Play(sound);
|
||||
MultiSound.Play(sound, forcePlay: true);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
Jukebox.PlayOneShotGame("djSchool/yay");
|
||||
Jukebox.PlayOneShotGame("djSchool/yay", forcePlay: true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -614,110 +600,37 @@ namespace HeavenStudio.Games
|
||||
#region Inactive Game Commands
|
||||
public static void WarnBreakCmon(float beat, int type, bool ooh)
|
||||
{
|
||||
string[] sounds = new string[] { };
|
||||
switch (type)
|
||||
{
|
||||
case 0:
|
||||
sounds = new string[] { "djSchool/breakCmon1", "djSchool/breakCmon2", "djSchool/ooh" };
|
||||
break;
|
||||
case 1:
|
||||
sounds = new string[] { "djSchool/breakCmonAlt1", "djSchool/breakCmonAlt2", "djSchool/oohAlt" };
|
||||
break;
|
||||
case 2:
|
||||
sounds = new string[] { "djSchool/breakCmonLoud1", "djSchool/breakCmonLoud2", "djSchool/oohLoud" };
|
||||
break;
|
||||
}
|
||||
|
||||
var sound = new MultiSound.Sound[]
|
||||
{
|
||||
new MultiSound.Sound(sounds[0], beat),
|
||||
new MultiSound.Sound(sounds[1], beat + 1f, offset: 0.030f),
|
||||
new MultiSound.Sound("", beat + 2f)
|
||||
string[] sounds = type switch {
|
||||
0 => new string[] { "djSchool/breakCmon1", "djSchool/breakCmon2", "djSchool/ooh" },
|
||||
1 => new string[] { "djSchool/breakCmonAlt1", "djSchool/breakCmonAlt2", "djSchool/oohAlt" },
|
||||
2 => new string[] { "djSchool/breakCmonLoud1", "djSchool/breakCmonLoud2", "djSchool/oohLoud" },
|
||||
};
|
||||
|
||||
if (ooh)
|
||||
sound[2] = new MultiSound.Sound(sounds[2], beat + 2f);
|
||||
List<MultiSound.Sound> sound = new List<MultiSound.Sound>()
|
||||
{
|
||||
new MultiSound.Sound(sounds[0], beat),
|
||||
new MultiSound.Sound(sounds[1], beat + 1f, offset: 0.030f),
|
||||
};
|
||||
|
||||
MultiSound.Play(sound, forcePlay: true);
|
||||
if (ooh) sound.Add(new MultiSound.Sound(sounds[2], beat + 2f));
|
||||
|
||||
MultiSound.Play(sound.ToArray(), forcePlay: true);
|
||||
wantBreak = beat;
|
||||
}
|
||||
|
||||
public static void WarnAndStop(float beat, bool ooh)
|
||||
{
|
||||
var sound = new MultiSound.Sound[]
|
||||
List<MultiSound.Sound> sound = new List<MultiSound.Sound>()
|
||||
{
|
||||
new MultiSound.Sound("djSchool/andStop1", beat),
|
||||
new MultiSound.Sound("djSchool/andStop2", beat + .5f, offset: 0.1200f),
|
||||
new MultiSound.Sound("", beat + 1.5f)
|
||||
};
|
||||
|
||||
if (ooh)
|
||||
sound[2] = new MultiSound.Sound("djSchool/oohAlt", beat + 1.5f);
|
||||
if (ooh) sound.Add(new MultiSound.Sound("djSchool/oohAlt", beat + 1.5f));
|
||||
|
||||
|
||||
MultiSound.Play(sound, forcePlay: true);
|
||||
MultiSound.Play(sound.ToArray(), forcePlay: true);
|
||||
wantAndStop = beat;
|
||||
}
|
||||
|
||||
public static void WarnDJVoiceLines(float beat, int type)
|
||||
{
|
||||
string[] sounds;
|
||||
var sound = new MultiSound.Sound[] { };
|
||||
switch (type)
|
||||
{
|
||||
case 0:
|
||||
sounds = new string[] { "djSchool/checkItOut1", "djSchool/checkItOut2", "djSchool/checkItOut3" };
|
||||
sound = new MultiSound.Sound[]
|
||||
{
|
||||
new MultiSound.Sound(sounds[0], beat),
|
||||
new MultiSound.Sound(sounds[1], beat + .25f),
|
||||
new MultiSound.Sound(sounds[2], beat + .5f),
|
||||
};
|
||||
|
||||
|
||||
break;
|
||||
|
||||
case 1:
|
||||
sounds = new string[] { "djSchool/letsGo1", "djSchool/letsGo2" };
|
||||
sound = new MultiSound.Sound[]
|
||||
{
|
||||
new MultiSound.Sound(sounds[0], beat),
|
||||
new MultiSound.Sound(sounds[1], beat + .5f),
|
||||
};
|
||||
|
||||
|
||||
break;
|
||||
|
||||
case 2:
|
||||
sounds = new string[] { "djSchool/ohYeah1", "djSchool/ohYeah2" };
|
||||
sound = new MultiSound.Sound[]
|
||||
{
|
||||
new MultiSound.Sound(sounds[0], beat),
|
||||
new MultiSound.Sound(sounds[1], beat + .5f),
|
||||
};
|
||||
|
||||
|
||||
break;
|
||||
|
||||
case 3:
|
||||
sounds = new string[] { "djSchool/ohYeahAlt1", "djSchool/ohYeahAlt2", "djSchool/ohYeahAlt3" };
|
||||
sound = new MultiSound.Sound[]
|
||||
{
|
||||
new MultiSound.Sound(sounds[0], beat),
|
||||
new MultiSound.Sound(sounds[1], beat + .5f),
|
||||
new MultiSound.Sound(sounds[2], beat + 1f),
|
||||
};
|
||||
|
||||
|
||||
break;
|
||||
|
||||
case 4:
|
||||
Jukebox.PlayOneShotGame("djSchool/yay");
|
||||
break;
|
||||
}
|
||||
MultiSound.Play(sound, forcePlay: true);
|
||||
wantDJVoiceLines = beat;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -29,14 +29,17 @@ namespace HeavenStudio.Games.Loaders
|
||||
},
|
||||
new GameAction("ThrowObject", "Throw Object")
|
||||
{
|
||||
function = delegate { var e = eventCaller.currentEntity; DogNinja.instance.ThrowObject(e.beat, e["direction"], e["typeL"], e["typeR"]); },
|
||||
function = delegate { var e = eventCaller.currentEntity; DogNinja.QueueObject(e.beat, e["direction"], e["typeL"], e["typeR"], e["shouldPrepare"], false); },
|
||||
inactiveFunction = delegate { var e = eventCaller.currentEntity; DogNinja.QueueObject(e.beat, e["direction"], e["typeL"], e["typeR"], e["shouldPrepare"], e["muteThrow"]); },
|
||||
defaultLength = 2,
|
||||
parameters = new List<Param>()
|
||||
{
|
||||
new Param("direction", DogNinja.ObjectDirection.Left, "Which Side", "Whether the object should come from the left, right, or both sides"),
|
||||
new Param("typeL", DogNinja.ObjectType.Random, "Left \nObject", "The object to be thrown from the left"),
|
||||
new Param("typeR", DogNinja.ObjectType.Random, "Right Object", "The object to be thrown from the right"),
|
||||
}
|
||||
new Param("shouldPrepare", true, "Prepare?", "Should the dog prepare?"),
|
||||
new Param("muteThrow", false, "Mute", "Mute the throw? (ONLY WHEN INACTIVE)"),
|
||||
},
|
||||
},
|
||||
new GameAction("CutEverything", "Cut Everything!")
|
||||
{
|
||||
@ -53,39 +56,43 @@ namespace HeavenStudio.Games.Loaders
|
||||
function = delegate { DogNinja.instance.HereWeGo(eventCaller.currentEntity.beat); },
|
||||
defaultLength = 2,
|
||||
inactiveFunction = delegate { DogNinja.HereWeGoInactive(eventCaller.currentEntity.beat); },
|
||||
preFunctionLength = 1,
|
||||
},
|
||||
|
||||
// these are still here for backwards-compatibility but are hidden in the editor
|
||||
new GameAction("ThrowObjectLeft", "Throw Object Left")
|
||||
{
|
||||
function = delegate { var e = eventCaller.currentEntity; DogNinja.instance.ThrowObject(e.beat, 0, e["type"], 0); },
|
||||
function = delegate { var e = eventCaller.currentEntity; DogNinja.QueueObject(e.beat, 0, e["type"], 0, true, false);},
|
||||
defaultLength = 2,
|
||||
hidden = true,
|
||||
parameters = new List<Param>()
|
||||
{
|
||||
new Param("type", DogNinja.ObjectType.Random, "Object", "The object to be thrown"),
|
||||
}
|
||||
},
|
||||
inactiveFunction = delegate { var e = eventCaller.currentEntity; DogNinja.QueueObject(e.beat, 0, e["type"], 0, true, false);},
|
||||
},
|
||||
new GameAction("ThrowObjectRight", "Throw Object Right")
|
||||
{
|
||||
function = delegate { var e = eventCaller.currentEntity; DogNinja.instance.ThrowObject(e.beat, 1, 0, e["type"]); },
|
||||
function = delegate { var e = eventCaller.currentEntity; DogNinja.QueueObject(e.beat, 1, 0, e["type"], true, false);},
|
||||
defaultLength = 2,
|
||||
hidden = true,
|
||||
parameters = new List<Param>()
|
||||
{
|
||||
new Param("type", DogNinja.ObjectType.Random, "Object", "The object to be thrown"),
|
||||
}
|
||||
},
|
||||
inactiveFunction = delegate { var e = eventCaller.currentEntity; DogNinja.QueueObject(e.beat, 1, 0, e["type"], true, false);},
|
||||
},
|
||||
new GameAction("ThrowObjectBoth", "Throw Object Both")
|
||||
{
|
||||
function = delegate { var e = eventCaller.currentEntity; DogNinja.instance.ThrowObject(e.beat, 2, e["typeL"], e["typeR"]); },
|
||||
function = delegate { var e = eventCaller.currentEntity; DogNinja.QueueObject(e.beat, 2, e["typeL"], e["typeR"], true, false);},
|
||||
defaultLength = 2,
|
||||
hidden = true,
|
||||
parameters = new List<Param>()
|
||||
{
|
||||
new Param("typeL", DogNinja.ObjectType.Random, "Left Object", "The object on the left to be thrown"),
|
||||
new Param("typeR", DogNinja.ObjectType.Random, "Right Object", "The object on the right to be thrown"),
|
||||
}
|
||||
},
|
||||
inactiveFunction = delegate { var e = eventCaller.currentEntity; DogNinja.QueueObject(e.beat, 2, e["typeL"], e["typeR"], true, false);},
|
||||
},
|
||||
});
|
||||
}
|
||||
@ -97,6 +104,17 @@ namespace HeavenStudio.Games
|
||||
using Scripts_DogNinja;
|
||||
public class DogNinja : Minigame
|
||||
{
|
||||
static List<QueuedThrow> queuedThrows = new List<QueuedThrow>();
|
||||
struct QueuedThrow
|
||||
{
|
||||
public float beat;
|
||||
public int direction;
|
||||
public int typeL;
|
||||
public int typeR;
|
||||
public string sfxNumL;
|
||||
public string sfxNumR;
|
||||
}
|
||||
|
||||
[Header("Animators")]
|
||||
public Animator DogAnim; // dog misc animations
|
||||
public Animator BirdAnim; // bird flying in and out
|
||||
@ -105,10 +123,8 @@ namespace HeavenStudio.Games
|
||||
[SerializeField] GameObject ObjectBase;
|
||||
[SerializeField] GameObject FullBird;
|
||||
[SerializeField] SpriteRenderer WhichObject;
|
||||
[SerializeField] Transform ObjectHolder;
|
||||
public SpriteRenderer WhichLeftHalf;
|
||||
public SpriteRenderer WhichRightHalf;
|
||||
[SerializeField] Canvas cutEverythingCanvas;
|
||||
[SerializeField] TMP_Text cutEverythingText;
|
||||
|
||||
[Header("Curves")]
|
||||
@ -119,11 +135,9 @@ namespace HeavenStudio.Games
|
||||
|
||||
private float lastReportedBeat = 0f;
|
||||
private bool birdOnScreen = false;
|
||||
public bool usesCustomObject = false;
|
||||
static bool dontBop = false;
|
||||
public bool needPrepare = false;
|
||||
private const string sfxNum = "dogNinja/";
|
||||
|
||||
|
||||
public static DogNinja instance;
|
||||
|
||||
public enum ObjectDirection
|
||||
@ -156,28 +170,19 @@ namespace HeavenStudio.Games
|
||||
TacoBell,
|
||||
//YaseiNoIkiG3M4,
|
||||
}
|
||||
|
||||
/*
|
||||
public enum CustomObject
|
||||
{
|
||||
TacoBell,
|
||||
AirBatter,
|
||||
Karateka,
|
||||
IaiGiriGaiden,
|
||||
ThumpFarm,
|
||||
BattingShow,
|
||||
MeatGrinder,
|
||||
// remove "//" to unleash an eons long dormant hell-beast
|
||||
//YaseiNoIkiG3M4,
|
||||
//AmongUs,
|
||||
}
|
||||
*/
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
instance = this;
|
||||
}
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
if (!Conductor.instance.isPlaying || Conductor.instance.isPaused) {
|
||||
if (queuedThrows.Count > 0) queuedThrows.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (DogAnim.GetBool("needPrepare") && DogAnim.IsAnimationNotPlaying())
|
||||
@ -201,6 +206,13 @@ namespace HeavenStudio.Games
|
||||
Jukebox.PlayOneShotGame("dogNinja/whiff");
|
||||
DogAnim.SetBool("needPrepare", false);
|
||||
}
|
||||
|
||||
if (queuedThrows.Count > 0) {
|
||||
foreach (var obj in queuedThrows) { ThrowObject(obj.beat, obj.direction, obj.typeL, obj.typeR, obj.sfxNumL, obj.sfxNumR); }
|
||||
queuedThrows.Clear();
|
||||
}
|
||||
|
||||
//if () queuedThrows.Clear();
|
||||
}
|
||||
|
||||
private void LateUpdate()
|
||||
@ -216,51 +228,69 @@ namespace HeavenStudio.Games
|
||||
dontBop = !bop;
|
||||
}
|
||||
|
||||
public void ThrowObject(float beat, int direction, int typeL, int typeR)
|
||||
public static void QueueObject(float beat, int direction, int typeL, int typeR, bool prepare, bool muteThrow)
|
||||
{
|
||||
int ObjSprite = 1;
|
||||
if ((typeL == 0 && direction == 0)
|
||||
|| (typeR == 0 && direction == 1)
|
||||
|| ((typeL == 0 || typeR == 0) && direction == 2)) {
|
||||
// random object code. it makes a random number from 1-6 and sets that as the sprite
|
||||
if (typeL == 0 || typeR == 0) {
|
||||
// random object code. it makes a random number from 1-7 and sets that as the sprite
|
||||
System.Random rd = new System.Random();
|
||||
ObjSprite = rd.Next(1, 7);
|
||||
WhichObject.sprite = ObjectTypes[ObjSprite];
|
||||
typeL = ObjSprite;
|
||||
typeR = ObjSprite;
|
||||
}
|
||||
|
||||
string sfxNumL = "dogNinja/";
|
||||
if (direction is 0 or 2) {
|
||||
sfxNumL += typeL < 7 ? "fruit" : Enum.GetName(typeof(ObjectType), typeL);
|
||||
if (typeL == 0) typeL = ObjSprite;
|
||||
if (!muteThrow) Jukebox.PlayOneShotGame(sfxNumL+"1", forcePlay: true);
|
||||
}
|
||||
|
||||
string sfxNumR = "dogNinja/";
|
||||
if (direction is 1 or 2) {
|
||||
sfxNumR += typeR < 7 ? "fruit" : Enum.GetName(typeof(ObjectType), typeR);
|
||||
if (typeR == 0) typeR = ObjSprite;
|
||||
if (!(direction == 2 && typeL == typeR) && !muteThrow) Jukebox.PlayOneShotGame(sfxNumR+"1", forcePlay: true);
|
||||
}
|
||||
|
||||
queuedThrows.Add(new QueuedThrow() {
|
||||
beat = beat,
|
||||
direction = direction,
|
||||
typeL = typeL,
|
||||
typeR = typeR,
|
||||
sfxNumL = sfxNumL,
|
||||
sfxNumR = sfxNumR,
|
||||
});
|
||||
|
||||
if (prepare) DogNinja.instance.DogAnim.SetBool("needPrepare", true);
|
||||
}
|
||||
|
||||
public void ThrowObject(float beat, int direction, int typeL, int typeR, string sfxNumL, string sfxNumR)
|
||||
{
|
||||
// instantiate a game object and give it its variables
|
||||
if (direction == 0 || direction == 2) {
|
||||
if (direction is 0 or 2) {
|
||||
WhichObject.sprite = ObjectTypes[typeL];
|
||||
ThrowObject ObjectL = Instantiate(ObjectBase, ObjectHolder).GetComponent<ThrowObject>();
|
||||
ThrowObject ObjectL = Instantiate(ObjectBase, gameObject.transform).GetComponent<ThrowObject>();
|
||||
ObjectL.startBeat = beat;
|
||||
ObjectL.curve = CurveFromLeft;
|
||||
ObjectL.fromLeft = true;
|
||||
ObjectL.direction = direction;
|
||||
ObjectL.type = typeL;
|
||||
ObjectL.textObj = Enum.GetName(typeof(ObjectType), typeL);
|
||||
ObjectL.sfxNum = sfxNumL;
|
||||
if (direction == 2) ObjectL.shouldSfx = (typeL == typeR);
|
||||
}
|
||||
|
||||
if (direction == 1 || direction == 2) {
|
||||
if (direction is 1 or 2) {
|
||||
WhichObject.sprite = ObjectTypes[typeR];
|
||||
ThrowObject ObjectR = Instantiate(ObjectBase, ObjectHolder).GetComponent<ThrowObject>();
|
||||
ThrowObject ObjectR = Instantiate(ObjectBase, gameObject.transform).GetComponent<ThrowObject>();
|
||||
ObjectR.startBeat = beat;
|
||||
ObjectR.curve = CurveFromRight;
|
||||
ObjectR.fromLeft = false;
|
||||
ObjectR.direction = direction;
|
||||
ObjectR.type = typeR;
|
||||
ObjectR.textObj = Enum.GetName(typeof(ObjectType), typeR);
|
||||
ObjectR.sfxNum = sfxNumR;
|
||||
if (direction == 2) ObjectR.shouldSfx = !(typeL == typeR);
|
||||
}
|
||||
}
|
||||
|
||||
// only here for backwards compatibility
|
||||
public void ThrowBothObject(float beat, int ObjType1, int ObjType2)
|
||||
{
|
||||
ThrowObject(beat, 2, ObjType1, ObjType2);
|
||||
//ThrowObject(beat, 1, 0, ObjType2);
|
||||
}
|
||||
|
||||
public void CutEverything(float beat, bool sound, string customText)
|
||||
{
|
||||
// plays one anim with sfx when it's not on screen, plays a different anim with no sfx when on screen. ez
|
||||
|
@ -12,15 +12,14 @@ namespace HeavenStudio.Games.Scripts_DogNinja
|
||||
{
|
||||
public float startBeat;
|
||||
public int type;
|
||||
public string textObj;
|
||||
public bool fromLeft;
|
||||
public bool fromRight;
|
||||
public bool shouldSfx = true;
|
||||
public int direction;
|
||||
public string sfxNum;
|
||||
|
||||
private Vector3 objPos;
|
||||
private bool isActive = true;
|
||||
private float barelyTime;
|
||||
string sfxNum = "dogNinja/";
|
||||
|
||||
[Header("Animators")]
|
||||
Animator DogAnim;
|
||||
@ -48,13 +47,7 @@ namespace HeavenStudio.Games.Scripts_DogNinja
|
||||
{
|
||||
barelyCurve = fromLeft ? BarelyRightCurve : BarelyLeftCurve;
|
||||
|
||||
sfxNum += type < 7 ? "fruit" : textObj;
|
||||
|
||||
if (direction == 2 && fromLeft) {} else { Jukebox.PlayOneShotGame(sfxNum+"1"); }
|
||||
|
||||
game.ScheduleInput(startBeat, 1f, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, Hit, Miss, Out);
|
||||
|
||||
DogAnim.SetBool("needPrepare", true);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
@ -87,27 +80,25 @@ namespace HeavenStudio.Games.Scripts_DogNinja
|
||||
|
||||
private void SuccessSlice()
|
||||
{
|
||||
string Slice = "Slice";
|
||||
if (direction == 0) {
|
||||
Slice += "Left";
|
||||
} else if (direction == 1) {
|
||||
Slice += "Right";
|
||||
} else {
|
||||
Slice += "Both";
|
||||
}
|
||||
string slice = "Slice" + direction switch
|
||||
{
|
||||
0 => "Left",
|
||||
1 => "Right",
|
||||
2 => "Both",
|
||||
};
|
||||
|
||||
DogAnim.DoScaledAnimationAsync(Slice, 0.5f);
|
||||
if (!(direction == 2 && fromLeft)) Jukebox.PlayOneShotGame(sfxNum+"2");
|
||||
DogAnim.DoScaledAnimationAsync(slice, 0.5f);
|
||||
if (shouldSfx) Jukebox.PlayOneShotGame(sfxNum+"2");
|
||||
|
||||
game.WhichLeftHalf.sprite = objectLeftHalves[type-1];
|
||||
game.WhichRightHalf.sprite = objectRightHalves[type-1];
|
||||
|
||||
SpawnHalves LeftHalf = Instantiate(HalvesLeftBase).GetComponent<SpawnHalves>();
|
||||
SpawnHalves LeftHalf = Instantiate(HalvesLeftBase, game.gameObject.transform).GetComponent<SpawnHalves>();
|
||||
LeftHalf.startBeat = startBeat;
|
||||
LeftHalf.lefty = fromLeft;
|
||||
LeftHalf.objPos = objPos;
|
||||
|
||||
SpawnHalves RightHalf = Instantiate(HalvesRightBase).GetComponent<SpawnHalves>();
|
||||
SpawnHalves RightHalf = Instantiate(HalvesRightBase, game.gameObject.transform).GetComponent<SpawnHalves>();
|
||||
RightHalf.startBeat = startBeat;
|
||||
RightHalf.lefty = fromLeft;
|
||||
RightHalf.objPos = objPos;
|
||||
@ -120,16 +111,14 @@ namespace HeavenStudio.Games.Scripts_DogNinja
|
||||
isActive = false;
|
||||
barelyTime = Conductor.instance.songPositionInBeats;
|
||||
|
||||
string Barely = "Barely";
|
||||
if (direction == 0) {
|
||||
Barely += "Left";
|
||||
} else if (direction == 1) {
|
||||
Barely += "Right";
|
||||
} else {
|
||||
Barely += "Both";
|
||||
}
|
||||
string barely = "Barely" + direction switch
|
||||
{
|
||||
0 => "Left",
|
||||
1 => "Right",
|
||||
2 => "Both",
|
||||
};
|
||||
|
||||
DogAnim.DoScaledAnimationAsync(Barely, 0.5f);
|
||||
DogAnim.DoScaledAnimationAsync(barely, 0.5f);
|
||||
Jukebox.PlayOneShotGame("dogNinja/barely");
|
||||
}
|
||||
|
||||
|
@ -33,21 +33,16 @@ namespace HeavenStudio.Games.Loaders
|
||||
preFunctionLength = 1f,
|
||||
preFunction = delegate {
|
||||
var e = eventCaller.currentEntity;
|
||||
MeatGrinder.PreMeatCall(e.beat);
|
||||
MeatGrinder.PreInterval(e.beat, 4f);
|
||||
},
|
||||
},
|
||||
new GameAction("StartInterval", "Start Interval")
|
||||
{
|
||||
function = delegate {
|
||||
var e = eventCaller.currentEntity;
|
||||
MeatGrinder.instance.StartInterval(e.beat, e.length);
|
||||
},
|
||||
defaultLength = 4f,
|
||||
resizable = true,
|
||||
priority = 1,
|
||||
preFunctionLength = 2f,
|
||||
preFunction = delegate {
|
||||
var e = eventCaller.currentEntity;
|
||||
var e = eventCaller.currentEntity;
|
||||
MeatGrinder.PreInterval(e.beat, e.length);
|
||||
},
|
||||
},
|
||||
@ -76,6 +71,12 @@ namespace HeavenStudio.Games
|
||||
public class MeatGrinder : Minigame
|
||||
{
|
||||
static List<float> queuedInputs = new List<float>();
|
||||
static List<QueuedInterval> queuedIntervals = new List<QueuedInterval>();
|
||||
struct QueuedInterval
|
||||
{
|
||||
public float beat;
|
||||
public float length;
|
||||
}
|
||||
|
||||
[Header("Objects")]
|
||||
public GameObject MeatBase;
|
||||
@ -87,9 +88,9 @@ namespace HeavenStudio.Games
|
||||
[Header("Variables")]
|
||||
bool intervalStarted;
|
||||
float intervalStartBeat;
|
||||
float beatInterval = 4f;
|
||||
bool bossBop = true;
|
||||
bool dontCall = false;
|
||||
bool hasSignaled;
|
||||
public float beatInterval = 4f;
|
||||
public bool bossAnnoyed = false;
|
||||
private float lastReportedBeat = 0f;
|
||||
const string sfxName = "meatGrinder/";
|
||||
@ -111,6 +112,8 @@ namespace HeavenStudio.Games
|
||||
{
|
||||
if (!Conductor.instance.isPlaying || Conductor.instance.isPaused) {
|
||||
if (queuedInputs.Count > 0) queuedInputs.Clear();
|
||||
if (queuedIntervals.Count > 0) queuedIntervals.Clear();
|
||||
intervalStarted = false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -120,11 +123,12 @@ namespace HeavenStudio.Games
|
||||
if (queuedInputs.Count > 0) queuedInputs.Clear();
|
||||
}
|
||||
|
||||
if (!Conductor.instance.isPlaying && !Conductor.instance.isPaused && intervalStarted) {
|
||||
if (!Conductor.instance.NotStopped()) {
|
||||
intervalStarted = false;
|
||||
beatInterval = 4f;
|
||||
}
|
||||
|
||||
if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN)) {
|
||||
if (PlayerInput.Pressed(true) && !IsExpectingInputNow(InputType.STANDARD_DOWN)) {
|
||||
ScoreMiss();
|
||||
TackAnim.DoScaledAnimationAsync("TackEmptyHit", 0.5f);
|
||||
TackAnim.SetBool("tackMeated", false);
|
||||
@ -133,6 +137,11 @@ namespace HeavenStudio.Games
|
||||
}
|
||||
|
||||
if (bossAnnoyed) BossAnim.SetBool("bossAnnoyed", true);
|
||||
|
||||
if (queuedIntervals.Count > 0) {
|
||||
foreach (var interval in queuedIntervals) { StartInterval(interval.beat, interval.length); }
|
||||
queuedIntervals.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
private void LateUpdate()
|
||||
@ -167,27 +176,38 @@ namespace HeavenStudio.Games
|
||||
}
|
||||
}
|
||||
|
||||
public static void PreInterval(float beat, float interval)
|
||||
public static void PreInterval(float beat, float length)
|
||||
{
|
||||
if (!MeatGrinder.instance.intervalStarted && !MeatGrinder.instance.dontCall) {
|
||||
MultiSound.Play(new MultiSound.Sound[] { new MultiSound.Sound(sfxName+"startSignal", beat - 1f), }, forcePlay: true);
|
||||
if (MeatGrinder.instance.intervalStarted || MeatGrinder.queuedIntervals.Count > 0) return;
|
||||
|
||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>() {
|
||||
new BeatAction.Action(beat - 1, delegate { instance.BossAnim.DoScaledAnimationAsync("BossSignal", 0.5f); }), });
|
||||
MeatGrinder.queuedIntervals.Add(new QueuedInterval() {
|
||||
beat = beat,
|
||||
length = length,
|
||||
});
|
||||
|
||||
MultiSound.Play(new MultiSound.Sound[] {
|
||||
new MultiSound.Sound("meatGrinder/startSignal", beat - 1),
|
||||
}, forcePlay: true);
|
||||
|
||||
if (GameManager.instance.currentGame == "meatGrinder") {
|
||||
BeatAction.New(MeatGrinder.instance.gameObject, new List<BeatAction.Action>() {
|
||||
new BeatAction.Action(beat - 1, delegate {
|
||||
MeatGrinder.instance.BossAnim.DoScaledAnimationAsync("BossSignal", 0.5f);
|
||||
}),
|
||||
});
|
||||
}
|
||||
|
||||
MeatGrinder.instance.dontCall = true;
|
||||
MeatGrinder.instance.beatInterval = interval;
|
||||
}
|
||||
|
||||
public void StartInterval(float beat, float interval)
|
||||
public void StartInterval(float beat, float length)
|
||||
{
|
||||
intervalStartBeat = beat;
|
||||
if (!intervalStarted) { intervalStarted = true; }
|
||||
if (MeatGrinder.instance.intervalStarted) return;
|
||||
|
||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action(beat + interval - 1, delegate { PassTurn(beat); }),
|
||||
intervalStartBeat = beat;
|
||||
intervalStarted = true;
|
||||
beatInterval = length;
|
||||
|
||||
BeatAction.New(gameObject, new List<BeatAction.Action>() {
|
||||
new BeatAction.Action(beat + length - 0.33f, delegate { PassTurn(beat); }),
|
||||
});
|
||||
}
|
||||
|
||||
@ -195,22 +215,13 @@ namespace HeavenStudio.Games
|
||||
{
|
||||
Jukebox.PlayOneShotGame(sfxName+"toss");
|
||||
|
||||
MeatToss Meat = Instantiate(MeatBase).GetComponent<MeatToss>();
|
||||
MeatToss Meat = Instantiate(MeatBase, gameObject.transform).GetComponent<MeatToss>();
|
||||
Meat.startBeat = beat;
|
||||
Meat.cueLength = 1f;
|
||||
Meat.cueBased = true;
|
||||
Meat.meatType = "DarkMeat";
|
||||
}
|
||||
|
||||
public static void PreMeatCall(float beat)
|
||||
{
|
||||
if (!MeatGrinder.instance.dontCall) {
|
||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>() {
|
||||
new BeatAction.Action(beat - 1, delegate { MeatGrinder.PreInterval(beat, instance.beatInterval); }),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public void MeatCall(float beat)
|
||||
{
|
||||
BossAnim.DoScaledAnimationAsync("BossCall", 0.5f);
|
||||
@ -226,14 +237,14 @@ namespace HeavenStudio.Games
|
||||
|
||||
public void PassTurn(float beat)
|
||||
{
|
||||
dontCall = false;
|
||||
hasSignaled = false;
|
||||
intervalStarted = false;
|
||||
foreach (var input in queuedInputs)
|
||||
{
|
||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action(input + beat, delegate {
|
||||
MeatToss Meat = Instantiate(MeatBase).GetComponent<MeatToss>();
|
||||
new BeatAction.Action(input + beatInterval , delegate {
|
||||
MeatToss Meat = Instantiate(MeatBase, gameObject.transform).GetComponent<MeatToss>();
|
||||
Meat.startBeat = beat;
|
||||
Meat.cueLength = beatInterval + input;
|
||||
Meat.cueBased = false;
|
||||
|
@ -13,9 +13,7 @@ namespace HeavenStudio.Games.Scripts_MeatGrinder
|
||||
public float cueLength;
|
||||
public bool cueBased;
|
||||
public string meatType;
|
||||
bool animCheck = false;
|
||||
|
||||
|
||||
bool animCheck;
|
||||
|
||||
[Header("Animators")]
|
||||
private Animator anim;
|
||||
@ -30,11 +28,12 @@ namespace HeavenStudio.Games.Scripts_MeatGrinder
|
||||
|
||||
private void Start()
|
||||
{
|
||||
game.ScheduleInput(startBeat, cueLength, InputType.STANDARD_DOWN, Hit, Miss, Nothing);
|
||||
game.ScheduleInput(startBeat, cueLength, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, Hit, Miss, Nothing);
|
||||
|
||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action(cueBased ? startBeat + 0.66f : cueLength + startBeat - 1 + 0.66f, delegate { anim.DoScaledAnimationAsync(meatType+"Thrown", 0.32f); }),
|
||||
BeatAction.New(gameObject, new List<BeatAction.Action>() {
|
||||
new BeatAction.Action(cueBased ? startBeat + 0.66f : cueLength + startBeat - 1 + 0.66f, delegate {
|
||||
anim.DoScaledAnimationAsync(meatType+"Thrown", 0.32f);
|
||||
}),
|
||||
});
|
||||
}
|
||||
|
||||
@ -63,8 +62,7 @@ namespace HeavenStudio.Games.Scripts_MeatGrinder
|
||||
anim.DoScaledAnimationAsync(meatType+"Hit", 0.5f);
|
||||
animCheck = true;
|
||||
|
||||
if (state >= 1f || state <= -1f)
|
||||
{
|
||||
if (state >= 1f || state <= -1f) {
|
||||
InputActions(true, "tink", "TackHitBarely");
|
||||
} else {
|
||||
InputActions(false, "meatHit", "TackHitSuccess");
|
||||
@ -79,9 +77,6 @@ namespace HeavenStudio.Games.Scripts_MeatGrinder
|
||||
game.TackAnim.SetBool("tackMeated", true);
|
||||
}
|
||||
|
||||
private void Nothing(PlayerActionEvent caller)
|
||||
{
|
||||
|
||||
}
|
||||
private void Nothing(PlayerActionEvent caller) { }
|
||||
}
|
||||
}
|
||||
|
@ -19,13 +19,14 @@ namespace HeavenStudio.Games.Loaders
|
||||
{
|
||||
preFunction = delegate {var e = eventCaller.currentEntity; MrUpbeat.Stepping(e.beat, e.length); },
|
||||
defaultLength = 4f,
|
||||
resizable = true
|
||||
resizable = true,
|
||||
},
|
||||
new GameAction("blipping", "Beeping")
|
||||
{
|
||||
function = delegate {var e = eventCaller.currentEntity; MrUpbeat.instance.Blipping(e.beat, e.length); },
|
||||
function = delegate {var e = eventCaller.currentEntity; MrUpbeat.Blipping(e.beat, e.length); },
|
||||
defaultLength = 4f,
|
||||
resizable = true
|
||||
resizable = true,
|
||||
inactiveFunction = delegate {var e = eventCaller.currentEntity; MrUpbeat.Blipping(e.beat, e.length); },
|
||||
},
|
||||
new GameAction("ding!", "Ding!")
|
||||
{
|
||||
@ -47,17 +48,19 @@ namespace HeavenStudio.Games
|
||||
|
||||
public class MrUpbeat : Minigame
|
||||
{
|
||||
[Header("References")]
|
||||
public Animator metronomeAnim;
|
||||
public UpbeatMan man;
|
||||
|
||||
[Header("Properties")]
|
||||
static List<float> queuedBeeps = new List<float>();
|
||||
static List<queuedUpbeatInputs> queuedInputs = new List<queuedUpbeatInputs>();
|
||||
public struct queuedUpbeatInputs
|
||||
{
|
||||
public float beat;
|
||||
public bool goRight;
|
||||
}
|
||||
|
||||
[Header("References")]
|
||||
public Animator metronomeAnim;
|
||||
public UpbeatMan man;
|
||||
|
||||
[Header("Properties")]
|
||||
bool startLeft;
|
||||
|
||||
public static MrUpbeat instance;
|
||||
@ -72,6 +75,7 @@ namespace HeavenStudio.Games
|
||||
if (!Conductor.instance.isPlaying || Conductor.instance.isPaused)
|
||||
{
|
||||
if (queuedInputs.Count > 0) queuedInputs.Clear();
|
||||
if (queuedBeeps.Count > 0) queuedBeeps.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
@ -117,6 +121,16 @@ namespace HeavenStudio.Games
|
||||
man.Step();
|
||||
}
|
||||
}
|
||||
|
||||
if (queuedBeeps.Count > 0) {
|
||||
var beepAnims = new List<BeatAction.Action>();
|
||||
foreach (var item in queuedBeeps)
|
||||
{
|
||||
beepAnims.Add(new BeatAction.Action(item, delegate { man.blipAnimator.Play("Blip", 0, 0); }));
|
||||
}
|
||||
BeatAction.New(instance.gameObject, beepAnims);
|
||||
queuedBeeps.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public void Ding(bool applause)
|
||||
@ -125,15 +139,17 @@ namespace HeavenStudio.Games
|
||||
if (applause) Jukebox.PlayOneShot("applause");
|
||||
}
|
||||
|
||||
public void Blipping(float beat, float length)
|
||||
public static void Blipping(float beat, float length)
|
||||
{
|
||||
List<MultiSound.Sound> beeps = new List<MultiSound.Sound>();
|
||||
|
||||
for (int i = 0; i < length + 1; i++)
|
||||
{
|
||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action(beat + i, delegate { man.Blip(); }),
|
||||
});
|
||||
beeps.Add(new MultiSound.Sound("mrUpbeat/blip", beat + i));
|
||||
queuedBeeps.Add(beat + i);
|
||||
}
|
||||
|
||||
MultiSound.Play(beeps.ToArray(), forcePlay: true);
|
||||
}
|
||||
|
||||
public static void Stepping(float beat, float length)
|
||||
|
@ -50,12 +50,6 @@ namespace HeavenStudio.Games.Scripts_MrUpbeat
|
||||
onGround = true;
|
||||
}
|
||||
|
||||
public void Blip()
|
||||
{
|
||||
Jukebox.PlayOneShotGame("mrUpbeat/blip");
|
||||
blipAnimator.Play("Blip", 0, 0);
|
||||
}
|
||||
|
||||
private void CheckShadows()
|
||||
{
|
||||
if (onGround) return;
|
||||
@ -72,7 +66,5 @@ namespace HeavenStudio.Games.Scripts_MrUpbeat
|
||||
transform.localScale = new Vector3(1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
@ -37,13 +37,16 @@ namespace HeavenStudio.Games.Loaders
|
||||
},
|
||||
new GameAction("One", "One")
|
||||
{
|
||||
function = delegate {
|
||||
var e = eventCaller.currentEntity;
|
||||
MunchyMonk.PreOneGoCue(e.beat, e["oneColor"]);
|
||||
},
|
||||
defaultLength = 2f,
|
||||
parameters = new List<Param>()
|
||||
{
|
||||
new Param("oneColor", new Color(1, 1, 1, 1), "Color", "Change the color of the dumpling")
|
||||
},
|
||||
preFunctionLength = 0,
|
||||
preFunction = delegate {
|
||||
inactiveFunction = delegate {
|
||||
var e = eventCaller.currentEntity;
|
||||
MunchyMonk.PreOneGoCue(e.beat, e["oneColor"]);
|
||||
}
|
||||
@ -63,13 +66,16 @@ namespace HeavenStudio.Games.Loaders
|
||||
},
|
||||
new GameAction("Three", "Three")
|
||||
{
|
||||
function = delegate {
|
||||
var e = eventCaller.currentEntity;
|
||||
MunchyMonk.PreThreeGoCue(e.beat, e["threeColor"]);
|
||||
},
|
||||
defaultLength = 4f,
|
||||
parameters = new List<Param>()
|
||||
{
|
||||
new Param("threeColor", new Color(0.34f, 0.77f, 0.36f, 1), "Color", "Change the color of the dumplings")
|
||||
},
|
||||
preFunctionLength = 0,
|
||||
preFunction = delegate {
|
||||
inactiveFunction = delegate {
|
||||
var e = eventCaller.currentEntity;
|
||||
MunchyMonk.PreThreeGoCue(e.beat, e["threeColor"]);
|
||||
}
|
||||
@ -261,8 +267,9 @@ namespace HeavenStudio.Games
|
||||
&& !isStaring){
|
||||
MonkAnim.DoScaledAnimationAsync("Bop", 0.5f);
|
||||
}
|
||||
if (BrowAnim.IsPlayingAnimationName("Bop") && growLevel == 4) BrowAnim.DoScaledAnimationAsync("Bop", 0.5f);
|
||||
if (StacheAnim.IsPlayingAnimationName("Bop"+growLevel)) StacheAnim.DoScaledAnimationAsync("Bop"+growLevel, 0.5f);
|
||||
// commented this out cuz it makes a warning every beat but im not fixing it cuz i need to fix it on my munchy monk branch
|
||||
//if (BrowAnim.IsPlayingAnimationName("Bop") && growLevel == 4) BrowAnim.DoScaledAnimationAsync("Bop", 0.5f);
|
||||
//if (StacheAnim.IsPlayingAnimationName("Bop"+growLevel)) StacheAnim.DoScaledAnimationAsync("Bop"+growLevel, 0.5f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -321,9 +321,7 @@ namespace HeavenStudio.Games
|
||||
new BeatAction.Action(beat + 1f, delegate { particleEffectMonkeys_2(); }),
|
||||
});
|
||||
|
||||
|
||||
|
||||
ScheduleInput(beat, .95f, InputType.STANDARD_DOWN, OnJumpTap, OnJumpTapMiss, OnEmpty); //why .95f? no idea, doesn't sound right w/ 1f
|
||||
ScheduleInput(beat, 1f, InputType.STANDARD_DOWN, OnJumpTap, OnJumpTapMiss, OnEmpty); //why would it be .95f? no idea, sounds fine w/ 1f
|
||||
|
||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||
{
|
||||
@ -356,8 +354,7 @@ namespace HeavenStudio.Games
|
||||
new BeatAction.Action(beat + 1f, delegate { monkeys[1].Play("FinalJumpTap", 0, 0); }),
|
||||
});
|
||||
|
||||
|
||||
ScheduleInput(beat, .95f, InputType.STANDARD_DOWN, OnJumpFinalTap, OnFinalJumpTapMiss, OnEmpty);
|
||||
ScheduleInput(beat, 1f, InputType.STANDARD_DOWN, OnJumpFinalTap, OnFinalJumpTapMiss, OnEmpty);
|
||||
|
||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||
{
|
||||
|
Reference in New Issue
Block a user