feat(怪物系统): 添加游戏时间参数影响怪物属性计算

在怪物加载和生成逻辑中添加gameTime参数,用于动态成长系统根据游戏时间调整怪物属性
This commit is contained in:
walkpan
2026-01-01 23:39:22 +08:00
parent 5bef0bebbb
commit 95f216e6e7
2 changed files with 12 additions and 6 deletions

View File

@@ -35,7 +35,7 @@ export class Monster extends ecs.Entity {
}
/** 加载角色 */
load(pos: Vec3 = Vec3.ZERO,scale:number = 1,uuid:number=1001,lv:number=1,monType:MonType=MonType.NORMAL, buffs: BuffConf[] = [],is_call=false, lane: number = 0, spawnOrder: number = 0) {
load(pos: Vec3 = Vec3.ZERO,scale:number = 1,uuid:number=1001,lv:number=1,monType:MonType=MonType.NORMAL, buffs: BuffConf[] = [],is_call=false, lane: number = 0, spawnOrder: number = 0, gameTime: number = 0) {
scale=-1
let size=1
var scene = smc.map.MapView.scene;
@@ -71,7 +71,7 @@ export class Monster extends ecs.Entity {
model.is_kalami = true;
}
// 根据等级和类型获取怪物属性(使用新的动态成长系统)
const {hp, mp, ap, def, speed} = getMonAttr(lv, uuid, monType);
const {hp, mp, ap, def, speed} = getMonAttr(lv, uuid, monType, gameTime);
// 初始化属性数组
model.Attrs = getAttrs();
model.hp = model.Attrs[Attrs.HP_MAX] = hp;

View File

@@ -32,6 +32,8 @@ export class MissionMonCompComp extends CCComp {
private eventProcessed: boolean = false; // 事件是否已处理
/** 全局生成顺序计数器,用于层级管理 */
private globalSpawnOrder: number = 0;
/** 游戏进行时间(秒) */
private gameTime: number = 0;
onLoad(){
@@ -56,6 +58,9 @@ export class MissionMonCompComp extends CCComp {
protected update(dt: number): void {
if(!smc.mission.play||smc.mission.pause) return
// 累加游戏时间
this.gameTime += dt;
// 处理随机事件
@@ -167,7 +172,8 @@ export class MissionMonCompComp extends CCComp {
monsterData.position,
monsterData.type,
monsterData.level,
monsterData.buffs
monsterData.buffs,
this.gameTime
);
// 增加召唤计数
this.spawnCount++;
@@ -180,8 +186,8 @@ export class MissionMonCompComp extends CCComp {
i: number = 0,
monType: number = 0,
lv: number = 1,
buffs: BuffConf[] = []
buffs: BuffConf[] = [],
gameTime: number = 0
) {
let mon = ecs.getEntity<Monster>(Monster);
let scale = -1;
@@ -199,7 +205,7 @@ export class MissionMonCompComp extends CCComp {
this.globalSpawnOrder = (this.globalSpawnOrder + 1) % 999; // 防止无限增长在999处循环重置
// 生成怪物,传递线路和生成顺序
mon.load(pos, scale, uuid, lv, monType, buffs, false, lane, this.globalSpawnOrder);
mon.load(pos, scale, uuid, lv, monType, buffs, false, lane, this.globalSpawnOrder, gameTime);
}