public override bool IsFinished() { var hasSoldiersFollowing = ia.PlayerHasGuardingSoldiers(); var isInFood = ((ia.GetCurrentPosition() - targetPosition).magnitude < (SoldierConstants.FOOD_HARVEST_MIN_DISTANCE / 1.3f)); var foodPileDepleted = (targetFoodPile != null ? targetFoodPile.behaviour.GetFoodCount() < 5 ? true : false : false); return(isInFood || !hasSoldiersFollowing || foodPileDepleted); }
public override Vector2 GetNewPosition() { if (enemySoldier == null || enemySoldier.isDead) { tries++; enemySoldier = ia.GetNearestEnemy(ia.GetCurrentPosition()); } if (ia.PlayerHasGuardingSoldiers()) { lastTimeWithGuards = Time.fixedTime; } if (enemySoldier != null) { return(new Vector2(enemySoldier.GetPosition().x, enemySoldier.GetPosition().z)); } else { noEnemies = true; return(ia.GetCurrentPosition()); } }