diff --git a/common/locales/ar.json b/common/locales/ar.json
index cb045c8..bade7f0 100644
--- a/common/locales/ar.json
+++ b/common/locales/ar.json
@@ -1,4 +1,13 @@
{
+ "diceMatch.pageTitle": "مطابقة النرد",
+ "diceMatch.pageLabel": "ردهة مطابقة النرد",
+ "diceMatch.match": "مطابقة",
+ "diceMatch.matching": "جارٍ البحث...",
+ "diceMatch.winnerReceives": "الفائز يحصل على",
+ "diceMatch.feeNote": "يدفع اللاعب الفائز رسوم معاملة 5%",
+ "diceMatch.unknownOpponent": "?",
+ "diceMatch.win": "فوز",
+ "diceMatch.coins": "عملات",
"roomReward.pageTitle": "فعالية مكافآت الغرفة",
"roomReward.pageLabel": "فعالية مكافآت الغرفة",
"roomReward.currentTarget": "هدف المكافأة الحالي",
diff --git a/common/locales/en.json b/common/locales/en.json
index d8cef4d..d1d868c 100644
--- a/common/locales/en.json
+++ b/common/locales/en.json
@@ -1,4 +1,13 @@
{
+ "diceMatch.pageTitle": "Dice Match",
+ "diceMatch.pageLabel": "Dice match lobby",
+ "diceMatch.match": "Match",
+ "diceMatch.matching": "Matching...",
+ "diceMatch.winnerReceives": "The winner receives",
+ "diceMatch.feeNote": "The winning player pays a 5% transaction fee",
+ "diceMatch.unknownOpponent": "?",
+ "diceMatch.win": "Win",
+ "diceMatch.coins": "Coins",
"roomReward.pageTitle": "Room Reward Event",
"roomReward.pageLabel": "Room Reward Event",
"roomReward.currentTarget": "Current reward target",
diff --git a/common/locales/es.json b/common/locales/es.json
index 6c43c81..b1900cf 100644
--- a/common/locales/es.json
+++ b/common/locales/es.json
@@ -1,4 +1,13 @@
{
+ "diceMatch.pageTitle": "Partida de dados",
+ "diceMatch.pageLabel": "Lobby de partida de dados",
+ "diceMatch.match": "Emparejar",
+ "diceMatch.matching": "Emparejando...",
+ "diceMatch.winnerReceives": "El ganador recibe",
+ "diceMatch.feeNote": "El jugador ganador paga una comisión del 5%",
+ "diceMatch.unknownOpponent": "?",
+ "diceMatch.win": "Victoria",
+ "diceMatch.coins": "Monedas",
"roomReward.pageTitle": "Evento de recompensas de sala",
"roomReward.pageLabel": "Evento de recompensas de sala",
"roomReward.currentTarget": "Objetivo de recompensa actual",
diff --git a/common/locales/id.json b/common/locales/id.json
index 83336aa..9a323bb 100644
--- a/common/locales/id.json
+++ b/common/locales/id.json
@@ -1,4 +1,13 @@
{
+ "diceMatch.pageTitle": "Match Dadu",
+ "diceMatch.pageLabel": "Lobi match dadu",
+ "diceMatch.match": "Match",
+ "diceMatch.matching": "Mencari...",
+ "diceMatch.winnerReceives": "Pemenang menerima",
+ "diceMatch.feeNote": "Pemain yang menang membayar biaya transaksi 5%",
+ "diceMatch.unknownOpponent": "?",
+ "diceMatch.win": "Menang",
+ "diceMatch.coins": "Koin",
"roomReward.pageTitle": "Event Hadiah Room",
"roomReward.pageLabel": "Event Hadiah Room",
"roomReward.currentTarget": "Target hadiah saat ini",
diff --git a/common/locales/tr.json b/common/locales/tr.json
index 026fe79..694250a 100644
--- a/common/locales/tr.json
+++ b/common/locales/tr.json
@@ -1,4 +1,13 @@
{
+ "diceMatch.pageTitle": "Zar Eşleşmesi",
+ "diceMatch.pageLabel": "Zar eşleşme lobisi",
+ "diceMatch.match": "Eşleş",
+ "diceMatch.matching": "Eşleşiyor...",
+ "diceMatch.winnerReceives": "Kazanan alır",
+ "diceMatch.feeNote": "Kazanan oyuncu %5 işlem ücreti öder",
+ "diceMatch.unknownOpponent": "?",
+ "diceMatch.win": "Kazan",
+ "diceMatch.coins": "Coin",
"roomReward.pageTitle": "Oda Ödül Etkinliği",
"roomReward.pageLabel": "Oda Ödül Etkinliği",
"roomReward.currentTarget": "Mevcut ödül hedefi",
diff --git a/common/locales/zh.json b/common/locales/zh.json
index b8df4be..56b2797 100644
--- a/common/locales/zh.json
+++ b/common/locales/zh.json
@@ -1,4 +1,13 @@
{
+ "diceMatch.pageTitle": "骰子匹配",
+ "diceMatch.pageLabel": "骰子匹配大厅",
+ "diceMatch.match": "匹配",
+ "diceMatch.matching": "匹配中...",
+ "diceMatch.winnerReceives": "获胜者可获得",
+ "diceMatch.feeNote": "获胜玩家需支付 5% 交易手续费",
+ "diceMatch.unknownOpponent": "?",
+ "diceMatch.win": "胜利",
+ "diceMatch.coins": "金币",
"roomReward.pageTitle": "房间奖励活动",
"roomReward.pageLabel": "房间奖励活动",
"roomReward.currentTarget": "当前奖励目标",
diff --git a/game-bridge/voice-room-game-bridge.v1.js b/game-bridge/voice-room-game-bridge.v1.js
index 39cf69f..d415c70 100644
--- a/game-bridge/voice-room-game-bridge.v1.js
+++ b/game-bridge/voice-room-game-bridge.v1.js
@@ -1,5 +1,5 @@
(function () {
- var remoteBridgeVersion = '20260609.1';
+ var remoteBridgeVersion = '20260610.1';
function safeCall(fn, args) {
try {
@@ -129,6 +129,9 @@
if (values.indexOf('zeeone') >= 0) {
return 'zeeone_v1';
}
+ if (values.indexOf('reyou') >= 0 || values.indexOf('hotgame') >= 0) {
+ return 'reyou_v1';
+ }
return 'generic';
}
@@ -176,6 +179,53 @@
window.webkit.messageHandlers[name] = { postMessage: fn.postMessage };
}
+ function notifyReyouRechargeSuccess(body) {
+ var payload = body || {};
+ var notified = false;
+ [window.rechargeSuccess, window.onRechargeSuccess].forEach(
+ function (fn) {
+ if (typeof fn === 'function') {
+ safeCall(fn, [payload]);
+ notified = true;
+ }
+ }
+ );
+ try {
+ window.dispatchEvent(
+ new CustomEvent('rechargeSuccess', { detail: payload })
+ );
+ } catch (_) {}
+ return notified;
+ }
+
+ function installReyouBridgeAliases(nativeBridge) {
+ var jsBridge = window.JsBridge || {};
+ jsBridge.recharge = function (body) {
+ return callNativeBridge('gameRecharge', body || {});
+ };
+ jsBridge.quit = function (body) {
+ return callNativeBridge('closeGame', body || {});
+ };
+ window.JsBridge = jsBridge;
+
+ installAlias('recharge', 'gameRecharge');
+ installAlias('quit', 'closeGame');
+
+ nativeBridge.recharge = function (body) {
+ callNativeBridge('gameRecharge', body || {});
+ };
+ nativeBridge.quit = function (body) {
+ callNativeBridge('closeGame', body || {});
+ };
+ nativeBridge.rechargeSuccess = function (body) {
+ notifyReyouRechargeSuccess(body || {});
+ };
+ nativeBridge.updateCoin = function (body) {
+ notifyReyouRechargeSuccess(body || {});
+ callNativeBridge('refreshBalance', body || {});
+ };
+ }
+
function callNativeBridge(action, body) {
var config = launchConfig();
var payload = launchPayload();
@@ -297,6 +347,7 @@
nativeBridge.debugLog = function (body) {
callNativeBridge('debugLog', body || {});
};
+ installReyouBridgeAliases(nativeBridge);
window.NativeBridge = nativeBridge;
[
diff --git a/game/AGENTS.md b/game/AGENTS.md
new file mode 100644
index 0000000..4bbd33b
--- /dev/null
+++ b/game/AGENTS.md
@@ -0,0 +1,3 @@
+# game目录为独立的ui样式,不依赖外层的公共样式
+# api逻辑只依赖 外层common/jsbridge.js 和 api.js 和 params.js
+# i18n 使用当前目录的i18n
\ No newline at end of file
diff --git a/game/README.md b/game/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/game/jdstb/index.html b/game/jdstb/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/game/touzi/assets/figma/amount-fill.png b/game/touzi/assets/figma/amount-fill.png
new file mode 100644
index 0000000..10342a5
Binary files /dev/null and b/game/touzi/assets/figma/amount-fill.png differ
diff --git a/game/touzi/assets/figma/back-button.png b/game/touzi/assets/figma/back-button.png
new file mode 100644
index 0000000..d507fd7
Binary files /dev/null and b/game/touzi/assets/figma/back-button.png differ
diff --git a/game/touzi/assets/figma/badge-help.png b/game/touzi/assets/figma/badge-help.png
new file mode 100644
index 0000000..db80217
Binary files /dev/null and b/game/touzi/assets/figma/badge-help.png differ
diff --git a/game/touzi/assets/figma/bg-arena.png b/game/touzi/assets/figma/bg-arena.png
new file mode 100644
index 0000000..7e22f89
Binary files /dev/null and b/game/touzi/assets/figma/bg-arena.png differ
diff --git a/game/touzi/assets/figma/blue-dice.png b/game/touzi/assets/figma/blue-dice.png
new file mode 100644
index 0000000..cbb6bfa
Binary files /dev/null and b/game/touzi/assets/figma/blue-dice.png differ
diff --git a/game/touzi/assets/figma/blue-flare.png b/game/touzi/assets/figma/blue-flare.png
new file mode 100644
index 0000000..74c7f85
Binary files /dev/null and b/game/touzi/assets/figma/blue-flare.png differ
diff --git a/game/touzi/assets/figma/blue-ring.png b/game/touzi/assets/figma/blue-ring.png
new file mode 100644
index 0000000..3100980
Binary files /dev/null and b/game/touzi/assets/figma/blue-ring.png differ
diff --git a/game/touzi/assets/figma/coin.png b/game/touzi/assets/figma/coin.png
new file mode 100644
index 0000000..5ac0c56
Binary files /dev/null and b/game/touzi/assets/figma/coin.png differ
diff --git a/game/touzi/assets/figma/game-icon.png b/game/touzi/assets/figma/game-icon.png
new file mode 100644
index 0000000..34568c3
Binary files /dev/null and b/game/touzi/assets/figma/game-icon.png differ
diff --git a/game/touzi/assets/figma/home-indicator.svg b/game/touzi/assets/figma/home-indicator.svg
new file mode 100644
index 0000000..c9a37a8
--- /dev/null
+++ b/game/touzi/assets/figma/home-indicator.svg
@@ -0,0 +1,7 @@
+
diff --git a/game/touzi/assets/figma/mask-bg.svg b/game/touzi/assets/figma/mask-bg.svg
new file mode 100644
index 0000000..0a12276
--- /dev/null
+++ b/game/touzi/assets/figma/mask-bg.svg
@@ -0,0 +1,9 @@
+
diff --git a/game/touzi/assets/figma/match-button.png b/game/touzi/assets/figma/match-button.png
new file mode 100644
index 0000000..4136acb
Binary files /dev/null and b/game/touzi/assets/figma/match-button.png differ
diff --git a/game/touzi/assets/figma/matching-left.svg b/game/touzi/assets/figma/matching-left.svg
new file mode 100644
index 0000000..39fac5a
--- /dev/null
+++ b/game/touzi/assets/figma/matching-left.svg
@@ -0,0 +1,21 @@
+
diff --git a/game/touzi/assets/figma/matching-right.svg b/game/touzi/assets/figma/matching-right.svg
new file mode 100644
index 0000000..729598a
--- /dev/null
+++ b/game/touzi/assets/figma/matching-right.svg
@@ -0,0 +1,21 @@
+
diff --git a/game/touzi/assets/figma/opponent-avatar-glow.svg b/game/touzi/assets/figma/opponent-avatar-glow.svg
new file mode 100644
index 0000000..e4d41cd
--- /dev/null
+++ b/game/touzi/assets/figma/opponent-avatar-glow.svg
@@ -0,0 +1,9 @@
+
diff --git a/game/touzi/assets/figma/opponent-card.png b/game/touzi/assets/figma/opponent-card.png
new file mode 100644
index 0000000..32d40aa
Binary files /dev/null and b/game/touzi/assets/figma/opponent-card.png differ
diff --git a/game/touzi/assets/figma/opponent-question.png b/game/touzi/assets/figma/opponent-question.png
new file mode 100644
index 0000000..55f1ccd
Binary files /dev/null and b/game/touzi/assets/figma/opponent-question.png differ
diff --git a/game/touzi/assets/figma/player-avatar-glow.png b/game/touzi/assets/figma/player-avatar-glow.png
new file mode 100644
index 0000000..97979d4
Binary files /dev/null and b/game/touzi/assets/figma/player-avatar-glow.png differ
diff --git a/game/touzi/assets/figma/player-card.png b/game/touzi/assets/figma/player-card.png
new file mode 100644
index 0000000..288bfcb
Binary files /dev/null and b/game/touzi/assets/figma/player-card.png differ
diff --git a/game/touzi/assets/figma/prize-panel.svg b/game/touzi/assets/figma/prize-panel.svg
new file mode 100644
index 0000000..d14adb4
--- /dev/null
+++ b/game/touzi/assets/figma/prize-panel.svg
@@ -0,0 +1,21 @@
+
diff --git a/game/touzi/assets/figma/red-dice.png b/game/touzi/assets/figma/red-dice.png
new file mode 100644
index 0000000..298ac62
Binary files /dev/null and b/game/touzi/assets/figma/red-dice.png differ
diff --git a/game/touzi/assets/figma/red-flare.png b/game/touzi/assets/figma/red-flare.png
new file mode 100644
index 0000000..5d27634
Binary files /dev/null and b/game/touzi/assets/figma/red-flare.png differ
diff --git a/game/touzi/assets/figma/red-ring.png b/game/touzi/assets/figma/red-ring.png
new file mode 100644
index 0000000..4f98260
Binary files /dev/null and b/game/touzi/assets/figma/red-ring.png differ
diff --git a/game/touzi/assets/figma/search-icon.svg b/game/touzi/assets/figma/search-icon.svg
new file mode 100644
index 0000000..14779cf
--- /dev/null
+++ b/game/touzi/assets/figma/search-icon.svg
@@ -0,0 +1,22 @@
+
diff --git a/game/touzi/assets/figma/stake-fill.png b/game/touzi/assets/figma/stake-fill.png
new file mode 100644
index 0000000..cc4900e
Binary files /dev/null and b/game/touzi/assets/figma/stake-fill.png differ
diff --git a/game/touzi/assets/figma/stake-mask-left.svg b/game/touzi/assets/figma/stake-mask-left.svg
new file mode 100644
index 0000000..f05758d
--- /dev/null
+++ b/game/touzi/assets/figma/stake-mask-left.svg
@@ -0,0 +1,3 @@
+
diff --git a/game/touzi/assets/figma/stake-mask-right.svg b/game/touzi/assets/figma/stake-mask-right.svg
new file mode 100644
index 0000000..4c99223
--- /dev/null
+++ b/game/touzi/assets/figma/stake-mask-right.svg
@@ -0,0 +1,9 @@
+
diff --git a/game/touzi/assets/figma/stake-outline.svg b/game/touzi/assets/figma/stake-outline.svg
new file mode 100644
index 0000000..3d91b72
--- /dev/null
+++ b/game/touzi/assets/figma/stake-outline.svg
@@ -0,0 +1,21 @@
+
diff --git a/game/touzi/assets/figma/status-battery.svg b/game/touzi/assets/figma/status-battery.svg
new file mode 100644
index 0000000..15c113d
--- /dev/null
+++ b/game/touzi/assets/figma/status-battery.svg
@@ -0,0 +1,7 @@
+
diff --git a/game/touzi/assets/figma/status-cellular.svg b/game/touzi/assets/figma/status-cellular.svg
new file mode 100644
index 0000000..a58f453
--- /dev/null
+++ b/game/touzi/assets/figma/status-cellular.svg
@@ -0,0 +1,3 @@
+
diff --git a/game/touzi/assets/figma/status-frame.svg b/game/touzi/assets/figma/status-frame.svg
new file mode 100644
index 0000000..4755da3
--- /dev/null
+++ b/game/touzi/assets/figma/status-frame.svg
@@ -0,0 +1,3 @@
+
diff --git a/game/touzi/assets/figma/status-wifi.svg b/game/touzi/assets/figma/status-wifi.svg
new file mode 100644
index 0000000..e5802d2
--- /dev/null
+++ b/game/touzi/assets/figma/status-wifi.svg
@@ -0,0 +1,3 @@
+
diff --git a/game/touzi/assets/figma/vs.png b/game/touzi/assets/figma/vs.png
new file mode 100644
index 0000000..d326cc7
Binary files /dev/null and b/game/touzi/assets/figma/vs.png differ
diff --git a/game/touzi/assets/figma/win-avatar-glow.png b/game/touzi/assets/figma/win-avatar-glow.png
new file mode 100644
index 0000000..0817e81
Binary files /dev/null and b/game/touzi/assets/figma/win-avatar-glow.png differ
diff --git a/game/touzi/assets/figma/win-play-again-button.png b/game/touzi/assets/figma/win-play-again-button.png
new file mode 100644
index 0000000..1933c87
Binary files /dev/null and b/game/touzi/assets/figma/win-play-again-button.png differ
diff --git a/game/touzi/assets/figma/win-player-card.png b/game/touzi/assets/figma/win-player-card.png
new file mode 100644
index 0000000..288bfcb
Binary files /dev/null and b/game/touzi/assets/figma/win-player-card.png differ
diff --git a/game/touzi/assets/figma/win-rematch-button.png b/game/touzi/assets/figma/win-rematch-button.png
new file mode 100644
index 0000000..39ebc08
Binary files /dev/null and b/game/touzi/assets/figma/win-rematch-button.png differ
diff --git a/game/touzi/assets/figma/win-reward-panel.png b/game/touzi/assets/figma/win-reward-panel.png
new file mode 100644
index 0000000..c8d6470
Binary files /dev/null and b/game/touzi/assets/figma/win-reward-panel.png differ
diff --git a/game/touzi/assets/figma/win-victory-light.png b/game/touzi/assets/figma/win-victory-light.png
new file mode 100644
index 0000000..c6f39f0
Binary files /dev/null and b/game/touzi/assets/figma/win-victory-light.png differ
diff --git a/game/touzi/assets/figma/winner-text-fill.png b/game/touzi/assets/figma/winner-text-fill.png
new file mode 100644
index 0000000..49c7e3e
Binary files /dev/null and b/game/touzi/assets/figma/winner-text-fill.png differ
diff --git a/game/touzi/index.html b/game/touzi/index.html
new file mode 100644
index 0000000..de34623
--- /dev/null
+++ b/game/touzi/index.html
@@ -0,0 +1,1370 @@
+
+
+
+
+
+ Dice Match
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+

+
+
+
+

+
+
+

+
+
+
+
+

+
+
+
+

+
+
+

+
+
+

+
+
+
+

+
+
+

+
+
+

+
+
+
+

+
+
+

+
+
+

+
+
+ ?
+
+
+

+
+
+ Matching...
+
+
+
+

+
+
+ The winner receives
+
+
+
+
+
+
+

+
+
+
+
+
+ The winning player pays a 5% transaction fee
+
+
+
+

+
Matching...
+

+
+
+
+

+
+
+

+
+
+

+
+
+
+

+
+
+ Win
+
+
+ 1,900
+
+
+ Coins
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/recharge/index.html b/recharge/index.html
new file mode 100644
index 0000000..e69de29