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

@@ -136,8 +136,8 @@
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
"width": 710, "width": 720,
"height": 55 "height": 1280
}, },
"_anchorPoint": { "_anchorPoint": {
"__type__": "cc.Vec2", "__type__": "cc.Vec2",
@@ -311,8 +311,8 @@
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
"width": 1420, "width": 1440,
"height": 110 "height": 2560
}, },
"_anchorPoint": { "_anchorPoint": {
"__type__": "cc.Vec2", "__type__": "cc.Vec2",
@@ -348,7 +348,7 @@
"a": 255 "a": 255
}, },
"_spriteFrame": { "_spriteFrame": {
"__uuid__": "dd7e2f04-f9b9-489b-8d38-b4971ad81910@7e6bd", "__uuid__": "dd7e2f04-f9b9-489b-8d38-b4971ad81910@2ddbe",
"__expectedType__": "cc.SpriteFrame" "__expectedType__": "cc.SpriteFrame"
}, },
"_type": 1, "_type": 1,
@@ -363,7 +363,10 @@
"_fillRange": 0, "_fillRange": 0,
"_isTrimmedMode": true, "_isTrimmedMode": true,
"_useGrayscale": false, "_useGrayscale": false,
"_atlas": null, "_atlas": {
"__uuid__": "dd7e2f04-f9b9-489b-8d38-b4971ad81910",
"__expectedType__": "cc.SpriteAtlas"
},
"_id": "" "_id": ""
}, },
{ {
@@ -486,8 +489,8 @@
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
"width": 1388, "width": 1408,
"height": 78 "height": 2528
}, },
"_anchorPoint": { "_anchorPoint": {
"__type__": "cc.Vec2", "__type__": "cc.Vec2",
@@ -608,8 +611,8 @@
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
"width": 710, "width": 720,
"height": 55 "height": 1280
}, },
"_anchorPoint": { "_anchorPoint": {
"__type__": "cc.Vec2", "__type__": "cc.Vec2",
@@ -667,6 +670,7 @@
"__id__": 0 "__id__": 0
}, },
"fileId": "50T0YGiGBH7qZZFeATiEP+", "fileId": "50T0YGiGBH7qZZFeATiEP+",
"instance": null,
"targetOverrides": null "targetOverrides": null
} }
] ]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -283,13 +283,13 @@ export class SingletonModuleComp extends ecs.Comp {
* 在游戏载入早期调用,预加载常用图集 * 在游戏载入早期调用,预加载常用图集
*/ */
preloadCommonAssets() { preloadCommonAssets() {
resources.load("gui/ui3", SpriteAtlas, (err, atlas) => { resources.load("gui/ui6", SpriteAtlas, (err, atlas) => {
if (!err && atlas) { if (!err && atlas) {
// 增加引用计数防止图集被引擎自动垃圾回收GC导致底层 spriteFrames 为 null // 增加引用计数防止图集被引擎自动垃圾回收GC导致底层 spriteFrames 为 null
atlas.addRef(); atlas.addRef();
this.uiconsAtlas = atlas; this.uiconsAtlas = atlas;
} else { } else {
mLogger.error(this.debugMode, 'SMC', "预加载 gui/ui3 图集失败:", err); mLogger.error(this.debugMode, 'SMC', "预加载 gui/ui6 图集失败:", err);
} }
}); });
} }

View File

@@ -28,6 +28,7 @@ interface EquipRawData {
wave: number; wave: number;
name: string; name: string;
info: string; info: string;
icon?: string; // 图标ID对应 ui6 图集 frame 名)
field: number[]; field: number[];
cost?: number; cost?: number;
} }
@@ -35,56 +36,56 @@ interface EquipRawData {
/** 装备卡原始数据表 */ /** 装备卡原始数据表 */
const EquipRawList: EquipRawData[] = [ const EquipRawList: EquipRawData[] = [
// ==================== wave 1 档(基础强度) ==================== // ==================== wave 1 档(基础强度) ====================
{ uuid: 8701, wave: SKILL_CARD_WAVES[0], name: "战后恢复", info: "战斗结束生命回复量+10%", field: [7001] }, { uuid: 8701, wave: SKILL_CARD_WAVES[0], icon: "Stat_PotionBoost", name: "战后恢复", info: "战斗结束生命回复量+10%", field: [7001] },
{ uuid: 8702, wave: SKILL_CARD_WAVES[0], name: "攻击加成", info: "英雄攻击力+10%", field: [7002] }, { uuid: 8702, wave: SKILL_CARD_WAVES[0], icon: "Stat_Attack_03", name: "攻击加成", info: "英雄攻击力+10%", field: [7002] },
{ uuid: 8703, wave: SKILL_CARD_WAVES[0], name: "击晕加成", info: "英雄击晕概率+10%", field: [7003] }, { uuid: 8703, wave: SKILL_CARD_WAVES[0], icon: "Stat_Stun_01", name: "击晕加成", info: "英雄击晕概率+10%", field: [7003] },
{ uuid: 8704, wave: SKILL_CARD_WAVES[0], name: "暴击加成", info: "英雄暴击率+10%", field: [7004] }, { uuid: 8704, wave: SKILL_CARD_WAVES[0], icon: "Stat_CriticalChance_02", name: "暴击加成", info: "英雄暴击率+10%", field: [7004] },
{ uuid: 8705, wave: SKILL_CARD_WAVES[0], name: "暴伤加成", info: "英雄暴击伤害+20%", field: [7005] }, { uuid: 8705, wave: SKILL_CARD_WAVES[0], icon: "Stat_Critical_01", name: "暴伤加成", info: "英雄暴击伤害+20%", field: [7005] },
{ uuid: 8706, wave: SKILL_CARD_WAVES[0], name: "攻速加成", info: "英雄攻击速度+10%", field: [7006] }, { uuid: 8706, wave: SKILL_CARD_WAVES[0], icon: "Stat_AttackSpeed_02", name: "攻速加成", info: "英雄攻击速度+10%", field: [7006] },
{ uuid: 8707, wave: SKILL_CARD_WAVES[0], name: "生命加成", info: "英雄最大生命+10%", field: [7007] }, { uuid: 8707, wave: SKILL_CARD_WAVES[0], icon: "Stat_Hp_02", name: "生命加成", info: "英雄最大生命+10%", field: [7007] },
{ uuid: 8708, wave: SKILL_CARD_WAVES[0], name: "风怒加成", info: "英雄风怒概率+10%", field: [7008] }, { uuid: 8708, wave: SKILL_CARD_WAVES[0], icon: "Stat_CriticalComboChance", name: "风怒加成", info: "英雄风怒概率+10%", field: [7008] },
{ uuid: 8709, wave: SKILL_CARD_WAVES[0], name: "穿刺加成", info: "英雄穿刺概率+10%", field: [7009] }, { uuid: 8709, wave: SKILL_CARD_WAVES[0], icon: "Stat_Tripleshot", name: "穿刺加成", info: "英雄穿刺概率+10%", field: [7009] },
{ uuid: 8710, wave: SKILL_CARD_WAVES[0], name: "金币收益", info: "每回合金币收益+1", field: [7010] }, { uuid: 8710, wave: SKILL_CARD_WAVES[0], icon: "Stat_InventorySlotIncrease", name: "金币收益", info: "每回合金币收益+1", field: [7010] },
{ uuid: 8711, wave: SKILL_CARD_WAVES[0], name: "出售强化", info: "卖出英雄金币+1", field: [7011] }, { uuid: 8711, wave: SKILL_CARD_WAVES[0], icon: "Stat_GoldGainIncrease_01", name: "出售强化", info: "卖出英雄金币+1", field: [7011] },
// 多词条装备 // 多词条装备
{ uuid: 8720, wave: SKILL_CARD_WAVES[0], name: "勇者护符", info: "英雄攻击力+10%, 暴击率+10%, 暴击伤害+20%", field: [7002, 7004, 7005] }, { uuid: 8720, wave: SKILL_CARD_WAVES[0], icon: "Stat_Attack_03", name: "勇者护符", info: "英雄攻击力+10%, 暴击率+10%, 暴击伤害+20%", field: [7002, 7004, 7005] },
// ==================== wave 5 档(强度 ×2 ==================== // ==================== wave 5 档(强度 ×2 ====================
{ uuid: 8751, wave: SKILL_CARD_WAVES[1], name: "战后恢复+", info: "战斗结束生命回复量+20%", field: [7201] }, { uuid: 8751, wave: SKILL_CARD_WAVES[1], icon: "Stat_PotionBoost", name: "战后恢复+", info: "战斗结束生命回复量+20%", field: [7201] },
{ uuid: 8752, wave: SKILL_CARD_WAVES[1], name: "攻击加成+", info: "英雄攻击力+20%", field: [7202] }, { uuid: 8752, wave: SKILL_CARD_WAVES[1], icon: "Stat_Attack_03", name: "攻击加成+", info: "英雄攻击力+20%", field: [7202] },
{ uuid: 8753, wave: SKILL_CARD_WAVES[1], name: "击晕加成+", info: "英雄击晕概率+20%", field: [7203] }, { uuid: 8753, wave: SKILL_CARD_WAVES[1], icon: "Stat_Stun_01", name: "击晕加成+", info: "英雄击晕概率+20%", field: [7203] },
{ uuid: 8754, wave: SKILL_CARD_WAVES[1], name: "暴击加成+", info: "英雄暴击率+20%", field: [7204] }, { uuid: 8754, wave: SKILL_CARD_WAVES[1], icon: "Stat_CriticalChance_02", name: "暴击加成+", info: "英雄暴击率+20%", field: [7204] },
{ uuid: 8755, wave: SKILL_CARD_WAVES[1], name: "暴伤加成+", info: "英雄暴击伤害+40%", field: [7205] }, { uuid: 8755, wave: SKILL_CARD_WAVES[1], icon: "Stat_Critical_01", name: "暴伤加成+", info: "英雄暴击伤害+40%", field: [7205] },
{ uuid: 8756, wave: SKILL_CARD_WAVES[1], name: "攻速加成+", info: "英雄攻击速度+20%", field: [7206] }, { uuid: 8756, wave: SKILL_CARD_WAVES[1], icon: "Stat_AttackSpeed_02", name: "攻速加成+", info: "英雄攻击速度+20%", field: [7206] },
{ uuid: 8757, wave: SKILL_CARD_WAVES[1], name: "生命加成+", info: "英雄最大生命+20%", field: [7207] }, { uuid: 8757, wave: SKILL_CARD_WAVES[1], icon: "Stat_Hp_02", name: "生命加成+", info: "英雄最大生命+20%", field: [7207] },
{ uuid: 8758, wave: SKILL_CARD_WAVES[1], name: "风怒加成+", info: "英雄风怒概率+20%", field: [7208] }, { uuid: 8758, wave: SKILL_CARD_WAVES[1], icon: "Stat_CriticalComboChance", name: "风怒加成+", info: "英雄风怒概率+20%", field: [7208] },
{ uuid: 8759, wave: SKILL_CARD_WAVES[1], name: "穿刺加成+", info: "英雄穿刺概率+20%", field: [7209] }, { uuid: 8759, wave: SKILL_CARD_WAVES[1], icon: "Stat_Tripleshot", name: "穿刺加成+", info: "英雄穿刺概率+20%", field: [7209] },
{ uuid: 8760, wave: SKILL_CARD_WAVES[1], name: "金币收益+", info: "每回合金币收益+2", field: [7210] }, { uuid: 8760, wave: SKILL_CARD_WAVES[1], icon: "Stat_InventorySlotIncrease", name: "金币收益+", info: "每回合金币收益+2", field: [7210] },
{ uuid: 8761, wave: SKILL_CARD_WAVES[1], name: "购买优惠+", info: "购买卡牌费用-2金币", field: [7212] }, { uuid: 8761, wave: SKILL_CARD_WAVES[1], icon: "Stat_KeyCapacityIncrease", name: "购买优惠+", info: "购买卡牌费用-2金币", field: [7212] },
{ uuid: 8762, wave: SKILL_CARD_WAVES[1], name: "刷新优惠", info: "刷新卡牌费用-1金币", field: [7213] }, { uuid: 8762, wave: SKILL_CARD_WAVES[1], icon: "Stat_RandomBonus", name: "刷新优惠", info: "刷新卡牌费用-1金币", field: [7213] },
// 多词条装备 // 多词条装备
{ uuid: 8770, wave: SKILL_CARD_WAVES[1], name: "守卫护甲", info: "英雄最大生命+20%, 战后生命回复+20%, 攻速+20%", field: [7207, 7201, 7206] }, { uuid: 8770, wave: SKILL_CARD_WAVES[1], icon: "Stat_Hp_02", name: "守卫护甲", info: "英雄最大生命+20%, 战后生命回复+20%, 攻速+20%", field: [7207, 7201, 7206] },
// ==================== wave 8 档(强度 ×3 ==================== // ==================== wave 8 档(强度 ×3 ====================
{ uuid: 8801, wave: SKILL_CARD_WAVES[2], name: "战后恢复++", info: "战斗结束生命回复量+30%", field: [7401] }, { uuid: 8801, wave: SKILL_CARD_WAVES[2], icon: "Stat_PotionBoost", name: "战后恢复++", info: "战斗结束生命回复量+30%", field: [7401] },
{ uuid: 8802, wave: SKILL_CARD_WAVES[2], name: "攻击加成++", info: "英雄攻击力+30%", field: [7402] }, { uuid: 8802, wave: SKILL_CARD_WAVES[2], icon: "Stat_Attack_03", name: "攻击加成++", info: "英雄攻击力+30%", field: [7402] },
{ uuid: 8803, wave: SKILL_CARD_WAVES[2], name: "击晕加成++", info: "英雄击晕概率+30%", field: [7403] }, { uuid: 8803, wave: SKILL_CARD_WAVES[2], icon: "Stat_Stun_01", name: "击晕加成++", info: "英雄击晕概率+30%", field: [7403] },
{ uuid: 8804, wave: SKILL_CARD_WAVES[2], name: "暴击加成++", info: "英雄暴击率+30%", field: [7404] }, { uuid: 8804, wave: SKILL_CARD_WAVES[2], icon: "Stat_CriticalChance_02", name: "暴击加成++", info: "英雄暴击率+30%", field: [7404] },
{ uuid: 8805, wave: SKILL_CARD_WAVES[2], name: "暴伤加成++", info: "英雄暴击伤害+60%", field: [7405] }, { uuid: 8805, wave: SKILL_CARD_WAVES[2], icon: "Stat_Critical_01", name: "暴伤加成++", info: "英雄暴击伤害+60%", field: [7405] },
{ uuid: 8806, wave: SKILL_CARD_WAVES[2], name: "攻速加成++", info: "英雄攻击速度+30%", field: [7406] }, { uuid: 8806, wave: SKILL_CARD_WAVES[2], icon: "Stat_AttackSpeed_02", name: "攻速加成++", info: "英雄攻击速度+30%", field: [7406] },
{ uuid: 8807, wave: SKILL_CARD_WAVES[2], name: "生命加成++", info: "英雄最大生命+30%", field: [7407] }, { uuid: 8807, wave: SKILL_CARD_WAVES[2], icon: "Stat_Hp_02", name: "生命加成++", info: "英雄最大生命+30%", field: [7407] },
{ uuid: 8808, wave: SKILL_CARD_WAVES[2], name: "风怒加成++", info: "英雄风怒概率+30%", field: [7408] }, { uuid: 8808, wave: SKILL_CARD_WAVES[2], icon: "Stat_CriticalComboChance", name: "风怒加成++", info: "英雄风怒概率+30%", field: [7408] },
{ uuid: 8809, wave: SKILL_CARD_WAVES[2], name: "穿刺加成++", info: "英雄穿刺概率+30%", field: [7409] }, { uuid: 8809, wave: SKILL_CARD_WAVES[2], icon: "Stat_Tripleshot", name: "穿刺加成++", info: "英雄穿刺概率+30%", field: [7409] },
{ uuid: 8810, wave: SKILL_CARD_WAVES[2], name: "金币收益++", info: "每回合金币收益+3", field: [7410] }, { uuid: 8810, wave: SKILL_CARD_WAVES[2], icon: "Stat_InventorySlotIncrease", name: "金币收益++", info: "每回合金币收益+3", field: [7410] },
// 触发次数强化 // 触发次数强化
{ uuid: 8811, wave: SKILL_CARD_WAVES[2], name: "召唤强化++", info: "召唤触发技能次数+1", field: [7014] }, { uuid: 8811, wave: SKILL_CARD_WAVES[2], icon: "Stat_UnitSummonIncrease_02", name: "召唤强化++", info: "召唤触发技能次数+1", field: [7014] },
{ uuid: 8812, wave: SKILL_CARD_WAVES[2], name: "死亡强化++", info: "死亡触发技能次数+1", field: [7015] }, { uuid: 8812, wave: SKILL_CARD_WAVES[2], icon: "Stat_PoisonChanceIncrease", name: "死亡强化++", info: "死亡触发技能次数+1", field: [7015] },
{ uuid: 8813, wave: SKILL_CARD_WAVES[2], name: "开场强化++", info: "战斗开始触发技能次数+1", field: [7016] }, { uuid: 8813, wave: SKILL_CARD_WAVES[2], icon: "Stat_AttackRangeIncrease_01", name: "开场强化++", info: "战斗开始触发技能次数+1", field: [7016] },
{ uuid: 8814, wave: SKILL_CARD_WAVES[2], name: "结束强化++", info: "战斗结束触发技能次数+1", field: [7017] }, { uuid: 8814, wave: SKILL_CARD_WAVES[2], icon: "Stat_UnitSummonIncrease_01", name: "结束强化++", info: "战斗结束触发技能次数+1", field: [7017] },
{ uuid: 8815, wave: SKILL_CARD_WAVES[2], name: "攻击强化++", info: "攻击触发技能次数+1", field: [7018] }, { uuid: 8815, wave: SKILL_CARD_WAVES[2], icon: "Stat_Attack_03", name: "攻击强化++", info: "攻击触发技能次数+1", field: [7018] },
{ uuid: 8816, wave: SKILL_CARD_WAVES[2], name: "受击强化++", info: "被攻击触发技能次数+1", field: [7019] }, { uuid: 8816, wave: SKILL_CARD_WAVES[2], icon: "Stat_Armor_01", name: "受击强化++", info: "被攻击触发技能次数+1", field: [7019] },
// 多词条装备 // 多词条装备
{ uuid: 8820, wave: SKILL_CARD_WAVES[2], name: "神圣之刃", info: "英雄攻击力+30%, 暴击率+30%, 暴击伤害+60%, 攻速+30%", field: [7402, 7404, 7405, 7406] }, { uuid: 8820, wave: SKILL_CARD_WAVES[2], icon: "Stat_Attack_03", name: "神圣之刃", info: "英雄攻击力+30%, 暴击率+30%, 暴击伤害+60%, 攻速+30%", field: [7402, 7404, 7405, 7406] },
]; ];
/** /**
@@ -106,6 +107,7 @@ export const EquipPoolList: CardConfig[] = EquipRawList.map(data => ({
wave: data.wave, wave: data.wave,
kind: CKind.Skill, kind: CKind.Skill,
card_lv: waveToCardLv[data.wave] ?? 1, card_lv: waveToCardLv[data.wave] ?? 1,
icon: data.icon,
name: data.name, name: data.name,
info: data.info, info: data.info,
is_inst: false, is_inst: false,

View File

@@ -25,6 +25,7 @@ interface ItemCardRaw {
skill: number; // 关联的技能 UUIDbuff 技能) skill: number; // 关联的技能 UUIDbuff 技能)
name: string; name: string;
info: string; info: string;
icon?: string; // 图标ID对应 ui6 图集 frame 名)
cost: number; // 购买价格 cost: number; // 购买价格
weight: number; // 抽取权重 weight: number; // 抽取权重
overrides?: SkillOverrides; // 技能参数覆写(如自定义治疗量、护盾值等) overrides?: SkillOverrides; // 技能参数覆写(如自定义治疗量、护盾值等)
@@ -32,24 +33,24 @@ interface ItemCardRaw {
const ItemCardData: ItemCardRaw[] = [ const ItemCardData: ItemCardRaw[] = [
// ==================== 一次性回血(计时性 HoT5s ==================== // ==================== 一次性回血(计时性 HoT5s ====================
{ uuid: 9101, skill: 6502, name: "再生药水", info: "全体友方每秒回复生命,持续 5 秒", cost: 0, weight: 20 }, { uuid: 9101, skill: 6502, icon: "Stat_PotionBoost", name: "再生药水", info: "全体友方每秒回复生命,持续 5 秒", cost: 0, weight: 20 },
// ==================== 计时性强化(统一 5s ==================== // ==================== 计时性强化(统一 5s ====================
{ uuid: 9102, skill: 6503, name: "攻击药水", info: "全体友方攻击力提升 50%,持续 5 秒", cost: 0, weight: 15 }, { uuid: 9102, skill: 6503, icon: "Stat_Attack_03", name: "攻击药水", info: "全体友方攻击力提升 50%,持续 5 秒", cost: 0, weight: 15 },
{ uuid: 9103, skill: 6504, name: "暴击药水", info: "全体友方暴击率提升 30%,持续 5 秒", cost: 0, weight: 15 }, { uuid: 9103, skill: 6504, icon: "Stat_CriticalChance_02", name: "暴击药水", info: "全体友方暴击率提升 30%,持续 5 秒", cost: 0, weight: 15 },
{ uuid: 9104, skill: 6505, name: "击退药水", info: "全体友方击退概率提升 30%,持续 5 秒", cost: 0, weight: 12 }, { uuid: 9104, skill: 6505, icon: "Stat_Stun_01", name: "击退药水", info: "全体友方击退概率提升 30%,持续 5 秒", cost: 0, weight: 12 },
{ uuid: 9105, skill: 6506, name: "穿透药水", info: "全体友方穿透概率提升 30%,持续 5 秒", cost: 0, weight: 12 }, { uuid: 9105, skill: 6506, icon: "Stat_Tripleshot", name: "穿透药水", info: "全体友方穿透概率提升 30%,持续 5 秒", cost: 0, weight: 12 },
{ uuid: 9106, skill: 6507, name: "攻速药水", info: "全体友方攻击速度提升 40%,持续 5 秒", cost: 0, weight: 15 }, { uuid: 9106, skill: 6507, icon: "Stat_AttackSpeed_02", name: "攻速药水", info: "全体友方攻击速度提升 40%,持续 5 秒", cost: 0, weight: 15 },
{ uuid: 9107, skill: 6508, name: "风怒药水", info: "全体友方风怒概率提升 20%,持续 5 秒", cost: 0, weight: 12 }, { uuid: 9107, skill: 6508, icon: "Stat_CriticalComboChance", name: "风怒药水", info: "全体友方风怒概率提升 20%,持续 5 秒", cost: 0, weight: 12 },
{ uuid: 9108, skill: 6509, name: "击晕药水", info: "全体友方击晕概率提升 30%,持续 5 秒", cost: 0, weight: 12 }, { uuid: 9108, skill: 6509, icon: "Stat_Stun_01", name: "击晕药水", info: "全体友方击晕概率提升 30%,持续 5 秒", cost: 0, weight: 12 },
{ uuid: 9109, skill: 6510, name: "击晕抗性药水", info: "全体友方击晕抗性提升 50%,持续 5 秒", cost: 4, weight: 10 }, { uuid: 9109, skill: 6510, icon: "Stat_Armor_01", name: "击晕抗性药水", info: "全体友方击晕抗性提升 50%,持续 5 秒", cost: 4, weight: 10 },
{ uuid: 9110, skill: 6511, name: "冰冻抗性药水", info: "全体友方冰冻抗性提升 50%,持续 5 秒", cost: 4, weight: 10 }, { uuid: 9110, skill: 6511, icon: "Stat_Freeze", name: "冰冻抗性药水", info: "全体友方冰冻抗性提升 50%,持续 5 秒", cost: 4, weight: 10 },
// ==================== 高级档buff_value 覆写,复用同一技能底座) ==================== // ==================== 高级档buff_value 覆写,复用同一技能底座) ====================
{ uuid: 9201, skill: 6502, name: "高级再生药水", info: "全体友方每秒回复 25 生命,持续 5 秒", cost: 0, weight: 8, overrides: { buff_value: 25 } }, { uuid: 9201, skill: 6502, icon: "Stat_PotionBoost", name: "高级再生药水", info: "全体友方每秒回复 25 生命,持续 5 秒", cost: 0, weight: 8, overrides: { buff_value: 25 } },
{ uuid: 9202, skill: 6503, name: "高级攻击药水", info: "全体友方攻击力提升 80%,持续 5 秒", cost: 0, weight: 8, overrides: { buff_value: 80 } }, { uuid: 9202, skill: 6503, icon: "Stat_Attack_03", name: "高级攻击药水", info: "全体友方攻击力提升 80%,持续 5 秒", cost: 0, weight: 8, overrides: { buff_value: 80 } },
{ uuid: 9203, skill: 6504, name: "高级暴击药水", info: "全体友方暴击率提升 50%,持续 5 秒", cost: 0, weight: 8, overrides: { buff_value: 50 } }, { uuid: 9203, skill: 6504, icon: "Stat_CriticalChance_02", name: "高级暴击药水", info: "全体友方暴击率提升 50%,持续 5 秒", cost: 0, weight: 8, overrides: { buff_value: 50 } },
{ uuid: 9206, skill: 6507, name: "高级攻速药水", info: "全体友方攻击速度提升 70%,持续 5 秒", cost: 0, weight: 8, overrides: { buff_value: 70 } }, { uuid: 9206, skill: 6507, icon: "Stat_AttackSpeed_02", name: "高级攻速药水", info: "全体友方攻击速度提升 70%,持续 5 秒", cost: 0, weight: 8, overrides: { buff_value: 70 } },
]; ];
/** /**
@@ -70,6 +71,7 @@ export const ItemCardList: CardConfig[] = ItemCardData.map(data => ({
pool_lv: CardLV.LV1, pool_lv: CardLV.LV1,
kind: CKind.Potion, kind: CKind.Potion,
card_lv: 1, card_lv: 1,
icon: data.icon,
name: data.name, name: data.name,
info: data.info, info: data.info,
is_inst: true, is_inst: true,

View File

@@ -24,6 +24,7 @@ interface SkillCardRaw {
card_lv: number; card_lv: number;
name: string; name: string;
info: string; info: string;
icon?: string; // 图标ID对应 ui6 图集 frame 名)
is_inst: boolean; is_inst: boolean;
t_times?: number; // 触发次数(未设置时按 is_inst 取默认值:即时=1定时=3 t_times?: number; // 触发次数(未设置时按 is_inst 取默认值:即时=1定时=3
t_inv?: number; t_inv?: number;
@@ -35,20 +36,20 @@ interface SkillCardRaw {
const SkillCardData: SkillCardRaw[] = [ const SkillCardData: SkillCardRaw[] = [
// ==================== card_lv 2 档(强度 ×2 ==================== // ==================== card_lv 2 档(强度 ×2 ====================
// --- 范围攻击卡ap 递增,间隔缩短) --- // --- 范围攻击卡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: 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, 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, 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, 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, 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, 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 ==================== // ==================== 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: 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, 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, 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, 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, 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, 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, pool_lv: CardLV.LV1,
kind: CKind.Skill, kind: CKind.Skill,
card_lv: data.card_lv, card_lv: data.card_lv,
icon: data.icon,
name: data.name, name: data.name,
info: data.info, info: data.info,
is_inst: data.is_inst, is_inst: data.is_inst,

View File

@@ -181,9 +181,9 @@ export class EquipListComp extends CCComp {
} }
} }
// 图标(取第一个 field 词条图标) // 图标(优先用卡牌自定义 icon否则取第一个 field 词条图标)
if (this.icon_node && fields.length > 0) { if (this.icon_node && fields.length > 0) {
const iconId = FieldSkillSet[fields[0]]?.icon || ""; const iconId = this.cardData.icon || FieldSkillSet[fields[0]]?.icon || "";
this.updateIcon(this.icon_node, iconId); this.updateIcon(this.icon_node, iconId);
} }

View File

@@ -218,10 +218,12 @@ export class ItemListComp extends CCComp {
} }
} }
// 图标:装备取第一个 field 词条图标,商品取技能图标 // 图标:优先用卡牌自定义 icon装备取第一个 field 词条图标,商品取技能图标
if (this.icon_node) { if (this.icon_node) {
let iconId = ""; let iconId = "";
if (isEquip) { if (this.cardData.icon) {
iconId = this.cardData.icon;
} else if (isEquip) {
const fields = this.cardData.field || []; const fields = this.cardData.field || [];
if (fields.length > 0) { if (fields.length > 0) {
iconId = FieldSkillSet[fields[0]]?.icon || ""; iconId = FieldSkillSet[fields[0]]?.icon || "";

View File

@@ -346,9 +346,10 @@ export class SCardComp extends CCComp {
return skillCard?.info || skill?.info || this.cardData.info || ""; return skillCard?.info || skill?.info || this.cardData.info || "";
} }
/** 获取技能图标 id驻场技能取 FieldSkillSet.icon其余取 SkillSet.icon */ /** 获取技能图标 id优先用卡牌自定义 icon驻场技能取 FieldSkillSet.icon其余取 SkillSet.icon */
private getIconId(skill: SkillConfig | null): string { private getIconId(skill: SkillConfig | null): string {
if (!this.cardData) return ""; if (!this.cardData) return "";
if (this.cardData.icon) return this.cardData.icon;
if (!this.cardData.skill && this.cardData.field && this.cardData.field.length > 0) { if (!this.cardData.skill && this.cardData.field && this.cardData.field.length > 0) {
const fieldUuid = this.cardData.field[0]; const fieldUuid = this.cardData.field[0];
return FieldSkillSet[fieldUuid]?.icon || `${fieldUuid}`; return FieldSkillSet[fieldUuid]?.icon || `${fieldUuid}`;