伤害计算 需要统一
This commit is contained in:
@@ -3,6 +3,7 @@ import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ec
|
||||
import { BoxSet } from "../common/config/BoxSet";
|
||||
import { SkillSet } from "../common/config/SkillSet";
|
||||
import { smc } from "../common/SingletonModuleComp";
|
||||
import { HeroViewComp } from "../hero/HeroViewComp";
|
||||
import { FightConComp } from "../map/FightConComp";
|
||||
import { SkillCom } from "./SkillCom";
|
||||
import { instantiate, Node, Prefab, Vec3 ,tween, v3,animation,Label,resources,SpriteFrame,Sprite} from "cc";
|
||||
@@ -79,17 +80,11 @@ export class Skill extends ecs.Entity {
|
||||
return;
|
||||
}
|
||||
|
||||
SComp.ap = caster.ap*config.ap/100;
|
||||
if(caster.fac==0){
|
||||
if(caster.is_master){
|
||||
SComp.ap=Math.floor(SComp.ap*(100+FIGHTCON.hero_buff.ATK)/100);
|
||||
}else{
|
||||
SComp.ap=Math.floor(SComp.ap*(100+FIGHTCON.friend_buff.ATK)/100);
|
||||
}
|
||||
}else{
|
||||
SComp.ap=Math.floor(SComp.ap*(100-FIGHTCON.enemy_buff.ATK)/100);
|
||||
}
|
||||
SComp.ap=(100+dmg)/100*SComp.ap // master 主将 技能额外百分比加成
|
||||
SComp.ap = this.get_ap(caster,dmg)
|
||||
|
||||
|
||||
|
||||
|
||||
console.log("[Skill]:caster.box_group=>",caster.box_group,config.name+"scomp.group=>",SComp.group)
|
||||
// 设置技能组件属性
|
||||
Object.assign(SComp, {
|
||||
@@ -108,4 +103,36 @@ 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 //装备区 总加成
|
||||
// 汇总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 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);
|
||||
}
|
||||
}
|
||||
let BUFF_AP=(100-DEBUFF_DEATK+BUFF_ATK+dmg)/100 //buff区 总加成
|
||||
|
||||
return view.ap*buff_ap*BUFF_AP
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user