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."); } }); }
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(); }