예제 #1
0
 private void determineBehaviour()
 {
     goalStance = GameManager.instance.currentGoal;
     foreach (var condition in goalStance.winConditions)
     {
         if (condition.cond.GetType() == typeof(ObstacleCondition))
         {
             ObstacleCondition c = condition.cond as ObstacleCondition;
             if (curTag.Equals(c.desiredTag))
             {
                 if (c.avoid)
                 {
                     toAvoid   = true;
                     toCollect = false;
                 }
                 else if (c.collect)
                 {
                     toAvoid   = false;
                     toCollect = true;
                 }
                 if (c.shoot)
                 {
                     toShoot = true;
                 }
             }
         }
     }
     if (toShoot)
     {
         gameObject.tag = "KeepAlive";
     }
 }
예제 #2
0
 private void increaseGoalAmount(string tag)
 {
     foreach (var curCondition in currentGoal.winConditions)
     {
         if (curCondition.cond.GetType() == typeof(ObstacleCondition))
         {
             ObstacleCondition c = curCondition.cond as ObstacleCondition;
             if (tag.Equals(c.desiredTag))
             {
                 curCondition.currentAmount++;
             }
             if (c.exactly && curCondition.currentAmount > curCondition.requiredAmount)
             {
                 fireRespawnEvent();
                 break;
             }
         }
     }
 }