public override void Step(CharControlMotor player, float deltaTime) { player.UpdateDirection(player.input.horizontal); player.HandleSlopeFactor(deltaTime); player.HandleAcceleration(deltaTime); player.HandleFriction(deltaTime); player.HandleGravity(deltaTime); player.HandleFall(); if (!player.HandleLedgeCheck().Item2) { player.state.ChangeState <WalkPlayerState>(); } if (player.input.actionDown) { player.HandleJump(); } if (player.HandleLedgeCheck().Item1) { player.state.ChangeState <LedgeGrabStateFront>(); } if (player.input.horizontal != 0 || player.velocity.x != 0) { player.state.ChangeState <WalkPlayerState>(); } }
public override void Step(CharControlMotor player, float deltaTime) { var PushResult = player.HandlePushCheck(); if (PushResult.Item1) { if (player.input.actionDown) { player.HandleJump(); } //apply push to physical object if (player.input.horizontal != 0) { var rigidbody = PushResult.gameObject.GetComponent <Rigidbody>(); rigidbody.AddForce(player.skin.transform.right.normalized * player.input.horizontal); } if (Mathf.Sign(player.velocity.x) != Mathf.Sign(player.input.horizontal)) { player.state.ChangeState <WalkPlayerState>(); } } else { player.state.ChangeState <WalkPlayerState>(); } }
public override void Step(CharControlMotor player, float deltaTime) { Player = player.PlayerObject.transform; player.HandleAcceleration(deltaTime); player.velocity = Vector3.zero; if (player.input.right) { player.velocity = Vector3.right * 20; } if (player.input.left) { player.velocity = Vector3.left * 20; } if (player.input.up) { player.velocity = Vector3.up * 20; } if (player.input.down) { player.velocity = Vector3.down * 20; } }
public override void Enter(CharControlMotor player) { player.lookingUp = true; player.attacking = false; player.velocity.x = 0; player.ChangeBounds(1); }
public override void Step(CharControlMotor player, float deltaTime) { player.HandleGravity(deltaTime); player.HandleFall(); power -= ((power / player.stats.SpinpowerLoss) / 256f) * deltaTime; if (player.grounded) { if (player.input.down) { if (player.input.actionDown) { player.sonicState = CharControlMotor.SonicState.ChargingSpin; power += player.stats.SpinchargePower; power = Mathf.Min(power, player.stats.SpinmaxChargePower); player.PlayAudio(player.audios.spindash_charge, 0.5f); } } else { player.state.ChangeState <RollPlayerState>(); } } }
public override void Step(CharControlMotor player, float deltaTime) { if (!player.HandleLedgeCheck().Item1) { player.state.ChangeState <WalkPlayerState>(); } if (player.HandleLedgeCheck().Item2) { player.state.ChangeState <LedgeGrabStateBack>(); } if (player.input.actionDown) { player.HandleJump(); } if (player.input.horizontal != 0) { if (Mathf.Abs(player.velocity.x) >= player.stats.minSpeedToBrake) { player.state.ChangeState <BrakePlayerState>(); } else { if (player.velocity.x > 0) { player.velocity.x = -player.stats.turnSpeed; } else { player.velocity.x = player.stats.turnSpeed; } } } }
protected override void OnCollect(CharControlMotor player) { for (int i = 0; i < ringAmount; i++) { player.RingGot(); } }
public override void Exit(CharControlMotor player) { player.particles.brakeSmoke.Stop(); player.disableSkinRotation = false; player.PlayerObject.GetComponent <PlayerMotor>().height = 1; player.PlayerObject.GetComponent <PlayerMotor>().ChangeBounds(0); }
protected override void OnCollect(CharControlMotor player) { player.invincible = true; player.invincibleTimer = 15; FindObjectOfType <StageManager>().StopMusic(); Invoke("UnpauseMusic", TimeUntilMusicStartsAgain); }
public override void Exit(CharControlMotor player) { //player.skin.ActiveBall(false); player.velocity.x = (player.stats.SpinminReleasePower + (Mathf.Floor(power) / 2)) * player.direction; player.PlayAudio(player.audios.spindash, 0.5f); player.particles.spindashSmoke.Stop(); player.sonicState = CharControlMotor.SonicState.Spindash; }
void UpdateFollowTarget(Transform newTarget) { followTarget = newTarget; if (followTarget != null) { charCtrl = followTarget.GetComponent <CharControlMotor>(); } }
public override void Enter(CharControlMotor player) { player.attacking = true; player.particles.brakeSmoke.Play(); player.disableSkinRotation = true; player.PlayAudio(player.audios.spindash, 0.5f); player.PlayerObject.GetComponent <PlayerMotor>().ChangeBounds(1); }
public override void Enter(CharControlMotor player) { player.attacking = false; player.ChangeBounds(0); player.PlayAudio(player.audios.brake); player.UpdateDirection(player.velocity.x); //player.skin.SetEulerY(90 - player.direction * 90); player.particles.brakeSmoke.Play(); }
public override void Enter(CharControlMotor player) { player.GroundExit(); player.ChangeBounds(0); player.invincible = true; player.halfGravity = true; player.attacking = false; player.GotHurtCheck = true; }
private void DestroyMonitor(CharControlMotor player) { NonBrokebody.SetActive(false); collider.enabled = false; audio.PlayOneShot(explosionSound); BrokenBody.SetActive(true); explosionParticle.Play(); StartCoroutine(ReleaseItem(player)); }
public override void Step(CharControlMotor player, float deltaTime) { player.HandleGravity(deltaTime); if (player.grounded) { player.velocity.x = 0; player.state.ChangeState <WalkPlayerState>(); } }
public override void Step(CharControlMotor player, float deltaTime) { player.HandleAcceleration(deltaTime); player.HandleGravity(deltaTime); if (player.velocity.y <= 0) { player.state.ChangeState <WalkPlayerState>(); } }
public override void Enter(CharControlMotor player) { player.GroundExit(); player.EnableCollision(false); player.attacking = false; player.Death = true; player.disableSkinRotation = true; player.disableCameraFollow = true; player.velocity = Vector3.zero; player.velocity.y = player.stats.diePushUp; player.PlayAudio(player.audios.death); }
public override void Exit(CharControlMotor player) { //player.skin.ActiveBall(false); if (chargeAmount >= chargeNeededToShootOff) { player.velocity.x = (player.stats.PeelminReleasePower + (Mathf.Floor(power) / 2)) * player.direction; player.PlayAudio(player.audios.peel_launch, 0.5f); player.sonicState = CharControlMotor.SonicState.Peel; } player.particles.spindashSmoke.Stop(); player.disableSkinRotation = false; }
public override void Step(CharControlMotor player, float deltaTime) { player.HandleSlopeFactor(deltaTime); player.HandleFriction(deltaTime); player.HandleDeceleration(deltaTime); player.HandleGravity(deltaTime); player.HandleFall(); ///* Controls the height of the playerspin ~Birb64 */// if (player.PlayerObject.transform.eulerAngles.z > 100 && player.PlayerObject.transform.eulerAngles.z < 180) { player.PlayerObject.GetComponent <PlayerMotor>().height = 0.012f * player.PlayerObject.transform.eulerAngles.z; } if (player.PlayerObject.transform.eulerAngles.z < 260 && player.PlayerObject.transform.eulerAngles.z > 180) { player.PlayerObject.GetComponent <PlayerMotor>().height = 0.012f * (180 - Mathf.Abs(player.PlayerObject.transform.eulerAngles.z - 180)); } ///* Controls the width of the playerspin ~Birb64 */// if (player.PlayerObject.transform.eulerAngles.z > 30 && player.PlayerObject.transform.eulerAngles.z < 180) { player.PlayerObject.GetComponent <PlayerMotor>().wallExtents = 0.01f * player.PlayerObject.transform.eulerAngles.z; } if (player.PlayerObject.transform.eulerAngles.z < 330 && player.PlayerObject.transform.eulerAngles.z > 180) { player.PlayerObject.GetComponent <PlayerMotor>().wallExtents = 0.01f * (180 - Mathf.Abs(player.PlayerObject.transform.eulerAngles.z - 180)); } else if (player.PlayerObject.transform.eulerAngles.z < 180 || player.PlayerObject.transform.eulerAngles.z > 260) { player.PlayerObject.GetComponent <PlayerMotor>().wallExtents = 0.02f; } if (player.grounded) { if (player.input.actionDown) { player.HandleJump(); } else if (Mathf.Abs(player.velocity.x) < player.stats.minSpeedToUnroll) { player.state.ChangeState <WalkPlayerState>(); } } else { player.state.ChangeState <JumpPlayerState>(); } }
public override void Step(CharControlMotor player, float deltaTime) { player.HandleGravity(deltaTime); player.HandleFall(); if (player.grounded && player.input.down) { if (player.input.actionDown) { player.state.ChangeState <SpindashPlayerState>(); } } else { player.state.ChangeState <WalkPlayerState>(); } }
public override void Step(CharControlMotor player, float deltaTime) { timer += deltaTime; // Check if we have reached beyond 2 seconds. // Subtracting two is more accurate over time than resetting to zero. if (timer > waitTime) { player.state.ChangeState <WalkPlayerState>(); // Remove the recorded 2 seconds. timer -= waitTime; } if (player.velocity.x > 0 || player.velocity.y > 0) { player.state.ChangeState <WalkPlayerState>(); } }
public override void Step(CharControlMotor player, float deltaTime) { player.UpdateDirection(player.input.horizontal); player.HandleAcceleration(deltaTime); player.HandleGravity(deltaTime); if (!player.grounded && player.attacking) { if (player.input.actionUp && player.velocity.y > player.stats.minJumpHeight) { player.velocity.y = player.stats.minJumpHeight; } } else { player.state.ChangeState <WalkPlayerState>(); } }
private void HandlePlayerSnaping(CharControlMotor player) { if (!snapPositionX && !snapPositionY) { return; } var playerPosition = player.transform.position; if (snapPositionX) { playerPosition.x += transform.position.x; } if (snapPositionY) { playerPosition.y = transform.position.y; } player.transform.position = playerPosition; }
public override void Enter(CharControlMotor player) { power = 0; player.attacking = true; //player.skin.ActiveBall(true); player.ChangeBounds(1); player.PlayAudio(player.audios.spindash_charge, 0.5f); // Move particle emission right if (player.direction == -1) { player.particles.spindashSmoke.transform.localScale = new Vector3(-1, 1, 0); } // Move particle emission left else { player.particles.spindashSmoke.transform.localScale = new Vector3(1, 1, 0); } player.particles.spindashSmoke.Play(); }
private IEnumerator ReleaseItem(CharControlMotor player) { var position = item.transform.position; var t = 0f; while (t < 0.5f) { t += Time.deltaTime; position.y += 2f * Time.deltaTime; item.transform.position = position; yield return(null); } audio.PlayOneShot(collectSound, collectSoundVolume); OnCollect(player); yield return(new WaitForSeconds(.25f)); item.SetActive(false); }
protected override void OnMotorStart() { musicSource = GetComponent <AudioSource>(); characterController = GetComponent <CharControlMotor>(); time = 0; anim = GetComponentInChildren <Animator>(); //spriteRend = anim.GetComponent<SpriteRenderer>(); anim.SetBool("OnGround", grounded); anim.SetBool("Jump", jumped); audioSources = transform.Find("Audio"); anim.SetBool("Gothurt", GotHurtCheck); anim.SetBool("Death", Death); Debug.Log(acceleration + "," + deceleration + "," + turnAroundSpeed); Debug.Log(acceleration * Time.deltaTime + "," + deceleration * Time.deltaTime + "," + turnAroundSpeed * Time.deltaTime); InitializeStateMachine(); InitializeSkin(); InitializeLostRingPool(); }
public override void Step(CharControlMotor player, float deltaTime) { player.HandleGravity(deltaTime); player.HandleFall(); chargeAmount += Time.deltaTime * chargeSpeed; power -= ((power / player.stats.PeelpowerLoss) / 256f) * deltaTime; if (player.grounded) { if (player.input.up) { if (player.input.actionDown) { player.sonicState = CharControlMotor.SonicState.ChargingPeel; power += player.stats.PeelchargePower; power = Mathf.Min(power, player.stats.PeelmaxChargePower); //player.PlayAudio(player.audios.peel, 0.5f); } } else if (player.input.down) { if (Mathf.Abs(player.velocity.x) > player.stats.minSpeedToRoll) { player.sonicState = CharControlMotor.SonicState.Rolling; player.state.ChangeState <RollPlayerState>(); //player.PlayAudio(player.audios.spin, 0.5f); } else if (player.angle < player.stats.minAngleToSlide) { player.state.ChangeState <CrouchPlayerState>(); } } else { player.state.ChangeState <WalkPlayerState>(); } } }
public override void Step(CharControlMotor player, float deltaTime) { player.HandleDeceleration(deltaTime); player.HandleGravity(deltaTime); player.HandleFall(); if (player.grounded && (Mathf.Sign(player.input.horizontal) != Mathf.Sign(player.direction))) { if (player.input.actionDown) { player.HandleJump(); } else if ((Mathf.Abs(player.velocity.x) <= player.stats.turnSpeed) || player.input.horizontal == 0) { player.state.ChangeState <WalkPlayerState>(); } } else { player.state.ChangeState <WalkPlayerState>(); } }
public override void Enter(CharControlMotor player) { player.attacking = true; player.jumped = true; player.ChangeBounds(1); dashTimer = 0.0f; active = false; charging = false; jumpSlowDownAmount = player.velocity.x / 8; if (player.velocity.x != 0) { if (player.velocity.x < 0) { player.velocity.x = player.velocity.x - jumpSlowDownAmount; } else if (player.velocity.x > 0) { player.velocity.x = player.velocity.x - jumpSlowDownAmount; } } }