private ACommand putMineProcess(PutMineCommand command, Battlefield.RobotAndBattlefield robotAndBattlefield) { BattlefieldRobot robot = robotAndBattlefield.ROBOT; MineLayer mineLayer = robot as MineLayer; if (mineLayer == null) { return(new ErrorCommand(robot.ROBOT_TYPE + " cannot use put mine command.")); } if (mineLayer.MinesNow < mineLayer.MineGun.MAX_MINES && mineLayer.HitPoints > 0) { int id = PutMineAnswerCommand.FALSE_MINE_ID + 1; while (mineLayer.MINES_BY_ID.ContainsKey(id)) { id++; } mineLayer.MINES_BY_ID.Add(id, new Mine(id, mineLayer.X, mineLayer.Y, mineLayer)); return(new PutMineAnswerCommand(true, id)); } else { return(new PutMineAnswerCommand(false, PutMineAnswerCommand.FALSE_MINE_ID)); } }
public override bool IsTransferable(ACommand c) { PutMineCommand command = c as PutMineCommand; if (command != null) { cache.Cached(command, new PutMineCommandV1_0()); return(true); } return(false); }