public static void Attack(Unit unit) { if (Time.time - unit.lastAttacked < unit.attackRate) return; unit.lastAttacked = Time.time; //if (unit.GetComponent<Target>().targetGameObject == null) return; Unit enemy = unit.GetComponent<Target>().targetGameObject.GetComponent<Unit>(); UnitActions.TakeDamage(enemy, unit.attackDamage); //todo:attack animation (simulate force) }
//Unit behaviour functions that change values of the unit #region hunger // ################################################################################## public static void HungerEffect(Unit unit) { if (unit.amountFed <= 0) { UnitActions.TakeDamage(unit, unit.hungerDamage * Time.deltaTime * GameManager.gameManager.countsBetweenUpdates); unit.amountFed = 0; } else { unit.amountFed -= unit.hungerPerSecond * Time.deltaTime * GameManager.gameManager.countsBetweenUpdates; } }
public static void ThirstEffect(Unit unit) { if (unit.amountQuenched <= 0) { UnitActions.TakeDamage(unit, unit.thirstDamage * Time.deltaTime * GameManager.gameManager.countsBetweenUpdates); unit.amountQuenched = 0; } else { unit.amountQuenched -= unit.thirstPerSecond * Time.deltaTime * GameManager.gameManager.countsBetweenUpdates; } }