woso_javan 1 сар өмнө
parent
commit
1d35f28ef4

+ 2 - 0
assets/module_aliens/RoosterAliens.ts

@@ -104,6 +104,8 @@ export class RoosterAliens extends Component {
         await this.startGame();
         AliensGlobalInstance.instance.homeUI.active = false;
         AliensGlobalInstance.instance.battleUI.active = true;
+        UserManager.instance.reducePower(1);
+        EventDispatcher.instance.emit(GameEvent.EVENT_REFRESH_PLAYER_INFO); //进入游戏
     }
 
     private testShoot(): void {

+ 3 - 0
assets/module_aliens/Script/Enum/GameEvent.ts

@@ -8,6 +8,9 @@ export class GameEvent {
     /** 游戏暂停*/
     static readonly EVENT_GAME_PAUSE = 'EVENT_GAME_PAUSE';
 
+    /** 刷新玩家信息*/
+    static readonly EVENT_REFRESH_PLAYER_INFO = 'EVENT_REFRESH_PLAYER_INFO';
+
     /** 瞄准镜头*/
     static readonly EVENT_CAMERA_AIM = 'EVENT_CAMERA_AIM';
 

+ 18 - 0
assets/module_aliens/Script/HomeUI.ts

@@ -3,6 +3,8 @@ import { UserManager } from './Manager/UserMgr';
 import { GameUtil } from './GameUtil';
 import { tgxUIMgr } from '../../core_tgx/tgx';
 import { UI_BattleGambit } from '../../scripts/UIDef';
+import { EventDispatcher } from '../../core_tgx/easy_ui_framework/EventDispatcher';
+import { GameEvent } from './Enum/GameEvent';
 const { ccclass, property } = _decorator;
 
 @ccclass('HomeUI')
@@ -23,6 +25,14 @@ export class HomeUI extends Component {
     //剩余恢复时间
     private remainingTime: number = 0;
 
+    protected onLoad(): void {
+        this.registerListener();
+    }
+
+    protected onDestroy(): void {
+        this.unregisterListener();
+    }
+
     start() {
         const {powerRecoverTime,powerMax,powerCurrent} = UserManager.instance.userModel;
         this.powerRecoverTime = powerRecoverTime;
@@ -56,6 +66,10 @@ export class HomeUI extends Component {
         this.updatePowerUI();
     }
 
+    private registerListener() {
+        EventDispatcher.instance.on(GameEvent.EVENT_REFRESH_PLAYER_INFO,this.updatePowerUI,this);
+    }
+
     update(deltaTime: number) {
         if(!this.lbTimeCount || !this.lbPower) return;
         if (this.powerCurrent >= this.powerMax) {
@@ -80,4 +94,8 @@ export class HomeUI extends Component {
             this.lbTimeCount.string = 'Max';
         }
     }
+
+    private unregisterListener() {
+        EventDispatcher.instance.off(GameEvent.EVENT_REFRESH_PLAYER_INFO,this.updatePowerUI,this); 
+    }
 }