Пример #1
0
        public UnitModel RetriveTarget(BattlefieldVision vision, MyHexPosition activatingPosition)
        {
            var target = vision.GetUnitAt(new MyHexPosition(1, 0));

            Assert.IsNotNull(target, "There is no target");
            return(target);
        }
        public void Execute(BattlefieldVision vision, MyHexPosition activatingPosition, BattleEngagementResult reciever)
        {
            var targetUnit = ShootingTarget(vision);

            Assert.IsNotNull(targetUnit, "There is no target");
            reciever.AddProjectile(vision.PossesedPawn.Position, vision.PossesedPawn.Orientation, targetUnit.Position, _projectileType);
        }
        public UnitModel RetriveTarget(BattlefieldVision vision, MyHexPosition activatingPosition)
        {
            var grabbedUnit = ShootingTarget(vision);

            Assert.IsNotNull(grabbedUnit, "There is no target");
            return(grabbedUnit);
        }
Пример #4
0
        public void Execute(BattlefieldVision vision, MyHexPosition activatingPosition, BattleEngagementResult reciever)
        {
            var unitInFront = vision.GetUnitAt(new MyHexPosition(0, 0));

            Assert.IsTrue(unitInFront != null, "There is no enemy unit in front of me");
            reciever.AddStruckUnit(unitInFront);
        }
Пример #5
0
        public void Execute(BattlefieldVision vision, MyHexPosition activatingPosition, BattleEngagementResult reciever)
        {
            var grabbedUnit = RetriveGrabbedUnit(vision);

            Assert.IsNotNull(grabbedUnit, "There is no target");
            reciever.DisplaceUnit(grabbedUnit, vision.ToGlobalPosition(new MyHexPosition(DistanceAfterGrab, 0)));
        }
Пример #6
0
        public void Execute(BattlefieldVision vision, MyHexPosition activatingPosition, BattleEngagementResult reciever)
        {
            var unitInFront = vision.GetUnitAt(new MyHexPosition(1, 0));

            Assert.IsTrue(unitInFront != null && unitInFront.Owner != vision.PossesedPawn.Owner, "There is no enemy unit in front of me");
            reciever.DisplaceUnit(unitInFront, vision.ToGlobalPosition(new MyHexPosition(2, 0)));
        }
Пример #7
0
 public void Execute(BattlefieldVision vision, MyHexPosition activatingPosition, BattleEngagementResult reciever)
 {
     Assert.IsTrue(vision.PossesedPawn is UnitModel);   // TODO !!! UGLY !!
     if (reciever.UnitWasStruck((UnitModel)vision.PossesedPawn))
     {
         reciever.UnStrike((UnitModel)vision.PossesedPawn);
     }
 }
        public bool IsActivated(BattlefieldVision vision, MyHexPosition activatingPosition)
        {
            if (!_activationCircumstances.IsActivated(vision.BattleCircumstances))
            {
                return(false);
            }
            var toReturn = ShootingTarget(vision) != null;

            return(toReturn);
        }
Пример #9
0
        public bool IsActivated(BattlefieldVision vision, MyHexPosition activatingPosition)
        {
            var unitInFront = vision.GetUnitAt(new MyHexPosition(1, 0));

            if (unitInFront != null && unitInFront.Owner != vision.PossesedPawn.Owner)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
 private UnitModel ShootingTarget(BattlefieldVision vision)
 {
     for (int i = 1; i <= _maxShootingDistance; i++)
     {
         var pos = new MyHexPosition(i, 0);
         if (!vision.HasTileAt(pos))
         {
             return(null);
         }
         var otherUnitAtFront = vision.GetUnitAt(pos);
         if (otherUnitAtFront != null)
         {
             if (otherUnitAtFront.Owner != vision.PossesedPawn.Owner)
             {
                 return(otherUnitAtFront);
             }
             else
             {
                 return(null);
             }
         }
     }
     return(null);
 }
Пример #11
0
 private UnitModel RetriveGrabbedUnit(BattlefieldVision vision)
 {
     for (int i = MinDragDistance; i <= MaxDragDistance; i++)
     {
         var pos = new MyHexPosition(i, 0);
         if (!vision.HasTileAt(pos))
         {
             return(null);
         }
         var otherUnitAtFront = vision.GetUnitAt(pos);
         if (otherUnitAtFront != null)
         {
             if (otherUnitAtFront.Owner != vision.PossesedPawn.Owner)
             {
                 return(otherUnitAtFront);
             }
             else
             {
                 return(null);
             }
         }
     }
     return(null);
 }
Пример #12
0
 public void Execute(BattlefieldVision vision, MyHexPosition activatingPosition, BattleEngagementResult reciever)
 {
 }
Пример #13
0
 public bool IsActivated(BattlefieldVision vision, MyHexPosition activatingPosition)
 {
     Assert.IsFalse(true, "Not implemented, should not be called"); //todo, ugly
     return(false);
 }
Пример #14
0
 public UnitModel RetriveTarget(BattlefieldVision vision, MyHexPosition activatingPosition)
 {
     Assert.IsTrue(false, "Empty effect should not be called, it is never activated");
     return(null);
 }
Пример #15
0
 public bool IsActivated(BattlefieldVision vision, MyHexPosition activatingPosition)
 {
     return(RetriveGrabbedUnit(vision) != null);
 }
Пример #16
0
 public UnitModel RetriveTarget(BattlefieldVision vision, MyHexPosition activatingPosition)
 {
     Assert.IsTrue(false, "Defense os only reactive event, no target here");
     return(null);
 }
Пример #17
0
 public bool IsActivated(BattlefieldVision vision, MyHexPosition activatingPosition)
 {
     return(false);
 }
Пример #18
0
 public UnitModel RetriveTarget(BattlefieldVision vision, MyHexPosition activatingPosition)
 {
     Assert.IsFalse(true, "Not implemented, should not be called"); //todo, ugly
     return(null);
 }