添加了 英雄专门处理 装备加成的文件,接下来 去掉原先的光环类文件 FightCon

This commit is contained in:
2025-07-22 16:16:36 +08:00
parent 508c3b570a
commit e45ebd524b
24 changed files with 557 additions and 2108 deletions

View File

@@ -53,10 +53,12 @@ export class HeroViewComp extends CCComp {
hp: number = 100; /** 血量 */
hp_max: number = 100; /** 最大血量 */
buff_hp:number=0;
hp_base:number=0;
pwt:Timer = new Timer(1); //计时器
ap: number = 10; /**攻击力 */
buff_ap:number=0;
ap_base:number=0;
// atk_speed: number = 1;
cd: number = 1.3; /**攻击速度 攻击间隔 */
dis: number = 80;
@@ -118,7 +120,6 @@ export class HeroViewComp extends CCComp {
this.FIGHTCON=this.node.parent.getComponent(FightConComp);
//console.log("[HeroViewComp]:hero view comp ",this.FIGHTCON)
this.on(GameEvent.ChangeATK_EQUIP_SPECIAL_ATTR,this.change_atk,this)
this.on(GameEvent.UpdateHP,this.update_hp,this)
this.on(GameEvent.EXPUP,this.exp_up,this)
this.on(GameEvent.UseEnhancement,this.use_enhancement,this)
const collider = this.node.getComponent(BoxCollider2D);
@@ -218,11 +219,14 @@ export class HeroViewComp extends CCComp {
add_ap(ap: number,is_num:boolean=true){
//console.log("[HeroViewComp]:add_ap add:",ap,this.ap)
if(is_num){
this.ap += Math.floor(ap);
this.ap_base += Math.floor(ap);
}else{
this.ap += Math.floor(ap/100*this.ap);
this.buff_ap += Math.floor(ap/100*this.ap);
}
this.BUFFCOMP.tooltip(TooltipTypes.apup,ap.toFixed(0));
let diff=Math.floor(this.ap_base*(100+this.buff_ap)/100)-this.ap
this.ap = Math.floor(this.ap_base*(100+this.buff_ap)/100)
this.BUFFCOMP.tooltip(TooltipTypes.apup,diff.toFixed(0));
if(this.is_master) {
this.BUFFCOMP.vmdata_update();
@@ -233,35 +237,37 @@ export class HeroViewComp extends CCComp {
de_ap(ap: number,is_num:boolean=true){
//console.log("[HeroViewComp]:de_ap de:",ap,this.ap)
if(is_num){
this.ap -= Math.floor(ap);
this.ap_base -= Math.floor(ap);
}else{
this.ap -= Math.floor(ap/100*this.ap);
this.buff_ap -= Math.floor(ap/100*this.ap);
}
let diff=Math.floor(this.ap_base*(100+this.buff_ap)/100)-this.ap
this.ap = Math.floor(this.ap_base*(100+this.buff_ap)/100)
this.BUFFCOMP.tooltip(TooltipTypes.apup,diff.toFixed(0));
if(this.is_master) this.BUFFCOMP.vmdata_update()
}
update_hp(e:GameEvent,data:any){
//console.log("[HeroViewComp]:update_hp",data)
if(this.is_master===data.is_master&&this.fac===FacSet.HERO){
this.buff_hp += data.hp
if(data.hp > 0){
this.hp += this.hp_max*data.hp/100
if(this.hp > this.hp_max*(100+this.buff_hp)/100){
this.hp=this.hp_max*(100+this.buff_hp)/100
}
}
}
}
add_hp_max(hp: number=0,is_num:boolean=true){
this.hp_max += Math.floor(hp) ;
this.hp += Math.floor(hp*(100+this.buff_hp)/100) ;
if(this.is_master) this.BUFFCOMP.vmdata_update(true)
this.BUFFCOMP.tooltip(TooltipTypes.hpup,hp.toFixed(0));
add_hp_max(hp: number=0,is_num:boolean=false){
if(is_num){
this.hp_base += Math.floor(hp) ;
}else{
this.buff_hp+=hp
}
let diff=Math.floor(this.hp_base*(100+this.buff_hp)/100)-this.hp_max
this.hp_max =Math.floor(this.hp_base*(100+this.buff_hp)/100)
this.hp+=diff
if(this.is_master) this.BUFFCOMP.vmdata_update(true)
this.BUFFCOMP.tooltip(TooltipTypes.hpup,diff.toFixed(0));
}
de_hp_max(hp: number=0,is_num:boolean=true){ //最大值 只存在数值添加, 比例通过buff_hp处理
//console.log("[HeroViewComp]:de_hp_max de:",hp,this.hp_max)
this.hp_max -= Math.floor(hp) ;
this.hp_base -= Math.floor(hp) ;
let diff=Math.floor(this.hp_base*(100+this.buff_hp)/100)-this.hp_max
this.hp_max =Math.floor(this.hp_base*(100+this.buff_hp)/100)
this.hp+=diff
if(this.is_master) this.BUFFCOMP.vmdata_update(true)
}
@@ -332,13 +338,8 @@ export class HeroViewComp extends CCComp {
if(this.fac==FacSet.MON){
let exp=getExpDrops(HeroInfo[this.hero_uuid].quality,this.lv)
let stone=getStoneDrops(HeroInfo[this.hero_uuid].quality,this.lv)
oops.message.dispatchEvent(GameEvent.EXPUP,{exp:exp})
if(stone.type=="equip"){
oops.message.dispatchEvent(GameEvent.EQUIP_STONE_UP,stone.count)
}else{
oops.message.dispatchEvent(GameEvent.SKILL_STONE_UP,stone.count)
}
}
if(this.fac==FacSet.HERO){
@@ -659,12 +660,12 @@ export class HeroViewComp extends CCComp {
}
to_update(){
if(!this.is_master) return
// oops.message.dispatchEvent(GameEvent.HeroLvUp,{lv:this.lv})
smc.vmdata.hero.exp = smc.vmdata.hero.exp-smc.vmdata.hero.next_exp
smc.vmdata.hero.lv = smc.vmdata.hero.lv+1
smc.vmdata.hero.next_exp=getUpExp(smc.vmdata.hero.lv)
oops.message.dispatchEvent(GameEvent.HeroLvUp,{lv:smc.vmdata.hero.lv})
this.BUFFCOMP.lv_up()
this.BUFFCOMP.tooltip(TooltipTypes.lvup)
//@todo 需要添加 升级动画