public void Execute() { // Kimboko aCombinar // Kimboko combinador // TENEMOS QUE ELIMINAR LA UNIDAD ACTUAL DE LA LISTA DE UNIDADES DEL PLAYER spawnInfo.spawnerPlayer.RemoveUnit(combiner); // DEBERIAMOS DESOCUPAR LA TILE DONDE ESTA EL KIMBOKO ACTUAL YA QUE VA A PASAR A SER UNO NUEVO spawnInfo.spawnTile.Vacate(); // DEBERIAMOS DESOCUPAR EL BOARD MANAGER ACTUAL game.board2DManager.RemoveOccupierPosition(combiner); // Kimboko combinado // CREAMOS EL KIMBOKO COMBINADO CON SUS NUEVOS STATS CombineAbilityEventInfo cmbInfo = new CombineAbilityEventInfo(combiner, spawnedKimboko, spawnInfo.spawnerPlayer, spawnInfo.spawnIndexID); finalCombinedKimboko = GetCombinedKimboko(cmbInfo); // DEBEMOS OCUPAR LA TILE CON LA NUEVA UNIDAD COMBINADA spawnInfo.spawnTile.OcupyTile(finalCombinedKimboko); // DEBEMOS AGREGARLE AL PLAYER EL NUEVO KIMBOKO COMBINADO spawnInfo.spawnerPlayer.AddUnit(finalCombinedKimboko); // DEBEMOS AGREGARLE AL BOARD MANAGER LA NUEVA UNIDAD COMBINADA PositionerDemo.Position pos = new PositionerDemo.Position(spawnInfo.spawnTile.position.posX, spawnInfo.spawnTile.position.posY); game.board2DManager.AddModifyOccupierPosition(finalCombinedKimboko, pos); finalCombinedKimboko.SetPosition(pos); executionState = COMMANDEXECUTINSTATE.FINISH; }
private Kimboko GetCombinedKimboko(CombineAbilityEventInfo cmbInfo) { List <Kimboko> kimbokosTocombine = new List <Kimboko>(); kimbokosTocombine.Add(cmbInfo.combiner); kimbokosTocombine.Add(cmbInfo.kimbokoToCombine); Kimboko kimboko = null; KimbokoCombineFactory kimbokoCombFac = new KimbokoCombineFactory(kimbokosTocombine); kimboko = kimbokoCombFac.CreateKimboko(cmbInfo.IndexID, cmbInfo.player); return(kimboko); }
public ICombineCommand(CombineAbilityEventInfo combInfo, IGame game) { logInsert = true; this.combInfo = combInfo; this.game = game; }