feat(map,hero): 实现英雄技能整组合并展示功能
重构英雄技能展示逻辑,支持将同一触发槽位的多个技能/光环词条合并为一个技能展示: 1. 新增触发组整组分档渲染接口,合并同槽位多技能档位数据 2. 新增组名获取函数,统一使用槽位首个自定义名称作为展示名 3. 调整图鉴面板技能列表,每个触发槽位仅展示一个合并后的图标 4. 升级技能弹窗渲染逻辑,支持整组模式下的合并说明展示 5. 优化注释与代码结构,统一技能展示口径
This commit is contained in:
@@ -24,8 +24,9 @@
|
||||
* - SkillSet / FieldSkillSet(技能/光环静态配置)
|
||||
* - SkillCardList(卡牌静态配置)
|
||||
* - CardSkillText(buildCardDescRich 富文本描述生成,卡牌模式)
|
||||
* - HeroSkillText(buildHeroSkillTierLines 技能分档描述,英雄技能模式,
|
||||
* 覆盖普攻/大招、触发技能、驻场光环词条;复活已纳入 dead 触发组)
|
||||
* - HeroSkillText(buildHeroSkillTierLines 技能分档描述 / buildHeroGroupTierLines
|
||||
* 触发组整组分档描述,英雄技能模式;触发槽位整组视为一个技能,组内多技能/词条
|
||||
* 合并为一个名称与一套说明统一展示;复活已纳入 dead 触发组)
|
||||
*/
|
||||
import { _decorator, Node, Label, RichText, NodeEventType, Sprite, Color, input, Input, EventTouch, UITransform, Vec3 } from "cc";
|
||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||
@@ -36,7 +37,7 @@ import { SkillSet, FieldSkillSet } from "../common/config/SkillSet";
|
||||
import { SkillCardList } from "../common/config/SCardSet";
|
||||
import { FieldEntry, SkillTriggerType } from "../common/config/heroSet";
|
||||
import { buildCardDescRich } from "../common/config/CardSkillText";
|
||||
import { buildHeroSkillTierLines, HeroSkillTierLine } from "../common/HeroSkillText";
|
||||
import { buildHeroSkillTierLines, buildHeroGroupTierLines, HeroSkillTierLine } from "../common/HeroSkillText";
|
||||
import { smc } from "../common/SingletonModuleComp";
|
||||
|
||||
const { ccclass, property } = _decorator;
|
||||
@@ -60,6 +61,9 @@ export interface SInfoParams {
|
||||
/** 技能所属槽位(英雄图鉴模式):同一底座可同时为普攻与触发技能(如 5002 的 6004),
|
||||
* 指定后仅在该槽位取档,激活等级/档位按槽位独立判定 */
|
||||
hero_slot?: SkillTriggerType;
|
||||
/** 触发组整体模式(英雄图鉴):true 时按 hero_slot 整组渲染,
|
||||
* 组内多技能/词条合并为一套分档说明统一展示(每个触发槽位视为一个技能) */
|
||||
hero_group?: boolean;
|
||||
}
|
||||
|
||||
/** 等级提升信息(用于 2 级 / 3 级面板) */
|
||||
@@ -243,13 +247,16 @@ export class SinfoComp extends CCComp {
|
||||
|
||||
/**
|
||||
* 英雄技能模式渲染(文本二:单个技能各阶段说明)。
|
||||
* - hero_group:触发槽位整组视为一个技能,组内多技能/词条档位按解锁英雄等级合并展示
|
||||
* - main_info:技能 slv1 完整描述
|
||||
* - lv2_desc:slv2 相对 slv1 的提升;lv3_desc:slv3 及以后档(合并展示)
|
||||
* - lv2/lv3_status:按英雄局外等级(smc.getHeroOuterLv)对比档位解锁等级判定激活
|
||||
* @returns true 已渲染(拦截通用卡牌逻辑);false 技能无分档数据,回退通用卡牌逻辑
|
||||
*/
|
||||
private renderHeroSkill(p: SInfoParams): boolean {
|
||||
const tiers = buildHeroSkillTierLines(p.hero_uuid!, p.uuid, p.hero_slot);
|
||||
const tiers = (p.hero_group && p.hero_slot !== undefined)
|
||||
? buildHeroGroupTierLines(p.hero_uuid!, p.hero_slot)
|
||||
: buildHeroSkillTierLines(p.hero_uuid!, p.uuid, p.hero_slot);
|
||||
if (tiers.length === 0) return false;
|
||||
|
||||
// 图标 / 名称 / 当前技能等级与通用逻辑一致(skill_lv 传的就是当前生效 s_lv)
|
||||
|
||||
Reference in New Issue
Block a user