基础主将添加+ 修复第一次伤害计算为穿刺伤害bug

This commit is contained in:
panfudan
2025-07-06 23:58:10 +08:00
parent 9ebf620ed8
commit f7c231de00
60 changed files with 9355 additions and 414 deletions

View File

@@ -11,6 +11,7 @@ import { SkillConComp } from "./SkillConComp";
import { FriendModelComp } from "./FriendModel";
import { MasterModelComp } from "./MasterModel";
import { GameEvent } from "../common/config/GameEvent";
import { BuffAttr } from "../common/config/SkillSet";
/** 角色实体 */
@ecs.register(`Hero`)
@@ -39,7 +40,6 @@ export class Hero extends ecs.Entity {
}
hart_load(uuid:number=5004) {
console.log("主体加载")
let box_group=BoxSet.HERO
var path = "game/heros/"+HeroInfo[uuid].path;
var prefab: Prefab = oops.res.get(path, Prefab)!;
var node = instantiate(prefab);
@@ -60,7 +60,6 @@ export class Hero extends ecs.Entity {
load(pos: Vec3 = Vec3.ZERO,scale:number = 1,uuid:number=1001,info:any={ap:0,hp:0,lv:1,crit:0,crit_d:0,dod:0,dod_no:false,crit_no:false},fight_pos:number=1) {
// console.log("英雄加载:",uuid,pos,scale,info)
scale = 1
let box_group=BoxSet.HERO
var path = "game/heros/"+HeroInfo[uuid].path;
var prefab: Prefab = oops.res.get(path, Prefab)!;
var node = instantiate(prefab);
@@ -93,11 +92,49 @@ export class Hero extends ecs.Entity {
hv.cd = hero.cd
hv.hp= hv.hp_max =hero.hp+info.hp
hv.ap = hero.ap+info.ap;
hv.crit=hero.crit+info.crit
hv.crit_d=hero.crit_d+info.crit_d
hv.dod=hero.dod+info.dod
hv.dod_no=info.dod_no
hv.crit_no=info.crit_no
hero.buff.forEach((buff:any)=>{
switch(buff.buff_type){
case BuffAttr.CRITICAL:
hv.crit=buff.value
break
case BuffAttr.CRITICAL_DMG:
hv.crit_d=buff.value
break
case BuffAttr.DODGE:
hv.dod=buff.value
break
case BuffAttr.DODGE_NO:
hv.dod_no=buff.value
break
case BuffAttr.CRITICAL_NO:
hv.crit_no=buff.value
break
case BuffAttr.BURN_COUNT:
hv.burn_count=buff.value
break
case BuffAttr.PUNCTURE:
hv.puncture=buff.value
break
case BuffAttr.PUNCTURE_DMG:
hv.puncture_damage=buff.value
break
case BuffAttr.WFUNY:
hv.wfuny=buff.value
break
case BuffAttr.ATK_CD:
hv.cd=hv.cd*(100-buff.value)/100
break
case BuffAttr.HP:
hv.hp_max=hv.hp_max*(100+buff.value)/100
break
case BuffAttr.DEF:
hv.def=buff.value
break
case BuffAttr.ATK:
hv.ap=hv.ap*(100+buff.value)/100
break
}
})
hv.atk_skill=hero.skills[0]
return hv
}

View File

@@ -65,12 +65,15 @@ export class HeroViewComp extends CCComp {
puncture_damage:number=0; //后伤害加成
def: number = 0; //防御
vun: number = 0; //易伤
burn_count:number=0; //易伤次数
dod: number = 10; //闪避率
dod: number = 0; //闪避率
dod_no:boolean=false;
crit:number=0; //暴击率
crit_no:boolean=false; //暴击免疫
crit_d:number=0; //暴击伤害
wfuny:number=0; //风怒概率
shield:number = 0; //护盾,免伤1次减1
speed: number = 100; /** 角色移动速度 */

View File

@@ -8,6 +8,7 @@ import { HeroInfo } from "../common/config/heroSet";
import { MonModelComp } from "./MonModelComp";
import { BattleMoveComp } from "../common/ecs/position/BattleMoveComp";
import { SkillConComp } from "./SkillConComp";
import { BuffAttr } from "../common/config/SkillSet";
/** 角色实体 */
@ecs.register(`Monster`)
export class Monster extends ecs.Entity {
@@ -70,13 +71,50 @@ export class Monster extends ecs.Entity {
hv.hp= hv.hp_max =hero.hp;
hv.ap = hero.ap;
hv.cd = hero.cd
hv.crit=hero.crit
hv.crit_d=hero.crit_d
hv.dod=hero.dod
hv.dod_no=hero.dod_no
hv.crit_no=hero.crit_no
hv.atk_skill=hero.skills[0]
hero.buff.forEach((buff:any)=>{
switch(buff.buff_type){
case BuffAttr.CRITICAL:
hv.crit=buff.value
break
case BuffAttr.CRITICAL_DMG:
hv.crit_d=buff.value
break
case BuffAttr.DODGE:
hv.dod=buff.value
break
case BuffAttr.DODGE_NO:
hv.dod_no=buff.value
break
case BuffAttr.CRITICAL_NO:
hv.crit_no=buff.value
break
case BuffAttr.BURN_COUNT:
hv.burn_count=buff.value
break
case BuffAttr.PUNCTURE:
hv.puncture=buff.value
break
case BuffAttr.PUNCTURE_DMG:
hv.puncture_damage=buff.value
break
case BuffAttr.WFUNY:
hv.wfuny=buff.value
break
case BuffAttr.ATK_CD:
hv.cd=hv.cd*(100-buff.value)/100
break
case BuffAttr.HP:
hv.hp_max=hv.hp_max*(100+buff.value)/100
break
case BuffAttr.DEF:
hv.def=buff.value
break
case BuffAttr.ATK:
hv.ap=hv.ap*(100+buff.value)/100
break
}
})
this.add(hv);
}