add player death animation

also bugfixed some tambourine stuff
This commit is contained in:
Sam
2023-04-30 13:58:04 -07:00
parent 16a190949d
commit 9f36564e67
13 changed files with 734 additions and 150 deletions

View File

@@ -27,6 +27,7 @@ public class PlayerBehavior : MonoBehaviour
[SerializeField] private StateController stateController;
Animator animator;
[HideInInspector] public bool playerIsAlive = true;
void Start()
@@ -35,32 +36,34 @@ public class PlayerBehavior : MonoBehaviour
stateController = GameObject.Find("StateController").GetComponent<StateController>();
animator = GetComponent<Animator>();
GameObject.Find("Main Camera").GetComponent<CameraMovement>().player = this.gameObject;
playerIsAlive = true;
}
void Update()
{
if (playerIsAlive) {
// throw tambourine
// if (Input.GetKeyDown(KeyCode.K)) {
if (playerInput.actions["ThrowTambourine"].WasPressedThisFrame())
{
ThrowTambourine();
}
// throw tambourine
// if (Input.GetKeyDown(KeyCode.K)) {
if (playerInput.actions["ThrowTambourine"].WasPressedThisFrame())
{
ThrowTambourine();
}
// grapple
tambourine = GameObject.FindGameObjectWithTag("tambourine");
// if (Input.GetKeyDown(KeyCode.L)) {
if (playerInput.actions["Grapple"].WasPressedThisFrame())
{
AttemptGrapple();
}
// if (Input.GetKeyUp(KeyCode.L)) {
if (playerInput.actions["Grapple"].WasReleasedThisFrame())
{
LetGoOfGrapple();
}
// grapple
tambourine = GameObject.FindGameObjectWithTag("tambourine");
// if (Input.GetKeyDown(KeyCode.L)) {
if (playerInput.actions["Grapple"].WasPressedThisFrame())
{
AttemptGrapple();
Animate();
}
// if (Input.GetKeyUp(KeyCode.L)) {
if (playerInput.actions["Grapple"].WasReleasedThisFrame())
{
LetGoOfGrapple();
}
Animate();
}
void Animate() {
@@ -76,20 +79,22 @@ public class PlayerBehavior : MonoBehaviour
void OnMove(InputValue value)
{
_hInput = value.Get<Vector2>().x;
if (_hInput < 0)
{
if (forward != -1) { // if character hasnt already flipped
FlipRenderer();
if (playerIsAlive) {
_hInput = value.Get<Vector2>().x;
if (_hInput < 0)
{
if (forward != -1) { // if character hasnt already flipped
FlipRenderer();
}
forward = -1;
}
forward = -1;
}
else if (_hInput > 0)
{
if (forward != 1) { // if character hasnt already flipped
FlipRenderer();
else if (_hInput > 0)
{
if (forward != 1) { // if character hasnt already flipped
FlipRenderer();
}
forward = 1;
}
forward = 1;
}
}
@@ -150,7 +155,7 @@ public class PlayerBehavior : MonoBehaviour
}
else if (col.tag == "instaDeath")
{
DestroyPlayer();
StartCoroutine(DestroyPlayer());
}
else if (col.tag == "spawnPoint") {
stateController.spawnPoint.GetComponent<SpawnPointBehavior>().DeactivateSpawnPoint();
@@ -182,16 +187,22 @@ public class PlayerBehavior : MonoBehaviour
_rb.AddForce(Vector2.up * 8, ForceMode2D.Impulse);
collision.gameObject.GetComponent<EnemyPatrol>().DefeatEnemy();
} else {
DestroyPlayer();
StartCoroutine(DestroyPlayer());
}
}
else if (collision.gameObject.tag == "Projectile") {
Destroy(collision.gameObject);
DestroyPlayer();
StartCoroutine(DestroyPlayer());
}
}
public void DestroyPlayer() {
IEnumerator DestroyPlayer() {
playerIsAlive = false;
// animate
animator.Play("Die");
yield return new WaitForSeconds(animator.GetCurrentAnimatorStateInfo(0).length);
this.stateController.SetDeathCanvasActive(true);
// destroy all tambourines
@@ -200,6 +211,7 @@ public class PlayerBehavior : MonoBehaviour
tambourine.GetComponent<TambourineBehavior>().DestroySelf();
}
yield return new WaitForSeconds(2f);
Destroy(this.gameObject);
}
}

View File

@@ -58,12 +58,16 @@ public class PlayerMovement : MonoBehaviour
[Header("Layers & Tags")]
[SerializeField] private LayerMask _groundLayer;
[HideInInspector] private PlayerBehavior playerBehavior;
#endregion
private void Awake()
{
RB = GetComponent<Rigidbody2D>();
grapplingRope = this.gameObject.GetComponent<PlayerBehavior>().grapplingRope;
playerBehavior = this.gameObject.GetComponent<PlayerBehavior>();
grapplingRope = playerBehavior.grapplingRope;
}
private void Start()
@@ -74,12 +78,16 @@ public class PlayerMovement : MonoBehaviour
void OnMove(InputValue value)
{
this._moveInput = value.Get<Vector2>();
if (playerBehavior.playerIsAlive) {
this._moveInput = value.Get<Vector2>();
}
}
void OnJump()
{
OnJumpInput();
if (playerBehavior.playerIsAlive) {
OnJumpInput();
}
}
private void Update()