protected override bool PirateComes(Pirate pirate) { KillFoesFor(pirate); pirate.ApplyCommand(Pirate.Actions.Free); return(true); }
protected override bool PirateComes(Pirate pirate) { PirateWent(pirate); switch (cannonDirection) { case CannonDirection.East: ReachEastBorder(pirate); break; case CannonDirection.West: ReachWestBorder(pirate); break; case CannonDirection.North: ReachNorthBorder(pirate); break; case CannonDirection.South: ReachSouthBorder(pirate); break; } pirate.ApplyCommand(Pirate.Actions.Swim); var cells = Field.Cells(pirate.Position); Field.MovePirateTo(pirate, cells); return(false); }
protected override bool PirateComes(Pirate pirate) { // todo: validate condition if (ContainsBuddyFor(pirate)) { Pirates.ToList().ForEach(p => p.ApplyCommand(Pirate.Actions.Free)); pirate.ApplyCommand(Pirate.Actions.Free); return(true); } pirate.ApplyCommand(Pirate.Actions.Trap); KillFoesFor(pirate); return(true); }
public override bool PirateWent(Pirate pirate) { if (IsShipHere()) { GetShip().Pirates.Remove(pirate); pirate.ApplyCommand(Pirate.Actions.Free); } return(true); }
protected override bool PirateComes(Pirate pirate) { if (IsShipHere()) { pirate.ApplyCommand( GetShip().IsMotherShip(pirate) ? Pirate.Actions.Ship : Pirate.Actions.Kill ); } else { pirate.ApplyCommand(Pirate.Actions.Swim); pirate.LostGold(); KillFoesFor(pirate); } return(true); }
protected override bool PirateComes(Pirate pirate) { pirate.ApplyCommand(Pirate.Actions.Ship); return(false); }