PC-20230316NUNE\Administrator 1b4db3c980 提交代码
2024-01-17 18:36:59 +08:00

76 lines
2.3 KiB
TypeScript

import { _decorator } from "cc";
import { TB, TbGEntity } from "../../config/data/schema";
import GNormalModeBase, { GNormalModePlayerEnum } from "./default/GNormalModeBase";
import { TD, app } from "../../App";
import GOnHookData from "../../data/GOnHookData";
import PlayerTacticalData from "../../data/PlayerTacticalData";
import PlayerPetData from "../../data/PlayerPetData";
import { GUI } from "../../ui/UIConfig";
import GBattleData from "../../data/GBattleData";
import GAttributeData from "../base/values/GAttributeData";
import JNFrameTime from "../../../../extensions/ngame/assets/ngame/sync/frame/game/time/JNFrameTime";
const { ccclass, property } = _decorator;
/**
* 副本(默认) 模式
*/
@ccclass('GDungeonMode')
export default class GDungeonMode extends GNormalModeBase<{},TbGEntity.TDungeon>{
onSyncInitSuccess(){
if(!this.data) return;
console.log("初始化 GDungeonMode 模式",this.data);
super.onSyncInitSuccess();
this.onUpdateWorld();
//生成玩家宠物
this.onGenPlayerPet();
//生成Boss
this.onGenBoss();
}
//更新地图
onUpdateWorld(){
let info = TD.TbGOnHookMaps.get(GOnHookData.getIns().info.onHookMap);
this.setWorldMap(info.mapId);
}
onGenPlayerPet(){
//获取玩家阵容
let infos = PlayerTacticalData.getIns().getTacticalInfo();
infos.forEach((petId,index) => {
if(!petId) return;
//获取要生成的宠物
let info = PlayerPetData.getIns().petIdQueryPetInfo(petId);
if(!info){
app.layer.Open(GUI.Tips,{text:"未拥有当前上阵的宠物"});
return;
}
let role = this.onGenRole(GNormalModePlayerEnum.PLAYER,index + 1,TD.TbGRole.get(info.petTbId));
//添加宠物属性
role.onEffectiveValue(GBattleData.getIns().data.getPetAttribute(petId));
})
}
onGenBoss(){
let enemy = this.onGenRole(GNormalModePlayerEnum.ENEMY,5,TD.TbGRole.get(this.data.boss));
enemy.onEffectiveValue(GAttributeData.TAttributeValue(this.data.attributes))
}
//战斗结束
onBattleEnd(win:GNormalModePlayerEnum){
//结束游戏
JNFrameTime.getInstance().setTimeout(() => {
this.Close();
},3000)
}
}