伤害计算 需要统一

This commit is contained in:
2025-06-25 11:10:03 +08:00
parent 6b030894ef
commit b4ed42456e
6 changed files with 4952 additions and 4660 deletions

View File

@@ -6,6 +6,8 @@ import { timedCom } from '../skills/timedCom';
import { smc } from '../common/SingletonModuleComp';
import { BuffGet } from '../skills/BuffGet';
import { HeroViewComp } from './HeroViewComp';
import { FightConComp } from '../map/FightConComp';
import { BuffAttr, DebuffAttr } from '../common/config/SkillSet';
const { ccclass, property } = _decorator;
@ccclass('BuffComp')
@@ -31,23 +33,27 @@ export class BuffComp extends Component {
buff_cd:number=0;
wind_cd:number=0;
speek_time:number=0;
HeroView:HeroViewComp=null!
FIGHTCON:FightConComp=null!
start() {
this.info_init()
}
info_init(){
this.HeroView=this.node.getComponent(HeroViewComp)
this.FIGHTCON=this.node.parent.getComponent(FightConComp)
this.top_node = this.node.getChildByName("top");
this.top_node.getChildByName("lv").active=false
// this.top_node.getChildByName("hp").active=(this.node.getComponent(HeroViewComp).fac == 1 ? true : false)
this.top_node.getChildByName("sboss").active=this.node.getComponent(HeroViewComp).is_boss
this.top_node.getChildByName("sboss").active= this.HeroView.is_boss
this.top_node.getChildByName("lv").getChildByName("lv").getComponent(Label)!.string = this.node.getComponent(HeroViewComp).lv.toFixed(0)
this.top_node.getChildByName("ihp").getChildByName("num").getComponent(Label)!.string = this.node.getComponent(HeroViewComp).hp.toFixed(0)
this.top_node.getChildByName("iap").getChildByName("num").getComponent(Label)!.string = this.node.getComponent(HeroViewComp).ap.toFixed(0)
this.top_node.getChildByName("lv").getChildByName("lv").getComponent(Label)!.string = this.HeroView.lv.toFixed(0)
this.top_node.getChildByName("ihp").getChildByName("num").getComponent(Label)!.string = this.HeroView.hp.toFixed(0)
this.top_node.getChildByName("iap").getChildByName("num").getComponent(Label)!.string = this.HeroView.ap.toFixed(0)
this.top_node.getChildByName("ihp").active=false
this.top_node.getChildByName("iap").active=false
this.vmdata_update(this.HeroView.VM_TYPE.ALL)
}
update(deltaTime: number) {
@@ -66,30 +72,74 @@ export class BuffComp extends Component {
}
hp_show(){
// if(this.node.getComponent(HeroViewComp).fac == 0) return
let hp=this.node.getComponent(HeroViewComp).hp;
let hp_max=this.node.getComponent(HeroViewComp).hp_max;
let hp=this.HeroView.hp;
let hp_max=this.HeroView.hp_max;
let hp_progress= hp/hp_max;
this.top_node.getChildByName("hp").getComponent(ProgressBar)!.progress = hp_progress;
if(this.node.getComponent(HeroViewComp).is_boss) return
if(this.HeroView.is_boss) return
this.top_node.getChildByName("hp").active = (hp == hp_max) ? false : true;
}
show_shield(val:boolean){
this.node.getChildByName("shielded").active=val
}
vmdata_update(data_type:string){
let target_key=null
let buff_key=null
if(this.HeroView.is_master) {target_key="hero";buff_key="hero"}
if(this.HeroView.is_friend) {target_key="friend";buff_key="friend"}
if(this.HeroView.is_boss) {target_key="boss";buff_key="enemy"}
if(target_key==null) return
switch(data_type){
case this.HeroView.VM_TYPE.ALL:
smc.vmdata[target_key].hp=this.HeroView.hp
smc.vmdata[target_key].hp_max=this.HeroView.hp_max
smc.vmdata[target_key].ap=this.HeroView.ap
break
case this.HeroView.VM_TYPE.HP:
smc.vmdata[target_key].hp=this.HeroView.hp
smc.vmdata[target_key].hp_max=this.HeroView.hp_max
break
case this.HeroView.VM_TYPE.OTHER:
let view_atk = 0 //临时buff
for(let i=0;i<this.HeroView.BUFF_ATKS.length;i++){
view_atk += this.HeroView.BUFF_ATKS[i].value
}
let view_deatk = 0 //临时debuff
for(let i=0;i<this.HeroView.DEBUFF_DEATKS.length;i++){
view_deatk += this.HeroView.DEBUFF_DEATKS[i].value
}
let buff=this.FIGHTCON[buff_key+"_buff"]
let debuff=this.FIGHTCON[buff_key+"_debuff"]
smc.vmdata[target_key].ap=this.HeroView.ap
smc.vmdata[target_key].equip_ap=buff.ATK+debuff.DEATK
smc.vmdata[target_key].buff_ap=view_atk
smc.vmdata[target_key].debuff_ap=view_deatk
smc.vmdata[target_key].t_ap=this.HeroView.ap*(100+buff.ATK-debuff.DEATK)/100*(100+view_atk-view_deatk)/100
break
}
}
update_info_hp(){
let ihp_node = this.top_node.getChildByName("ihp");
ihp_node.getChildByName("num").getComponent(Label)!.string = this.node.getComponent(HeroViewComp).hp.toFixed(0)
ihp_node.getChildByName("num").getComponent(Label)!.string = this.HeroView.hp.toFixed(0)
}
update_info_ap(){
let iap_node = this.top_node.getChildByName("iap");
iap_node.getChildByName("num").getComponent(Label)!.string = this.node.getComponent(HeroViewComp).ap.toFixed(0)
iap_node.getChildByName("num").getComponent(Label)!.string = this.HeroView.ap.toFixed(0)
}
update_info_lv(){
let lv_node = this.top_node.getChildByName("lv");
lv_node.getChildByName("lv").getComponent(Label)!.string = this.node.getComponent(HeroViewComp).lv.toFixed(0)
lv_node.getChildByName("lv").getComponent(Label)!.string = this.HeroView.lv.toFixed(0)
}
show_wind(t:number=1){