// common accept effect public void AcceptEffect(RunState runState) { int chosenJumpPower = GameObject.FindObjectOfType <JumpArrow>().GetJumpPower(); runState.jumpPower = chosenJumpPower; runState.IncreaseEnergy(-energyCost); // make thought-specific effects CustomAcceptEffect(runState); }
// for when the player enters the jump Pad public void EnterJumpPad(ActivityPlatform activityPlatform) { // if failed tutorial, try again if (runState.timeSteps == 0 && runState.rhythmCombo == 0) { gameManager.showRhythmTutorial = true; gameManager.StartRun(); } // if done, end run (and skip the rest of the procedure) if (runState.done) { gameManager.EndRun(runState); return; } // trigger end activity animation player.GetComponent <Animator>().SetTrigger("finishActivity"); // Zoom out for jump camera.ZoomOut(); if (activityPlatform != null) { // stop rhythm game if (runState.CurrentActivityPlatform()) { rhythmManager.StopRhythm(); } } // regenerate energy - ABORTED DUE TO ENERGY = COMBO runState.IncreaseEnergy(gameManager.profile.energyRegen); // cap energy // runState.energy = System.Math.Min(runState.energy, gameManager.profile.energyCap); // DEPRECATED - now thru thought costs/ visibility + randomized heights // emotions take effect on difficulty of jumping to activities // (by adjusting height of current platform) // activityPlatform.Raise(runState.GetRaiseAmount()); // spawn new set of platforms List <Activity> activities = SelectActivities(); Debug.Assert(activities.Count() < 5); for (int i = 0; i < activities.Count(); i++) { SpawnPlatform(activities[i], i + 1); } SpawnPlatform(SelectDefaultActivity(), 0); SpawnPlatform(SelectBreakdownActivity(), -1); // clear out all other animation triggers player.GetComponent <Animator>().ResetTrigger(StartJump); player.GetComponent <Animator>().ResetTrigger(ActivityFail); player.GetComponent <Animator>().ResetTrigger(StartActivity); player.GetComponent <Animator>().SetBool(ChantBeforeBed, GameManager.Instance.profile.meditateBeforeBed); player.GetComponent <Animator>().SetBool(ExerciseKick, GameManager.Instance.profile.exerciseMartialArts); }
// common reject effect public void RejectEffect(RunState runState, int rejectCost) { if (rejectCost == 0) { return; } // if we reject a thought with no energy and nowhere left to go, explode emotions if (runState.energy < rejectCost) { const int explosion = 5; runState.emotions.Add(EmotionType.anxiety, explosion); runState.emotions.Add(EmotionType.frustration, explosion); runState.emotions.Add(EmotionType.despair, explosion); } // drain energy runState.IncreaseEnergy(-rejectCost); // make thought-specific effects CustomRejectEffect(runState); }
public void OnSuppress(RunState runState) { // AudioSource audioSource = gameObject.GetComponent<AudioSource>(); // audioSource.clip = Resources.Load<AudioClip>("drum_kit/Crash_Cymbal"); // you can hit them invisibly! if (this.isInvisibleHit) { StartCoroutine(HitAfterDelay(0, runState)); runState.CurrentActivityPlatform().unSuppressedEmotions.Add(emotionType); } else { // if not hit, fail silently runState.IncreaseEnergy(-1); runState.emotions.Add(emotionType, 1); Instantiate(missPrefab, transform.position, Quaternion.identity, hitArea); runState.BreakCombo(); } }
public override void HitEffect(RunState runState) { runState.IncreaseEnergy(1); }