This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
PMC_Projekt/ProjektUnity/Assets/Scripts/Player/PlayerStats.cs
Marvin 1eeafca3f2 MOD: Enemy AI
MOD: Player Shooting
MOD: Damage Player and Enemy
2024-09-05 20:40:50 +02:00

72 lines
1.8 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerStats : MonoBehaviour
{
public Player player;
public Weapon weapon;
public float health = 0;
public float speed = 0;
public float damage = 0;
public float fireRate = 0;
private bool isTakingDamage = false;
// Start is called before the first frame update
void Start()
{
health = player.getCurrentHealth();
speed = player.getCurrentSpeed();
damage = weapon.getDamage();
fireRate = weapon.getFireRate();
}
private void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.CompareTag("Melee"))
{
if (!isTakingDamage)
{
StartCoroutine(TakeDamageOverTime(other.gameObject.GetComponent<EnemyStats>()));
}
if (health <= 0)
{
Destroy(this.gameObject);
}
}
}
private void OnTriggerEnter2D(Collider2D other) {
if (other.gameObject.CompareTag("Bullet") && !isTakingDamage){
BulletScript bulletScript = other.gameObject.GetComponent<BulletScript>();
health -= bulletScript.weapon.getDamage();
if (health <= 0)
{
Destroy(this.gameObject);
}
}
}
private void OnCollisionExit2D(Collision2D other)
{
if (other.gameObject.CompareTag("Melee"))
{
isTakingDamage = false;
}
}
private IEnumerator TakeDamageOverTime(EnemyStats enemyStats)
{
isTakingDamage = true;
while (isTakingDamage && enemyStats != null)
{
health -= enemyStats.damage;
yield return new WaitForSeconds(1f);
}
}
}