示例#1
0
        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);
        }
示例#2
0
        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());
            }
        }