|
@@ -3,7 +3,6 @@ import { GameEvent } from '../Enum/GameEvent';
|
|
|
import { EventDispatcher } from 'db://assets/core_tgx/easy_ui_framework/EventDispatcher';
|
|
|
import { GlobalConfig } from 'db://assets/start/Config/GlobalConfig';
|
|
|
import { AdvertMgr } from 'db://assets/core_tgx/base/ad/AdvertMgr';
|
|
|
-import { tgxUIAlert } from 'db://assets/core_tgx/tgx';
|
|
|
import { StormSunderAudioMgr } from '../Manager/StormSunderAudioMgr';
|
|
|
import { AttributeBonusMgr, BonusType } from '../Manager/AttributeBonusMgr';
|
|
|
const { ccclass, property } = _decorator;
|
|
@@ -22,6 +21,7 @@ export class ButtonComponent extends Component {
|
|
|
this.updateBtView(BonusType.ATTACK);
|
|
|
this.updateBtView(BonusType.SPEED);
|
|
|
this.updateBtView(BonusType.EXP);
|
|
|
+ this.onUpdateBtnsStatus();
|
|
|
}
|
|
|
|
|
|
private addUIEvent(): void {
|
|
@@ -31,8 +31,40 @@ export class ButtonComponent extends Component {
|
|
|
}
|
|
|
|
|
|
private onClickHandler(type: BonusType): void {
|
|
|
- console.log("onClickHandler", type);
|
|
|
StormSunderAudioMgr.playOneShot(StormSunderAudioMgr.getMusicIdName(2), 1.0);
|
|
|
+ const { userModel } = AttributeBonusMgr.inst;
|
|
|
+ const bonus = userModel.bonusData[type];
|
|
|
+
|
|
|
+ // 检查金额是否足够
|
|
|
+ if (!AttributeBonusMgr.inst.checkMoneyEnough(bonus.upgradeCost)) {
|
|
|
+ console.log("金额不足");
|
|
|
+ //DOTO 看广告
|
|
|
+ this.updateBtStatus(type);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 扣除金额
|
|
|
+ if (!AttributeBonusMgr.inst.consumeMoney(bonus.upgradeCost)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 升级逻辑
|
|
|
+ bonus.level++;
|
|
|
+ // 更新升级消耗
|
|
|
+ bonus.upgradeCost += AttributeBonusMgr.inst.getUpgradeCost(type);
|
|
|
+ AttributeBonusMgr.inst.updateBonus(type);
|
|
|
+
|
|
|
+ // 更新按钮状态
|
|
|
+ this.updateBtView(type);
|
|
|
+ this.onUpdateBtnsStatus();
|
|
|
+
|
|
|
+ EventDispatcher.instance.emit(GameEvent.EVENT_UPDATE_USER_MONEY);
|
|
|
+ }
|
|
|
+
|
|
|
+ private onUpdateBtnsStatus(): void {
|
|
|
+ this.updateBtStatus(BonusType.ATTACK);
|
|
|
+ this.updateBtStatus(BonusType.SPEED);
|
|
|
+ this.updateBtStatus(BonusType.EXP);
|
|
|
}
|
|
|
|
|
|
private updateBtView(type: BonusType, max?: boolean): void {
|
|
@@ -56,6 +88,21 @@ export class ButtonComponent extends Component {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private updateBtStatus(type: BonusType): void {
|
|
|
+ const { userModel } = AttributeBonusMgr.inst;
|
|
|
+ const bonus = userModel.bonusData[type];
|
|
|
+ const buttonNode = this.getButtonNodeByType(type);
|
|
|
+ const usedMoney = buttonNode.getChildByName('UsedMoney')!;
|
|
|
+ const usedAd = buttonNode.getChildByName('UsedAd')!;
|
|
|
+
|
|
|
+ // 检查金额是否足够
|
|
|
+ const canAfford = AttributeBonusMgr.inst.checkMoneyEnough(bonus.upgradeCost);
|
|
|
+
|
|
|
+ // 金额不够显示广告图标,够则显示金额
|
|
|
+ usedMoney.active = canAfford;
|
|
|
+ usedAd.active = !canAfford;
|
|
|
+ }
|
|
|
+
|
|
|
private getButtonNodeByType(type: BonusType): Node {
|
|
|
return {
|
|
|
[BonusType.ATTACK]: this.btnAttack.node,
|