伤害计算 需要统一
This commit is contained in:
@@ -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){
|
||||
|
||||
Reference in New Issue
Block a user