refactor: 移除lv12职业专项属性机制,改用bonus配置接管
1. 从heroSet.ts中删除HERO_LV12_SPECIAL_ATTR等相关常量和计算逻辑 2. 移除各业务代码中基于lv12专项的属性加成逻辑 3. 更新文档说明与英雄配置,将职业专项加成改为lv12级bonus配置 4. 同步更新服务器端英雄数据配置示例
This commit is contained in:
@@ -5,7 +5,7 @@ import { smc } from "../common/SingletonModuleComp";
|
||||
import { HeroAttrsComp } from "./HeroAttrsComp";
|
||||
import { HeroViewComp } from "./HeroViewComp";
|
||||
import { BoxSet, FacSet, FightSet, IndexSet } from "../common/config/GameSet";
|
||||
import { HeroInfo, resolveFormationTargetX, resolveTriggerByLv, resolveFieldByLv, resolveSkillOverrides, calcGrowBonus, HeroDisVal, getHeroQualityCoef, getEffectiveStats, HERO_LV12_SPECIAL_LV, HERO_LV12_BASE_LV, HERO_LV12_SPECIAL_ATTR } from "../common/config/heroSet";
|
||||
import { HeroInfo, resolveFormationTargetX, resolveTriggerByLv, resolveFieldByLv, resolveSkillOverrides, calcGrowBonus, HeroDisVal, getHeroQualityCoef } from "../common/config/heroSet";
|
||||
import { GameEvent } from "../common/config/GameEvent";
|
||||
import { SkillTriggerType, HType } from "../common/config/heroSet";
|
||||
import { SkillTriggerHelper } from "./SkillTriggerHelper";
|
||||
@@ -208,15 +208,7 @@ export class Hero extends ecs.Entity {
|
||||
model.defense += Math.round(snapDef * defP / 100);
|
||||
}
|
||||
|
||||
// lv12 职业属性专项:达到 12 级时按职业对单项基础属性 +50%
|
||||
// 基数为 lv11 当前等级有效值(基础 + 成长 + lv9 bonus,不含 lv12 自身),仅英雄生效
|
||||
if (model.fac === FacSet.HERO && hero_lv >= HERO_LV12_SPECIAL_LV && model.role !== undefined) {
|
||||
const lv11 = getEffectiveStats(hero, HERO_LV12_BASE_LV);
|
||||
const attr = HERO_LV12_SPECIAL_ATTR[model.role];
|
||||
if (attr === "def") model.defense += Math.round(lv11.def * 0.5);
|
||||
else if (attr === "hp") { const add = Math.round(lv11.hp * 0.5); model.hp += add; model.hp_max += add; }
|
||||
else if (attr === "ap") model.ap += Math.round(lv11.ap * 0.5);
|
||||
}
|
||||
// lv12 职业专项已移除:单项属性强化统一由 bonus 配置(如 attrs: { ap: 50 })按等级注入
|
||||
|
||||
// 天赋加成层:全局天赋(一阶基础/三阶超强全局)全局生效,职业天赋(二阶专精/三阶超强职业)按 role 过滤(仅英雄生效,怪物跳过)
|
||||
// Why: 放在成长/bonus 之后、光环乘区之后,以基础快照为基数叠加,避免与乘区叠加成乘法膨胀
|
||||
|
||||
@@ -3,7 +3,7 @@ import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/O
|
||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||
import { smc } from "../common/SingletonModuleComp";
|
||||
import { BoxSet, FacSet, FightSet, IndexSet } from "../common/config/GameSet";
|
||||
import { HeroInfo, resolveTriggerByLv, resolveSkillOverrides, HeroDisVal, getHeroQualityCoef, HERO_LV12_SPECIAL_ATTR } from "../common/config/heroSet";
|
||||
import { HeroInfo, resolveTriggerByLv, resolveSkillOverrides, HeroDisVal, getHeroQualityCoef } from "../common/config/heroSet";
|
||||
import { HeroAttrsComp } from "./HeroAttrsComp";
|
||||
import { HeroViewComp } from "./HeroViewComp";
|
||||
import { MoveComp } from "./MoveComp";
|
||||
@@ -181,14 +181,7 @@ export class Monster extends ecs.Entity {
|
||||
model.accuracy = hero.accuracy ?? FightSet.DEFAULT_ACCURACY;
|
||||
model.type = hero.type;
|
||||
model.fac = FacSet.MON;
|
||||
// lv12 职业属性专项:按 11 级当前有效值追加 50%(怪物无局内升级,初始超档直接补齐)
|
||||
if (mon_lv >= 12 && hero.role) {
|
||||
const sp = HERO_LV12_SPECIAL_ATTR[hero.role];
|
||||
// 怪物成长由 RogueConfig 按系数全局缩放,lv11 有效值此处按品质系数后的基础值近似
|
||||
if (sp === "ap") model.ap = Math.round(model.ap * 1.5);
|
||||
else if (sp === "hp") { model.hp = Math.round(model.hp * 1.5); model.hp_max = model.hp; }
|
||||
else model.defense = Math.round(model.defense * 1.5);
|
||||
}
|
||||
// lv12 职业专项已移除:怪物单项强化由 RogueConfig 系数或 bonus 配置接管
|
||||
// 攻击距离:配置优先;未配置按攻击定位取默认值(近战100 / 中程300 / 远程450)
|
||||
model.dis = hero.dis ?? HeroDisVal[hero.type as HType.Melee | HType.Mid | HType.Long];
|
||||
model.posIndex = laneIndex;
|
||||
|
||||
Reference in New Issue
Block a user