refactor: 移除英雄击退相关属性和逻辑
移除 HeroAttrsComp 中的 back_chance 属性及相关配置,清理 SCastSystem、Skill 和 HeroAtkSystem 中击退概率的计算与判定逻辑,简化攻击效果处理流程。
This commit is contained in:
@@ -26,7 +26,6 @@ export enum Attrs {
|
||||
|
||||
// ==================== 特殊效果属性 ====================
|
||||
freeze_chance = "freeze_chance", // 冰冻概率
|
||||
back_chance = "back_chance", // 击退概率
|
||||
// ==================== 增益效果属性 ====================
|
||||
revive_count = "revive_count", // 复活次数
|
||||
revive_time = "revive_time", // 复活时间
|
||||
@@ -47,7 +46,6 @@ export interface GameScoreStats {
|
||||
crt_count: number; // 暴击次数
|
||||
wf_count: number; // 风怒次数
|
||||
dod_count: number; // 闪避次数
|
||||
back_count: number; // 击退次数
|
||||
stun_count: number; // 击晕次数
|
||||
freeze_count: number; // 冰冻次数
|
||||
|
||||
|
||||
@@ -1 +1,11 @@
|
||||
盾战:获得护盾,抵御3次攻击,
|
||||
|
||||
攻击类型:
|
||||
普通: 水球、近战无
|
||||
暴击: 火球
|
||||
穿刺: 旋风
|
||||
可叠加类型:
|
||||
双击(风怒)概率
|
||||
|
||||
|
||||
群攻:不限
|
||||
@@ -171,13 +171,12 @@ export class HeroAtkSystem extends ecs.ComblockSystem implements ecs.ISystemUpd
|
||||
|
||||
mLogger.log(this.debugMode, 'HeroAtkSystem', ` 英雄${TAttrsComp.hero_name} (uuid: ${TAttrsComp.hero_uuid}) 受到 eid:${casterEid} 的 伤害 ${damage},${isCrit?"暴击":"普通"}攻击,技能ID ${damageEvent.s_uuid}`);
|
||||
|
||||
// 击退和冰冻判定
|
||||
const isBack = this.checkChance((damageEvent.Attrs[Attrs.back_chance] || 0));
|
||||
// 冰冻判定
|
||||
const freezeChance = damageEvent.Attrs[Attrs.freeze_chance] || 0;
|
||||
const isFrost = !TAttrsComp.isFrost() && this.checkChance(freezeChance);
|
||||
// ✅ 触发视图层表现(伤害数字、受击动画、后退,冰冻)
|
||||
// ✅ 触发视图层表现(伤害数字、受击动画、冰冻)
|
||||
if (targetView) {
|
||||
targetView.do_atked(damage, isCrit, damageEvent.s_uuid, isBack);
|
||||
targetView.do_atked(damage, isCrit, damageEvent.s_uuid, false);
|
||||
targetView.playEnd(skillConf.endAnm);
|
||||
if (isFrost) {
|
||||
TAttrsComp.toFrost();
|
||||
|
||||
@@ -30,7 +30,6 @@ export class HeroAttrsComp extends ecs.Comp {
|
||||
// ==================== 特殊属性 ====================
|
||||
critical: number = 0; // 暴击率
|
||||
freeze_chance: number = 0; // 冰冻概率
|
||||
back_chance: number = 0; // 击退概率
|
||||
puncture: number = 0; // 穿刺次数
|
||||
wfuny: number = 0; // 风怒
|
||||
|
||||
@@ -232,7 +231,6 @@ export class HeroAttrsComp extends ecs.Comp {
|
||||
this.skills = {};
|
||||
this.critical = 0;
|
||||
this.freeze_chance = 0;
|
||||
this.back_chance = 0;
|
||||
this.revive_count = 0;
|
||||
this.revive_time = 0;
|
||||
this.invincible_time = 0;
|
||||
|
||||
@@ -105,7 +105,6 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate
|
||||
mockAttrs.ap = highestAp;
|
||||
mockAttrs.critical = 0;
|
||||
mockAttrs.freeze_chance = 0;
|
||||
mockAttrs.back_chance = 0;
|
||||
mockAttrs.puncture = 0;
|
||||
mockAttrs.fac = FacSet.HERO;
|
||||
|
||||
|
||||
@@ -210,13 +210,11 @@ export class Skill extends ecs.Entity {
|
||||
const SUp=SkillUpList[s_uuid] ? SkillUpList[s_uuid]:SkillUpList[1001];
|
||||
const sCrt = (config.crt ?? 0)+(SUp.crt*skill_lv);
|
||||
const sFrz = (config.frz ?? 0)+(SUp.frz*skill_lv);
|
||||
const sBck = (config.bck ?? 0)+(SUp.bck*skill_lv);
|
||||
const sAp =config.ap+(SUp.ap*skill_lv);
|
||||
const sHit=config.hit_count+(SUp.hit_count*skill_lv) + cAttrsComp.puncture
|
||||
sDataCom.Attrs[Attrs.ap] = Math.floor(cAttrsComp.ap*sAp/100); //技能的ap是百分值 需要/100 而且需要再最终计算总ap时再/100,不然会出现ap为90%变0
|
||||
sDataCom.Attrs[Attrs.critical] = cAttrsComp.critical + sCrt;
|
||||
sDataCom.Attrs[Attrs.freeze_chance] = cAttrsComp.freeze_chance + sFrz;
|
||||
sDataCom.Attrs[Attrs.back_chance] = cAttrsComp.back_chance + sBck;
|
||||
sDataCom.s_uuid=s_uuid
|
||||
sDataCom.skill_lv = Math.max(0, skill_lv);
|
||||
sDataCom.fac=cAttrsComp.fac
|
||||
|
||||
Reference in New Issue
Block a user