public override void Execute(GameTrigger trigger) { if (!trigger.Character.IsInFight()) { trigger.ReplyError("You must be in a fight"); return; } if (!trigger.Character.Fight.AIDebugMode) { trigger.ReplyError("AI debug mode must be enabled"); return; } if (!(trigger.Character.Fight.FighterPlaying is AIFighter)) { trigger.ReplyError("Current fighter is not an AI fighter"); return; } var aiFighter = trigger.Character.Fight.FighterPlaying as AIFighter; trigger.Character.ClearHighlight(); var enemy = aiFighter.Brain.Environment.GetNearestEnemy(); if (trigger.IsArgumentDefined("los")) { trigger.Reply(trigger.Color("Cast with LoS", trigger.Character.HighlightCells(aiFighter.Brain.Environment.GetCellsWithLoS(enemy.Cell)))); } foreach (var spell in aiFighter.Spells.Values) { var cell = aiFighter.Brain.Environment.GetCellToCastSpell(new TargetCell(enemy.Cell), spell, spell.CurrentSpellLevel.CastTestLos); if (cell != null) { trigger.Reply(trigger.Color("Cast " + spell, trigger.Character.HighlightCell(cell))); } } var fleeCell = aiFighter.Brain.Environment.GetCellToFlee(); trigger.Reply(trigger.Color("Flee cell", trigger.Character.HighlightCell(fleeCell))); }