示例#1
0
        //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);
        }