public override void execute() { JOIN_ROOM_RESULT result = (JOIN_ROOM_RESULT)(mResult.mValue); if (result == JOIN_ROOM_RESULT.JRR_SUCC) { UnityUtility.logInfo("加入房间成功, 房间ID:" + mRoomID); // 设置房间号和服务器中的位置 CharacterMyself myself = mCharacterManager.getMyself(); CharacterData data = myself.getCharacterData(); data.mRoomID = mRoomID.mValue; data.mServerPosition = (PLAYER_POSITION)mServerPosition.mValue; data.mBanker = mBanker.mValue; // 进入麻将场景 CommandGameSceneManagerEnter cmd = newCmd(out cmd); cmd.mSceneType = GAME_SCENE_TYPE.GST_MAHJONG; pushCommand(cmd, mGameSceneManager); // 进入麻将场景后,创建房间 MahjongScene mahjongScene = mGameSceneManager.getCurScene() as MahjongScene; Room room = mahjongScene.createRoom(myself.getCharacterData().mRoomID); // 将自己加入房间 CommandRoomJoin cmdJoin = newCmd(out cmdJoin); cmdJoin.mCharacter = myself; pushCommand(cmdJoin, room); } else { UnityUtility.logInfo("加入房间失败, 原因:" + result); } }
public override void execute() { // 通知房间保存胡牌结果 GameScene gameScene = mGameSceneManager.getCurScene(); if (gameScene.getType() != GAME_SCENE_TYPE.GST_MAHJONG) { return; } MahjongScene mahjongScene = gameScene as MahjongScene; Room room = mahjongScene.getRoom(); for (int i = 0; i < CommonDefine.MAX_PLAYER_COUNT - 1; ++i) { List <HU_TYPE> huList = new List <HU_TYPE>(); for (int j = 0; j < CommonDefine.MAX_HU_COUNT; ++i) { HU_TYPE huType = (HU_TYPE)mHuList.mValue[i * CommonDefine.MAX_HU_COUNT + j]; if (huType == HU_TYPE.HT_MAX) { break; } huList.Add(huType); } if (huList.Count > 0) { CommandRoomPlayerHu cmdHu = mCommandSystem.newCmd <CommandRoomPlayerHu>(); cmdHu.mHuList = huList; cmdHu.mPlayer = mCharacterManager.getCharacterByGUID(mHuPlayerGUID.mValue[i]); mCommandSystem.pushCommand(cmdHu, room); } } }
public override void execute() { GameScene gameScene = mGameSceneManager.getCurScene(); if (gameScene.getSceneType() != GAME_SCENE_TYPE.GST_MAHJONG) { return; } MahjongScene mahjongScene = gameScene as MahjongScene; // 跳转到等待流程 CommandGameSceneChangeProcedure cmdProcedure = newCmd(out cmdProcedure); cmdProcedure.mProcedure = PROCEDURE_TYPE.PT_MAHJONG_WAITING; pushCommand(cmdProcedure, mahjongScene); // 将自己加入房间 CharacterMyself myself = mCharacterManager.getMyself(); CommandRoomJoin cmdJoin = newCmd(out cmdJoin); cmdJoin.mCharacter = myself; pushCommand(cmdJoin, mahjongScene.getRoom()); CommandCharacterNotifyBanker cmdBanker = newCmd(out cmdBanker); cmdBanker.mBanker = mBanker.mValue; pushCommand(cmdBanker, myself); }
protected override void onExit(SceneProcedure nextProcedure) { LT.HIDE_LAYOUT(LAYOUT_TYPE.LT_GAME_ENDING); // 清空房间中所有玩家的麻将数据 MahjongScene mahjongScene = mGameScene as MahjongScene; mahjongScene.getRoom().clearAllPlayerMahjongData(); }
protected override void onInit(SceneProcedure lastProcedure, string intent) { // 游戏开始时取消所有玩家的准备标记 MahjongScene mahjongScene = mGameScene as MahjongScene; Room room = mahjongScene.getRoom(); Dictionary <int, Character> playerList = room.getPlayerList(); foreach (var item in playerList) { item.Value.getCharacterData().mReady = false; } }
public override void execute() { GameScene gameScene = mGameSceneManager.getCurScene(); if (gameScene.getSceneType() != GAME_SCENE_TYPE.GST_MAHJONG) { return; } MahjongScene mahjongScene = gameScene as MahjongScene; Room room = mahjongScene.getRoom(); CommandRoomMahjongPoolSize cmd = newCmd(out cmd); cmd.mCount = mCount.mValue; pushCommand(cmd, room); }
public override void execute() { Character player = mCharacterManager.getCharacterByGUID(mPlayerGUID.mValue); GameScene gameScene = mGameSceneManager.getCurScene(); if (gameScene.getType() != GAME_SCENE_TYPE.GST_MAHJONG) { return; } MahjongScene mahjongScene = gameScene as MahjongScene; CommandRoomLeave cmdLeave = mCommandSystem.newCmd <CommandRoomLeave>(); cmdLeave.mCharacter = player; mCommandSystem.pushCommand(cmdLeave, mahjongScene.getRoom()); }
public override void execute() { GameScene gameScene = mGameSceneManager.getCurScene(); if (!gameScene.atProcedure(PROCEDURE_TYPE.PT_MAHJONG_WAITING)) { return; } MahjongScene mahjongScene = gameScene as MahjongScene; Room room = mahjongScene.getRoom(); CommandRoomLeave cmdLeave = newCmd(out cmdLeave); cmdLeave.mCharacter = mCharacterManager.getCharacter(mOtherPlayerGUID.mValue); pushCommand(cmdLeave, room); }
protected override void onInit(SceneProcedure lastProcedure, string intent) { // 显示布局 LayoutTools.SHOW_LAYOUT(LAYOUT_TYPE.LT_ALL_CHARACTER_INFO); LayoutTools.SHOW_LAYOUT(LAYOUT_TYPE.LT_MAHJONG_BACK_FRAME); LayoutTools.SHOW_LAYOUT(LAYOUT_TYPE.LT_MAHJONG_FRAME); // 通知房间开始等待玩家加入 MahjongScene mahjongScene = mGameScene as MahjongScene; mahjongScene.getRoom().notifyStartWait(); // 设置显示房间号 CharacterMyself myself = mCharacterManager.getMyself(); mScriptMahjongFrame.setRoomID(myself.getCharacterData().mRoomID); mScriptMahjongFrame.notifyInfo("正在等待其他玩家准备"); }
public override void execute() { GameScene gameScene = mGameSceneManager.getCurScene(); if (gameScene.getSceneType() != GAME_SCENE_TYPE.GST_MAHJONG) { return; } MahjongScene mahjongScene = gameScene as MahjongScene; // 销毁房间中的所有其他玩家和房间 Room room = mahjongScene.getRoom(); room.leaveAllRoomPlayer(); // 进入到上一个场景 CommandGameSceneManagerEnter cmdEnter = newCmd(out cmdEnter); cmdEnter.mSceneType = GAME_SCENE_TYPE.GST_MAIN; pushCommand(cmdEnter, mGameSceneManager); }
public override void execute() { GameScene gameScene = mGameSceneManager.getCurScene(); if (!gameScene.atProcedure(PROCEDURE_TYPE.PT_MAHJONG_WAITING)) { return; } MahjongScene mahjongScene = gameScene as MahjongScene; Room room = mahjongScene.getRoom(); Character player = mCharacterManager.getCharacter(mOtherPlayerGUID.mValue); CommandRoomJoin cmdJoin = mCommandSystem.newCmd <CommandRoomJoin>(); cmdJoin.mCharacter = player; mCommandSystem.pushCommand(cmdJoin, room); CommandCharacterNotifyBanker cmdBanker = mCommandSystem.newCmd <CommandCharacterNotifyBanker>(); cmdBanker.mBanker = mBanker.mValue; mCommandSystem.pushCommand(cmdBanker, player); }
public override void execute() { GameScene gameScene = mGameSceneManager.getCurScene(); if (gameScene.getSceneType() != GAME_SCENE_TYPE.GST_MAHJONG) { return; } MahjongScene mahjongScene = gameScene as MahjongScene; Room room = mahjongScene.getRoom(); Dictionary <Character, int> moneyDeltaList = new Dictionary <Character, int>(); for (int i = 0; i < GameDefine.MAX_PLAYER_COUNT; ++i) { moneyDeltaList.Add(mCharacterManager.getCharacter(mCharacterGUIDList.mValue[i]), mMoneyDeltaList.mValue[i]); } CommandRoomEnd cmdEnd = newCmd(out cmdEnd); cmdEnd.mMoneyDeltaList = moneyDeltaList; pushCommand(cmdEnd, room); }