mirror of
https://github.com/RHeavenStudioPlus/HeavenStudioPlus.git
synced 2024-11-10 03:35:10 +00:00
Converted everything to new curves and made playerballs handle themselves input-wise
This commit is contained in:
parent
41157a038c
commit
db21d51673
7 changed files with 494 additions and 1900 deletions
File diff suppressed because it is too large
Load diff
|
@ -7,36 +7,190 @@ using HeavenStudio.Util;
|
||||||
|
|
||||||
namespace HeavenStudio.Games.Scripts_WorkingDough
|
namespace HeavenStudio.Games.Scripts_WorkingDough
|
||||||
{
|
{
|
||||||
public class PlayerEnterDoughBall : MonoBehaviour
|
public class PlayerEnterDoughBall : SuperCurveObject
|
||||||
{
|
{
|
||||||
public double startBeat;
|
private enum State
|
||||||
public float firstBeatsToTravel = 0.5f;
|
{
|
||||||
public float secondBeatsToTravel = 0.5f;
|
None,
|
||||||
public bool goingDown = false;
|
Entering,
|
||||||
public bool deletingAutomatically = true;
|
Hit,
|
||||||
[NonSerialized] public BezierCurve3D firstCurve;
|
Barely,
|
||||||
[NonSerialized] public BezierCurve3D secondCurve;
|
Miss,
|
||||||
|
Weak
|
||||||
|
}
|
||||||
|
private State currentState;
|
||||||
|
|
||||||
|
private double startBeat;
|
||||||
|
|
||||||
|
private bool big;
|
||||||
|
|
||||||
|
private Path enterPath;
|
||||||
|
private Path hitPath;
|
||||||
|
private Path barelyPath;
|
||||||
|
private Path missPath;
|
||||||
|
private Path weakPath;
|
||||||
|
|
||||||
|
private WorkingDough game;
|
||||||
|
|
||||||
|
private PlayerActionEvent wrongInput;
|
||||||
|
private PlayerActionEvent rightInput;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
game = WorkingDough.instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Init(double beat, bool isBig)
|
||||||
|
{
|
||||||
|
startBeat = beat;
|
||||||
|
big = isBig;
|
||||||
|
enterPath = game.GetPath("PlayerEnter");
|
||||||
|
hitPath = game.GetPath("PlayerHit");
|
||||||
|
barelyPath = game.GetPath("PlayerBarely");
|
||||||
|
missPath = game.GetPath("PlayerMiss");
|
||||||
|
weakPath = game.GetPath("PlayerWeak");
|
||||||
|
rightInput = game.ScheduleInput(beat, 1, isBig ? InputType.STANDARD_ALT_DOWN : InputType.STANDARD_DOWN, Just, Miss, Empty);
|
||||||
|
wrongInput = game.ScheduleUserInput(beat, 1, isBig ? InputType.STANDARD_DOWN : InputType.STANDARD_ALT_DOWN, WrongInput, Empty, Empty);
|
||||||
|
currentState = State.Entering;
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
|
|
||||||
float flyPos = 0f;
|
if (cond.isPlaying && !cond.isPaused)
|
||||||
|
|
||||||
if (goingDown)
|
|
||||||
{
|
{
|
||||||
flyPos = cond.GetPositionFromBeat(startBeat + firstBeatsToTravel, secondBeatsToTravel);
|
Vector3 pos = new Vector3();
|
||||||
|
double beat = cond.songPositionInBeats;
|
||||||
|
switch (currentState)
|
||||||
|
{
|
||||||
|
case State.None:
|
||||||
|
break;
|
||||||
|
case State.Entering:
|
||||||
|
pos = GetPathPositionFromBeat(enterPath, Math.Max(beat, startBeat), startBeat);
|
||||||
|
break;
|
||||||
|
case State.Hit:
|
||||||
|
pos = GetPathPositionFromBeat(hitPath, Math.Max(beat, startBeat), startBeat);
|
||||||
|
if (beat >= startBeat + 1)
|
||||||
|
{
|
||||||
|
Destroy(gameObject);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case State.Miss:
|
||||||
|
pos = GetPathPositionFromBeat(missPath, Math.Max(beat, startBeat), startBeat);
|
||||||
|
if (beat >= startBeat + 1)
|
||||||
|
{
|
||||||
|
Destroy(gameObject);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case State.Weak:
|
||||||
|
pos = GetPathPositionFromBeat(weakPath, Math.Max(beat, startBeat), startBeat);
|
||||||
|
if (beat >= startBeat + 1)
|
||||||
|
{
|
||||||
|
Destroy(gameObject);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case State.Barely:
|
||||||
|
pos = GetPathPositionFromBeat(barelyPath, Math.Max(beat, startBeat), startBeat);
|
||||||
|
if (beat >= startBeat + 2)
|
||||||
|
{
|
||||||
|
Destroy(gameObject);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
transform.position = pos;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
transform.position = secondCurve.GetPoint(flyPos);
|
private void Just(PlayerActionEvent caller, float state)
|
||||||
if (flyPos > 1f) if (deletingAutomatically) GameObject.Destroy(gameObject);
|
{
|
||||||
|
wrongInput.Disable();
|
||||||
|
double beat = Conductor.instance.songPositionInBeats;
|
||||||
|
startBeat = beat;
|
||||||
|
game.playerImpact.SetActive(true);
|
||||||
|
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
|
||||||
|
{
|
||||||
|
new BeatAction.Action(beat + 0.1f, delegate { game.playerImpact.SetActive(false); }),
|
||||||
|
});
|
||||||
|
if (state >= 1f || state <= -1f)
|
||||||
|
{
|
||||||
|
currentState = State.Barely;
|
||||||
|
if (big)
|
||||||
|
{
|
||||||
|
SoundByte.PlayOneShotGame("workingDough/BigBarely");
|
||||||
|
game.doughDudesPlayer.GetComponent<Animator>().Play("BigDoughJump", 0, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
flyPos = cond.GetPositionFromBeat(startBeat, firstBeatsToTravel);
|
SoundByte.PlayOneShotGame("workingDough/SmallBarely");
|
||||||
transform.position = firstCurve.GetPoint(flyPos);
|
game.doughDudesPlayer.GetComponent<Animator>().Play("SmallDoughJump", 0, 0);
|
||||||
if (flyPos > 1f) goingDown = true;
|
}
|
||||||
|
Update();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
currentState = State.Hit;
|
||||||
|
if (big)
|
||||||
|
{
|
||||||
|
SoundByte.PlayOneShotGame("workingDough/rightBig");
|
||||||
|
game.doughDudesPlayer.GetComponent<Animator>().Play("BigDoughJump", 0, 0);
|
||||||
|
game.backgroundAnimator.Play("BackgroundFlash", 0, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SoundByte.PlayOneShotGame("workingDough/rightSmall");
|
||||||
|
game.doughDudesPlayer.GetComponent<Animator>().Play("SmallDoughJump", 0, 0);
|
||||||
|
}
|
||||||
|
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
|
||||||
|
{
|
||||||
|
new BeatAction.Action(beat + 0.9f, delegate { game.arrowSRRightPlayer.sprite = game.redArrowSprite; }),
|
||||||
|
new BeatAction.Action(beat + 1f, delegate { game.arrowSRRightPlayer.sprite = game.whiteArrowSprite; }),
|
||||||
|
new BeatAction.Action(beat + 2f, delegate { game.SpawnBGBall(beat + 2f, big); }),
|
||||||
|
});
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void WrongInput(PlayerActionEvent caller, float state)
|
||||||
|
{
|
||||||
|
double beat = Conductor.instance.songPositionInBeats;
|
||||||
|
rightInput.Disable();
|
||||||
|
game.playerImpact.SetActive(true);
|
||||||
|
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
|
||||||
|
{
|
||||||
|
new BeatAction.Action(beat + 0.1f, delegate { game.playerImpact.SetActive(false); }),
|
||||||
|
});
|
||||||
|
if (big)
|
||||||
|
{
|
||||||
|
currentState = State.Weak;
|
||||||
|
startBeat = beat;
|
||||||
|
game.doughDudesPlayer.GetComponent<Animator>().Play("SmallDoughJump", 0, 0);
|
||||||
|
SoundByte.PlayOneShotGame("workingDough/BigBallTooWeak");
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
GameObject.Instantiate(game.breakParticleEffect, game.breakParticleHolder);
|
||||||
|
game.doughDudesPlayer.GetComponent<Animator>().Play("BigDoughJump", 0, 0);
|
||||||
|
SoundByte.PlayOneShotGame("workingDough/BreakBall");
|
||||||
|
Destroy(gameObject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Miss(PlayerActionEvent caller)
|
||||||
|
{
|
||||||
|
double beat = caller.timer + caller.startBeat;
|
||||||
|
currentState = State.Miss;
|
||||||
|
startBeat = beat;
|
||||||
|
Update();
|
||||||
|
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
|
||||||
|
{
|
||||||
|
new BeatAction.Action(beat + 0.25f, delegate { game.missImpact.SetActive(true); }),
|
||||||
|
new BeatAction.Action(beat + 0.25f, delegate { SoundByte.PlayOneShotGame("workingDough/BallMiss"); }),
|
||||||
|
new BeatAction.Action(beat + 0.35f, delegate { game.missImpact.SetActive(false); }),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Empty(PlayerActionEvent caller) { }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -102,9 +102,7 @@ namespace HeavenStudio.Games.Loaders
|
||||||
|
|
||||||
namespace HeavenStudio.Games
|
namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
using HeavenStudio.Games.Scripts_DoubleDate;
|
|
||||||
using Scripts_WorkingDough;
|
using Scripts_WorkingDough;
|
||||||
using System.Net.Sockets;
|
|
||||||
|
|
||||||
public class WorkingDough : Minigame
|
public class WorkingDough : Minigame
|
||||||
{
|
{
|
||||||
|
@ -116,22 +114,22 @@ namespace HeavenStudio.Games
|
||||||
[SerializeField] GameObject ballTransporterRightPlayer; //Close and open animations
|
[SerializeField] GameObject ballTransporterRightPlayer; //Close and open animations
|
||||||
[SerializeField] GameObject ballTransporterLeftPlayer; //Close and open animations
|
[SerializeField] GameObject ballTransporterLeftPlayer; //Close and open animations
|
||||||
[SerializeField] GameObject npcImpact;
|
[SerializeField] GameObject npcImpact;
|
||||||
[SerializeField] GameObject playerImpact;
|
public GameObject playerImpact;
|
||||||
[SerializeField] GameObject smallBallNPC;
|
[SerializeField] GameObject smallBallNPC;
|
||||||
[SerializeField] GameObject bigBallNPC;
|
[SerializeField] GameObject bigBallNPC;
|
||||||
[SerializeField] Transform ballHolder;
|
[SerializeField] Transform ballHolder;
|
||||||
[SerializeField] SpriteRenderer arrowSRLeftNPC;
|
[SerializeField] SpriteRenderer arrowSRLeftNPC;
|
||||||
[SerializeField] SpriteRenderer arrowSRRightNPC;
|
[SerializeField] SpriteRenderer arrowSRRightNPC;
|
||||||
[SerializeField] SpriteRenderer arrowSRLeftPlayer;
|
[SerializeField] SpriteRenderer arrowSRLeftPlayer;
|
||||||
[SerializeField] SpriteRenderer arrowSRRightPlayer;
|
public SpriteRenderer arrowSRRightPlayer;
|
||||||
[SerializeField] GameObject NPCBallTransporters;
|
[SerializeField] GameObject NPCBallTransporters;
|
||||||
[SerializeField] GameObject PlayerBallTransporters;
|
[SerializeField] GameObject PlayerBallTransporters;
|
||||||
[SerializeField] GameObject playerEnterSmallBall;
|
[SerializeField] GameObject playerEnterSmallBall;
|
||||||
[SerializeField] GameObject playerEnterBigBall;
|
[SerializeField] GameObject playerEnterBigBall;
|
||||||
[SerializeField] GameObject missImpact;
|
public GameObject missImpact;
|
||||||
[SerializeField] Transform breakParticleHolder;
|
public Transform breakParticleHolder;
|
||||||
[SerializeField] GameObject breakParticleEffect;
|
public GameObject breakParticleEffect;
|
||||||
[SerializeField] Animator backgroundAnimator;
|
public Animator backgroundAnimator;
|
||||||
[SerializeField] Animator conveyerAnimator;
|
[SerializeField] Animator conveyerAnimator;
|
||||||
[SerializeField] GameObject smallBGBall;
|
[SerializeField] GameObject smallBGBall;
|
||||||
[SerializeField] GameObject bigBGBall;
|
[SerializeField] GameObject bigBGBall;
|
||||||
|
@ -164,8 +162,6 @@ namespace HeavenStudio.Games
|
||||||
public double beat;
|
public double beat;
|
||||||
public float interval;
|
public float interval;
|
||||||
}
|
}
|
||||||
private List<GameObject> currentBalls = new List<GameObject>();
|
|
||||||
public bool shouldMiss = true;
|
|
||||||
public bool spaceshipRisen = false;
|
public bool spaceshipRisen = false;
|
||||||
public bool spaceshipRising = false;
|
public bool spaceshipRising = false;
|
||||||
bool liftingDoughDudes;
|
bool liftingDoughDudes;
|
||||||
|
@ -176,16 +172,6 @@ namespace HeavenStudio.Games
|
||||||
string gandwMovingAnimName;
|
string gandwMovingAnimName;
|
||||||
|
|
||||||
[Header("Curves")]
|
[Header("Curves")]
|
||||||
public BezierCurve3D playerEnterUpCurve;
|
|
||||||
public BezierCurve3D playerEnterDownCurve;
|
|
||||||
public BezierCurve3D playerExitUpCurve;
|
|
||||||
public BezierCurve3D playerExitDownCurve;
|
|
||||||
public BezierCurve3D playerMissCurveFirst;
|
|
||||||
public BezierCurve3D playerMissCurveSecond;
|
|
||||||
public BezierCurve3D playerBarelyCurveFirst;
|
|
||||||
public BezierCurve3D playerBarelyCurveSecond;
|
|
||||||
public BezierCurve3D playerWrongInputTooWeakFirstCurve;
|
|
||||||
public BezierCurve3D playerWrongInputTooWeakSecondCurve;
|
|
||||||
[SerializeField] SuperCurveObject.Path[] ballBouncePaths;
|
[SerializeField] SuperCurveObject.Path[] ballBouncePaths;
|
||||||
new void OnDrawGizmos()
|
new void OnDrawGizmos()
|
||||||
{
|
{
|
||||||
|
@ -223,7 +209,6 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
shouldMiss = true;
|
|
||||||
ballTriggerSetInterval = true;
|
ballTriggerSetInterval = true;
|
||||||
conveyerAnimator.Play("ConveyerBelt", 0, 0);
|
conveyerAnimator.Play("ConveyerBelt", 0, 0);
|
||||||
doughDudesHolderAnim.Play("OnGround", 0, 0);
|
doughDudesHolderAnim.Play("OnGround", 0, 0);
|
||||||
|
@ -401,11 +386,8 @@ namespace HeavenStudio.Games
|
||||||
var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder);
|
var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder);
|
||||||
|
|
||||||
var ballComponent = spawnedBall.GetComponent<PlayerEnterDoughBall>();
|
var ballComponent = spawnedBall.GetComponent<PlayerEnterDoughBall>();
|
||||||
ballComponent.startBeat = beat;
|
spawnedBall.SetActive(true);
|
||||||
ballComponent.firstCurve = playerEnterUpCurve;
|
ballComponent.Init(beat, isBig);
|
||||||
ballComponent.secondCurve = playerEnterDownCurve;
|
|
||||||
ballComponent.deletingAutomatically = false;
|
|
||||||
currentBalls.Add(spawnedBall);
|
|
||||||
|
|
||||||
if (isBig && !bigModePlayer)
|
if (isBig && !bigModePlayer)
|
||||||
{
|
{
|
||||||
|
@ -413,42 +395,13 @@ namespace HeavenStudio.Games
|
||||||
bigModePlayer = true;
|
bigModePlayer = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//shouldMiss = true;
|
|
||||||
if (isBig)
|
|
||||||
{
|
|
||||||
ScheduleInput(beat, 1, InputType.STANDARD_ALT_DOWN, JustBig, MissBig, Nothing);
|
|
||||||
ScheduleUserInput(beat, 1, InputType.STANDARD_DOWN, WrongInputBig, Nothing, Nothing);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ScheduleInput(beat, 1, InputType.STANDARD_DOWN, JustSmall, MissSmall, Nothing);
|
|
||||||
ScheduleUserInput(beat, 1, InputType.STANDARD_ALT_DOWN, WrongInputSmall, Nothing, Nothing);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
BeatAction.New(doughDudesPlayer, new List<BeatAction.Action>()
|
BeatAction.New(doughDudesPlayer, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(beat, delegate { spawnedBall.SetActive(true); }),
|
|
||||||
new BeatAction.Action(beat, delegate { arrowSRLeftPlayer.sprite = redArrowSprite; }),
|
new BeatAction.Action(beat, delegate { arrowSRLeftPlayer.sprite = redArrowSprite; }),
|
||||||
new BeatAction.Action(beat + 0.1f, delegate { arrowSRLeftPlayer.sprite = whiteArrowSprite; }),
|
new BeatAction.Action(beat + 0.1f, delegate { arrowSRLeftPlayer.sprite = whiteArrowSprite; }),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SpawnPlayerBallResult(double beat, bool isBig, BezierCurve3D firstCurve, BezierCurve3D secondCurve, float firstBeatsToTravel, float secondBeatsToTravel)
|
|
||||||
{
|
|
||||||
var objectToSpawn = isBig ? playerEnterBigBall : playerEnterSmallBall;
|
|
||||||
var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder);
|
|
||||||
|
|
||||||
var ballComponent = spawnedBall.GetComponent<PlayerEnterDoughBall>();
|
|
||||||
ballComponent.startBeat = beat;
|
|
||||||
ballComponent.firstCurve = firstCurve;
|
|
||||||
ballComponent.secondCurve = secondCurve;
|
|
||||||
ballComponent.firstBeatsToTravel = firstBeatsToTravel;
|
|
||||||
ballComponent.secondBeatsToTravel = secondBeatsToTravel;
|
|
||||||
|
|
||||||
spawnedBall.SetActive(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void PreSetIntervalStart(double beat, float interval)
|
public static void PreSetIntervalStart(double beat, float interval)
|
||||||
{
|
{
|
||||||
beat -= 1f;
|
beat -= 1f;
|
||||||
|
@ -556,170 +509,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WrongInputBig(PlayerActionEvent caller, float state)
|
public void SpawnBGBall(double beat, bool isBig)
|
||||||
{
|
|
||||||
double beat = caller.startBeat + caller.timer;
|
|
||||||
shouldMiss = false;
|
|
||||||
if (currentBalls.Count > 0)
|
|
||||||
{
|
|
||||||
GameObject currentBall = currentBalls[0];
|
|
||||||
currentBalls.Remove(currentBall);
|
|
||||||
GameObject.Destroy(currentBall);
|
|
||||||
}
|
|
||||||
doughDudesPlayer.GetComponent<Animator>().Play("SmallDoughJump", 0, 0);
|
|
||||||
SoundByte.PlayOneShotGame("workingDough/BigBallTooWeak");
|
|
||||||
SpawnPlayerBallResult(beat, true, playerWrongInputTooWeakFirstCurve, playerWrongInputTooWeakSecondCurve, 0.5f, 1f);
|
|
||||||
playerImpact.SetActive(true);
|
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
|
||||||
{
|
|
||||||
new BeatAction.Action(beat + 0.1f, delegate { playerImpact.SetActive(false); }),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void WrongInputSmall(PlayerActionEvent caller, float state)
|
|
||||||
{
|
|
||||||
double beat = caller.startBeat + caller.timer;
|
|
||||||
shouldMiss = false;
|
|
||||||
if (currentBalls.Count > 0)
|
|
||||||
{
|
|
||||||
GameObject currentBall = currentBalls[0];
|
|
||||||
currentBalls.Remove(currentBall);
|
|
||||||
GameObject.Destroy(currentBall);
|
|
||||||
}
|
|
||||||
GameObject.Instantiate(breakParticleEffect, breakParticleHolder);
|
|
||||||
doughDudesPlayer.GetComponent<Animator>().Play("BigDoughJump", 0, 0);
|
|
||||||
SoundByte.PlayOneShotGame("workingDough/BreakBall");
|
|
||||||
playerImpact.SetActive(true);
|
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
|
||||||
{
|
|
||||||
new BeatAction.Action(beat + 0.1f, delegate { playerImpact.SetActive(false); }),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void MissBig(PlayerActionEvent caller)
|
|
||||||
{
|
|
||||||
if (!shouldMiss)
|
|
||||||
{
|
|
||||||
shouldMiss = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (currentBalls.Count > 0)
|
|
||||||
{
|
|
||||||
GameObject currentBall = currentBalls[0];
|
|
||||||
currentBalls.Remove(currentBall);
|
|
||||||
GameObject.Destroy(currentBall);
|
|
||||||
}
|
|
||||||
|
|
||||||
double beat = caller.startBeat + caller.timer;
|
|
||||||
SpawnPlayerBallResult(beat, true, playerMissCurveFirst, playerMissCurveSecond, 0.25f, 0.75f);
|
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
|
||||||
{
|
|
||||||
new BeatAction.Action(beat + 0.25f, delegate { missImpact.SetActive(true); }),
|
|
||||||
new BeatAction.Action(beat + 0.25f, delegate { SoundByte.PlayOneShotGame("workingDough/BallMiss"); }),
|
|
||||||
new BeatAction.Action(beat + 0.35f, delegate { missImpact.SetActive(false); }),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
void MissSmall(PlayerActionEvent caller)
|
|
||||||
{
|
|
||||||
if (!shouldMiss)
|
|
||||||
{
|
|
||||||
shouldMiss = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (currentBalls.Count > 0)
|
|
||||||
{
|
|
||||||
GameObject currentBall = currentBalls[0];
|
|
||||||
currentBalls.Remove(currentBall);
|
|
||||||
GameObject.Destroy(currentBall);
|
|
||||||
}
|
|
||||||
double beat = caller.startBeat + caller.timer;
|
|
||||||
SpawnPlayerBallResult(beat, false, playerMissCurveFirst, playerMissCurveSecond, 0.25f, 0.75f);
|
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
|
||||||
{
|
|
||||||
new BeatAction.Action(beat + 0.25f, delegate { missImpact.SetActive(true); }),
|
|
||||||
new BeatAction.Action(beat + 0.25f, delegate { SoundByte.PlayOneShotGame("workingDough/BallMiss"); }),
|
|
||||||
new BeatAction.Action(beat + 0.35f, delegate { missImpact.SetActive(false); }),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void JustSmall(PlayerActionEvent caller, float state)
|
|
||||||
{
|
|
||||||
if (GameManager.instance.currentGame != "workingDough") return;
|
|
||||||
double beat = caller.startBeat + caller.timer;
|
|
||||||
if (currentBalls.Count > 0)
|
|
||||||
{
|
|
||||||
GameObject currentBall = currentBalls[0];
|
|
||||||
currentBalls.Remove(currentBall);
|
|
||||||
GameObject.Destroy(currentBall);
|
|
||||||
}
|
|
||||||
if (state >= 1f || state <= -1f)
|
|
||||||
{
|
|
||||||
SoundByte.PlayOneShotGame("workingDough/SmallBarely");
|
|
||||||
doughDudesPlayer.GetComponent<Animator>().Play("SmallDoughJump", 0, 0);
|
|
||||||
|
|
||||||
playerImpact.SetActive(true);
|
|
||||||
SpawnPlayerBallResult(beat, false, playerBarelyCurveFirst, playerBarelyCurveSecond, 0.75f, 1f);
|
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
|
||||||
{
|
|
||||||
new BeatAction.Action(beat + 0.1f, delegate { playerImpact.SetActive(false); }),
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Success(false, beat);
|
|
||||||
}
|
|
||||||
|
|
||||||
void JustBig(PlayerActionEvent caller, float state)
|
|
||||||
{
|
|
||||||
if (GameManager.instance.currentGame != "workingDough") return;
|
|
||||||
double beat = caller.startBeat + caller.timer;
|
|
||||||
if (currentBalls.Count > 0)
|
|
||||||
{
|
|
||||||
GameObject currentBall = currentBalls[0];
|
|
||||||
currentBalls.Remove(currentBall);
|
|
||||||
GameObject.Destroy(currentBall);
|
|
||||||
}
|
|
||||||
if (state >= 1f || state <= -1f)
|
|
||||||
{
|
|
||||||
SoundByte.PlayOneShotGame("workingDough/BigBarely");
|
|
||||||
doughDudesPlayer.GetComponent<Animator>().Play("BigDoughJump", 0, 0);
|
|
||||||
|
|
||||||
playerImpact.SetActive(true);
|
|
||||||
SpawnPlayerBallResult(beat, true, playerBarelyCurveFirst, playerBarelyCurveSecond, 0.75f, 1f);
|
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
|
||||||
{
|
|
||||||
new BeatAction.Action(beat + 0.1f, delegate { playerImpact.SetActive(false); }),
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Success(true, beat);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Success(bool isBig, double beat)
|
|
||||||
{
|
|
||||||
if (isBig)
|
|
||||||
{
|
|
||||||
SoundByte.PlayOneShotGame("workingDough/rightBig");
|
|
||||||
doughDudesPlayer.GetComponent<Animator>().Play("BigDoughJump", 0, 0);
|
|
||||||
backgroundAnimator.Play("BackgroundFlash", 0, 0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
SoundByte.PlayOneShotGame("workingDough/rightSmall");
|
|
||||||
doughDudesPlayer.GetComponent<Animator>().Play("SmallDoughJump", 0, 0);
|
|
||||||
}
|
|
||||||
playerImpact.SetActive(true);
|
|
||||||
SpawnPlayerBallResult(beat, isBig, playerExitUpCurve, playerExitDownCurve, 0.5f, 0.5f);
|
|
||||||
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
|
||||||
{
|
|
||||||
new BeatAction.Action(beat + 0.1f, delegate { playerImpact.SetActive(false); }),
|
|
||||||
new BeatAction.Action(beat + 0.9f, delegate { arrowSRRightPlayer.sprite = redArrowSprite; }),
|
|
||||||
new BeatAction.Action(beat + 1f, delegate { arrowSRRightPlayer.sprite = whiteArrowSprite; }),
|
|
||||||
new BeatAction.Action(beat + 2f, delegate { SpawnBGBall(beat + 2f, isBig); }),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void SpawnBGBall(double beat, bool isBig)
|
|
||||||
{
|
{
|
||||||
var objectToSpawn = isBig ? bigBGBall : smallBGBall;
|
var objectToSpawn = isBig ? bigBGBall : smallBGBall;
|
||||||
var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder);
|
var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder);
|
||||||
|
|
Binary file not shown.
|
@ -1,5 +1,5 @@
|
||||||
ManifestFileVersion: 0
|
ManifestFileVersion: 0
|
||||||
CRC: 1415167567
|
CRC: 1948290001
|
||||||
AssetBundleManifest:
|
AssetBundleManifest:
|
||||||
AssetBundleInfos:
|
AssetBundleInfos:
|
||||||
Info_0:
|
Info_0:
|
||||||
|
|
Binary file not shown.
|
@ -1,12 +1,12 @@
|
||||||
ManifestFileVersion: 0
|
ManifestFileVersion: 0
|
||||||
CRC: 3596492217
|
CRC: 2220090338
|
||||||
Hashes:
|
Hashes:
|
||||||
AssetFileHash:
|
AssetFileHash:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
Hash: 26fc96c0b54cb5ee3474b9ad21d4b9e0
|
Hash: 06d5394e1d51faa84944419ebe2ca495
|
||||||
TypeTreeHash:
|
TypeTreeHash:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
Hash: 3668fa81f90fca9e5e9f534bf7badde8
|
Hash: 7188f40e1d00b452805d78c9f260c8d4
|
||||||
HashAppended: 0
|
HashAppended: 0
|
||||||
ClassTypes:
|
ClassTypes:
|
||||||
- Class: 1
|
- Class: 1
|
||||||
|
@ -29,12 +29,8 @@ ClassTypes:
|
||||||
Script: {instanceID: 0}
|
Script: {instanceID: 0}
|
||||||
- Class: 95
|
- Class: 95
|
||||||
Script: {instanceID: 0}
|
Script: {instanceID: 0}
|
||||||
- Class: 114
|
|
||||||
Script: {fileID: 11500000, guid: 066a41e004f415b4eb74d5e61a2aadbe, type: 3}
|
|
||||||
- Class: 114
|
- Class: 114
|
||||||
Script: {fileID: 11500000, guid: f589a35cd43c5a146b78729182754157, type: 3}
|
Script: {fileID: 11500000, guid: f589a35cd43c5a146b78729182754157, type: 3}
|
||||||
- Class: 114
|
|
||||||
Script: {fileID: 11500000, guid: b0cca3244f403c24f819a870f31cdc29, type: 3}
|
|
||||||
- Class: 114
|
- Class: 114
|
||||||
Script: {fileID: 11500000, guid: 90b8363d14ba26043977a371000195e9, type: 3}
|
Script: {fileID: 11500000, guid: 90b8363d14ba26043977a371000195e9, type: 3}
|
||||||
- Class: 114
|
- Class: 114
|
||||||
|
|
Loading…
Reference in a new issue