去掉skillcom处理 buff skill只负责动画运行和碰撞伤害
This commit is contained in:
@@ -2,7 +2,7 @@ import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/O
|
||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||
import { BoxSet, FacSet } from "../common/config/BoxSet";
|
||||
import { HType } from "../common/config/heroSet";
|
||||
import { SkillSet } from "../common/config/SkillSet";
|
||||
import { BuffAttr, SkillSet } from "../common/config/SkillSet";
|
||||
import { smc } from "../common/SingletonModuleComp";
|
||||
import { HeroViewComp } from "../hero/HeroViewComp";
|
||||
import { SkillCom } from "./SkillCom";
|
||||
@@ -86,79 +86,34 @@ export class Skill extends ecs.Entity {
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取计算后的属性数据
|
||||
let ap_data = this.get_ap(caster,dmg,uuid)
|
||||
|
||||
|
||||
// 只设置必要的运行时属性,配置信息通过 SkillSet[uuid] 访问
|
||||
Object.assign(SComp, {
|
||||
// 核心标识
|
||||
s_uuid: uuid,
|
||||
|
||||
// 位置和施法者信息
|
||||
startPos: startPos,
|
||||
targetPos: targetPos,
|
||||
caster: caster,
|
||||
group: caster.box_group,
|
||||
fac: caster.fac,
|
||||
|
||||
// 计算后的战斗数据
|
||||
ap: ap_data.ap,
|
||||
caster_crit: ap_data.crit,
|
||||
caster_crit_d: ap_data.crit_d,
|
||||
puncture: ap_data.puncture,
|
||||
puncture_damage: ap_data.puncture_damage,
|
||||
burn_count: ap_data.burn_count,
|
||||
burn_value: ap_data.burn_value,
|
||||
stun_time: ap_data.stun_time,
|
||||
stun_ratto: ap_data.stun_ratto,
|
||||
frost_time: ap_data.frost_time,
|
||||
frost_ratto: ap_data.frost_ratto,
|
||||
// 技能数值
|
||||
ap: caster.Attrs[BuffAttr.AP],
|
||||
caster_crit: caster.Attrs[BuffAttr.CRITICAL],
|
||||
caster_crit_d: caster.Attrs[BuffAttr.CRITICAL_DMG],
|
||||
puncture: caster.Attrs[BuffAttr.PUNCTURE],
|
||||
puncture_damage: caster.Attrs[BuffAttr.PUNCTURE_DMG],
|
||||
burn_count: caster.Attrs[BuffAttr.BURN_COUNT],
|
||||
burn_value: caster.Attrs[BuffAttr.BURN_VALUE],
|
||||
stun_time: caster.Attrs[BuffAttr.STUN_TIME],
|
||||
stun_ratio: caster.Attrs[BuffAttr.STUN_RATIO],
|
||||
frost_time: caster.Attrs[BuffAttr.FROST_TIME],
|
||||
frost_ratio: caster.Attrs[BuffAttr.FROST_RATIO],
|
||||
debuff_up: caster.Attrs[BuffAttr.DEBUFF_UP],
|
||||
debuff_value: caster.Attrs[BuffAttr.DEBUFF_VALUE],
|
||||
debuff_count: caster.Attrs[BuffAttr.DEBUFF_COUNT],
|
||||
});
|
||||
|
||||
this.add(SComp);
|
||||
}
|
||||
|
||||
get_ap(view:HeroViewComp,dmg:number=0,uuid:number=0){
|
||||
let ap=0
|
||||
let crit=0
|
||||
let crit_d=0
|
||||
let buffap=1
|
||||
let puncture=0
|
||||
let puncture_damage=0
|
||||
let burn_count=0
|
||||
let burn_value=0
|
||||
let stun_time=0
|
||||
let stun_ratto=0
|
||||
let frost_time=0
|
||||
let frost_ratto=0
|
||||
// 汇总DEBUFF_DECD并处理count值
|
||||
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;
|
||||
// 不再在这里减少duration,改为在update中按时间减少
|
||||
}
|
||||
}
|
||||
if(view.DEBUFF_DEATKS.length>0) {
|
||||
for (let i = view.DEBUFF_DEATKS.length - 1; i >= 0; i--) {
|
||||
DEBUFF_DEATK += view.DEBUFF_DEATKS[i].value;
|
||||
// 不再在这里减少duration,改为在update中按时间减少
|
||||
}
|
||||
}
|
||||
|
||||
let BUFF_AP=(100-DEBUFF_DEATK+BUFF_ATK+dmg)/100 //buff区 总加成
|
||||
puncture =view.puncture
|
||||
puncture_damage=view.puncture_damage
|
||||
ap=view.ap*buffap*BUFF_AP*SkillSet[uuid].ap/100
|
||||
crit=view.crit
|
||||
crit_d=view.crit_d
|
||||
burn_count=view.burn_count
|
||||
burn_value=view.burn_value
|
||||
stun_time=view.stun_time
|
||||
stun_ratto=view.stun_ratto
|
||||
frost_time=view.frost_time
|
||||
frost_ratto=view.frost_ratto
|
||||
return {ap,crit,crit_d,puncture,puncture_damage,burn_count,burn_value,stun_time,stun_ratto,frost_time,frost_ratto}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user