feat: 新手礼包
This commit is contained in:
@@ -474,7 +474,9 @@ export class GameConfig {
|
||||
iosReviveOrder: string; //ios订单号复活
|
||||
iosStarterOrder: string; //ios订单号新手
|
||||
iosPassCheckOrder: string; // ios通行证订单
|
||||
starter_packTime: number; //新手礼包活动时间
|
||||
starter_packTime: number; // 新手礼包截止时间,秒
|
||||
starterPackServerOffset: number; // 服务端时间与本地时间差,毫秒
|
||||
starterPackPurchased: boolean;
|
||||
wxFriend: boolean; //微信好友信息授权
|
||||
wxUserInfo: boolean; //微信用户信息授权
|
||||
winState: boolean; //是否延续连胜状态
|
||||
@@ -685,7 +687,9 @@ export class GameConfig {
|
||||
iosReviveOrder: "", //ios订单号复活
|
||||
iosStarterOrder: "", //ios订单号新手
|
||||
iosPassCheckOrder: "", // ios通行证订单
|
||||
starter_packTime: 0, //新手礼包活动时间
|
||||
starter_packTime: 0, // 新手礼包截止时间
|
||||
starterPackServerOffset: 0,
|
||||
starterPackPurchased: false,
|
||||
wxFriend: false, //微信好友信息授权
|
||||
wxUserInfo: false, //微信用户信息授权
|
||||
winState: false, //是否延续连胜状态
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
/** Purchases and login compensation use the same client-owned reward. */
|
||||
export function starterPackReward() {
|
||||
return { coin: 8000, hammer: 8, freeze: 8, magic_wand: 8 };
|
||||
}
|
||||
|
||||
export function starterPackNow(): number {
|
||||
return Date.now() + (cc.fx.GameConfig.GM_INFO.starterPackServerOffset || 0);
|
||||
}
|
||||
|
||||
export function starterPackRemaining(): number {
|
||||
if (cc.fx.GameConfig.GM_INFO.starterPackPurchased) return 0;
|
||||
return Math.max(0, Math.ceil(cc.fx.GameConfig.GM_INFO.starter_packTime - starterPackNow() / 1000));
|
||||
}
|
||||
|
||||
export function starterPackTimeText(seconds: number): string {
|
||||
const value = Math.max(0, Math.floor(seconds));
|
||||
return [Math.floor(value / 3600), Math.floor(value / 60) % 60, value % 60]
|
||||
.map(part => String(part).padStart(2, '0')).join(':');
|
||||
}
|
||||
|
||||
export function applyStarterPackStatus(data: any): void {
|
||||
const info = cc.fx.GameConfig.GM_INFO;
|
||||
info.starter_packTime = (Number(data.starter_pack) || 0) / 1000;
|
||||
// A late status response cannot undo a purchase confirmed in this session.
|
||||
info.starterPackPurchased = info.starterPackPurchased || Number(data.starter_packState) === 1;
|
||||
if (Number(data.serverTime) > 0) info.starterPackServerOffset = Number(data.serverTime) - Date.now();
|
||||
}
|
||||
|
||||
export function starterPackDay(): string {
|
||||
// Keep the existing local calendar-day policy, using server-corrected time.
|
||||
const date = new Date(starterPackNow());
|
||||
return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;
|
||||
}
|
||||
|
||||
export function starterPackPopupKey(): string {
|
||||
return 'Starter_pack_' + cc.fx.GameConfig.GM_INFO.uid;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"uuid": "bf11bdec-ae45-4d49-ba7d-d23281e8c91e",
|
||||
"importer": "typescript",
|
||||
"isPlugin": false,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
Reference in New Issue
Block a user