You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
AdLike2048/assets/script/ui/PopAutoM/UIPopAutoM.ts

81 lines
2.6 KiB

//*********************
// create by 流云
// time: Fri Jul 31 2026
// desc:
//*********************
import { _decorator } from 'cc';
import { Auto_PopAutoM } from './Auto_PopAutoM';
import {
AUTO_MERGE_UNLOCK_VIDEO_COUNT,
canClaimAutoMergeChapter1HardFree,
claimAutoMergeChapter1HardFree,
getAutoMergeVideoUnlockCount,
isAutoMergeFeatureEnabled,
isAutoMergePermanentlyUnlocked,
recordAutoMergeVideoUnlock,
} from '../../battle/BattleAutoMergeUnlock';
import { BattleRuntime } from '../../battle/runtime/BattleRuntime';
const { ccclass } = _decorator;
@ccclass('UIPopAutoM')
export class UIPopAutoM extends Auto_PopAutoM {
onInit(): void {
this._refreshUnlockCountUi();
this._syncFreeUseVideoIcon();
}
private _isChapter1HardFree(): boolean {
const match = gg.game.CurentBattle as BattleRuntime | null;
if (!match) return false;
return canClaimAutoMergeChapter1HardFree(match.LevelConfigId);
}
private _refreshUnlockCountUi(): void {
const count = getAutoMergeVideoUnlockCount();
this.rt_Count.string =
`<b>已使用:(<color=#FF1400>${count}/${AUTO_MERGE_UNLOCK_VIDEO_COUNT}</color>)次 </b>`;
}
/** 第一章困难免费时隐藏「视频标」 */
private _syncFreeUseVideoIcon(): void {
const videoIcon = this.btnUse?.getChildByName('视频标');
if (videoIcon?.isValid) {
videoIcon.active = !this._isChapter1HardFree();
}
}
click_btnClose(): void {
this.close(2);
}
click_btnUse(): void {
if (!isAutoMergeFeatureEnabled()) return;
const match = gg.game.CurentBattle as BattleRuntime | null;
if (!match || match.IsGameOver) return;
// 第一章困难:首次免费激活本局自动合成(不看广告、不计入视频解锁次数)
if (canClaimAutoMergeChapter1HardFree(match.LevelConfigId)) {
claimAutoMergeChapter1HardFree();
match.grantAutoMergeForMatch();
gg.sdk.reportDY('inLevel', `${gg.game.getReportDYBattleLabel()}-自动合成-第一章困难免费`);
this.close(2);
return;
}
gg.sdk.showVideoAd((res) => {
if (!res) {
gg.ui.showToast('观看视频失败');
return;
}
recordAutoMergeVideoUnlock();
match.grantAutoMergeForMatch();
gg.sdk.reportDY(
'inLevel',
`${gg.game.getReportDYBattleLabel()}-AD-自动合成${isAutoMergePermanentlyUnlocked() ? '-永久解锁' : ''}`,
);
this.close(2);
});
}
}