private void DrawBattlePaths(Graphics g, Battle battle) { using (Pen attackerLine = new Pen(Color.Black, 3)) using (Pen defenderLine = new Pen(Color.Black, 3)) using (AdjustableArrowCap victorCap = new AdjustableArrowCap(4, 6)) using (AdjustableArrowCap loserCap = new AdjustableArrowCap(5, 6)) { attackerLine.DashStyle = DashStyle.Dot; defenderLine.DashStyle = DashStyle.Dot; loserCap.Filled = false; Site attackerSite = GetClosestSite(battle.Attacker, battle.Coordinates); Site defenderSite = GetClosestSite(battle.Defender, battle.Coordinates); attackerLine.Color = battle.Attacker.LineColor; defenderLine.Color = battle.Defender.LineColor; if (battle.Victor == battle.Attacker) { attackerLine.CustomEndCap = victorCap; defenderLine.CustomEndCap = loserCap; } else if (battle.Victor == battle.Defender) { attackerLine.CustomEndCap = loserCap; defenderLine.CustomEndCap = victorCap; } g.DrawLine(attackerLine, SiteToScreen(attackerSite.Coordinates), SiteToScreen(battle.Coordinates)); if (defenderSite != null && defenderSite.Coordinates != battle.Coordinates) g.DrawLine(defenderLine, SiteToScreen(defenderSite.Coordinates), SiteToScreen(battle.Coordinates)); } }
public BattlePrinter(Battle battle, World world) { Battle = battle; World = world; }