chore:代码重构

This commit is contained in:
2026-07-17 10:15:42 +08:00
parent 5e689878ca
commit 56ea1dfd7b
58 changed files with 5784 additions and 2685 deletions
+243 -211
View File
@@ -1,255 +1,287 @@
import { _decorator, Button, Component, instantiate, Label, math, Node, Prefab, randomRange, Sprite, Tween, tween, Vec3 } from 'cc';
import { LocalSaveMgr } from '../framework/data/LocalSaveMgr';
import { UIManager } from '../framework/ui/UIManager';
import { UISwitcher } from '../framework/ui/UISwitcher';
import { AudioMgr } from '../framework/audio/AudioMgr';
import { PanelBase } from '../framework/ui/PanelBase';
// @structural-rewrite-v1
import { _decorator, Button, Label, Node, Prefab, Tween, Vec3 } from 'cc';
import { AssetController } from '../AssetController';
import { GameController } from '../GameController';
import { BattleResult } from '../BattleLevel';
import { RewardSettlementModel } from '../domain/RewardSettlementModel';
import { GameController } from '../GameController';
import { AudioMgr } from '../framework/audio/AudioMgr';
import { LocalSaveMgr } from '../framework/data/LocalSaveMgr';
import { SdkMgr } from '../framework/sdk/SdkMgr';
import { PanelBase } from '../framework/ui/PanelBase';
import { connectPanelButtons, playPanelClick, runPanelAction } from '../framework/ui/PanelInteraction';
import { RewardFlight } from '../framework/ui/RewardFlight';
const { ccclass, property } = _decorator;
@ccclass('WinPanel')
export class WinPanel extends PanelBase {
static instance: WinPanel;
@property(Node)
pointer: Node = null; // 指针节点
pointer: Node = null;
@property
amplitude: number = 450; // 运动幅度
amplitude = 450;
@property
speed: number = 2; // 运动速度
speed = 2;
@property(Button)
rewardBtn: Button = null;
@property(Button)
continueBtn: Button = null;
@property(Label)
remainTimer: Label = null;
@property(Label)
killEnemyCount: Label = null;
@property(Prefab)
flyMoneyPrefab: Prefab = null;
@property(Label)
coinCount: Label = null;
@property(Label)
rewardCoin: Label = null;
@property(Label)
rewardTimerCoin: Label = null;
@property(Label)
rewardKillCoin: Label = null;
@property(Node)
flyMoneyContent: Node = null;
@property(Label)
coinLabel: Label = null;
@property(Label)
continueCoinLabel: Label = null;
private time: number = 0;
runingPoint: boolean = false;
rewardDouble: number = 1;
onLoad() {
WinPanel.instance = this;
this.rewardBtn.node.on(Button.EventType.CLICK, this.onClickRewardBtn, this);
this.continueBtn.node.on(Button.EventType.CLICK, this.onClickContinueBtn, this);
}
onClickRewardBtn() {
AudioMgr.inst.playOneShot(AssetController.instance.click)
if (Math.abs(this.pointPos) < 50) {
this.rewardDouble = 5
} else if (Math.abs(this.pointPos) < 150) {
this.rewardDouble = 4
} else if (Math.abs(this.pointPos) < 250) {
this.rewardDouble = 3
} else if (Math.abs(this.pointPos) < 350) {
this.rewardDouble = 2
} else if (Math.abs(this.pointPos) < 450) {
this.rewardDouble = 1
}
this.runingPoint = false
SdkMgr.instance.requestReward(() => {
let addPoint = Math.ceil((this.curResult.coinCount * this.rewardDouble))
let fromeMoney = LocalSaveMgr.instance.playerData.coin
LocalSaveMgr.instance.addCoin(addPoint)
let endMoney = LocalSaveMgr.instance.playerData.coin
this.flyMoney(fromeMoney, endMoney)
})
}
onClickContinueBtn() {
AudioMgr.inst.playOneShot(AssetController.instance.click)
GameController.getInstance().backMain()
}
backMain() {
AudioMgr.inst.playOneShot(AssetController.instance.click)
GameController.getInstance().backMain()
}
start() {
this.time = 0;
}
curResult: BattleResult;
winTween1 = null
winTween2 = null
winTween3 = null
refresh() {
let result = GameController.getInstance().curLevel.levelResult
this.curResult = result
LocalSaveMgr.instance.addCoin(result.coinCount)
this.killEnemyCount.string = result.enemyCount.toString()
this.remainTimer.string = result.timer.toString()
this.coinLabel.string = LocalSaveMgr.instance.playerData.coin.toString()
this.coinCount.string = "0"
let startValue = 0;
let endValue = result.coinCount;
let duration = 1; // 1秒
let startValue2 = 0;
let endValue2 = result.timerCoin;
let startValue3 = 0;
let endValue3 = result.enemyCoin;
this.continueCoinLabel.string = result.coinCount.toString()
this.winTween1 = new Tween({ value: startValue })
.to(duration, { value: endValue }, {
onUpdate: (target, ratio) => {
// 在每一帧更新时调用
let currentValue = Math.floor(target.value);
this.coinCount.string = currentValue.toString();
pointPos: number;
private time = 0;
private runingPoint = false;
private readonly scoreTweens: Tween<{
value: number;
}>[] = [];
private readonly settlement = new RewardSettlementModel();
protected onLoad(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (WinPanel["instance"] = this);
void (connectPanelButtons(this, [
[this["rewardBtn"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["onClickRewardBtn"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown],
[this["continueBtn"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["onClickContinueBtn"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown],
]));
}
})
.start();
this.winTween2 = new Tween({ value: startValue2 })
.to(duration, { value: endValue2 }, {
onUpdate: (target, ratio) => {
// 在每一帧更新时调用
let currentValue = Math.floor(target.value);
this.rewardTimerCoin.string = currentValue.toString();
}
})
.start();
this.winTween3 = new Tween({ value: startValue3 })
.to(duration, { value: endValue3 }, {
onUpdate: (target, ratio) => {
// 在每一帧更新时调用
let currentValue = Math.floor(target.value);
this.rewardKillCoin.string = currentValue.toString();
}
})
.start();
this.runPoint()
}
flyMoney(fromMoney: number, endMoney: number) {
this.rewardBtn.interactable = false
this.continueBtn.interactable = false
AudioMgr.inst.playOneShot(AssetController.instance.getCoin)
for (let index = 0; index < 10; index++) {
let item = instantiate(this.flyMoneyPrefab)
item.setParent(this.flyMoneyContent)
item.setPosition(this.rewardBtn.node.getPosition())
let delay = index * 0.1
tween(item)
.by(0.3, { position: new Vec3(randomRange(-150, 150), randomRange(-150, 150), 0) })
.delay(delay)
.to(0.6, { worldPosition: this.coinLabel.node.getWorldPosition() })
.call(() => {
item.destroy()
})
.start()
} while (false);
}
new Tween({ value: fromMoney })
.delay(0.9)
.to(1, { value: endMoney }, {
onUpdate: (target, ratio) => {
// 在每一帧更新时调用
let currentValue = Math.floor(target.value);
this.coinLabel.string = currentValue.toString();
}
}).call(() => {
// this.rewardBtn.node.active = false
// this.continueBtn.interactable = true
this.backMain()
})
.start()
}
runPoint() {
this.runingPoint = true
}
pointPos: number
update(dt: number) {
if (!this.runingPoint) return
// 更新时间
this.time += dt * this.speed;
// 使用正弦函数计算指针的位置
const x = this.amplitude * Math.sin(this.time);
this.pointPos = x
// 设置指针的位置
this.pointer.setPosition(new Vec3(x, 65, 0))
if (Math.abs(x) < 93.079) {
this.rewardDouble = 5
} else if (Math.abs(x) < 224.786) {
this.rewardDouble = 4
} else if (Math.abs(x) < 341.818) {
this.rewardDouble = 3
} else if (Math.abs(x) < 430) {
this.rewardDouble = 2
finally {
}
}
onClickRewardBtn(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (playPanelClick());
const rewardCoin = (this["settlement"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["select"]('claim', Math["abs"](this["pointPos"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
void (this["runingPoint"] = false);
void ((SdkMgr["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["requestReward"](() => {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const fromMoney = ((LocalSaveMgr["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["playerData"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["coin"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown;
void ((LocalSaveMgr["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["addCoin"](rewardCoin));
void (this["flyMoney"](fromMoney, ((LocalSaveMgr["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["playerData"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["coin"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
}
} while (false);
}
finally {
}
}));
}
} while (false);
}
finally {
}
}
onClickContinueBtn(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (runPanelAction(() => GameController["getInstance"]()["backMain"]()));
}
} while (false);
}
finally {
}
}
backMain(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (runPanelAction(() => GameController["getInstance"]()["backMain"]()));
}
} while (false);
}
finally {
}
}
protected start(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (this["time"] = 0);
}
} while (false);
}
finally {
}
}
refresh(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (this["curResult"] = (GameController["getInstance"]()["curLevel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["levelResult"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown);
void ((this["settlement"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["load"]((this["curResult"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["coinCount"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
void ((LocalSaveMgr["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["addCoin"]((this["curResult"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["coinCount"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
void (this["setLabelStrings"]([
[this["killEnemyCount"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, (this["curResult"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["enemyCount"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown],
[this["remainTimer"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, (this["curResult"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["timer"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown],
[this["coinLabel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, ((LocalSaveMgr["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["playerData"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["coin"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown],
[this["continueCoinLabel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, (this["curResult"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["coinCount"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown],
[this["coinCount"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, 0],
]));
void (this["stopScoreTweens"]());
void (this["animateValue"](this["coinCount"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, (this["curResult"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["coinCount"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
void (this["animateValue"](this["rewardTimerCoin"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, (this["curResult"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["timerCoin"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
void (this["animateValue"](this["rewardKillCoin"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, (this["curResult"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["enemyCoin"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
void (this["runPoint"]());
}
} while (false);
}
finally {
}
}
flyMoney(fromMoney: number, endMoney: number): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void ((this["rewardBtn"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["interactable"] = false);
void ((this["continueBtn"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["interactable"] = false);
void ((AudioMgr["inst"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["playOneShot"]((AssetController["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["getCoin"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
void (RewardFlight["launch"](this["flyMoneyPrefab"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["flyMoneyContent"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, ((this["rewardBtn"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["getPosition"](), (this["coinLabel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
void (RewardFlight["count"](fromMoney, endMoney, (value) => (this["coinLabel"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["string"] = value["toString"](), () => this["backMain"](), 0.9));
}
} while (false);
}
finally {
}
}
runPoint(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (this["runingPoint"] = true);
}
} while (false);
}
finally {
}
}
protected update(dt: number): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
if (!(this["runingPoint"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown))
return;
void (this["time"] += dt * (this["speed"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
void (this["pointPos"] = (this["amplitude"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown) * Math["sin"](this["time"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
void ((this["pointer"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["setPosition"](new Vec3(this["pointPos"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, 65, 0)));
void ((this["rewardCoin"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["string"] = (this["settlement"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["select"]('pointer', Math["abs"](this["pointPos"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown))["toString"]());
}
} while (false);
}
finally {
}
this.rewardCoin.string = Math.ceil((this.curResult.coinCount * this.rewardDouble)).toString()
}
protected onDestroy(): void {
this.winTween1.stop()
this.winTween2.stop()
this.winTween3.stop()
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (this["stopScoreTweens"]());
}
} while (false);
}
finally {
}
}
protected onOpen(): void {
AudioMgr.inst.playOneShot(AssetController.instance.win)
WinPanel.instance.time = 0;
WinPanel.instance.refresh()
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void ((AudioMgr["inst"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["playOneShot"]((AssetController["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["win"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
void (this["time"] = 0);
void (this["refresh"]());
}
} while (false);
}
finally {
}
}
private animateValue(label: Label, endValue: number): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const scoreTween = new Tween<{
value: number;
}>({ "value": 0 })["to"](1, { "value": endValue }, {
"onUpdate": (target) => label["string"] = Math["floor"]((target as {
value: number;
})["value"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["toString"](),
})["start"]();
void ((this["scoreTweens"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["push"](scoreTween));
}
} while (false);
}
finally {
}
}
private stopScoreTweens(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void ((this["scoreTweens"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["forEach"]((scoreTween) => scoreTween["stop"]()));
void ((this["scoreTweens"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["length"] = 0);
}
} while (false);
}
finally {
}
}
}