1
0
Fork 0
Bildschirmflausch-LD41/Assets/Scripts/Entities/Mob.cs

79 lines
1.8 KiB
C#
Raw Normal View History

public abstract class Mob : Entity {
readonly int maxHP;
int currentHP;
bool isDead;
int damage;
2018-04-21 16:55:39 +02:00
/// <summary>
/// Creates a new Mob instance with the given HP.
/// </summary>
/// <param name="maxHP"></param>
public Mob(int maxHP) {
this.maxHP = maxHP;
currentHP = maxHP;
isDead = false;
}
/// <summary>
/// Inflicts damage to this mob.
/// </summary>
/// <param name="damage"></param>
public void InflictDamage(int damage) {
currentHP -= damage;
if ( !isDead && currentHP <= 0 ) {
isDead = true;
Death();
}
}
/// <summary>
/// This is called when a mob dies.
/// </summary>
protected virtual void Death() {
if ( objective != null )
objective.RemoveEntity(this);
Destroy(gameObject);
}
/// <summary>
/// Heals the mob.
/// </summary>
/// <param name="healAmount"></param>
public void Heal(int healAmount) {
if ( !isDead )
currentHP = ( currentHP + healAmount > currentHP ) ? maxHP : currentHP + healAmount;
}
/// <summary>
/// Sets the damage value of a mobs attack.
/// </summary>
/// <param name="dmg"></param>
public void SetDamage(int dmg) {
damage = dmg;
}
/// <summary>
/// Gets the damage value og a mobs attack.
/// </summary>
/// <returns></returns>
public int GetDamage() {
return damage;
}
2018-04-22 11:45:12 +02:00
/// <summary>
/// Gets the current HP.
/// </summary>
/// <returns></returns>
2018-04-22 16:20:25 +02:00
public int GetHealth() {
2018-04-22 11:45:12 +02:00
return currentHP;
}
/// <summary>
/// Gets the maximum HP.
/// </summary>
/// <returns></returns>
2018-04-22 16:20:25 +02:00
public int GetMaxHealth() {
return maxHP;
}
2018-04-21 16:55:39 +02:00
}