// ============================================================================ // 02_SubGame_Input.js —— 平台输入/回调接口「转发壳」(框架维护,子游戏不碰) // 平台按全局名调用 gameHallImport.* / Game_Modify.*;本文件统一转发到 SubGameHooks 同名 hook。 // 子游戏只需在 codes/ 的 SubGameHooks 里实现需要的接口(见 codes/SubGameHooks.js)。 // 严格 ES5。接口清单与默认值依据 spec §9。 // ============================================================================ var gameHallImport = gameHallImport || {}; var Game_Modify = Game_Modify || {}; // ============================================================================ // gameHallImport.* — 大厅接口(9 个) // ============================================================================ // A 类:纯子游戏行为,无 hook 即 no-op // 注:与 Game_Modify.appStart 同名但语义不同(大厅启动 vs 游戏启动),故 hook 名加 hall 前缀区分 gameHallImport.appStart = function () { if (window.SubGameHooks && SubGameHooks.hallAppStart) return SubGameHooks.hallAppStart(); }; // A 类:纯子游戏行为,无 hook 即 no-op gameHallImport.jumpMenuScene = function () { if (window.SubGameHooks && SubGameHooks.jumpMenuScene) return SubGameHooks.jumpMenuScene(); }; // A 类:纯子游戏行为,无 hook 即 no-op gameHallImport.gameStart = function () { if (window.SubGameHooks && SubGameHooks.gameStart) return SubGameHooks.gameStart(); }; // A 类:纯子游戏行为,无 hook 即 no-op gameHallImport.setGameList = function () { if (window.SubGameHooks && SubGameHooks.setGameList) return SubGameHooks.setGameList(); }; // A 类:纯子游戏行为,无 hook 即 no-op gameHallImport.clearGameinfo = function () { if (window.SubGameHooks && SubGameHooks.clearGameinfo) return SubGameHooks.clearGameinfo(); }; // A 类:纯子游戏行为,无 hook 即 no-op gameHallImport.getWebdata = function (data) { if (window.SubGameHooks && SubGameHooks.getWebdata) return SubGameHooks.getWebdata(data); }; // B 类:有平台默认返回值,无 hook 即返回默认 gameHallImport.isInstalled = function (data) { if (window.SubGameHooks && SubGameHooks.isInstalled) return SubGameHooks.isInstalled(data); return 1; }; // A 类:纯子游戏行为,无 hook 即 no-op gameHallImport.up_imgurl = function (recid, photo) { if (window.SubGameHooks && SubGameHooks.up_imgurl) return SubGameHooks.up_imgurl(recid, photo); }; // A 类:纯子游戏行为,无 hook 即 no-op gameHallImport.getphoto = function (recid, photo) { if (window.SubGameHooks && SubGameHooks.getphoto) return SubGameHooks.getphoto(recid, photo); }; // ============================================================================ // Game_Modify.* — 生命周期/回调接口(来自 02,45 个) // ============================================================================ // A 类:纯子游戏行为,无 hook 即 no-op Game_Modify.appStart = function () { if (window.SubGameHooks && SubGameHooks.appStart) return SubGameHooks.appStart(); }; // A 类:开战回调,无 hook 即 no-op Game_Modify.StartWar = function (_msg) { if (window.SubGameHooks && SubGameHooks.StartWar) return SubGameHooks.StartWar(_msg); }; // A 类:接收数据包,无 hook 即 no-op Game_Modify._ReceiveData = function (_msg) { if (window.SubGameHooks && SubGameHooks._ReceiveData) return SubGameHooks._ReceiveData(_msg); }; // A 类:创建房间,无 hook 即 no-op Game_Modify.createRoom = function (_roomtype, _infinite) { if (window.SubGameHooks && SubGameHooks.createRoom) return SubGameHooks.createRoom(_roomtype, _infinite); }; // A 类:自己进入房间,无 hook 即 no-op Game_Modify.myJoinRoom = function (_msg) { if (window.SubGameHooks && SubGameHooks.myJoinRoom) return SubGameHooks.myJoinRoom(_msg); }; // A 类:重连,无 hook 即 no-op Game_Modify.Reconnect = function (_deskinfo) { if (window.SubGameHooks && SubGameHooks.Reconnect) return SubGameHooks.Reconnect(_deskinfo); }; // A 类:关闭所有声音,无 hook 即 no-op Game_Modify.stopAllSounds = function () { if (window.SubGameHooks && SubGameHooks.stopAllSounds) return SubGameHooks.stopAllSounds(); }; // A 类:投票解散确认,无 hook 即 no-op Game_Modify.Free = function (_msg) { if (window.SubGameHooks && SubGameHooks.Free) return SubGameHooks.Free(_msg); }; // A 类:未开战状态加入牌桌数据,无 hook 即 no-op Game_Modify.DeskInfo = function (_msg) { if (window.SubGameHooks && SubGameHooks.DeskInfo) return SubGameHooks.DeskInfo(_msg); }; // A 类:开局后自己退出房间,无 hook 即 no-op Game_Modify.breakRoom = function () { if (window.SubGameHooks && SubGameHooks.breakRoom) return SubGameHooks.breakRoom(); }; // A 类:其他玩家加入房间,无 hook 即 no-op Game_Modify.playerJoinRoom = function (seat) { if (window.SubGameHooks && SubGameHooks.playerJoinRoom) return SubGameHooks.playerJoinRoom(seat); }; // A 类:其他玩家离开房间,无 hook 即 no-op Game_Modify.playerLeaveRoom = function (seat) { if (window.SubGameHooks && SubGameHooks.playerLeaveRoom) return SubGameHooks.playerLeaveRoom(seat); }; // A 类:更新游戏界面,无 hook 即 no-op Game_Modify.updateScene = function () { if (window.SubGameHooks && SubGameHooks.updateScene) return SubGameHooks.updateScene(); }; // A 类:关闭游戏界面,无 hook 即 no-op Game_Modify.closeGameScene = function () { if (window.SubGameHooks && SubGameHooks.closeGameScene) return SubGameHooks.closeGameScene(); }; // A 类:玩家离线,无 hook 即 no-op Game_Modify.playerOffline = function (seat) { if (window.SubGameHooks && SubGameHooks.playerOffline) return SubGameHooks.playerOffline(seat); }; // A 类:玩家上线,无 hook 即 no-op Game_Modify.playerOnline = function (seat) { if (window.SubGameHooks && SubGameHooks.playerOnline) return SubGameHooks.playerOnline(seat); }; // A 类:玩家电话状态,无 hook 即 no-op Game_Modify.playerphonestate = function (seat, type) { if (window.SubGameHooks && SubGameHooks.playerphonestate) return SubGameHooks.playerphonestate(seat, type); }; // A 类:摇一摇事件,无 hook 即 no-op Game_Modify.shakeEvent = function () { if (window.SubGameHooks && SubGameHooks.shakeEvent) return SubGameHooks.shakeEvent(); }; // A 类:计算结果,无 hook 即 no-op Game_Modify.calResult = function (inputArr) { if (window.SubGameHooks && SubGameHooks.calResult) return SubGameHooks.calResult(inputArr); }; // A 类:进入游戏主场景,无 hook 即 no-op Game_Modify.onEnterMainScene = function (roomtype) { if (window.SubGameHooks && SubGameHooks.onEnterMainScene) return SubGameHooks.onEnterMainScene(roomtype); }; // A 类:退出游戏主场景,无 hook 即 no-op Game_Modify.onExitMainScene = function () { if (window.SubGameHooks && SubGameHooks.onExitMainScene) return SubGameHooks.onExitMainScene(); }; // A 类:获取游戏配置时调用,无 hook 即 no-op Game_Modify.onGameConfig = function (_gameConfig) { if (window.SubGameHooks && SubGameHooks.onGameConfig) return SubGameHooks.onGameConfig(_gameConfig); }; // A 类:进入牌局回放,无 hook 即 no-op Game_Modify.onEnterVideo = function () { if (window.SubGameHooks && SubGameHooks.onEnterVideo) return SubGameHooks.onEnterVideo(); }; // A 类:收到投降回包,无 hook 即 no-op Game_Modify.onSurrender = function (_msg) { if (window.SubGameHooks && SubGameHooks.onSurrender) return SubGameHooks.onSurrender(_msg); }; // A 类:玩家准备触发,无 hook 即 no-op Game_Modify.onReady = function (seat) { if (window.SubGameHooks && SubGameHooks.onReady) return SubGameHooks.onReady(seat); }; // B 类:获取房间描述,无 hook 返回默认文案 Game_Modify.getRoomInfo = function (roomtype, type, tea) { if (window.SubGameHooks && SubGameHooks.getRoomInfo) return SubGameHooks.getRoomInfo(roomtype, type, tea); return "房间描述" + roomtype; }; // B 类:获取房间星星场下限,无 hook 返回默认值 Game_Modify.getStarLimit = function (roomtype) { if (window.SubGameHooks && SubGameHooks.getStarLimit) return SubGameHooks.getStarLimit(roomtype); return 2001000; }; // B 类:获取房间星星场倍数,无 hook 返回默认值 Game_Modify.getMult = function (roomtype, type) { if (window.SubGameHooks && SubGameHooks.getMult) return SubGameHooks.getMult(roomtype, type); return 10000; }; // B 类:获取房间全部信息描述,无 hook 返回默认文案 Game_Modify.getFullRoomInfo = function (roomtype) { if (window.SubGameHooks && SubGameHooks.getFullRoomInfo) return SubGameHooks.getFullRoomInfo(roomtype); return "房间描述" + roomtype; }; // A 类:打开帮助页面,无 hook 即 no-op Game_Modify.onOpenHelp = function (spid) { if (window.SubGameHooks && SubGameHooks.onOpenHelp) return SubGameHooks.onOpenHelp(spid); }; // A 类:显示大厅界面,无 hook 即 no-op Game_Modify.onMainMenuScene = function () { if (window.SubGameHooks && SubGameHooks.onMainMenuScene) return SubGameHooks.onMainMenuScene(); }; // A 类:数字输入框确认回调,无 hook 即 no-op Game_Modify.onCheckInput = function (_result) { if (window.SubGameHooks && SubGameHooks.onCheckInput) return SubGameHooks.onCheckInput(_result); }; // A 类:创建房间成功后触发,无 hook 即 no-op Game_Modify.onCreateRoom = function (_data) { if (window.SubGameHooks && SubGameHooks.onCreateRoom) return SubGameHooks.onCreateRoom(_data); }; // B 类:获取离场限制,无 hook 返回默认值 Game_Modify.getLeaveLimit = function (roomtype) { if (window.SubGameHooks && SubGameHooks.getLeaveLimit) return SubGameHooks.getLeaveLimit(roomtype); return 10; }; // A 类:成功获取定位信息,无 hook 即 no-op Game_Modify.onLocationInfo = function (_locationInfo) { if (window.SubGameHooks && SubGameHooks.onLocationInfo) return SubGameHooks.onLocationInfo(_locationInfo); }; // A 类:进入游戏界面创建牌桌之前,无 hook 即 no-op Game_Modify.onCreateDesk = function (roomtype) { if (window.SubGameHooks && SubGameHooks.onCreateDesk) return SubGameHooks.onCreateDesk(roomtype); }; // B 类:获取是否开启视频功能,无 hook 返回默认值 Game_Modify.getVideoByRoomType = function (roomtype) { if (window.SubGameHooks && SubGameHooks.getVideoByRoomType) return SubGameHooks.getVideoByRoomType(roomtype); return 1; }; // B 类:获取房间顶部描述数组,无 hook 返回默认文案数组 Game_Modify.getRoomTopDescAry = function (roomtype) { if (window.SubGameHooks && SubGameHooks.getRoomTopDescAry) return SubGameHooks.getRoomTopDescAry(roomtype); return ["" + roomtype]; }; // A 类:星星场房间列表,无 hook 即 no-op Game_Modify.getShareRoom = function (_msg) { if (window.SubGameHooks && SubGameHooks.getShareRoom) return SubGameHooks.getShareRoom(_msg); }; // A 类:玩家自己退出房间,无 hook 即 no-op Game_Modify.myExitRoom = function (seat) { if (window.SubGameHooks && SubGameHooks.myExitRoom) return SubGameHooks.myExitRoom(seat); }; // A 类:接收到换座包触发,无 hook 即 no-op Game_Modify.changeSeat = function (seat1, seat2) { if (window.SubGameHooks && SubGameHooks.changeSeat) return SubGameHooks.changeSeat(seat1, seat2); }; // A 类:关闭 vip 选项时调用,无 hook 即 no-op Game_Modify.onCloseVip = function () { if (window.SubGameHooks && SubGameHooks.onCloseVip) return SubGameHooks.onCloseVip(); }; // B 类:判断房间是否为金币场,无 hook 返回默认值(0=非金币场) Game_Modify.getRoomMode = function (roomtype) { if (window.SubGameHooks && SubGameHooks.getRoomMode) return SubGameHooks.getRoomMode(roomtype); return 0; }; // B 类:获取房间最大玩家数量,无 hook 返回默认值 Game_Modify.getMaxPlayerCount = function (roomtype) { if (window.SubGameHooks && SubGameHooks.getMaxPlayerCount) return SubGameHooks.getMaxPlayerCount(roomtype); // 默认值依赖全局 Game_Config(须在本模板之前加载);无则回退 4 return (Game_Config.Max && Game_Config.Max.PlayerCnt) || 4; }; // B 类:更新玩家信息 UI,无 hook 返回 false(让平台默认处理) Game_Modify.updatePlayerInfoUI = function (targetSeat) { if (window.SubGameHooks && SubGameHooks.updatePlayerInfoUI) return SubGameHooks.updatePlayerInfoUI(targetSeat); return false; };