public async Task <JObject> ExecuteDebugCommand(int id, [FromQuery(Name = "userId")] long accountId, [FromQuery(Name = "pass")] string passToken) { AccountDocument accountDocument = await UserManager.GetAccount(accountId); if (accountDocument == null) { return(this.BuildResponse(HttpStatusCode.InternalServerError)); } if (this.GetUserRole() <= UserRole.NULL && passToken != accountDocument.PassToken) { return(this.BuildResponse(HttpStatusCode.Forbidden)); } RedisValue currentSession = await ServerAdmin.SessionDatabase.Get(accountDocument.Id); if (currentSession.IsNull) { return(this.BuildResponse(HttpStatusCode.Forbidden).AddAttribute("reason", "No client connected.")); } LogicDebugCommand logicDebugCommand = null; switch ((DebugCommandType)id) { case DebugCommandType.FAST_FORWARD_1_HOUR: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.FAST_FORWARD_1_HOUR); break; case DebugCommandType.FAST_FORWARD_24_HOUR: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.FAST_FORWARD_24_HOUR); break; case DebugCommandType.ADD_UNITS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.ADD_UNITS); break; case DebugCommandType.ADD_RESOURCES: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.ADD_RESOURCES); break; case DebugCommandType.INCREASE_XP_LEVEL: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.INCREASE_XP_LEVEL); break; case DebugCommandType.UPGRADE_ALL_BUILDINGS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.UPGRADE_ALL_BUILDINGS); break; case DebugCommandType.COMPLETE_TUTORIAL: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.COMPLETE_TUTORIAL); break; case DebugCommandType.UNLOCK_MAP: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.UNLOCK_MAP); break; case DebugCommandType.SHIELD_TO_HALF: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.SHIELD_TO_HALF); break; case DebugCommandType.FAST_FORWARD_1_MIN: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.FAST_FORWARD_1_MIN); break; case DebugCommandType.INCREASE_TROPHIES: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.INCREASE_TROPHIES); break; case DebugCommandType.DECREASE_TROPHIES: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.DECREASE_TROPHIES); break; case DebugCommandType.ADD_ALLIANCE_UNITS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.ADD_ALLIANCE_UNITS); break; case DebugCommandType.INCREASE_HERO_LEVELS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.INCREASE_HERO_LEVELS); break; case DebugCommandType.REMOVE_RESOURCES: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.REMOVE_RESOURCES); break; case DebugCommandType.RESET_MAP_PROGRESS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.RESET_MAP_PROGRESS); break; case DebugCommandType.DEPLOY_ALL_TROOPS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.DEPLOY_ALL_TROOPS); break; case DebugCommandType.ADD_100_TROPHIES: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.ADD_100_TROPHIES); break; case DebugCommandType.REMOVE_100_TROPHIES: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.REMOVE_100_TROPHIES); break; case DebugCommandType.UPGRADE_TO_MAX_FOR_TH: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.UPGRADE_TO_MAX_FOR_TH); break; case DebugCommandType.REMOVE_UNITS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.REMOVE_UNITS); break; case DebugCommandType.DISARM_TRAPS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.DISARM_TRAPS); break; case DebugCommandType.REMOVE_OBSTACLES: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.REMOVE_OBSTACLES); break; case DebugCommandType.RESET_HERO_LEVELS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.RESET_HERO_LEVELS); break; case DebugCommandType.COLLECT_WAR_RESOURCES: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.COLLECT_WAR_RESOURCES); break; case DebugCommandType.SET_RANDOM_TROPHIES: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.SET_RANDOM_TROPHIES); break; case DebugCommandType.COMPLETE_WAR_TUTORIAL: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.COMPLETE_WAR_TUTORIAL); break; case DebugCommandType.ADD_WAR_RESOURCES: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.ADD_WAR_RESOURCES); break; case DebugCommandType.REMOVE_WAR_RESOURCES: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.REMOVE_WAR_RESOURCES); break; case DebugCommandType.RESET_WAR_TUTORIAL: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.RESET_WAR_TUTORIAL); break; case DebugCommandType.ADD_UNIT: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.ADD_UNIT); break; case DebugCommandType.SET_MAX_UNIT_SPELL_LEVELS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.SET_MAX_UNIT_SPELL_LEVELS); break; case DebugCommandType.REMOVE_ALL_AMMO: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.REMOVE_ALL_AMMO); break; case DebugCommandType.RESET_ALL_LAYOUTS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.RESET_ALL_LAYOUTS); break; case DebugCommandType.LOCK_CLAN_CASTLE: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.LOCK_CLAN_CASTLE); break; case DebugCommandType.RANDOM_RESOURCES_TROPHY_XP: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.RANDOM_RESOURCES_TROPHY_XP); break; case DebugCommandType.LOAD_LEVEL: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.LOAD_LEVEL); logicDebugCommand.SetDebugString(UserManager.GetPresetLevel()); break; case DebugCommandType.UPGRADE_BUILDING: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.UPGRADE_BUILDING); break; case DebugCommandType.UPGRADE_BUILDINGS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.UPGRADE_BUILDINGS); break; case DebugCommandType.ADD_1000_CLAN_XP: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.ADD_1000_CLAN_XP); break; case DebugCommandType.RESET_ALL_TUTORIALS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.RESET_ALL_TUTORIALS); break; case DebugCommandType.ADD_1000_TROPHIES: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.ADD_1000_TROPHIES); break; case DebugCommandType.REMOVE_1000_TROPHIES: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.REMOVE_1000_TROPHIES); break; case DebugCommandType.CAUSE_DAMAGE: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.CAUSE_DAMAGE); break; case DebugCommandType.SET_MAX_HERO_LEVELS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.SET_MAX_HERO_LEVELS); break; case DebugCommandType.ADD_PRESET_TROOPS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.ADD_PRESET_TROOPS); break; case DebugCommandType.TOGGLE_INVULNERABILITY: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.TOGGLE_INVULNERABILITY); break; case DebugCommandType.ADD_GEMS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.ADD_GEMS); break; case DebugCommandType.PAUSE_ALL_BOOSTS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.PAUSE_ALL_BOOSTS); break; case DebugCommandType.TRAVEL: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.TRAVEL); break; case DebugCommandType.TOGGLE_RED: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.TOGGLE_RED); break; case DebugCommandType.COMPLETE_HOME_TUTORIALS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.COMPLETE_HOME_TUTORIALS); break; case DebugCommandType.UNLOCK_SHIPYARD: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.UNLOCK_SHIPYARD); break; case DebugCommandType.GIVE_REENGAGEMENT_LOOT_FOR_30_DAYS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.GIVE_REENGAGEMENT_LOOT_FOR_30_DAYS); break; case DebugCommandType.ADD_FREE_UNITS: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.ADD_FREE_UNITS); break; case DebugCommandType.RANDOM_ALLIANCE_EXP_LEVEL: logicDebugCommand = new LogicDebugCommand(LogicDebugActionType.RANDOM_ALLIANCE_EXP_LEVEL); break; } if (logicDebugCommand == null) { return(this.BuildResponse(HttpStatusCode.InternalServerError)); } long sessionId = long.Parse(currentSession); AvailableServerCommandMessage availableServerCommandMessage = new AvailableServerCommandMessage(); availableServerCommandMessage.SetServerCommand(logicDebugCommand); availableServerCommandMessage.Encode(); ServerMessageManager.SendMessage(new ForwardLogicMessage { MessageType = availableServerCommandMessage.GetMessageType(), MessageLength = availableServerCommandMessage.GetEncodingLength(), MessageVersion = (short)availableServerCommandMessage.GetMessageVersion(), MessageBytes = availableServerCommandMessage.GetByteStream().GetByteArray(), SessionId = sessionId }, ServerManager.GetProxySocket(sessionId)); return(this.BuildResponse(HttpStatusCode.OK)); }
public static LogicCommand CreateCommand(LogicCommandType type) { LogicCommand command = null; if ((int)type < 500) { switch (type) { case LogicCommandType.JOIN_ALLIANCE: command = new LogicJoinAllianceCommand(); break; case LogicCommandType.LEAVE_ALLIANCE: command = new LogicLeaveAllianceCommand(); break; case LogicCommandType.CHANGE_AVATAR_NAME: command = new LogicChangeAvatarNameCommand(); break; case LogicCommandType.DONATE_ALLIANCE_UNIT: command = new LogicDonateAllianceUnitCommand(); break; case LogicCommandType.ALLIANCE_UNIT_RECEIVED: command = new LogicAllianceUnitReceivedCommand(); break; case LogicCommandType.ALLIANCE_SETTINGS_CHANGED: command = new LogicAllianceSettingsChangedCommand(); break; case LogicCommandType.DIAMONDS_ADDED: command = new LogicDiamondsAddedCommand(); break; case LogicCommandType.CHANGE_ALLIANCE_ROLE: command = new LogicChangeAllianceRoleCommand(); break; case LogicCommandType.TREASURY_WAR_REWARD: command = new LogicTreasuryWarRewardCommand(); break; case LogicCommandType.DONATE_WAR_UNIT: command = new LogicDonateWarUnitCommand(); break; case LogicCommandType.CHANGE_LEAGUE: command = new LogicChangeLeagueCommand(); break; case LogicCommandType.SHUFFLE_LEAGUE: command = new LogicShuffleLeagueCommand(); break; case LogicCommandType.UPDATE_WAR_PREFERENCE: command = new LogicUpdateWarPreferenceCommand(); break; case LogicCommandType.ALLIANCE_EXP_EARNED: command = new LogicAllianceExpEarnedCommand(); break; case LogicCommandType.CHANGE_NAME_CHANGE_STATE: command = new LogicChangeNameChangeStateCommand(); break; case LogicCommandType.LEGEND_SEASON_SCORE: command = new LogicLegendSeasonScoreCommand(); break; case LogicCommandType.TRANSACTIONS_REVOKED: command = new LogicTransactionsRevokedCommand(); break; case LogicCommandType.CHANGE_CHALLENGE_STATE: command = new LogicChangeChallengeStateCommand(); break; case LogicCommandType.SAVE_USED_ARMY: command = new LogicSaveUsedArmyCommand(); break; case LogicCommandType.CONTINUE_OFFER: command = new LogicContinueOfferCommand(); break; case LogicCommandType.UPDATE_OFFER_STATE: command = new LogicUpdateOfferStateCommand(); break; case LogicCommandType.DELIVERING_OFFER: command = new LogicDeliveringOfferCommand(); break; case LogicCommandType.DUEL_RESULT: command = new LogicDuelResultCommand(); break; case LogicCommandType.DUEL_RESOURCE_REWARD: command = new LogicDuelResourceRewardCommand(); break; case LogicCommandType.STARTING_HOME_VILLAGE2: command = new LogicStartingHomeVillage2Command(); break; default: { Debugger.Warning("LogicCommandManager::createCommand() - Unknown command type: " + type); break; } } } else { switch (type) { case LogicCommandType.BUY_BUILDING: command = new LogicBuyBuildingCommand(); break; case LogicCommandType.MOVE_BUILDING: command = new LogicMoveBuildingCommand(); break; case LogicCommandType.UPGRADE_BUILDING: command = new LogicUpgradeBuildingCommand(); break; case LogicCommandType.SELL_BUILDING: command = new LogicSellBuildingCommand(); break; case LogicCommandType.SPEED_UP_CONSTRUCTION: command = new LogicSpeedUpConstructionCommand(); break; case LogicCommandType.CANCEL_CONSTRUCTION: command = new LogicCancelConstructionCommand(); break; case LogicCommandType.COLLECT_RESOURCES: command = new LogicCollectResourcesCommand(); break; case LogicCommandType.CLEAR_OBSTACLE: command = new LogicClearObstacleCommand(); break; case LogicCommandType.TRAIN_UNIT: command = new LogicTrainUnitCommand(); break; case LogicCommandType.CANCEL_UNIT_PRODUCTION: command = new LogicCancelUnitProductionCommand(); break; case LogicCommandType.BUY_TRAP: command = new LogicBuyTrapCommand(); break; case LogicCommandType.REQUEST_ALLIANCE_UNITS: command = new LogicRequestAllianceUnitsCommand(); break; case LogicCommandType.BUY_DECO: command = new LogicBuyDecoCommand(); break; case LogicCommandType.SPEED_UP_TRAINING: command = new LogicSpeedUpTrainingCommand(); break; case LogicCommandType.SPEED_UP_CLEARING: command = new LogicSpeedUpClearingCommand(); break; case LogicCommandType.CANCEL_UPGRADE_UNIT: command = new LogicCancelUpgradeUnitCommand(); break; case LogicCommandType.UPGRADE_UNIT: command = new LogicUpgradeUnitCommand(); break; case LogicCommandType.SPEED_UP_UPGRADE_UNIT: command = new LogicSpeedUpUpgradeUnitCommand(); break; case LogicCommandType.BUY_RESOURCES: command = new LogicBuyResourcesCommand(); break; case LogicCommandType.MISSION_PROGRESS: command = new LogicMissionProgressCommand(); break; case LogicCommandType.UNLOCK_BUILDING: command = new LogicUnlockBuildingCommand(); break; case LogicCommandType.FREE_WORKER: command = new LogicFreeWorkerCommand(); break; case LogicCommandType.BUY_SHIELD: command = new LogicBuyShieldCommand(); break; case LogicCommandType.CLAIM_ACHIEVEMENT_REWARD: command = new LogicClaimAchievementRewardCommand(); break; case LogicCommandType.TOGGLE_ATTACK_MODE: command = new LogicToggleAttackModeCommand(); break; case LogicCommandType.LOAD_TURRET: command = new LogicLoadTurretCommand(); break; case LogicCommandType.BOOST_BUILDING: command = new LogicBoostBuildingCommand(); break; case LogicCommandType.UPGRADE_HERO: command = new LogicUpgradeHeroCommand(); break; case LogicCommandType.SPEED_UP_HERO_UPGRADE: command = new LogicSpeedUpHeroUpgradeCommand(); break; case LogicCommandType.TOGGLE_HERO_SLEEP: command = new LogicToggleHeroSleepCommand(); break; case LogicCommandType.SPEED_UP_HERO_HEALTH: command = new LogicSpeedUpHeroHealthCommand(); break; case LogicCommandType.CANCEL_HERO_UPGRADE: command = new LogicCancelHeroUpgradeCommand(); break; case LogicCommandType.NEW_SHOP_ITEMS_SEEN: command = new LogicNewShopItemsSeenCommand(); break; case LogicCommandType.MOVE_MULTIPLE_BUILDING: command = new LogicMoveMultipleBuildingsCommand(); break; case LogicCommandType.BREAK_SHIELD: command = new LogicBreakShieldCommand(); break; case LogicCommandType.SEND_ALLIANCE_MAIL: command = new LogicSendAllianceMailCommand(); break; case LogicCommandType.LEAGUE_NOTIFICATION_SEEN: command = new LogicLeagueNotificationSeenCommand(); break; case LogicCommandType.NEWS_SEEN: command = new LogicNewsSeenCommand(); break; case LogicCommandType.TROOP_REQUEST_MESSAGE: command = new LogicTroopRequestMessageCommand(); break; case LogicCommandType.SPEED_UP_TROOP_REQUEST: command = new LogicSpeedUpTroopRequestCommand(); break; case LogicCommandType.SHARE_REPLAY: command = new LogicShareReplayCommand(); break; case LogicCommandType.ELDER_KICK: command = new LogicElderKickCommand(); break; case LogicCommandType.EDIT_MODE_SHOWN: command = new LogicEditModeShownCommand(); break; case LogicCommandType.REPAIR_TRAPS: command = new LogicRepairTrapsCommand(); break; case LogicCommandType.MOVE_BUILDING_EDIT_MODE: command = new LogicMoveBuildingEditModeCommand(); break; case LogicCommandType.SAVE_BASE_LAYOUT: command = new LogicSaveBaseLayoutCommand(); break; case LogicCommandType.UPGRADE_MULTIPLE_BUILDINGS: command = new LogicUpgradeMultipleBuildingsCommand(); break; case LogicCommandType.REMOVE_UNITS: command = new LogicRemoveUnitsCommand(); break; case LogicCommandType.RESUME_BOOST_TRAINING: command = new LogicResumeBoostTrainingCommand(); break; case LogicCommandType.SET_LAYOUT_STATE: command = new LogicSetLayoutStateCommand(); break; case LogicCommandType.SET_LAST_ALLIANCE_LEVEL: command = new LogicSetLastAllianceLevelCommand(); break; case LogicCommandType.ROTATE_BUILDING: command = new LogicRotateBuildingCommand(); break; case LogicCommandType.MOVE_ALL_BUILDINGS_EDIT_MODE: command = new LogicMoveAllBuildingsEditModeCommand(); break; case LogicCommandType.SAVE_UNIT_PRESET: command = new LogicSaveUnitPresetCommand(); break; case LogicCommandType.LOAD_UNIT_PRESET: command = new LogicLoadUnitPresetCommand(); break; case LogicCommandType.START_ALLIANCE_WAR: command = new LogicStartAllianceWarCommand(); break; case LogicCommandType.CANCEL_ALLIANCE_WAR: command = new LogicCancelAllianceWarCommand(); break; case LogicCommandType.TRANSFER_WAR_RESOURCES: command = new LogicTransferWarResourcesCommand(); break; case LogicCommandType.WAR_TROOP_REQUEST_MESSAGE: command = new LogicWarTroopRequestMessageCommand(); break; case LogicCommandType.HELP_OPENED: command = new LogicHelpOpenedCommand(); break; case LogicCommandType.CHANGE_LAYOUT: command = new LogicSwitchLayoutCommand(); break; case LogicCommandType.COPY_LAYOUT: command = new LogicCopyLayoutCommand(); break; case LogicCommandType.SET_PERSISTENT_BOOL: command = new LogicSetPersistentBoolCommand(); break; case LogicCommandType.CHANGE_WAR_PREFERENCE: command = new LogicChangeWarPreferenceCommand(); break; case LogicCommandType.CHANGE_ALLIANCE_CHAT_FILTER: command = new LogicChangeAllianceChatFilterCommand(); break; case LogicCommandType.CHANGE_HERO_MODE: command = new LogicChangeHeroModeCommand(); break; case LogicCommandType.POPUP_SEEN: command = new LogicPopupSeenCommand(); break; case LogicCommandType.FRIENDLY_BATTLE_REQUEST: command = new LogicFriendlyBattleRequestCommand(); break; case LogicCommandType.DRAG_UNIT_PRODUCTION: command = new LogicDragUnitProductionCommand(); break; case LogicCommandType.SWAP_BUILDING: command = new LogicSwapBuildingCommand(); break; case LogicCommandType.FRIEND_LIST_OPENED: command = new LogicFriendListOpenedCommand(); break; case LogicCommandType.SEND_ARRANGED_WAR_REQUEST: command = new LogicSendArrangedWarRequestCommand(); break; case LogicCommandType.BOOST_TRAINING: command = new LogicBoostTrainingCommand(); break; case LogicCommandType.LOCK_UNIT_PRODUCTION: command = new LogicLockUnitProductionCommand(); break; case LogicCommandType.CHANGE_ARMY_NAME: command = new LogicChangeArmyNameCommand(); break; case LogicCommandType.PLACE_UNPLACED_OBJECT: command = new LogicPlaceUnplacedObjectCommand(); break; case LogicCommandType.BUY_WALL_BLOCK: command = new LogicBuyWallBlockCommand(); break; case LogicCommandType.SET_CURRENT_VILLAGE: command = new LogicSetCurrentVillageCommand(); break; case LogicCommandType.TRAIN_UNIT_VILLAGE2: command = new LogicTrainUnitVillage2Command(); break; case LogicCommandType.SPEED_UP_TRAINING_VILLAGE2: command = new LogicSpeedUpTrainingVillage2Command(); break; case LogicCommandType.SPEED_UP_BOOST_COOLDOWN: command = new LogicSpeedUpBoostCooldownCommand(); break; case LogicCommandType.CANCEL_UNIT_PRODUCTION_VILLAGE_2: command = new LogicCancelUnitProductionVillage2Command(); break; case LogicCommandType.EVENT_SEEN: command = new LogicEventSeenCommand(); break; case LogicCommandType.MOVE_MULTIPLE_BUILDINGS_EDIT_MODE: command = new LogicMoveMultipleBuildingsEditModeCommand(); break; case LogicCommandType.SWAP_BUILDING_EDIT_MODE: command = new LogicSwapBuildingEditModeCommand(); break; case LogicCommandType.GEAR_UP_BUILDING: command = new LogicGearUpBuildingCommand(); break; case LogicCommandType.MATCHMAKE_VILLAGE2: command = new LogicMatchmakeVillage2Command(); break; case LogicCommandType.SPEED_UP_LOOT_LIMIT: command = new LogicSpeedUpLootLimitCommand(); break; case LogicCommandType.ACCOUNT_BOUND: command = new LogicAccountBoundCommand(); break; case LogicCommandType.SEEN_BUILDER_MENU: command = new LogicSeenBuilderMenuCommand(); break; case LogicCommandType.CHALLENGE_FRIEND_CANCEL: command = new LogicChallengeFriendCancelCommand(); break; case LogicCommandType.PLACE_ATTACKER: command = new LogicPlaceAttackerCommand(); break; case LogicCommandType.PLACE_ALLIANCE_PORTAL: command = new LogicPlaceAlliancePortalCommand(); break; case LogicCommandType.END_ATTACK_PREPARATION: command = new LogicEndAttackPreparationCommand(); break; case LogicCommandType.END_COMBAT: command = new LogicEndCombatCommand(); break; case LogicCommandType.CAST_SPELL: command = new LogicCastSpellCommand(); break; case LogicCommandType.PLACE_HERO: command = new LogicPlaceHeroCommand(); break; case LogicCommandType.TRIGGER_HERO_ABILITY: command = new LogicTriggerHeroAbilityCommand(); break; case LogicCommandType.TRIGGER_COMPONENT_TRIGGERED: command = new LogicTriggerComponentTriggeredCommand(); break; case LogicCommandType.TRIGGER_TESLA: command = new LogicTriggerTeslaCommand(); break; case LogicCommandType.CHANGE_UNIT_VILLAGE_2: command = new LogicChangeUnitVillage2Command(); break; case LogicCommandType.MATCHMAKING: command = new LogicMatchmakingCommand(); break; case LogicCommandType.DEBUG: command = new LogicDebugCommand(); break; default: Debugger.Warning("LogicCommandManager::createCommand() - Unknown command type: " + type); break; } } return(command); }