信息展示 继续
This commit is contained in:
@@ -67,7 +67,7 @@ export class Skill extends ecs.Entity {
|
||||
return;
|
||||
}
|
||||
|
||||
console.log("[Skill]:caster=>",caster,config.name+"scomp=>",SComp,"fightcon=>",FIGHTCON)
|
||||
|
||||
|
||||
// 确保caster有必要的属性
|
||||
if (typeof caster.ap === 'undefined') {
|
||||
@@ -80,12 +80,12 @@ export class Skill extends ecs.Entity {
|
||||
return;
|
||||
}
|
||||
|
||||
SComp.ap = this.get_ap(caster,dmg)
|
||||
|
||||
|
||||
|
||||
let ap_data = this.get_ap(caster,dmg,uuid,FIGHTCON)
|
||||
SComp.ap = ap_data.ap
|
||||
SComp.caster_crit = ap_data.crit
|
||||
SComp.caster_crit_d = ap_data.crit_d
|
||||
|
||||
console.log("[Skill]:caster.box_group=>",caster.box_group,config.name+"scomp.group=>",SComp.group)
|
||||
console.log("[Skill]:caster=>",caster,config.name+"scomp=>",SComp,"fightcon=>",FIGHTCON)
|
||||
// 设置技能组件属性
|
||||
Object.assign(SComp, {
|
||||
s_uuid: uuid,
|
||||
@@ -104,35 +104,48 @@ export class Skill extends ecs.Entity {
|
||||
this.add(SComp);
|
||||
}
|
||||
|
||||
get_ap(view:HeroViewComp,dmg:number=0){
|
||||
let buff_key=null
|
||||
if(view.is_master) {buff_key="hero"}
|
||||
if(view.is_friend) {buff_key="friend"}
|
||||
if(view.is_boss) {buff_key="enemy"}
|
||||
if(view.is_kalami) {buff_key="enemy"}
|
||||
if(buff_key==null) return
|
||||
let debuff=this.FIGHTCON[buff_key+"_debuff"]
|
||||
let buff=this.FIGHTCON[buff_key+"_buff"]
|
||||
let buff_ap=(100+buff.ATK-debuff.DEATK)/100 //装备区 总加成
|
||||
get_ap(view:HeroViewComp,dmg:number=0,uuid:number=0,FIGHTCON:FightConComp=null!){
|
||||
let ap=0
|
||||
let crit=0
|
||||
let crit_d=0
|
||||
let buff_ap=1
|
||||
let buff=null
|
||||
if(view.is_master) buff=FIGHTCON.hero_buff
|
||||
if(view.is_friend) buff=FIGHTCON.friend_buff
|
||||
if(view.is_boss) buff=FIGHTCON.enemy_buff
|
||||
if(view.is_kalami) buff=FIGHTCON.enemy_buff
|
||||
if(!buff==null) {
|
||||
buff_ap=(100+buff.ATK)/100 //装备区 总加成
|
||||
}
|
||||
|
||||
// 汇总DEBUFF_DECD并处理count值
|
||||
let BUFF_ATK = 0;
|
||||
for (let i = view.BUFF_ATKS.length - 1; i >= 0; i--) {
|
||||
BUFF_ATK += view.BUFF_ATKS[i].value;
|
||||
view.BUFF_ATKS[i].count--;
|
||||
if (view.BUFF_ATKS[i].count <= 0) {
|
||||
view.BUFF_ATKS.splice(i, 1);
|
||||
let BUFF_ATK = 0
|
||||
let DEBUFF_DEATK = 0
|
||||
if(view.BUFF_ATKS.length>0){
|
||||
for (let i = view.BUFF_ATKS.length - 1; i >= 0; i--) {
|
||||
BUFF_ATK += view.BUFF_ATKS[i].value;
|
||||
view.BUFF_ATKS[i].count--;
|
||||
if (view.BUFF_ATKS[i].count <= 0) {
|
||||
view.BUFF_ATKS.splice(i, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
let DEBUFF_DEATK = 0;
|
||||
for (let i = view.DEBUFF_DEATKS.length - 1; i >= 0; i--) {
|
||||
DEBUFF_DEATK += view.DEBUFF_DEATKS[i].value;
|
||||
view.DEBUFF_DEATKS[i].count--;
|
||||
if (view.DEBUFF_DEATKS[i].count <= 0) {
|
||||
view.DEBUFF_DEATKS.splice(i, 1);
|
||||
if(view.DEBUFF_DEATKS.length>0) {
|
||||
for (let i = view.DEBUFF_DEATKS.length - 1; i >= 0; i--) {
|
||||
DEBUFF_DEATK += view.DEBUFF_DEATKS[i].value;
|
||||
view.DEBUFF_DEATKS[i].count--;
|
||||
if (view.DEBUFF_DEATKS[i].count <= 0) {
|
||||
view.DEBUFF_DEATKS.splice(i, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let BUFF_AP=(100-DEBUFF_DEATK+BUFF_ATK+dmg)/100 //buff区 总加成
|
||||
|
||||
return view.ap*buff_ap*BUFF_AP
|
||||
ap=view.ap*buff_ap*BUFF_AP*SkillSet[uuid].ap/100
|
||||
crit=view.crit+buff.CRITICAL
|
||||
crit_d=view.crit_d+buff.CRITICAL_DMG
|
||||
console.log("[Skill]:ap=>",ap,"crit=>",crit,"crit_d=>",crit_d)
|
||||
return {ap,crit,crit_d}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user