|
|
@@ -4,6 +4,7 @@ import { SaveDataManager } from '../LevelSystem/SaveDataManager';
|
|
|
import EventBus, { GameEvents } from '../Core/EventBus';
|
|
|
import { Audio } from '../AudioManager/AudioManager';
|
|
|
import { AdManager } from '../Ads/AdManager';
|
|
|
+import { NavBarController } from './NavBarController';
|
|
|
const { ccclass, property } = _decorator;
|
|
|
|
|
|
@ccclass('TopBarController')
|
|
|
@@ -56,8 +57,32 @@ export class TopBarController extends Component {
|
|
|
/* 绑定按钮事件 */
|
|
|
//看广告才能获取的货币
|
|
|
private bindButtons() {
|
|
|
- this.moneyAddBtn?.on(Button.EventType.CLICK, () => this.addMoney(100), this);
|
|
|
- this.diamondAddBtn?.on(Button.EventType.CLICK, () => this.addDiamonds(20), this);
|
|
|
+ // 顶部加号:直接跳转到商店界面;如果已在商店界面则不做任何反馈
|
|
|
+ this.moneyAddBtn?.on(Button.EventType.CLICK, this.onPlusClick, this);
|
|
|
+ this.diamondAddBtn?.on(Button.EventType.CLICK, this.onPlusClick, this);
|
|
|
+ }
|
|
|
+
|
|
|
+ private onPlusClick() {
|
|
|
+ this.openShopIfNotAlready();
|
|
|
+ }
|
|
|
+
|
|
|
+ private openShopIfNotAlready() {
|
|
|
+ const navBarNode = find('Canvas/NavBar');
|
|
|
+ if (!navBarNode) {
|
|
|
+ console.warn('[TopBarController] 未找到 Canvas/NavBar 节点,无法打开商店');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const navBar = navBarNode.getComponent(NavBarController);
|
|
|
+ if (!navBar) {
|
|
|
+ console.warn('[TopBarController] NavBarController 未挂载,无法打开商店');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 如果已经是商店面板,什么都不做
|
|
|
+ if (navBar.isShopPanelActive()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 直接打开商店面板(忽略按钮锁定状态)
|
|
|
+ navBar.openShopPanel();
|
|
|
}
|
|
|
|
|
|
/* ================= 业务逻辑 ================= */
|