mirror of
https://github.com/RHeavenStudio/HeavenStudio.git
synced 2025-06-12 13:27:41 +02:00
The Rest of Pajama Party (#599)
* fix weird tiling issue * bg open / close * slice this sheet * mako transformation * monkey colour change * monkeys transform * high mode details instant high mode * boats * re-enable ABs * stretchable BG change
This commit is contained in:
@ -9,12 +9,17 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||
{
|
||||
public class CtrPillowMonkey : MonoBehaviour
|
||||
{
|
||||
[Header("Objects")]
|
||||
public GameObject Monkey;
|
||||
public GameObject Shadow;
|
||||
public GameObject Projectile;
|
||||
const string HighSuffix = "_H";
|
||||
const string NrmSuffix = "";
|
||||
|
||||
[Header("Objects")]
|
||||
[SerializeField] GameObject Monkey;
|
||||
[SerializeField] GameObject Shadow;
|
||||
[SerializeField] GameObject Projectile;
|
||||
|
||||
public Animator anim { get; private set; }
|
||||
string animSuffix => (PajamaParty.instance.HighState ? HighSuffix : NrmSuffix);
|
||||
|
||||
public Animator anim;
|
||||
public bool shouldBop = false;
|
||||
|
||||
public int row;
|
||||
@ -31,10 +36,10 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||
|
||||
double startThrowTime = double.MinValue;
|
||||
float throwLength = 4f;
|
||||
float throwHeight = 12f;
|
||||
float throwHeight = 14f;
|
||||
|
||||
private bool hasThrown = false;
|
||||
|
||||
|
||||
void Awake()
|
||||
{
|
||||
anim = Monkey.GetComponent<Animator>();
|
||||
@ -51,9 +56,9 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||
{
|
||||
hasJumped = true;
|
||||
float yMul = jumpPos * 2f - 1f;
|
||||
float yWeight = -(yMul*yMul) + 1f;
|
||||
float yWeight = -(yMul * yMul) + 1f;
|
||||
Monkey.transform.localPosition = new Vector3(0, jumpHeight * yWeight);
|
||||
Shadow.transform.localScale = new Vector3((1f-yWeight*0.2f) * 1.2f, (1f-yWeight*0.2f) * 0.8f, 1f);
|
||||
Shadow.transform.localScale = new Vector3((1f - yWeight * 0.2f) * 1.2f, (1f - yWeight * 0.2f) * 0.8f, 1f);
|
||||
if (jumpAlt > 1)
|
||||
{
|
||||
float t;
|
||||
@ -62,10 +67,10 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||
else
|
||||
t = jumpPos;
|
||||
Monkey.transform.rotation = Quaternion.Euler(0, 0, Mathf.Lerp(22.5f, -22.5f, t));
|
||||
anim.DoScaledAnimation("MonkeyJump0" + jumpAlt, startJumpTime, jumpLength);
|
||||
anim.DoScaledAnimation("MonkeyJump0" + jumpAlt + animSuffix, startJumpTime, jumpLength);
|
||||
}
|
||||
else
|
||||
anim.DoScaledAnimation("MonkeyJump", startJumpTime, jumpLength);
|
||||
anim.DoScaledAnimation("MonkeyJump" + animSuffix, startJumpTime, jumpLength);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -74,7 +79,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||
shouldntBop = false;
|
||||
hasJumped = false;
|
||||
PajamaParty.instance.DoBedImpact();
|
||||
anim.DoScaledAnimationAsync("MonkeyLand");
|
||||
anim.DoScaledAnimationAsync("MonkeyLand" + animSuffix);
|
||||
Monkey.transform.rotation = Quaternion.Euler(0, 0, 0);
|
||||
jumpAlt = 0;
|
||||
}
|
||||
@ -89,8 +94,8 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||
{
|
||||
hasThrown = true;
|
||||
float yMul = jumpPos * 2f - 1f;
|
||||
float yWeight = -(yMul*yMul) + 1f;
|
||||
Projectile.transform.localPosition = new Vector3(0, throwHeight * yWeight + 1.5f);
|
||||
float yWeight = -(yMul * yMul) + 1f;
|
||||
Projectile.transform.localPosition = new Vector3(0, (throwHeight * yWeight) + 1.5f);
|
||||
Projectile.transform.rotation = Quaternion.Euler(0, 0, Projectile.transform.rotation.eulerAngles.z - (360f * Time.deltaTime));
|
||||
}
|
||||
else
|
||||
@ -100,7 +105,7 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||
{
|
||||
Projectile.transform.localPosition = new Vector3(0, 0);
|
||||
Projectile.transform.rotation = Quaternion.Euler(0, 0, 0);
|
||||
anim.DoUnscaledAnimation("MonkeyBeat");
|
||||
anim.DoUnscaledAnimation("MonkeyBeat" + animSuffix);
|
||||
Projectile.SetActive(false);
|
||||
hasThrown = false;
|
||||
shouldntBop = false;
|
||||
@ -108,11 +113,11 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||
}
|
||||
}
|
||||
|
||||
private void LateUpdate()
|
||||
private void LateUpdate()
|
||||
{
|
||||
if (Conductor.instance.ReportBeat(ref lastReportedBeat) && anim.IsAnimationNotPlaying() && !hasThrown && !shouldntBop && shouldBop)
|
||||
{
|
||||
anim.DoScaledAnimationAsync("MonkeyBeat", 0.5f);
|
||||
anim.DoScaledAnimationAsync("MonkeyBeat" + animSuffix, 0.5f);
|
||||
}
|
||||
}
|
||||
|
||||
@ -129,14 +134,29 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||
public void Charge(double beat)
|
||||
{
|
||||
shouldntBop = true;
|
||||
anim.DoUnscaledAnimation("MonkeyReady");
|
||||
anim.DoUnscaledAnimation("MonkeyReady" + animSuffix);
|
||||
}
|
||||
|
||||
public void Throw(double beat)
|
||||
public void Throw(double beat, bool highCheck)
|
||||
{
|
||||
anim.DoUnscaledAnimation("MonkeyThrow");
|
||||
anim.DoUnscaledAnimation("MonkeyThrow" + animSuffix);
|
||||
startThrowTime = beat;
|
||||
Projectile.SetActive(true);
|
||||
|
||||
if (highCheck)
|
||||
{
|
||||
BeatAction.New(this, new List<BeatAction.Action>()
|
||||
{
|
||||
new
|
||||
(
|
||||
beat + 2,
|
||||
delegate
|
||||
{
|
||||
anim.DoUnscaledAnimation("MonkeyThrow" + animSuffix, 1);
|
||||
}
|
||||
)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public void ReadySleep(double beat, int action)
|
||||
@ -155,33 +175,38 @@ namespace HeavenStudio.Games.Scripts_PajamaParty
|
||||
startJumpTime = double.MinValue;
|
||||
Monkey.transform.localPosition = new Vector3(0, 0);
|
||||
Shadow.transform.localScale = new Vector3(1.2f, 0.8f, 1f);
|
||||
|
||||
List<BeatAction.Action> seq =
|
||||
|
||||
List<BeatAction.Action> seq =
|
||||
new List<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action( beat, delegate { anim.DoScaledAnimationAsync("MonkeySleep00"); }),
|
||||
new BeatAction.Action( beat + 0.5f, delegate { anim.DoUnscaledAnimation("MonkeySleep01"); }),
|
||||
new BeatAction.Action( beat, delegate { anim.DoScaledAnimationAsync("MonkeySleep00" + animSuffix); }),
|
||||
new BeatAction.Action( beat + 0.5f, delegate { anim.DoUnscaledAnimation("MonkeySleep01" + animSuffix); }),
|
||||
};
|
||||
|
||||
|
||||
if (col == 0 || col == 4)
|
||||
{
|
||||
seq.Add(new BeatAction.Action( beat + 1f, delegate { anim.DoScaledAnimationAsync("MonkeySleep02"); }));
|
||||
seq.Add(new BeatAction.Action(beat + 1f, delegate { anim.DoScaledAnimationAsync("MonkeySleep02" + animSuffix); }));
|
||||
}
|
||||
else if (col == 1 || col == 3)
|
||||
{
|
||||
seq.Add(new BeatAction.Action( beat + 1.5f, delegate { anim.DoScaledAnimationAsync("MonkeyReadySleep"); }));
|
||||
seq.Add(new BeatAction.Action( beat + 2.5f, delegate { anim.DoScaledAnimationAsync("MonkeySleep02"); }));
|
||||
seq.Add(new BeatAction.Action(beat + 1.5f, delegate { anim.DoScaledAnimationAsync("MonkeyReadySleep" + animSuffix); }));
|
||||
seq.Add(new BeatAction.Action(beat + 2.5f, delegate { anim.DoScaledAnimationAsync("MonkeySleep02" + animSuffix); }));
|
||||
}
|
||||
else
|
||||
{
|
||||
seq.Add(new BeatAction.Action( beat + 3f, delegate { anim.DoScaledAnimationAsync("MonkeyReadySleep"); }));
|
||||
seq.Add(new BeatAction.Action( beat + 4f, delegate { anim.DoScaledAnimationAsync("MonkeySleep02"); }));
|
||||
seq.Add(new BeatAction.Action(beat + 3f, delegate { anim.DoScaledAnimationAsync("MonkeyReadySleep" + animSuffix); }));
|
||||
seq.Add(new BeatAction.Action(beat + 4f, delegate { anim.DoScaledAnimationAsync("MonkeySleep02" + animSuffix); }));
|
||||
}
|
||||
|
||||
if (action != (int) PajamaParty.SleepType.NoAwake)
|
||||
seq.Add(new BeatAction.Action( beat + 7f, delegate { anim.DoScaledAnimationAsync("MonkeyAwake"); }));
|
||||
if (action != (int)PajamaParty.SleepType.NoAwake)
|
||||
seq.Add(new BeatAction.Action(beat + 7f, delegate { anim.DoScaledAnimationAsync("MonkeyAwake" + animSuffix); }));
|
||||
|
||||
BeatAction.New(this, seq);
|
||||
}
|
||||
|
||||
public void DoForcedHigh()
|
||||
{
|
||||
anim.Play("NoPose" + animSuffix, -1, 0);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user