public AIGameState GetSuccessor(AIRawSlimeAction action) { AIGameState succ = GetCopy(); int actionSlimeId = action.GetMainSlimeId(); // Aplicamos la accion al sucesor. switch (action.GetAction()) { case ActionType.ATTACK: succ.Attack(actionSlimeId, action.GetTargetSlimeId()); break; case ActionType.CONQUER: succ.Conquer(actionSlimeId, action.GetTileVector()); break; case ActionType.SPLIT: succ.Split(actionSlimeId, action.GetTileVector()); break; case ActionType.MOVE: succ.Move(actionSlimeId, action.GetTileVector()); break; case ActionType.FUSION: succ.Fusion(actionSlimeId, action.GetTargetSlimeId()); break; case ActionType.EAT: succ.Eat(actionSlimeId); break; } succ.UpdatePlayers(); return(succ); }