Ejemplo n.º 1
0
 private void SelectAction(ActionOptionsAvailable e)
 {
     IfAITurn(() =>
     {
         var o = e.Options;
         if (o.ContainsKey(ActionType.Shoot))
         {
             EventQueue.Instance.Add(new AIActionQueued(() => o[ActionType.Shoot].Invoke()));
         }
         else if (Data.SeenEnemies.Count == 0 && o.ContainsKey(ActionType.Pass))
         {
             EventQueue.Instance.Add(new AIActionQueued(() => o[ActionType.Pass].Invoke()));
         }
         else if (o.ContainsKey(ActionType.Hide) && new SpotHasGoodCoverCalculation(Data, Char.CurrentTile.Position).Calculate())
         {
             EventQueue.Instance.Add(new AIActionQueued(() => o[ActionType.Hide].Invoke()));
         }
         else if (o.ContainsKey(ActionType.Overwatch))
         {
             EventQueue.Instance.Add(new AIActionQueued(() => o[ActionType.Overwatch].Invoke()));
         }
         else if (o.ContainsKey(ActionType.Hide))
         {
             EventQueue.Instance.Add(new AIActionQueued(() => o[ActionType.Hide].Invoke()));
         }
         else if (o.ContainsKey(ActionType.Pass))
         {
             EventQueue.Instance.Add(new AIActionQueued(() => o[ActionType.Pass].Invoke()));
         }
         else
         {
             throw new Exception("No AI possible actions.");
         }
     });
 }
Ejemplo n.º 2
0
 private void UpdateOptions(ActionOptionsAvailable e)
 {
     _options = e.Options;
     _buttons[0].IsEnabled = _options.ContainsKey(ActionType.Hide);
     _buttons[1].IsEnabled = _options.ContainsKey(ActionType.Shoot);
     _buttons[2].IsEnabled = _options.ContainsKey(ActionType.Overwatch);
     _buttons[3].IsEnabled = _options.ContainsKey(ActionType.Pass);
     PresentOptions();
 }