Пример #1
0
        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));
        }
Пример #2
0
        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);
        }