Exemplo n.º 1
0
 public override void Think()
 {
     if (fireTimer.Tick())
     {
         bool wasTriggerPressed = ai.weapon.isTriggerPressed;
         ai.weapon.isTriggerPressed = !wasTriggerPressed;
         if (wasTriggerPressed)
         {
             if ((ai.owner.health < ai.owner.maxHealth * 0.5f ||
                  Random.value < 0.3f) && !stats.disallowHiding)
             {
                 ai.state = new SoldierHide(ai);
                 return;
             }
             fireTimer.interval = firePause;
             if (IsTargetTooClose())
             {
                 ai.state = new SoldierRetreat(ai);
                 return;
             }
             else if (IsTargetTooFar())
             {
                 ai.ContinueTargetPursuing();
                 return;
             }
         }
         else
         {
             fireTimer.interval = fireDuration;
         }
     }
     base.Think();
 }
Exemplo n.º 2
0
 private void Stop()
 {
     ai.alwaysLookAtTarget      = false;
     ai.weapon.isTriggerPressed = false;
     ai.ContinueTargetPursuing();
 }