示例#1
0
        public void Execute(TBaseShipController shipController, TShip ship, TDirection direction)
        {
            TParameters damage       = _damageController.CalculateDamage(shipController.CurrentShip, ship, direction);
            TShipParts  oldHitPoints = ship.Current.Parameters.HitPoints;

            ship.Current.Parameters -= damage;
            ship.Storage.OnDamage(oldHitPoints, ship.Current.Parameters.HitPoints);
        }
示例#2
0
 public override void Execute(TBaseShipController shipController, params Object[] objects)
 {
     if (objects.Length != 2)
     {
         throw new ArgumentException();
     }
     Execute(shipController, (TShip)objects[0], objects[1]);
 }
示例#3
0
 public override void Execute(TBaseShipController shipController, Object[] objects)
 {
     if (objects.Length != 1)
     {
         throw new ArgumentException();
     }
     Execute(shipController, (TCell)objects[0]);
 }
示例#4
0
        public override void Execute(TBaseShipController shipController, TCell cell)
        {
            if (!cell.IsAvailableRouteCell)
            {
                throw new ArgumentOutOfRangeException();
            }
            TShip ship = shipController.CurrentShip;

            shipController.SubShip(ship);
            ship.Current.Parameters -= cell.Bonus;
            shipController.AddShip(ship, cell);
        }
示例#5
0
 public override void Execute(TBaseShipController shipController, params object[] objects)
 {
     // TODO
     throw new NotImplementedException();
 }
示例#6
0
 public override void Execute(TBaseShipController shipController, TShip ship, object obj)
 {
     Execute(shipController, ship, (TDirection)obj);
 }
示例#7
0
 public abstract void Execute(TBaseShipController shipController, params Object[] objects);
示例#8
0
 public abstract void Execute(TBaseShipController shipController, TCell cell);
示例#9
0
 public abstract void Execute(TBaseShipController shipController, TShip ship, Object obj);