This commit is contained in:
2020-02-01 21:28:12 -05:00
50 changed files with 11481 additions and 1095 deletions

View File

@@ -7,7 +7,7 @@ using UnityEngine.Tilemaps;
public class EventControls : MonoBehaviour
{
[SerializeField] private Player player;
[SerializeField] private Player player;
[SerializeField] private Camera camera;
[SerializeField] private List<Tile> tiles;
[SerializeField] private List<Tile> successTiles;

View File

@@ -12,6 +12,16 @@ public class Player : MonoBehaviour
[SerializeField] private float wallErrorThreshold = 1.5f;
[SerializeField] private float wallLineCaseDistance = 0.5f;
[SerializeField] private float runErrorThreshold = 0.05f;
[SerializeField] private int startHealth = 3;
private int currentHealth;
[SerializeField] private int startStamina = 100;
[SerializeField] private int coffeValuePercent = 10;
[SerializeField] private int bugStaminaDamagePercent = 15;
private int currentStamina;
[SerializeField] private SpriteRenderer healthBar;
[SerializeField] private SpriteRenderer staminaBar;
private Rigidbody2D rigidBody;
@@ -24,10 +34,14 @@ public class Player : MonoBehaviour
rigidBody = GetComponent<Rigidbody2D>();
collider = GetComponent<BoxCollider2D>();
animator = GetComponent<Animator>();
currentHealth = startHealth;
currentStamina = startStamina;
healthBar.size = new Vector2(1.5f * startHealth, healthBar.size.y);
staminaBar.size = new Vector2(staminaBar.size.x, staminaBar.size.y);
}
private void Update()
{
{
MovePlayer();
//if (IsPlayerOnWall(true))
@@ -53,6 +67,40 @@ public class Player : MonoBehaviour
}
void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "Pizza")
{
Destroy(coll.gameObject);
currentHealth += currentHealth < startHealth ? 1 : 0;
healthBar.size = new Vector2(1.5f * currentHealth, this.healthBar.size.y);
}
else if (coll.gameObject.tag == "Coffee")
{
Destroy(coll.gameObject);
DrinkCoffee();
}
}
private void DrinkCoffee()
{
int result = currentStamina + GetStaminaValueChange(coffeValuePercent);
currentStamina = result < startStamina ? result : startStamina;
staminaBar.size = new Vector2(staminaBar.size.x * (currentStamina/startStamina), staminaBar.size.y);
}
private void DecreaseStaminaAfterBugFight()
{
int result = currentStamina - GetStaminaValueChange(bugStaminaDamagePercent);
currentStamina = result < 0 ? 0 : result;
}
private int GetStaminaValueChange(int percentage)
{
return currentStamina < startStamina ? (startStamina * percentage / 100) : 0;
}
private void MovePlayer()
{
if (isMovementEnabled)
@@ -103,9 +151,9 @@ public class Player : MonoBehaviour
private bool IsPlayerOnGround()
{
return IsPointOnGround(transform.position + new Vector3(collider.bounds.extents.x * 0.97f, 0, 0)) ||
return IsPointOnGround(transform.position + new Vector3(collider.bounds.extents.x * 0.96f, 0, 0)) ||
IsPointOnGround(transform.position) ||
IsPointOnGround(transform.position - new Vector3(collider.bounds.extents.x, 0, 0));
IsPointOnGround(transform.position - new Vector3(collider.bounds.extents.x * 0.99f, 0, 0));
}
private bool IsPointOnGround(Vector2 position)