From 07fdedc8529dadd02c0b0940dc38f8a00e93c0a0 Mon Sep 17 00:00:00 2001 From: miepzerino <o.skotnik@gmail.com> Date: Tue, 19 Dec 2023 16:32:13 +0000 Subject: [PATCH] Added scene fade in/out --- Assets/Scripts/PlayerController.cs | 160 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 142 insertions(+), 18 deletions(-) diff --git a/Assets/Scripts/PlayerController.cs b/Assets/Scripts/PlayerController.cs index fa0c623..8480803 100644 --- a/Assets/Scripts/PlayerController.cs +++ b/Assets/Scripts/PlayerController.cs @@ -1,3 +1,5 @@ +using Assets.Scripts.Helpers; +using System; using System.ComponentModel.Design; using UnityEngine; using UnityEngine.InputSystem; @@ -7,33 +9,89 @@ { public float moveSpeed = 5f; public float maxFallSpeed = -20f; + public float maxFallSpeedDamge = -10f; + private float maxFallSpeedCurrent = 0f; Vector2 moveInput; - public bool IsMoving { get; private set; } + public Rigidbody2D rb; + Animator animator; + Animator animator_rotor; + public GameObject rotorGO; + TouchingDirections touchingDirections; + public Damageable health; - Rigidbody2D rb; + [SerializeField] + private bool _isMoving; + public bool IsMoving + { + get { return _isMoving; } + private set + { + _isMoving = value; + animator.SetBool(AnimationStrings.Player.isMoving, value); + } + } + + [SerializeField] + private bool _isFlying; + public bool IsFlying + { + get { return _isFlying; } + private set + { + _isFlying = value; + animator.SetBool(AnimationStrings.Player.isFlying, value); + animator_rotor.SetBool(AnimationStrings.Player.isFlying, value); + } + } + + private bool _isFacingRight = true; + + public bool IsFacingRight + { + get { return _isFacingRight; } + set + { + if (_isFacingRight != value) + { + transform.localScale *= new Vector2(-1, 1); + } + _isFacingRight = value; + } + } + + public bool CanMove + { + get + { + return animator.GetBool(AnimationStrings.canMove) && !PauseMenu.GameIsPaused; + } + } + + private void Awake() { rb = GetComponent<Rigidbody2D>(); - } - - // Start is called before the first frame update - void Start() - { - - } - - // Update is called once per frame - void Update() - { - + animator = GetComponent<Animator>(); + animator_rotor = rotorGO.GetComponent<Animator>(); + touchingDirections = GetComponent<TouchingDirections>(); + health = GetComponent<Damageable>(); + if (SaveSystem.isGameLoaded) + { + GameObject uiManager = GameObject.Find("GameManager"); + uiManager.GetComponent<GameManager>().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() { - - Debug.Log(moveInput.x); if (moveInput.y == 0) { if (rb.velocity.y <= maxFallSpeed) @@ -60,13 +118,79 @@ 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; + } + } } public void OnMove(InputAction.CallbackContext context) { - moveInput = context.ReadValue<Vector2>(); + if (CanMove) + { + moveInput = context.ReadValue<Vector2>(); - IsMoving = moveInput != Vector2.zero; + IsMoving = moveInput.x != 0; + IsFlying = (moveInput.y != 0); + + SetFacingDirection(moveInput); + } + else + { + IsMoving = false; + IsFlying = false; + moveInput = Vector2.zero; + } } + + private void SetFacingDirection(Vector2 moveInput) + { + if (moveInput.x > 0 && !IsFacingRight) + { + IsFacingRight = true; + } + else if (moveInput.x < 0 && IsFacingRight) + { + IsFacingRight = false; + } + } + + 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 + // { + // _isRunning = true; + // } + // else if (context.canceled) // Button released + // { + // _isRunning = false; + // } + + //} } -- Gitblit v1.9.3