feat(talent): 重构天赋系统为三阶结构并实现全新UI
1. 重构天赋系统为一阶基础/二阶专精/三阶超强三阶结构,移除前置天赋要求改为阶位累计点数解锁 2. 新增阶位解锁校验逻辑与天赋点投入统计 3. 重做天赋UI为三阶Tab页签+迷你升级卡样式,支持状态展示与一键升级 4. 补充新的天赋配置与属性加成,更新天赋系统文档 5. 修复属性计算问题,新增暴击伤害与穿刺伤害加成支持
This commit is contained in:
@@ -9,7 +9,7 @@ import { GameScoreStats } from "./config/HeroAttrs";
|
||||
import { mLogger } from "./Logger";
|
||||
import { gameDataSync } from "./GameDataSync";
|
||||
import { HERO_UPGRADE_NEED_FRAGMENTS } from "./config/GameSet";
|
||||
import { TalentSet, getTalentUpgradeCost } from "./config/TalentSet";
|
||||
import { TalentSet, getTalentUpgradeCost, isTalentTierUnlocked } from "./config/TalentSet";
|
||||
|
||||
/**
|
||||
* 用远程数据覆盖本地数据(统一方法)
|
||||
@@ -418,7 +418,7 @@ export class SingletonModuleComp extends ecs.Comp {
|
||||
/**
|
||||
* 消耗天赋点升级天赋(升级即激活,下一局生效)
|
||||
* @param uuid 天赋 uuid
|
||||
* @returns 是否升级成功(天赋不存在/已满级/前置未满足/点数不足时返回 false)
|
||||
* @returns 是否升级成功(天赋不存在/已满级/阶位未解锁/点数不足时返回 false)
|
||||
*/
|
||||
upgradeTalent(uuid: number): boolean {
|
||||
const cfg = TalentSet[uuid];
|
||||
@@ -426,12 +426,8 @@ export class SingletonModuleComp extends ecs.Comp {
|
||||
if (!this.data.talents) this.data.talents = {};
|
||||
const curLv = this.getTalentLv(uuid);
|
||||
if (curLv >= cfg.max_lv) return false;
|
||||
// 专精天赋的前置要求:前置天赋等级不足则禁止升级
|
||||
if (cfg.requires) {
|
||||
for (const req of cfg.requires) {
|
||||
if (this.getTalentLv(req.uuid) < req.lv) return false;
|
||||
}
|
||||
}
|
||||
// 阶位解锁:二/三阶天赋要求前一阶累计投入点数达标(一阶恒解锁)
|
||||
if (!isTalentTierUnlocked(this.data.talents, cfg.tier)) return false;
|
||||
const cost = getTalentUpgradeCost(curLv);
|
||||
if (cost < 0 || this.getTalentPoints() < cost) return false;
|
||||
this.data.talent_points -= cost;
|
||||
|
||||
Reference in New Issue
Block a user