From 61930cf21d3eb145df11ea2b719ae7be66c56d24 Mon Sep 17 00:00:00 2001 From: miepzerino <o.skotnik@gmail.com> Date: Tue, 19 Dec 2023 02:38:48 +0000 Subject: [PATCH] Added save/load game --- Assets/Scripts/PlayerController.cs | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 50 insertions(+), 3 deletions(-) diff --git a/Assets/Scripts/PlayerController.cs b/Assets/Scripts/PlayerController.cs index 4bf68d8..dc4a8ac 100644 --- a/Assets/Scripts/PlayerController.cs +++ b/Assets/Scripts/PlayerController.cs @@ -1,3 +1,4 @@ +using Assets.Scripts.Helpers; using System; using System.ComponentModel.Design; using UnityEngine; @@ -8,13 +9,16 @@ { public float moveSpeed = 5f; public float maxFallSpeed = -20f; + public float maxFallSpeedDamge = -10f; + private float maxFallSpeedCurrent = 0f; Vector2 moveInput; - Rigidbody2D rb; + public Rigidbody2D rb; Animator animator; Animator animator_rotor; public GameObject rotorGO; TouchingDirections touchingDirections; + public Damageable health; [SerializeField] private bool _isMoving; @@ -56,9 +60,11 @@ } } - public bool CanMove { get + public bool CanMove + { + get { - return animator.GetBool(AnimationStrings.canMove); + return animator.GetBool(AnimationStrings.canMove) && !PauseMenu.GameIsPaused; } } @@ -70,6 +76,18 @@ animator = GetComponent<Animator>(); animator_rotor = rotorGO.GetComponent<Animator>(); touchingDirections = GetComponent<TouchingDirections>(); + health = GetComponent<Damageable>(); + if (SaveSystem.isGameLoaded) + { + GameObject uiManager = GameObject.Find("UIManager"); + uiManager.GetComponent<UIManager>().GameLoaded(); + SaveData save = SaveSystem.LoadPlayer(); + health.MaxHealth = save.maxHealth; + health.Health = save.health; + transform.position = VectorHelper.ConvertToVector3(save.position); + rb.velocity = VectorHelper.ConvertToVector2(save.velocity); + SaveSystem.isGameLoaded = false; + } } private void FixedUpdate() @@ -98,6 +116,25 @@ { // moving upwards no falling rb.velocity = new Vector2(moveInput.x * moveSpeed, (moveInput.y * moveSpeed)); + } + } + if (touchingDirections.IsGrounded) + { + if (maxFallSpeedCurrent < maxFallSpeedDamge) + { + TakeFallDamage(Math.Abs((int)maxFallSpeedCurrent)); + maxFallSpeedCurrent = 0; + } + } + else if (IsFlying) + { + maxFallSpeedCurrent = rb.velocity.y; + } + else + { + if (maxFallSpeedCurrent > rb.velocity.y) + { + maxFallSpeedCurrent = rb.velocity.y; } } } @@ -134,6 +171,16 @@ } } + public void TakeDamage(int damage) + { + health.Hit(damage); + } + + public void TakeFallDamage(int fallDamage) + { + TakeDamage(fallDamage); + } + //public void OnRun(InputAction.CallbackContext context) //{ // if (context.started) // Button pressed -- Gitblit v1.9.3