地图修改
This commit is contained in:
@@ -30,7 +30,7 @@ export class Monster extends ecs.Entity {
|
||||
}
|
||||
|
||||
/** 加载角色 */
|
||||
load(pos: Vec3 = Vec3.ZERO,scale:number = 1,uuid:number=1001,is_boss:boolean=false,is_call:boolean=false,lv:number=1,rogueBuffData?: any[]) {
|
||||
load(pos: Vec3 = Vec3.ZERO,scale:number = 1,uuid:number=1001,is_boss:boolean=false,is_call:boolean=false,lv:number=1,rogueBuffData?: any[], rogueHp?: number, rogueAttack?: number) {
|
||||
scale=-1
|
||||
let box_group=BoxSet.MONSTER
|
||||
console.log("mon load",uuid)
|
||||
@@ -45,7 +45,7 @@ export class Monster extends ecs.Entity {
|
||||
const collider = node.getComponent(BoxCollider2D);
|
||||
if (collider) collider.enabled = false; // 先禁用 // 延迟一帧启用碰撞体
|
||||
node.setPosition(pos)
|
||||
this.hero_init(uuid,node,scale,box_group,is_boss,is_call,lv,rogueBuffData)
|
||||
this.hero_init(uuid,node,scale,box_group,is_boss,is_call,lv,rogueBuffData,rogueHp,rogueAttack)
|
||||
oops.message.dispatchEvent("monster_load",this)
|
||||
|
||||
// 初始化移动参数
|
||||
@@ -60,7 +60,7 @@ export class Monster extends ecs.Entity {
|
||||
node.parent = scene.entityLayer!.node!
|
||||
node.setPosition(pos)
|
||||
}
|
||||
hero_init(uuid:number=1001,node:Node,scale:number=1,box_group=BoxSet.HERO,is_boss:boolean=false,is_call:boolean=false,lv:number=1,rogueBuffData?: any[]) {
|
||||
hero_init(uuid:number=1001,node:Node,scale:number=1,box_group=BoxSet.HERO,is_boss:boolean=false,is_call:boolean=false,lv:number=1,rogueBuffData?: any[], rogueHp?: number, rogueAttack?: number) {
|
||||
var hv = node.getComponent(HeroViewComp)!;
|
||||
hv.hide_info()
|
||||
// console.log("hero_init",buff)
|
||||
@@ -78,20 +78,29 @@ export class Monster extends ecs.Entity {
|
||||
hv.speed =hv.ospeed = hero.speed;
|
||||
hv.dis = hero.dis;
|
||||
|
||||
// 根据Design.md设计文档计算怪物等级属性
|
||||
const baseHp = hero.hp;
|
||||
const baseAp = hero.ap;
|
||||
|
||||
// 怪物属性随等级增长 (根据Design.md中的公式)
|
||||
// HP增长: Math.floor(baseHp * (1 + (level-1) * 0.3))
|
||||
// AP增长: Math.floor(baseAp * (1 + (level-1) * 0.25))
|
||||
const levelHp = Math.floor(baseHp * (1 + (lv - 1) * 0.5));
|
||||
const levelAp = Math.floor(baseAp * (1 + (lv - 1) * 0.1));
|
||||
|
||||
hv.hp = hv.hp_max = levelHp;
|
||||
hv.ap = levelAp;
|
||||
hv.ap_base=levelAp
|
||||
console.log(`[Monster]: 怪物${hero.name}(等级${lv}) - 基础HP:${baseHp}->等级HP:${levelHp}, 基础AP:${baseAp}->等级AP:${levelAp}`);
|
||||
// 肉鸽模式使用固定数值,否则使用等级计算
|
||||
if (rogueHp !== undefined && rogueAttack !== undefined) {
|
||||
// 肉鸽模式:使用固定数值
|
||||
hv.hp = hv.hp_max = rogueHp;
|
||||
hv.ap = rogueAttack;
|
||||
hv.ap_base = rogueAttack;
|
||||
console.log(`[Monster-Rogue]: 怪物${hero.name} - 固定HP:${rogueHp}, 固定AP:${rogueAttack}`);
|
||||
} else {
|
||||
// 普通模式:根据Design.md设计文档计算怪物等级属性
|
||||
const baseHp = hero.hp;
|
||||
const baseAp = hero.ap;
|
||||
|
||||
// 怪物属性随等级增长 (根据Design.md中的公式)
|
||||
// HP增长: Math.floor(baseHp * (1 + (level-1) * 0.3))
|
||||
// AP增长: Math.floor(baseAp * (1 + (level-1) * 0.25))
|
||||
const levelHp = Math.floor(baseHp * (1 + (lv - 1) * 0.5));
|
||||
const levelAp = Math.floor(baseAp * (1 + (lv - 1) * 0.1));
|
||||
|
||||
hv.hp = hv.hp_max = levelHp;
|
||||
hv.ap = levelAp;
|
||||
hv.ap_base=levelAp
|
||||
console.log(`[Monster]: 怪物${hero.name}(等级${lv}) - 基础HP:${baseHp}->等级HP:${levelHp}, 基础AP:${baseAp}->等级AP:${levelAp}`);
|
||||
}
|
||||
|
||||
hv.cd = hero.cd
|
||||
hv.atk_skill=hero.skills[0]
|
||||
|
||||
Reference in New Issue
Block a user