Files
youle_framework/client/js/01_SubGame/01_SubGame_modify.js
T

130 lines
7.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// ============================================================================
// 01_SubGame_modify.js —— 平台交互/创建房间接口「转发壳」(框架维护,子游戏不碰)
// 顶部为「房型/创建房间配置区」(数据,子游戏填值);其下为接口转发壳(转发到 SubGameHooks)。
// 严格 ES5。
// ----------------------------------------------------------------------------
// 【平台约定精灵:25 号 = 创建房间确认按钮】(接入子游戏必看)
// 平台框架在「创建房间」界面提供 25 号精灵作为“确认/提交”按钮;其点击交互与
// 发送的数据包,均需【子游戏自己实现】(平台不代发),约定流程:
// 1. 子游戏在打开创建房间界面时注册 25 号精灵的点击(经 SpriteEventController
// 或 mouseup),点击即“确认创建房间”。
// 2. 子游戏按界面选项拼出 roomtype(房型配置串,编码局数/人数/扣卡/规则等,
// 由各子游戏按玩法自定义与解析),组装并发送创建房间请求:
// Net.Send_create_room({
// agentid : GameData.AgentId,
// playerid: C_Player.playerid,
// gameid : GameData.GameId,
// roomtype: <房型配置字符串>
// });
//
// 本麻将实现见 codes/game/ui/handlers/CreateRoomEventHandler(bindEvents 注册
// 25→submit;submit 用 UIManager._buildRoomTypeString 拼 roomtype 后 Net.Send_create_room)。
// ============================================================================
// ---------- 配置区(数据,子游戏按玩法填值;与 00 的 Game_Config 分工) ----------
var Game_Modify = Game_Modify || {};
// ---------- 平台需要的必须字段 ----------
Game_Modify.roomDes = ""; // 房间描述,子游戏在 setRoomDes 内填
Game_Modify.game_config = {}; // 游戏配置默认值
Game_Modify.combat = {
maxPlayerCount: 5,
pageOnelimitStrLen: 8,
pageOneDoc: false,
pageTwolimitStrLen: 16,
pageTwoDoc: false
};
Game_Modify.Type_1 = [
{ id: 0, des: "10局(房卡X1)", roomcard: 1, type: 1 },
{ id: 1, des: "20局(房卡X2)", roomcard: 2, type: 2 }
];
Game_Modify.Type_2 = [
{ id: 0, des: "房主扣卡", type: 1 },
{ id: 1, des: "每人扣卡", type: 2 }
];
Game_Modify.CreateRoomData = {
Type_1: 0,
Type_2: 0
};
// ---------- 接口转发壳(A 类:无 hook 即 no-op) ----------
Game_Modify.utlmousedown = function (gameid, spid, downx, downy, no1, no2, no3, no4, no5, no6) {
if (window.SubGameHooks && SubGameHooks.utlmousedown) return SubGameHooks.utlmousedown(gameid, spid, downx, downy, no1, no2, no3, no4, no5, no6);
};
Game_Modify.utlmousedown_nomove = function (gameid, spid, downx, downy, timelong, no1, no2, no3, no4, no5) {
if (window.SubGameHooks && SubGameHooks.utlmousedown_nomove) return SubGameHooks.utlmousedown_nomove(gameid, spid, downx, downy, timelong, no1, no2, no3, no4, no5);
};
Game_Modify.mouseup = function (gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2) {
if (window.SubGameHooks && SubGameHooks.mouseup) return SubGameHooks.mouseup(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
};
Game_Modify.utlmousemove = function (gameid, spid, downx, downy, movex, movey, timelong, offmovex, offmovey, no1) {
if (window.SubGameHooks && SubGameHooks.utlmousemove) return SubGameHooks.utlmousemove(gameid, spid, downx, downy, movex, movey, timelong, offmovex, offmovey, no1);
};
Game_Modify.utlgamemydrawbegin = function (gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7) {
if (window.SubGameHooks && SubGameHooks.utlgamemydrawbegin) return SubGameHooks.utlgamemydrawbegin(gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7);
};
Game_Modify.gamemydraw = function (gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7) {
if (window.SubGameHooks && SubGameHooks.gamemydraw) return SubGameHooks.gamemydraw(gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7);
};
Game_Modify.OpenCreateRoom = function () {
if (window.SubGameHooks && SubGameHooks.OpenCreateRoom) return SubGameHooks.OpenCreateRoom();
};
Game_Modify.CloseCreateRoom = function () {
if (window.SubGameHooks && SubGameHooks.CloseCreateRoom) return SubGameHooks.CloseCreateRoom();
};
Game_Modify.setRoomDes = function (roomcode, asetcount, roomtype) {
if (window.SubGameHooks && SubGameHooks.setRoomDes) return SubGameHooks.setRoomDes(roomcode, asetcount, roomtype);
};
// ---------- gameCombat 兼容空定义 ----------
// 平台 gamemain.js 仍直接调用 gameCombat.utl*(战绩界面回调),保留全局对象与 6 个空接口防报错。
// 战绩功能由 RecordView 重建(见迁移子项目 2);届时这些接口可改为委托或保持空。
var gameCombat = gameCombat || {};
gameCombat.utlani_doend = gameCombat.utlani_doend || function () {};
gameCombat.utlmousedown = gameCombat.utlmousedown || function () {};
gameCombat.utlmouseup = gameCombat.utlmouseup || function () {};
gameCombat.utlmousemove = gameCombat.utlmousemove || function () {};
gameCombat.utlgamemydraw = gameCombat.utlgamemydraw || function () {};
gameCombat.utlgamemydrawbegin = gameCombat.utlgamemydrawbegin || function () {};
// 战绩接收入口(平台 09_Net 调):转发到 SubGameHooks(框架转发壳不引用 codes;子游戏在 SubGameHooks 内转 CombatService)
gameCombat.get_player_grade1 = function (_msg) {
if (window.SubGameHooks && SubGameHooks.get_player_grade1) return SubGameHooks.get_player_grade1(_msg);
};
gameCombat.get_player_grade2 = function (_msg) {
if (window.SubGameHooks && SubGameHooks.get_player_grade2) return SubGameHooks.get_player_grade2(_msg);
};
// 战绩入口:13 号精灵点击 → 发送获取战绩请求(Net.Send_get_player_grade1,平台底层发送)
// 点击经 平台 → Game_Modify.mouseup → SubGameHooks.mouseup → SpriteEventController 链到达
if (typeof SpriteEventController !== 'undefined' && SpriteEventController.registerMouseUp) {
SpriteEventController.registerMouseUp(13, function () {
if (typeof Net !== 'undefined' && Net.Send_get_player_grade1) {
Net.Send_get_player_grade1({
agentid: GameData.AgentId,
playerid: C_Player.playerid,
gameid: GameData.GameId,
type: 0
});
}
});
}
// 平台通用精灵交互(从 SubGameHooks 移入;经 Game_Modify.mouseup/gamemydraw→SubGameHooks→SpriteEventController 分发)
// 注:25 号(创建房间提交)已归创建房间职责,移至 codes/game/ui/handlers/CreateRoomEventHandler.bindEvents。
if (typeof SpriteEventController !== 'undefined') {
// 150:帮助按钮
if (SpriteEventController.registerMouseUp) {
SpriteEventController.registerMouseUp(150, function () {
if (typeof GameUI !== 'undefined' && GameUI.OpenHelp) { GameUI.OpenHelp(); }
});
}
// 248:协议勾选绘制(勾上时自绘钩)
if (SpriteEventController.registerDraw) {
SpriteEventController.registerDraw(248, function (e) {
if (GameData.ProtocolIndex) {
ifast_mydrawbmp(e.spriteId, 4, 5, 5, 40, 40, 0, 0, 40, 40);
}
});
}
}