Example #1
0
 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)
 }
Example #2
0
    //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;
        }
    }
Example #3
0
 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;
     }
 }