Files
youle_framework/client/js/01_SubGame/02_SubGame_Input.js
T

301 lines
12 KiB
JavaScript

// ============================================================================
// 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;
};