feat: 新增卡牌自定义图标功能,优化图标加载逻辑

1. 为所有卡牌配置添加icon字段,支持自定义指定图集内的图标
2. 重构列表组件与卡片组件的图标获取逻辑,优先使用自定义图标
3. 更新预加载的图集资源从ui3改为ui6,适配新图标图集
4. 调整弹窗预制体尺寸与图集引用,适配新的图标资源系统
This commit is contained in:
pan
2026-07-27 10:41:53 +08:00
parent 14a41dbcc1
commit 903ec42905
13 changed files with 6411 additions and 2610 deletions

View File

@@ -24,6 +24,7 @@ interface SkillCardRaw {
card_lv: number;
name: string;
info: string;
icon?: string; // 图标ID对应 ui6 图集 frame 名)
is_inst: boolean;
t_times?: number; // 触发次数(未设置时按 is_inst 取默认值:即时=1定时=3
t_inv?: number;
@@ -35,20 +36,20 @@ interface SkillCardRaw {
const SkillCardData: SkillCardRaw[] = [
// ==================== card_lv 2 档(强度 ×2 ====================
// --- 范围攻击卡ap 递增,间隔缩短) ---
{ uuid: 8261, skill: 6201, card_lv: 2, name: "雷墙+", info: "召唤雷墙阻挡敌人,有概率击晕", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150 } },
{ uuid: 8262, skill: 6202, card_lv: 2, name: "火墙+", info: "召唤火墙阻挡敌人,有概率击晕", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150 } },
{ uuid: 8263, skill: 6203, card_lv: 2, name: "飓风+", info: "召唤飓风攻击敌人,有概率击晕", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150 } },
{ uuid: 8264, skill: 6204, card_lv: 2, name: "水墙+", info: "召唤水墙阻挡敌人,有概率击晕", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150 } },
{ uuid: 8265, skill: 6205, card_lv: 2, name: "风墙+", info: "召唤风墙困住敌人,有概率击晕", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150 } },
{ uuid: 8266, skill: 6206, card_lv: 2, name: "陨石术+", info: "召唤陨石范围攻击敌人,有概率击晕", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150 } },
{ uuid: 8261, skill: 6201, card_lv: 2, icon: "Stat_LightningDamag", name: "雷墙+", info: "召唤雷墙阻挡敌人,有概率击晕", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150 } },
{ uuid: 8262, skill: 6202, card_lv: 2, icon: "Stat_FireDamage", name: "火墙+", info: "召唤火墙阻挡敌人,有概率击晕", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150 } },
{ uuid: 8263, skill: 6203, card_lv: 2, icon: "Stat_Stun_01", name: "飓风+", info: "召唤飓风攻击敌人,有概率击晕", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150 } },
{ uuid: 8264, skill: 6204, card_lv: 2, icon: "Stat_Mana", name: "水墙+", info: "召唤水墙阻挡敌人,有概率击晕", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150 } },
{ uuid: 8265, skill: 6205, card_lv: 2, icon: "Stat_Stun_01", name: "风墙+", info: "召唤风墙困住敌人,有概率击晕", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150 } },
{ uuid: 8266, skill: 6206, card_lv: 2, icon: "Stat_Tripleshot", name: "陨石术+", info: "召唤陨石范围攻击敌人,有概率击晕", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150 } },
// ==================== card_lv 3 档(强度 ×3 ====================
{ uuid: 8361, skill: 6201, card_lv: 3, name: "雷墙++", info: "召唤雷墙阻挡敌人,有概率击晕", is_inst: false, t_times: 4, t_inv: 4, trigger_type: CardTriggerType.Interval, overrides: { ap: 250 } },
{ uuid: 8362, skill: 6202, card_lv: 3, name: "火墙++", info: "召唤火墙阻挡敌人,有概率击晕", is_inst: false, t_times: 4, t_inv: 4, trigger_type: CardTriggerType.Interval, overrides: { ap: 250 } },
{ uuid: 8363, skill: 6203, card_lv: 3, name: "飓风++", info: "召唤飓风攻击敌人,有概率击晕", is_inst: false, t_times: 4, t_inv: 4, trigger_type: CardTriggerType.Interval, overrides: { ap: 250 } },
{ uuid: 8364, skill: 6204, card_lv: 3, name: "水墙++", info: "召唤水墙阻挡敌人,有概率击晕", is_inst: false, t_times: 4, t_inv: 4, trigger_type: CardTriggerType.Interval, overrides: { ap: 250 } },
{ uuid: 8365, skill: 6205, card_lv: 3, name: "风墙++", info: "召唤风墙困住敌人,有概率击晕", is_inst: false, t_times: 4, t_inv: 4, trigger_type: CardTriggerType.Interval, overrides: { ap: 250 } },
{ uuid: 8366, skill: 6206, card_lv: 3, name: "陨石术++", info: "召唤陨石范围攻击敌人,有概率击晕", is_inst: false, t_times: 4, t_inv: 4, trigger_type: CardTriggerType.Interval, overrides: { ap: 250 } },
{ uuid: 8361, skill: 6201, card_lv: 3, icon: "Stat_LightningDamag", name: "雷墙++", info: "召唤雷墙阻挡敌人,有概率击晕", is_inst: false, t_times: 4, t_inv: 4, trigger_type: CardTriggerType.Interval, overrides: { ap: 250 } },
{ uuid: 8362, skill: 6202, card_lv: 3, icon: "Stat_FireDamage", name: "火墙++", info: "召唤火墙阻挡敌人,有概率击晕", is_inst: false, t_times: 4, t_inv: 4, trigger_type: CardTriggerType.Interval, overrides: { ap: 250 } },
{ uuid: 8363, skill: 6203, card_lv: 3, icon: "Stat_Stun_01", name: "飓风++", info: "召唤飓风攻击敌人,有概率击晕", is_inst: false, t_times: 4, t_inv: 4, trigger_type: CardTriggerType.Interval, overrides: { ap: 250 } },
{ uuid: 8364, skill: 6204, card_lv: 3, icon: "Stat_Mana", name: "水墙++", info: "召唤水墙阻挡敌人,有概率击晕", is_inst: false, t_times: 4, t_inv: 4, trigger_type: CardTriggerType.Interval, overrides: { ap: 250 } },
{ uuid: 8365, skill: 6205, card_lv: 3, icon: "Stat_Stun_01", name: "风墙++", info: "召唤风墙困住敌人,有概率击晕", is_inst: false, t_times: 4, t_inv: 4, trigger_type: CardTriggerType.Interval, overrides: { ap: 250 } },
{ uuid: 8366, skill: 6206, card_lv: 3, icon: "Stat_Tripleshot", name: "陨石术++", info: "召唤陨石范围攻击敌人,有概率击晕", is_inst: false, t_times: 4, t_inv: 4, trigger_type: CardTriggerType.Interval, overrides: { ap: 250 } },
];
/**
@@ -67,6 +68,7 @@ export const SkillCardList: CardConfig[] = SkillCardData.map(data => {
pool_lv: CardLV.LV1,
kind: CKind.Skill,
card_lv: data.card_lv,
icon: data.icon,
name: data.name,
info: data.info,
is_inst: data.is_inst,