| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 | 
							- import { _decorator,  director, Label, log, PhysicsSystem, } from 'cc';
 
- import { ModulerBase } from '../../GameFrameWork/ModulerBase';
 
- import { resMgr } from '../../../Frames/ResourcesMgr';
 
- import { GameInfo } from '../../../GameInfo';
 
- import { localDt } from '../../../Frames/LocalDt';
 
- import { GameMgr } from '../../GameFrameWork/GameMgr';
 
- import { EnemyMgr } from './EnemyMgr';
 
- import { MyTower } from './MyTower';
 
- import { Bottom } from './Bottom';
 
- import { EnemyTower } from './EnemyTower';
 
- const { ccclass, property } = _decorator;
 
- @ccclass('GameOver')
 
- export class GameOver extends ModulerBase {
 
-     //击杀奖励
 
-     KillRewardConfig = [
 
-         { min: 0, max: 5, reward: 100 },
 
-         { min: 6, max: 10, reward: 200 },
 
-         { min: 11, max: 15, reward: 300 },
 
-         { min: 16, max: 20, reward: 400 },
 
-         { min: 21, max: 25, reward: 500 },
 
-         { min: 26, max: 30, reward: 600 },
 
-         { min: 31, max: Infinity, reward: 700 },
 
-     ]
 
-     //生命奖励
 
-     LifeRewardConfig = [
 
-         { min: 0, max: 20, reward: 100 },
 
-         { min: 21, max: 40, reward: 200 },
 
-         { min: 41, max: 60, reward: 300 },
 
-         { min: 61, max: 80, reward: 400 },
 
-         { min: 81, max: 100, reward: 500 },
 
-     ]
 
-     //通关奖励
 
-     newresultRewardConfig = [
 
-         { min: 1, max: 5, reward: 100 },
 
-         { min: 6, max: 10, reward: 150 },
 
-         { min: 11, max: 15, reward: 200 },
 
-         { min: 16, max: 20, reward: 250 },
 
-         { min: 21, max: 25, reward: 300 },
 
-         { min: 26, max: Infinity, reward: 350 },
 
-     ]
 
-     private xp: number = null;
 
-     private totalGold: number = null;
 
-     private totalDia: number = null;
 
-     protected onEnable(): void {
 
-         this.config();
 
-     }
 
-     protected onStart(): void {
 
-         this.onBtnClick("_btnLeft", this._onBtnBack, this);
 
-         this.onBtnClick("_btnRight", this._onBtnRight, this);
 
-         director.preloadScene("StartScene")
 
-     }
 
-     config() {
 
-         this.getSprite("_gameOverUITitle").spriteFrame =
 
-             GameInfo.Instance.getOverWin() ?
 
-                 resMgr.getSpriteFrame("GameWin") :
 
-                 resMgr.getSpriteFrame("GameOver");
 
-         this.getNode("_btnRight").getComponentInChildren(Label).string =
 
-             GameInfo.Instance.getOverWin() ? "下一关" : "重新开始";
 
-         this.getLabel("_lifePercent").string = `${GameInfo.Instance.getLifePecent()}%`;
 
-         this.getLabel("_killCount").string = `${GameInfo.Instance.getKillCount()}`;
 
-         const kill: number = this.calculateReward(GameInfo.Instance.getKillCount(), this.KillRewardConfig);
 
-         const life: number = this.calculateReward(GameInfo.Instance.getLifePecent(), this.LifeRewardConfig);
 
-         const stageClear: number = this.calculateReward(GameInfo.Instance.getCurlv(), this.newresultRewardConfig);
 
-         this.xp = GameInfo.Instance.getCurlv() * 30;
 
-         this.totalGold = kill + life + stageClear;
 
-         const lifeDia: number = Math.floor(life * 0.08);
 
-         const stageClearDia: number = Math.floor(stageClear * 0.07);
 
-         this.totalDia = lifeDia + stageClearDia;
 
-         this.getLabel("_kill").string = `${kill}`;
 
-         this.getLabel("_life").string = `${life}`;
 
-         this.getLabel("_stageClear").string = `${stageClear}`;
 
-         this.getLabel("_total").string = `${this.totalGold}`;
 
-         this.getLabel("_xp").string = `${this.xp}`;
 
-         this.getLabel("_lifeDia").string = `${lifeDia}`;
 
-         this.getLabel("_stageClearDia").string = `${stageClearDia}`;
 
-         this.getLabel("_totalDia").string = `${this.totalDia}`;
 
-     }
 
-     private _onBtnBack() {
 
-         director.resume()
 
-         director.purgeDirector();
 
-         this.addReward();
 
-         this.clearDt();
 
-         this.hide(false);
 
-         director.loadScene("StartScene");
 
-     }
 
-     private _onBtnRight() {
 
-         director.resume();
 
-         if (GameInfo.Instance.getOverWin()) {
 
-             //初始化场景
 
-             this._initGameScene();
 
-             console.log("下一关")
 
-         } else {
 
-             //director.loadScene("GameScene")
 
-         }
 
-     }
 
-     //计算奖励
 
-     private calculateReward(lifeReward: number, rewardConfig: any) {
 
-         const matchRule = rewardConfig.find(rule =>
 
-             lifeReward >= rule.min && lifeReward <= rule.max
 
-         )
 
-         return matchRule ? matchRule.reward : 0;
 
-     }
 
-     //清除数据
 
-     private clearDt() {
 
-         GameInfo.Instance.setKillCount(0);
 
-         GameInfo.Instance.setLifePecent(0);
 
-         GameInfo.Instance.setOverWin(false);
 
-         GameInfo.Instance.setIsGameOver(false);
 
-     }
 
-     private addReward() {
 
-         const map: Map<string, number> = new Map();
 
-         map.set("GameOverRewardGold", this.totalGold + localDt.getGold());
 
-         map.set("GameOverRewardDia", this.totalDia + GameInfo.Instance.getDiamond());
 
-         map.set("Xp", this.xp + GameInfo.Instance.getCurGradeExp());
 
-         if (GameInfo.Instance.getOverWin()) {
 
-             GameInfo.Instance.setCurLv(GameInfo.Instance.getCurlv() + 1);
 
-             map.set("CurLv", GameInfo.Instance.getCurlv());
 
-         }
 
-         GameInfo.Instance.setGameOverReward(map);
 
-         //GameInfo.Instance.setGold(this.totalGold + GameInfo.Instance.getGold());
 
-         localDt.saveGold(this.totalGold + localDt.getGold());
 
-         GameInfo.Instance.setDiamond(this.totalDia + GameInfo.Instance.getDiamond());
 
-         localDt.saveDiamond(GameInfo.Instance.getDiamond())
 
-     }
 
-     //初始化场景 重置数据
 
-     private _initGameScene() {
 
-         this.addReward();
 
-         this.clearDt();
 
-         GameMgr.Instance.getModuler(EnemyMgr).node.removeAllChildren();
 
-         this.node.parent.getChildByPath("Road/Roles").removeAllChildren();
 
-         this.node.parent.getChildByPath("BulletLayer").removeAllChildren();
 
-         GameMgr.Instance.getModuler(EnemyMgr).init();
 
-         this.node.parent.getComponentInChildren(EnemyTower).initData();
 
-         this.node.parent.getComponentInChildren(MyTower).initData();
 
-         GameMgr.Instance.getModuler(Bottom).initData();
 
-         //隐藏
 
-         this.hide(false);
 
-     }
 
- }
 
 
  |