feat(hero-config): 新增英雄额外属性加成档位的图鉴展示支持
本次变更完成了英雄bonus属性加成系统的图鉴可视化改造: 1. 扩展LvBonusAttrsEntry类型,新增name/icon/info配置字段 2. 服务端渲染兼容新增字段,仅在配置存在时输出 3. 更新英雄配置文档,补充bonus字段的新参数说明 4. 新增属性加成编辑器表单,支持配置名称、图标和自定义描述 5. 实现英雄图鉴的bonus档位图标渲染逻辑,支持锁定状态和点击弹窗 6. 新增bonus效果文案生成工具,支持自定义模板和属性自动生成 7. 为技能弹窗新增bonus专属渲染逻辑,适配属性加成档位的展示 8. 为部分测试英雄配置了bonus档位的名称属性
This commit is contained in:
@@ -7,6 +7,7 @@ import { SkillSet, FieldSkillSet } from "../common/config/SkillSet";
|
||||
import {
|
||||
FieldEntry, HeroInfo, TriggerGrouped, SkillTriggerType,
|
||||
getGroupedTriggerName, getFieldSkillName, getTriggerGroupName, getFieldGroupName, getHeroSkillIcon,
|
||||
LvBonusAttrsEntry,
|
||||
} from "../common/config/heroSet";
|
||||
import { UIID } from "../common/config/GameUIConfig";
|
||||
import { smc } from "../common/SingletonModuleComp";
|
||||
@@ -63,6 +64,8 @@ export class SSkillBoxComp extends CCComp {
|
||||
public field: FieldEntry[] = [];
|
||||
/** 英雄图鉴模式下的图标来源:skill=SkillSet,field=FieldSkillSet;undefined 表示装备卡模式 */
|
||||
private hero_icon_source?: "skill" | "field";
|
||||
/** bonus 档位模式:该图标代表英雄额外属性加成的某一档(图鉴展示,无技能底座 uuid) */
|
||||
private bonus_entry?: LvBonusAttrsEntry;
|
||||
|
||||
/** 点击事件是否已注册(防止重复绑定) */
|
||||
private _clickRegistered: boolean = false;
|
||||
@@ -79,6 +82,16 @@ export class SSkillBoxComp extends CCComp {
|
||||
/** 点击:弹出技能信息框 */
|
||||
private onClick() {
|
||||
oops.audio.playEffect("music/button");
|
||||
// bonus 档位模式:专属弹窗参数(无技能底座 uuid,直接透传档位数据)
|
||||
if (this.bonus_entry) {
|
||||
oops.gui.open(UIID.SInfo, {
|
||||
uuid: 0,
|
||||
skill_lv: 1,
|
||||
hero_uuid: this.hero_uuid || undefined,
|
||||
bonus_entry: this.bonus_entry,
|
||||
});
|
||||
return;
|
||||
}
|
||||
oops.gui.open(UIID.SInfo, {
|
||||
uuid: this.s_uuid,
|
||||
skill_lv: this.rarity,
|
||||
@@ -108,6 +121,24 @@ export class SSkillBoxComp extends CCComp {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化 bonus 档位图标(英雄图鉴面板专用):
|
||||
* 图标/名称直接取档位配置的 icon/name,无技能底座 uuid;点击弹窗走 bonus 专属渲染。
|
||||
* @param heroUuid 所属英雄 UUID(激活判定用局外等级)
|
||||
* @param entry bonus 档位配置(含 lv/attrs/name/icon/info)
|
||||
* @param locked 当前英雄等级未达档位解锁等级时显示锁定遮罩
|
||||
*/
|
||||
initBonus(heroUuid: number, entry: LvBonusAttrsEntry, locked: boolean) {
|
||||
this.hero_uuid = heroUuid;
|
||||
this.bonus_entry = entry;
|
||||
// 等级标签展示解锁所需英雄等级(Lv.n),便于玩家直观看到解锁条件
|
||||
this.rarity = entry.lv;
|
||||
this.card_icon = entry.icon;
|
||||
this.skill_name = entry.name ?? "";
|
||||
this.updateUI();
|
||||
this.setLocked(locked);
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化英雄技能图标(英雄图鉴面板专用):
|
||||
* 图标按 s_uuid 直接取 SkillSet / FieldSkillSet 配置,不走 EquipPoolList。
|
||||
|
||||
Reference in New Issue
Block a user