英雄 简单优化
This commit is contained in:
@@ -166,23 +166,7 @@ export class HeroViewComp extends CCComp {
|
||||
DEBUFF_COUNT:number=0; //debuff 持续次数
|
||||
DEBUFF_UP:number=0; //debuff 概率提升
|
||||
|
||||
TALENT:any={
|
||||
[BuffAttr.ATK]:0,
|
||||
[BuffAttr.CRITICAL]:0,
|
||||
[BuffAttr.CRITICAL_DMG]:0,
|
||||
[BuffAttr.DODGE]:0,
|
||||
[BuffAttr.DEBUFF_COUNT]:0,
|
||||
[BuffAttr.HP]:0,
|
||||
[BuffAttr.DEF]:0,
|
||||
[BuffAttr.PUNCTURE]:0,
|
||||
[BuffAttr.ATK_CD]:0,
|
||||
[BuffAttr.SKILL_CD]:0,
|
||||
[BuffAttr.FROST_RATIO]:0,
|
||||
[BuffAttr.KNOCKBACK]:0,
|
||||
[BuffAttr.STUN_RATTO]:0,
|
||||
[BuffAttr.REFLECT]:0,
|
||||
[BuffAttr.LIFESTEAL]:0,
|
||||
}
|
||||
|
||||
|
||||
|
||||
private damageQueue: Array<{
|
||||
@@ -212,7 +196,7 @@ export class HeroViewComp extends CCComp {
|
||||
start () {
|
||||
this.as.idle()
|
||||
this.BUFFCOMP=this.node.getComponent(BuffComp);
|
||||
// this.update_vmdata()
|
||||
|
||||
/** 方向 */
|
||||
this.node.setScale(this.scale,1);
|
||||
this.node.getChildByName("top").setScale(this.scale,1);
|
||||
@@ -223,9 +207,7 @@ export class HeroViewComp extends CCComp {
|
||||
this.node.getChildByName("top").getChildByName("hp").active = true;
|
||||
|
||||
}
|
||||
update_vmdata(){
|
||||
if(this.is_master) this.BUFFCOMP.vmdata_update()
|
||||
}
|
||||
|
||||
update(dt: number){
|
||||
if(!smc.mission.play||smc.mission.pause) return
|
||||
// if(this.is_dead) {
|
||||
@@ -233,9 +215,7 @@ export class HeroViewComp extends CCComp {
|
||||
// return
|
||||
// }
|
||||
|
||||
if(this.timer.update(dt)){
|
||||
// this.add_ap(10)
|
||||
};
|
||||
|
||||
if(this.DEBUFF_FROST > 0){
|
||||
this.DEBUFF_FROST -=dt;
|
||||
}
|
||||
@@ -282,80 +262,80 @@ export class HeroViewComp extends CCComp {
|
||||
change_wfuny(wfuny: number){
|
||||
this.wfuny+=wfuny
|
||||
if(this.wfuny<0) this.wfuny=0
|
||||
// this.update_vmdata()
|
||||
|
||||
}
|
||||
change_puncture(puncture: number){
|
||||
this.puncture+=puncture
|
||||
if(this.puncture<1) this.puncture=1
|
||||
// this.update_vmdata()
|
||||
|
||||
}
|
||||
change_puncture_damage(puncture_damage: number){
|
||||
this.puncture_damage+=puncture_damage
|
||||
if(this.puncture_damage<0) this.puncture_damage=0
|
||||
if(this.puncture_damage>80) this.puncture_damage=80
|
||||
// this.update_vmdata()
|
||||
|
||||
}
|
||||
change_dodge(dodge: number){
|
||||
this.dod+=dodge
|
||||
if(this.dod<0) this.dod=0
|
||||
if(this.dod>90) this.dod=90
|
||||
// this.update_vmdata()
|
||||
|
||||
}
|
||||
change_frost_ratto(frost_ratto: number){
|
||||
this.frost_ratto+=frost_ratto
|
||||
if(this.frost_ratto<0) this.frost_ratto=0
|
||||
if(this.frost_ratto>90) this.frost_ratto=90
|
||||
// this.update_vmdata()
|
||||
|
||||
}
|
||||
|
||||
change_knockback(knockback: number){
|
||||
this.knockback+=knockback
|
||||
if(this.knockback<0) this.knockback=0
|
||||
// this.update_vmdata()
|
||||
|
||||
}
|
||||
|
||||
change_stun_ratto(stun_ratto: number){
|
||||
this.stun_ratto+=stun_ratto
|
||||
if(this.stun_ratto<0) this.stun_ratto=0
|
||||
// this.update_vmdata()
|
||||
|
||||
}
|
||||
|
||||
change_def(def: number){
|
||||
this.def+=def
|
||||
if(this.def>90) this.def=90
|
||||
if(this.def<0) this.def=0
|
||||
// this.update_vmdata()
|
||||
|
||||
// this.BUFFCOMP.tooltip(TooltipTypes.defup,def.toFixed(0));
|
||||
}
|
||||
change_crit(crit: number){
|
||||
this.crit+=crit
|
||||
if(this.crit<0) this.crit=0
|
||||
// this.update_vmdata()
|
||||
|
||||
}
|
||||
change_crit_d(crit_d: number){
|
||||
this.crit_d+=crit_d
|
||||
if(this.crit_d<0) this.crit_d=0
|
||||
// this.update_vmdata()
|
||||
|
||||
}
|
||||
change_reflect(reflect: number){
|
||||
this.reflect+=reflect
|
||||
if(this.reflect<0) this.reflect=0
|
||||
// this.update_vmdata()
|
||||
|
||||
}
|
||||
change_lifesteal(lifesteal: number){
|
||||
this.lifesteal+=lifesteal
|
||||
if(this.lifesteal<0) this.lifesteal=0
|
||||
// this.update_vmdata()
|
||||
|
||||
}
|
||||
|
||||
check_atrr(buff:BuffAttr){
|
||||
switch(buff){
|
||||
case BuffAttr.ATK:
|
||||
return Math.floor(this.ap_base*(100+this.ap_buff+this.TALENT[BuffAttr.ATK])/100)
|
||||
return Math.floor(this.ap_base*(100+this.ap_buff)/100)
|
||||
case BuffAttr.ATK_CD:
|
||||
return this.cd_base/((this.cd_buff+this.TALENT[BuffAttr.ATK_CD])/100+1)
|
||||
return this.cd_base/((this.cd_buff)/100+1)
|
||||
case BuffAttr.HP:
|
||||
return Math.floor(this.hp_base*(100+this.hp_buff+this.TALENT[BuffAttr.HP])/100)
|
||||
return Math.floor(this.hp_base*(100+this.hp_buff)/100)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -363,17 +343,17 @@ export class HeroViewComp extends CCComp {
|
||||
switch(buff){
|
||||
case BuffAttr.ATK:
|
||||
this.ap=this.check_atrr(BuffAttr.ATK)
|
||||
// this.update_vmdata()
|
||||
|
||||
break
|
||||
case BuffAttr.ATK_CD:
|
||||
this.cd=this.check_atrr(BuffAttr.ATK_CD)
|
||||
// this.update_vmdata()
|
||||
|
||||
break
|
||||
case BuffAttr.HP:
|
||||
let diff=this.check_atrr(BuffAttr.HP)-this.currentHpMax
|
||||
this.currentHpMax=this.check_atrr(BuffAttr.HP)
|
||||
this.currentHp+=diff
|
||||
// this.update_vmdata()
|
||||
|
||||
break
|
||||
}
|
||||
}
|
||||
@@ -385,28 +365,18 @@ export class HeroViewComp extends CCComp {
|
||||
}
|
||||
|
||||
|
||||
add_ap(ap: number,is_num:boolean=true){
|
||||
change_ap(ap: number,is_num:boolean=true){
|
||||
// console.log("[HeroViewComp]:add_ap add:",ap,this.ap)
|
||||
if(is_num){
|
||||
this.ap_base += Math.floor(ap);
|
||||
}else{
|
||||
this.ap_base += Math.floor(ap/100*this.ap_base);
|
||||
}
|
||||
this.count_atrr(BuffAttr.ATK)
|
||||
// this.BUFFCOMP.tooltip(TooltipTypes.apup,diff.toFixed(0));
|
||||
}
|
||||
|
||||
de_ap(ap: number,is_num:boolean=true){
|
||||
//console.log("[HeroViewComp]:de_ap de:",ap,this.ap)
|
||||
if(is_num){
|
||||
this.ap_base -= Math.floor(ap);
|
||||
}else{
|
||||
this.ap_base -= Math.floor(ap/100*this.ap_base);
|
||||
this.ap_buff += Math.floor(ap/100*this.ap_base);
|
||||
}
|
||||
|
||||
this.count_atrr(BuffAttr.ATK)
|
||||
}
|
||||
|
||||
add_hp_max(hp: number=0,is_num:boolean=false){
|
||||
change_hp_max(hp: number=0,is_num:boolean=false){
|
||||
// console.log("[HeroViewComp]:add_hp_max add:",hp,this.currentHpMax)
|
||||
if(is_num){
|
||||
this.hp_base += Math.floor(hp) ;
|
||||
@@ -414,13 +384,6 @@ export class HeroViewComp extends CCComp {
|
||||
this.hp_buff+=hp
|
||||
}
|
||||
this.count_atrr(BuffAttr.HP)
|
||||
// this.BUFFCOMP.tooltip(TooltipTypes.hpup,diff.toFixed(0));
|
||||
}
|
||||
|
||||
de_hp_max(hp: number=0,is_num:boolean=true){ //最大值 只存在数值添加, 比例通过hp_buff处理
|
||||
//console.log("[HeroViewComp]:de_hp_max de:",hp,this.currentHpMax)
|
||||
this.hp_base -= Math.floor(hp) ;
|
||||
this.count_atrr(BuffAttr.HP)
|
||||
// this.update_vm
|
||||
}
|
||||
|
||||
@@ -834,8 +797,8 @@ export class HeroViewComp extends CCComp {
|
||||
if(this.fac==FacSet.MON) return
|
||||
console.log("[HeroViewComp]:升级",this.BUFFCOMP)
|
||||
if(this.hero_uuid!=data.uuid) return
|
||||
this.add_ap(HeroInfo[data.uuid].ap,true)
|
||||
this.add_hp_max(HeroInfo[data.uuid].hp,true)
|
||||
this.change_ap(HeroInfo[data.uuid].ap,true)
|
||||
this.change_hp_max(HeroInfo[data.uuid].hp,true)
|
||||
this.BUFFCOMP.lv_up()
|
||||
// this.BUFFCOMP.tooltip(TooltipTypes.lvup)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user