//resolve collision if enemy deal damage to both characters private static void ResolveCollision(MapCoordinates mc1, MapCoordinates mc2, Map map, List <Action> results) { if (!(map.GetAt(mc1) is Character) || !(map.GetAt(mc2) is Character)) { throw new Exception("Colliding not two characters"); } var char1 = map.GetAt(mc1) as Character; var char2 = map.GetAt(mc2) as Character; if (char1.Team == char2.Team) { results.Add(new CollisionWithAllyAction(char1.ActualPosition, char2.ActualPosition)); return; } results.Add(new CollisionWithEnemyAction(char1.ActualPosition, char2.ActualPosition)); AttackMethods.DealDamageTo(mc1, char2.CollisionStrength, map, results); AttackMethods.DealDamageTo(mc2, char1.CollisionStrength, map, results); }