refactor: 将代码中的card_lv统一替换为rarity
本次提交完成了全项目范围内术语的统一替换,将原本指代卡牌品质/等级的card_lv字段全部重命名为rarity,对齐了设计文档中的命名规范,避免了术语混淆: 1. 更新了所有配置文件、组件类、数据结构中的字段定义 2. 同步修改了注释、文档说明中的相关表述 3. 修正了英雄、技能、装备卡牌的品质显示逻辑 4. 调整了背景颜色切换、属性计算等相关业务逻辑
This commit is contained in:
@@ -70,7 +70,7 @@ export interface DeadHeroRecord {
|
||||
/** 死亡时的英雄等级(复活后继承) */
|
||||
lv: number;
|
||||
/** 卡牌等级(驱动 bg_node 颜色) */
|
||||
card_lv: number;
|
||||
rarity: number;
|
||||
/** 死亡时占用的站位索引(复活时优先归位,-1 表示未分配) */
|
||||
posIndex: number;
|
||||
/** 死亡时的回合数(用于统计/按回合清理) */
|
||||
|
||||
@@ -57,10 +57,10 @@ export interface CardConfig {
|
||||
cost: number
|
||||
weight: number
|
||||
kind: CKind
|
||||
card_lv: number // 卡牌等级(驱动 bg_node 颜色:1=green 2=blue 3=purple 4=red 5=yellow)
|
||||
rarity: number // 卡牌等级(驱动 bg_node 颜色:1=green 2=blue 3=purple 4=red 5=yellow)
|
||||
wave?: number // 针对技能卡:仅在指定回合(wave)才能抽到
|
||||
hero_lv?: number
|
||||
base_card_lv?: number
|
||||
base_rarity?: number
|
||||
|
||||
// 技能卡扩展属性
|
||||
skill?: number // 关联的技能 UUID
|
||||
@@ -126,22 +126,22 @@ export interface SpecialRefreshCardConfig extends CardConfig {
|
||||
*/
|
||||
export const SpecialUpgradeCardList: Record<number, SpecialUpgradeCardConfig> = {
|
||||
7001: {
|
||||
uuid: 7001, type: CardType.SpecialUpgrade, cost: 10, weight: 18, card_lv: 1, kind: CKind.Card, name: t("scard_name_7001"), info: t("scard_info_7001"),
|
||||
uuid: 7001, type: CardType.SpecialUpgrade, cost: 10, weight: 18, rarity: 1, kind: CKind.Card, name: t("scard_name_7001"), info: t("scard_info_7001"),
|
||||
currentLv: 0, targetLv: 0,
|
||||
},
|
||||
}
|
||||
|
||||
export const SpecialRefreshCardList: Record<number, SpecialRefreshCardConfig> = {
|
||||
7101: {
|
||||
uuid: 7101, type: CardType.SpecialRefresh, cost: 3, weight: 14, card_lv: 1, kind: CKind.Card, name: t("scard_name_7101"), info: t("scard_info_7101"),
|
||||
uuid: 7101, type: CardType.SpecialRefresh, cost: 3, weight: 14, rarity: 1, kind: CKind.Card, name: t("scard_name_7101"), info: t("scard_info_7101"),
|
||||
refreshLv: 0, refreshHeroType: SpecialRefreshHeroType.Melee,
|
||||
},
|
||||
7102: {
|
||||
uuid: 7102, type: CardType.SpecialRefresh, cost: 3, weight: 14, card_lv: 1, kind: CKind.Card, name: t("scard_name_7102"), info: t("scard_info_7102"),
|
||||
uuid: 7102, type: CardType.SpecialRefresh, cost: 3, weight: 14, rarity: 1, kind: CKind.Card, name: t("scard_name_7102"), info: t("scard_info_7102"),
|
||||
refreshLv: 0, refreshHeroType: SpecialRefreshHeroType.Ranged,
|
||||
},
|
||||
7103: {
|
||||
uuid: 7103, type: CardType.SpecialRefresh, cost: 4, weight: 12, card_lv: 1, kind: CKind.Card, name: t("scard_name_7103"), info: t("scard_info_7103"),
|
||||
uuid: 7103, type: CardType.SpecialRefresh, cost: 4, weight: 12, rarity: 1, kind: CKind.Card, name: t("scard_name_7103"), info: t("scard_info_7103"),
|
||||
refreshLv: 0, refreshHeroType: SpecialRefreshHeroType.Any,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ import { FieldEntry } from "./heroSet";
|
||||
/** 装备卡原始数据(仅装备相关字段,由 EquipSet 内部转换为 CardConfig) */
|
||||
interface EquipRawData {
|
||||
uuid: number;
|
||||
card_lv: number;
|
||||
rarity: number;
|
||||
name: string;
|
||||
info: string;
|
||||
icon?: string; // 图标ID(对应 ui6 图集 frame 名)
|
||||
@@ -30,56 +30,56 @@ interface EquipRawData {
|
||||
|
||||
/** 装备卡原始数据表 */
|
||||
const EquipRawList: EquipRawData[] = [
|
||||
// ==================== card_lv 1 档(基础强度) ====================
|
||||
{ uuid: 8701, card_lv: 1, icon: "Helmet-FA_Helmet_021_Gray", name: "战后恢复", info: "战斗结束生命回复量+10%", field: [{ uuid: 7001, value: 0.1 }] },
|
||||
{ uuid: 8702, card_lv: 1, icon: "Sword-FA_WP_Main_Sword_003_GrayGold", name: "攻击加成", info: "全体攻击力+10%", field: [{ uuid: 7002, value: 0.1 }] },
|
||||
{ uuid: 8703, card_lv: 1, icon: "Blunt-FA_WP_Main_Blunt_002_Wood", name: "击晕加成", info: "全体击晕概率+10%", field: [{ uuid: 7003, value: 0.1 }] },
|
||||
{ uuid: 8704, card_lv: 1, icon: "Axe-FA_WP_Main_Axe_001_WoodGray", name: "暴击加成", info: "全体暴击率+10%", field: [{ uuid: 7004, value: 0.1 }] },
|
||||
{ uuid: 8705, card_lv: 1, icon: "Bow-FA_WP_Main_Bow_003_WoodGreen", name: "暴伤加成", info: "全体暴击伤害+20%", field: [{ uuid: 7005, value: 0.2 }] },
|
||||
{ uuid: 8706, card_lv: 1, icon: "Crossbow-FA_WP_Main_Crossbow_001_WoodWhite", name: "攻速加成", info: "全体攻击速度+10%", field: [{ uuid: 7006, value: 0.1 }] },
|
||||
{ uuid: 8707, card_lv: 1, icon: "Chest-FA_Chest_014_Gray", name: "生命加成", info: "全体最大生命+10%", field: [{ uuid: 7007, value: 0.1 }] },
|
||||
// ==================== rarity 1 档(基础强度) ====================
|
||||
{ uuid: 8701, rarity: 1, icon: "Helmet-FA_Helmet_021_Gray", name: "战后恢复", info: "战斗结束生命回复量+10%", field: [{ uuid: 7001, value: 0.1 }] },
|
||||
{ uuid: 8702, rarity: 1, icon: "Sword-FA_WP_Main_Sword_003_GrayGold", name: "攻击加成", info: "全体攻击力+10%", field: [{ uuid: 7002, value: 0.1 }] },
|
||||
{ uuid: 8703, rarity: 1, icon: "Blunt-FA_WP_Main_Blunt_002_Wood", name: "击晕加成", info: "全体击晕概率+10%", field: [{ uuid: 7003, value: 0.1 }] },
|
||||
{ uuid: 8704, rarity: 1, icon: "Axe-FA_WP_Main_Axe_001_WoodGray", name: "暴击加成", info: "全体暴击率+10%", field: [{ uuid: 7004, value: 0.1 }] },
|
||||
{ uuid: 8705, rarity: 1, icon: "Bow-FA_WP_Main_Bow_003_WoodGreen", name: "暴伤加成", info: "全体暴击伤害+20%", field: [{ uuid: 7005, value: 0.2 }] },
|
||||
{ uuid: 8706, rarity: 1, icon: "Crossbow-FA_WP_Main_Crossbow_001_WoodWhite", name: "攻速加成", info: "全体攻击速度+10%", field: [{ uuid: 7006, value: 0.1 }] },
|
||||
{ uuid: 8707, rarity: 1, icon: "Chest-FA_Chest_014_Gray", name: "生命加成", info: "全体最大生命+10%", field: [{ uuid: 7007, value: 0.1 }] },
|
||||
// 风怒机制已停用: 8708 风怒加成卡已移除
|
||||
// { uuid: 8708, card_lv: 1, icon: "Wand-FA_WP_Main_Wand_001_GrayGreen", name: "风怒加成", info: "全体风怒概率+10%", field: [{ uuid: 7008, value: 0.1 }] },
|
||||
{ uuid: 8709, card_lv: 1, icon: "Spear-FA_WP_Main_Spear_004_WoodBlue", name: "穿刺加成", info: "全体穿刺概率+10%", field: [{ uuid: 7009, value: 0.1 }] },
|
||||
{ uuid: 8712, card_lv: 1, icon: "Spear-FA_WP_Main_Spear_004_WoodBlue", name: "破甲加成", info: "全体穿透后伤害+10%", field: [{ uuid: 7020, value: 0.1 }] },
|
||||
// { uuid: 8708, rarity: 1, icon: "Wand-FA_WP_Main_Wand_001_GrayGreen", name: "风怒加成", info: "全体风怒概率+10%", field: [{ uuid: 7008, value: 0.1 }] },
|
||||
{ uuid: 8709, rarity: 1, icon: "Spear-FA_WP_Main_Spear_004_WoodBlue", name: "穿刺加成", info: "全体穿刺概率+10%", field: [{ uuid: 7009, value: 0.1 }] },
|
||||
{ uuid: 8712, rarity: 1, icon: "Spear-FA_WP_Main_Spear_004_WoodBlue", name: "破甲加成", info: "全体穿透后伤害+10%", field: [{ uuid: 7020, value: 0.1 }] },
|
||||
// 多词条装备
|
||||
{ uuid: 8720, card_lv: 1, icon: "Shield-FA_WP_Sub_Shield_007_GoldGray", name: "勇者护符", info: "全体攻击力+10%, 暴击率+10%, 暴击伤害+20%", field: [{ uuid: 7002, value: 0.1 }, { uuid: 7004, value: 0.1 }, { uuid: 7005, value: 0.2 }] },
|
||||
{ uuid: 8720, rarity: 1, icon: "Shield-FA_WP_Sub_Shield_007_GoldGray", name: "勇者护符", info: "全体攻击力+10%, 暴击率+10%, 暴击伤害+20%", field: [{ uuid: 7002, value: 0.1 }, { uuid: 7004, value: 0.1 }, { uuid: 7005, value: 0.2 }] },
|
||||
|
||||
// ==================== card_lv 2 档(强度 ×2) ====================
|
||||
{ uuid: 8751, card_lv: 2, icon: "Helmet-FA_Helmet_022_DarkBlue", name: "战后恢复", info: "战斗结束生命回复量+20%", field: [{ uuid: 7001, value: 0.2 }] },
|
||||
{ uuid: 8752, card_lv: 2, icon: "Sword-FA_WP_Main_Sword_007_Blue", name: "攻击加成", info: "全体攻击力+20%", field: [{ uuid: 7002, value: 0.2 }] },
|
||||
{ uuid: 8753, card_lv: 2, icon: "Blunt-FA_WP_Main_Blunt_004_Gray", name: "击晕加成", info: "全体击晕概率+20%", field: [{ uuid: 7003, value: 0.2 }] },
|
||||
{ uuid: 8754, card_lv: 2, icon: "Axe-FA_WP_Main_Axe_006_WoodBronze", name: "暴击加成", info: "全体暴击率+20%", field: [{ uuid: 7004, value: 0.2 }] },
|
||||
{ uuid: 8755, card_lv: 2, icon: "Bow-FA_WP_Main_Bow_010_Blue", name: "暴伤加成", info: "全体暴击伤害+40%", field: [{ uuid: 7005, value: 0.4 }] },
|
||||
{ uuid: 8756, card_lv: 2, icon: "Crossbow-FA_WP_Main_Crossbow_004_Gray", name: "攻速加成", info: "全体攻击速度+20%", field: [{ uuid: 7006, value: 0.2 }] },
|
||||
{ uuid: 8757, card_lv: 2, icon: "Chest-FA_Chest_014_BlueGold", name: "生命加成", info: "全体最大生命+20%", field: [{ uuid: 7007, value: 0.2 }] },
|
||||
// ==================== rarity 2 档(强度 ×2) ====================
|
||||
{ uuid: 8751, rarity: 2, icon: "Helmet-FA_Helmet_022_DarkBlue", name: "战后恢复", info: "战斗结束生命回复量+20%", field: [{ uuid: 7001, value: 0.2 }] },
|
||||
{ uuid: 8752, rarity: 2, icon: "Sword-FA_WP_Main_Sword_007_Blue", name: "攻击加成", info: "全体攻击力+20%", field: [{ uuid: 7002, value: 0.2 }] },
|
||||
{ uuid: 8753, rarity: 2, icon: "Blunt-FA_WP_Main_Blunt_004_Gray", name: "击晕加成", info: "全体击晕概率+20%", field: [{ uuid: 7003, value: 0.2 }] },
|
||||
{ uuid: 8754, rarity: 2, icon: "Axe-FA_WP_Main_Axe_006_WoodBronze", name: "暴击加成", info: "全体暴击率+20%", field: [{ uuid: 7004, value: 0.2 }] },
|
||||
{ uuid: 8755, rarity: 2, icon: "Bow-FA_WP_Main_Bow_010_Blue", name: "暴伤加成", info: "全体暴击伤害+40%", field: [{ uuid: 7005, value: 0.4 }] },
|
||||
{ uuid: 8756, rarity: 2, icon: "Crossbow-FA_WP_Main_Crossbow_004_Gray", name: "攻速加成", info: "全体攻击速度+20%", field: [{ uuid: 7006, value: 0.2 }] },
|
||||
{ uuid: 8757, rarity: 2, icon: "Chest-FA_Chest_014_BlueGold", name: "生命加成", info: "全体最大生命+20%", field: [{ uuid: 7007, value: 0.2 }] },
|
||||
// 风怒机制已停用: 8758 风怒加成卡已移除
|
||||
// { uuid: 8758, card_lv: 2, icon: "Wand-FA_WP_Main_Wand_003_BlueWood", name: "风怒加成", info: "全体风怒概率+20%", field: [{ uuid: 7008, value: 0.2 }] },
|
||||
{ uuid: 8759, card_lv: 2, icon: "Spear-FA_WP_Main_Spear_007_GraySkyblue", name: "穿刺加成", info: "全体穿刺概率+20%", field: [{ uuid: 7009, value: 0.2 }] },
|
||||
{ uuid: 8763, card_lv: 2, icon: "Spear-FA_WP_Main_Spear_007_GraySkyblue", name: "破甲加成", info: "全体穿透后伤害+20%", field: [{ uuid: 7020, value: 0.2 }] },
|
||||
// { uuid: 8758, rarity: 2, icon: "Wand-FA_WP_Main_Wand_003_BlueWood", name: "风怒加成", info: "全体风怒概率+20%", field: [{ uuid: 7008, value: 0.2 }] },
|
||||
{ uuid: 8759, rarity: 2, icon: "Spear-FA_WP_Main_Spear_007_GraySkyblue", name: "穿刺加成", info: "全体穿刺概率+20%", field: [{ uuid: 7009, value: 0.2 }] },
|
||||
{ uuid: 8763, rarity: 2, icon: "Spear-FA_WP_Main_Spear_007_GraySkyblue", name: "破甲加成", info: "全体穿透后伤害+20%", field: [{ uuid: 7020, value: 0.2 }] },
|
||||
// 多词条装备
|
||||
{ uuid: 8770, card_lv: 2, icon: "Chest-FA_Chest_014_BlueGold", name: "守卫护甲", info: "全体最大生命+20%, 战后生命回复+20%, 攻速+20%", field: [{ uuid: 7007, value: 0.2 }, { uuid: 7001, value: 0.2 }, { uuid: 7006, value: 0.2 }] },
|
||||
{ uuid: 8770, rarity: 2, icon: "Chest-FA_Chest_014_BlueGold", name: "守卫护甲", info: "全体最大生命+20%, 战后生命回复+20%, 攻速+20%", field: [{ uuid: 7007, value: 0.2 }, { uuid: 7001, value: 0.2 }, { uuid: 7006, value: 0.2 }] },
|
||||
|
||||
// ==================== card_lv 3 档(强度 ×3) ====================
|
||||
{ uuid: 8801, card_lv: 3, icon: "Helmet-FA_Helmet_021_RedGold", name: "战后恢复", info: "战斗结束生命回复量+30%", field: [{ uuid: 7001, value: 0.3 }] },
|
||||
{ uuid: 8802, card_lv: 3, icon: "Sword-FA_WP_Main_Sword_001_Gold", name: "攻击加成", info: "全体攻击力+30%", field: [{ uuid: 7002, value: 0.3 }] },
|
||||
{ uuid: 8803, card_lv: 3, icon: "Blunt-FA_WP_Main_Blunt_006_OrangeGray", name: "击晕加成", info: "全体击晕概率+30%", field: [{ uuid: 7003, value: 0.3 }] },
|
||||
{ uuid: 8804, card_lv: 3, icon: "Axe-FA_WP_Main_Axe_012_WoodGold", name: "暴击加成", info: "全体暴击率+30%", field: [{ uuid: 7004, value: 0.3 }] },
|
||||
{ uuid: 8805, card_lv: 3, icon: "Bow-FA_WP_Main_Bow_010_Gold", name: "暴伤加成", info: "全体暴击伤害+60%", field: [{ uuid: 7005, value: 0.6 }] },
|
||||
{ uuid: 8806, card_lv: 3, icon: "Crossbow-FA_WP_Main_Crossbow_005_WoodGold", name: "攻速加成", info: "全体攻击速度+30%", field: [{ uuid: 7006, value: 0.3 }] },
|
||||
{ uuid: 8807, card_lv: 3, icon: "Chest-FA_Chest_015_RedGold", name: "生命加成", info: "全体最大生命+30%", field: [{ uuid: 7007, value: 0.3 }] },
|
||||
// ==================== rarity 3 档(强度 ×3) ====================
|
||||
{ uuid: 8801, rarity: 3, icon: "Helmet-FA_Helmet_021_RedGold", name: "战后恢复", info: "战斗结束生命回复量+30%", field: [{ uuid: 7001, value: 0.3 }] },
|
||||
{ uuid: 8802, rarity: 3, icon: "Sword-FA_WP_Main_Sword_001_Gold", name: "攻击加成", info: "全体攻击力+30%", field: [{ uuid: 7002, value: 0.3 }] },
|
||||
{ uuid: 8803, rarity: 3, icon: "Blunt-FA_WP_Main_Blunt_006_OrangeGray", name: "击晕加成", info: "全体击晕概率+30%", field: [{ uuid: 7003, value: 0.3 }] },
|
||||
{ uuid: 8804, rarity: 3, icon: "Axe-FA_WP_Main_Axe_012_WoodGold", name: "暴击加成", info: "全体暴击率+30%", field: [{ uuid: 7004, value: 0.3 }] },
|
||||
{ uuid: 8805, rarity: 3, icon: "Bow-FA_WP_Main_Bow_010_Gold", name: "暴伤加成", info: "全体暴击伤害+60%", field: [{ uuid: 7005, value: 0.6 }] },
|
||||
{ uuid: 8806, rarity: 3, icon: "Crossbow-FA_WP_Main_Crossbow_005_WoodGold", name: "攻速加成", info: "全体攻击速度+30%", field: [{ uuid: 7006, value: 0.3 }] },
|
||||
{ uuid: 8807, rarity: 3, icon: "Chest-FA_Chest_015_RedGold", name: "生命加成", info: "全体最大生命+30%", field: [{ uuid: 7007, value: 0.3 }] },
|
||||
// 风怒机制已停用: 8808 风怒加成卡已移除
|
||||
// { uuid: 8808, card_lv: 3, icon: "Wand-FA_WP_Main_Wand_004_WoodGold", name: "风怒加成", info: "全体风怒概率+30%", field: [{ uuid: 7008, value: 0.3 }] },
|
||||
{ uuid: 8809, card_lv: 3, icon: "Spear-FA_WP_Main_Spear_008_GrayGold", name: "穿刺加成", info: "全体穿刺概率+30%", field: [{ uuid: 7009, value: 0.3 }] },
|
||||
{ uuid: 8817, card_lv: 3, icon: "Spear-FA_WP_Main_Spear_008_GrayGold", name: "破甲加成", info: "全体穿透后伤害+30%", field: [{ uuid: 7020, value: 0.3 }] },
|
||||
// { uuid: 8808, rarity: 3, icon: "Wand-FA_WP_Main_Wand_004_WoodGold", name: "风怒加成", info: "全体风怒概率+30%", field: [{ uuid: 7008, value: 0.3 }] },
|
||||
{ uuid: 8809, rarity: 3, icon: "Spear-FA_WP_Main_Spear_008_GrayGold", name: "穿刺加成", info: "全体穿刺概率+30%", field: [{ uuid: 7009, value: 0.3 }] },
|
||||
{ uuid: 8817, rarity: 3, icon: "Spear-FA_WP_Main_Spear_008_GrayGold", name: "破甲加成", info: "全体穿透后伤害+30%", field: [{ uuid: 7020, value: 0.3 }] },
|
||||
// 触发次数强化
|
||||
{ uuid: 8811, card_lv: 3, icon: "Wand-FA_WP_Main_Wand_004_WoodGold", name: "召唤强化", info: "召唤触发技能次数+1", field: [{ uuid: 7014, value: 1 }] },
|
||||
{ uuid: 8812, card_lv: 3, icon: "Staff-FA_WP_Main_Staff_005_WoodGold", name: "死亡强化", info: "死亡触发技能次数+1", field: [{ uuid: 7015, value: 1 }] },
|
||||
{ uuid: 8813, card_lv: 3, icon: "Spear-FA_WP_Main_Spear_008_GrayGold", name: "开场强化", info: "战斗开始触发技能次数+1", field: [{ uuid: 7016, value: 1 }] },
|
||||
{ uuid: 8815, card_lv: 3, icon: "Sword-FA_WP_Main_Sword_001_Gold", name: "攻击强化", info: "攻击触发技能次数+1", field: [{ uuid: 7018, value: 1 }] },
|
||||
{ uuid: 8816, card_lv: 3, icon: "Shield-FA_WP_Sub_Shield_009_RedGold", name: "受击强化", info: "被攻击触发技能次数+1", field: [{ uuid: 7019, value: 1 }] },
|
||||
{ uuid: 8811, rarity: 3, icon: "Wand-FA_WP_Main_Wand_004_WoodGold", name: "召唤强化", info: "召唤触发技能次数+1", field: [{ uuid: 7014, value: 1 }] },
|
||||
{ uuid: 8812, rarity: 3, icon: "Staff-FA_WP_Main_Staff_005_WoodGold", name: "死亡强化", info: "死亡触发技能次数+1", field: [{ uuid: 7015, value: 1 }] },
|
||||
{ uuid: 8813, rarity: 3, icon: "Spear-FA_WP_Main_Spear_008_GrayGold", name: "开场强化", info: "战斗开始触发技能次数+1", field: [{ uuid: 7016, value: 1 }] },
|
||||
{ uuid: 8815, rarity: 3, icon: "Sword-FA_WP_Main_Sword_001_Gold", name: "攻击强化", info: "攻击触发技能次数+1", field: [{ uuid: 7018, value: 1 }] },
|
||||
{ uuid: 8816, rarity: 3, icon: "Shield-FA_WP_Sub_Shield_009_RedGold", name: "受击强化", info: "被攻击触发技能次数+1", field: [{ uuid: 7019, value: 1 }] },
|
||||
// 多词条装备
|
||||
{ uuid: 8820, card_lv: 3, icon: "Sword-FA_WP_Main_Sword_001_Gold", name: "神圣之刃", info: "全体攻击力+30%, 暴击率+30%, 暴击伤害+60%, 攻速+30%", field: [{ uuid: 7002, value: 0.3 }, { uuid: 7004, value: 0.3 }, { uuid: 7005, value: 0.6 }, { uuid: 7006, value: 0.3 }] },
|
||||
{ uuid: 8820, rarity: 3, icon: "Sword-FA_WP_Main_Sword_001_Gold", name: "神圣之刃", info: "全体攻击力+30%, 暴击率+30%, 暴击伤害+60%, 攻速+30%", field: [{ uuid: 7002, value: 0.3 }, { uuid: 7004, value: 0.3 }, { uuid: 7005, value: 0.6 }, { uuid: 7006, value: 0.3 }] },
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -98,7 +98,7 @@ export const EquipPoolList: CardConfig[] = EquipRawList.map(data => ({
|
||||
cost: data.cost ?? 0,
|
||||
weight: 10,
|
||||
kind: CKind.Skill,
|
||||
card_lv: data.card_lv,
|
||||
rarity: data.rarity,
|
||||
icon: data.icon,
|
||||
name: data.name,
|
||||
info: data.info,
|
||||
|
||||
@@ -103,7 +103,7 @@ export const HERO_UPGRADE_NEED_FRAGMENTS: Record<number, number> = {
|
||||
|
||||
/**
|
||||
* 技能卡牌出现的回合配置(单一数据源)。
|
||||
* 数组索引 i 对应卡牌档位 card_lv = i + 1:
|
||||
* 数组索引 i 对应卡牌档位 rarity = i + 1:
|
||||
* - 第 1 个回合 → LV1 档(基础强度)
|
||||
* - 第 2 个回合 → LV2 档(强度 ×2)
|
||||
* - 第 3 个回合 → LV3 档(强度 ×3)
|
||||
@@ -207,10 +207,10 @@ export function getLvColor(lv: number): Color {
|
||||
}
|
||||
|
||||
/**
|
||||
* card_lv → 背景颜色节点名映射:1=green 2=blue 3=purple 4=yellow 5=red
|
||||
* rarity → 背景颜色节点名映射:1=green 2=blue 3=purple 4=yellow 5=red
|
||||
* 用于 BG_node 下子节点的显隐切换
|
||||
*/
|
||||
export const CARD_LV_BG_COLORS: string[] = ["green", "blue", "purple", "yellow", "red"];
|
||||
export const RARITY_BG_COLORS: string[] = ["green", "blue", "purple", "yellow", "red"];
|
||||
|
||||
/**
|
||||
* 战斗结算奖励配置(每局结束后发放:英雄碎片 + 金币 + 天赋经验)。
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
## 编号体系
|
||||
|
||||
| 号段 | card_lv | 说明 |
|
||||
| 号段 | rarity | 说明 |
|
||||
|------|---------|------|
|
||||
| 5001-5099 | 1 | 绿卡英雄池 |
|
||||
| 5101-5199 | 2 | 蓝卡英雄池 |
|
||||
@@ -44,26 +44,26 @@
|
||||
|
||||
## 规则 2:品质-档位标准
|
||||
|
||||
**card_lv = 基础 1 + 能力加成**
|
||||
**rarity = 基础 1 + 能力加成**
|
||||
|
||||
| 能力项 | 加成 | 说明 |
|
||||
|--------|------|------|
|
||||
| 基础触发技能(1个,单体) | +0 | card_lv=1 |
|
||||
| 更高数值 | +1 | card_lv=2 |
|
||||
| ap/hp 成长 | +1 | card_lv=2 |
|
||||
| 范围扩大(单体→全体) | +2 | card_lv=3 |
|
||||
| 双技能(+revive/光环) | +4 | card_lv=5 |
|
||||
| 基础触发技能(1个,单体) | +0 | rarity=1 |
|
||||
| 更高数值 | +1 | rarity=2 |
|
||||
| ap/hp 成长 | +1 | rarity=2 |
|
||||
| 范围扩大(单体→全体) | +2 | rarity=3 |
|
||||
| 双技能(+revive/光环) | +4 | rarity=5 |
|
||||
|
||||
**组合示例:**
|
||||
- 1 + 0 = card_lv 1(基础)
|
||||
- 1 + 1 = card_lv 2(数值强化 或 ap/hp 成长)
|
||||
- 1 + 2 = card_lv 3(范围扩大)
|
||||
- 1 + 1 + 2 = card_lv 4(数值 + 范围)
|
||||
- 1 + 4 = card_lv 5(双技能)
|
||||
- 1 + 0 = rarity 1(基础)
|
||||
- 1 + 1 = rarity 2(数值强化 或 ap/hp 成长)
|
||||
- 1 + 2 = rarity 3(范围扩大)
|
||||
- 1 + 1 + 2 = rarity 4(数值 + 范围)
|
||||
- 1 + 4 = rarity 5(双技能)
|
||||
|
||||
**双技能定义**:指英雄同时拥有**两个不同的触发类型字段**(如 atked + revive,或 dead + field)。同一触发类型下的 TriggerGrouped 挂多个 s_uuid 属于主触发类型内的能力组合,不算"双技能"。
|
||||
|
||||
**原则:每个英雄单独讨论,根据能力组合定 card_lv,不死板规定。**
|
||||
**原则:每个英雄单独讨论,根据能力组合定 rarity,不死板规定。**
|
||||
|
||||
## 规则 3:命名规则
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
|
||||
## 当前英雄池
|
||||
|
||||
| 编号 | 名称 | card_lv | 触发类型 | 能力 | 状态 |
|
||||
| 编号 | 名称 | rarity | 触发类型 | 能力 | 状态 |
|
||||
|------|------|---------|---------|------|------|
|
||||
| 5001 | 铁壁战士 | 1 | atked | 护盾 | 保留(原 5011) |
|
||||
| 5106 | 破甲射手 | 2 | atking | 穿透伤害(计时buff,技能 6512 + Buff 7022) | 已创建 |
|
||||
|
||||
@@ -70,7 +70,7 @@ export const ItemCardList: CardConfig[] = ItemCardData.map(data => ({
|
||||
cost: data.cost,
|
||||
weight: data.weight,
|
||||
kind: CKind.Potion,
|
||||
card_lv: 1,
|
||||
rarity: 1,
|
||||
icon: data.icon,
|
||||
name: data.name,
|
||||
info: data.info,
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
* 设计:
|
||||
* - 技能卡不再按 wave 过滤,所有技能卡均可被抽取。
|
||||
* - 所有技能卡均按次数触发(t_times),不再永久存在。
|
||||
* - card_lv 直接显式配置,不再依赖 wave 推导。
|
||||
* - rarity 直接显式配置,不再依赖 wave 推导。
|
||||
* - 数值基线高于普通英雄普攻(ap:100),通过 overrides 附加 ap/crt/frz/stun/bck 等效果。
|
||||
*
|
||||
* 依赖:
|
||||
@@ -22,7 +22,7 @@ import { SkillOverrides } from "./SkillSet";
|
||||
interface SkillCardRaw {
|
||||
uuid: number;
|
||||
skill: number;
|
||||
card_lv: number;
|
||||
rarity: number;
|
||||
name: string;
|
||||
info: string;
|
||||
icon?: string; // 图标ID(对应 ui6 图集 frame 名)
|
||||
@@ -35,30 +35,30 @@ interface SkillCardRaw {
|
||||
}
|
||||
|
||||
const SkillCardData: SkillCardRaw[] = [
|
||||
// ==================== card_lv 1 · 基础单体(ap:150,附加差异化效果) ====================
|
||||
// ==================== rarity 1 · 基础单体(ap:150,附加差异化效果) ====================
|
||||
// --- 刀剑系:暴击 ---
|
||||
{ uuid: 8101, skill: 6001, card_lv: 1, icon: "Sword-FA_WP_Main_Sword_003_PurpleSilver", name: "飞剑卷轴", info: "召唤飞剑攻击敌人,造成攻击力150%的伤害,25%暴击", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, crt: 25 } },
|
||||
{ uuid: 8102, skill: 6002, card_lv: 1, icon: "Sword-FA_WP_Main_Sword_019_WoodSilver", name: "匕首卷轴", info: "召唤匕首攻击敌人,造成攻击力150%的伤害,25%暴击", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, crt: 25 } },
|
||||
{ uuid: 8101, skill: 6001, rarity: 1, icon: "Sword-FA_WP_Main_Sword_003_PurpleSilver", name: "飞剑卷轴", info: "召唤飞剑攻击敌人,造成攻击力150%的伤害,25%暴击", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, crt: 25 } },
|
||||
{ uuid: 8102, skill: 6002, rarity: 1, icon: "Sword-FA_WP_Main_Sword_019_WoodSilver", name: "匕首卷轴", info: "召唤匕首攻击敌人,造成攻击力150%的伤害,25%暴击", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, crt: 25 } },
|
||||
// --- 斧锤系:击退 ---
|
||||
{ uuid: 8103, skill: 6003, card_lv: 1, icon: "Axe-FA_WP_Main_Axe_004_WoodGray", name: "飞斧卷轴", info: "召唤飞斧攻击敌人,造成攻击力150%的伤害,25%击退", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, bck: 25 } },
|
||||
{ uuid: 8103, skill: 6003, rarity: 1, icon: "Axe-FA_WP_Main_Axe_004_WoodGray", name: "飞斧卷轴", info: "召唤飞斧攻击敌人,造成攻击力150%的伤害,25%击退", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, bck: 25 } },
|
||||
// --- 枪矛系:穿透(多命中1次) ---
|
||||
{ uuid: 8105, skill: 6004, card_lv: 2, icon: "Stat_Attack_01", name: "突刺·双卷轴", info: "召唤突刺·双攻击敌人,一次释放2发,造成攻击力180%的伤害,可贯穿2个目标", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 180, hit_count: 2, num: 1 } },
|
||||
{ uuid: 8105, skill: 6004, rarity: 2, icon: "Stat_Attack_01", name: "突刺·双卷轴", info: "召唤突刺·双攻击敌人,一次释放2发,造成攻击力180%的伤害,可贯穿2个目标", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 180, hit_count: 2, num: 1 } },
|
||||
// --- 远程射击系:高暴击 ---
|
||||
{ uuid: 8106, skill: 6006, card_lv: 1, icon: "Stat_RangedAttack", name: "射击卷轴", info: "召唤射击攻击敌人,造成攻击力150%的伤害,30%暴击", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, crt: 30 } },
|
||||
{ uuid: 8107, skill: 6007, card_lv: 1, icon: "Stat_RangedAttack", name: "蓝箭卷轴", info: "召唤蓝箭攻击敌人,造成攻击力150%的伤害,30%暴击", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, crt: 30 } },
|
||||
{ uuid: 8108, skill: 6008, card_lv: 1, icon: "Stat_RangedAttack", name: "火箭卷轴", info: "召唤火箭攻击敌人,造成攻击力150%的伤害,30%暴击", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, crt: 30 } },
|
||||
{ uuid: 8106, skill: 6006, rarity: 1, icon: "Stat_RangedAttack", name: "射击卷轴", info: "召唤射击攻击敌人,造成攻击力150%的伤害,30%暴击", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, crt: 30 } },
|
||||
{ uuid: 8107, skill: 6007, rarity: 1, icon: "Stat_RangedAttack", name: "蓝箭卷轴", info: "召唤蓝箭攻击敌人,造成攻击力150%的伤害,30%暴击", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, crt: 30 } },
|
||||
{ uuid: 8108, skill: 6008, rarity: 1, icon: "Stat_RangedAttack", name: "火箭卷轴", info: "召唤火箭攻击敌人,造成攻击力150%的伤害,30%暴击", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, crt: 30 } },
|
||||
// --- 魔球系:击晕 ---
|
||||
{ uuid: 8109, skill: 6009, card_lv: 1, icon: "Sub_Item-FA_WP_Sub_MagicBall_001_Blue", name: "蓝魔球卷轴", info: "召唤蓝魔球攻击敌人,造成攻击力150%的伤害,25%击晕", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, stun: 25 } },
|
||||
{ uuid: 8110, skill: 6010, card_lv: 1, icon: "Sub_Item-FA_WP_Sub_MagicBall_001_Purple", name: "紫魔球卷轴", info: "召唤紫魔球攻击敌人,造成攻击力150%的伤害,25%击晕", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, stun: 25 } },
|
||||
{ uuid: 8109, skill: 6009, rarity: 1, icon: "Sub_Item-FA_WP_Sub_MagicBall_001_Blue", name: "蓝魔球卷轴", info: "召唤蓝魔球攻击敌人,造成攻击力150%的伤害,25%击晕", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, stun: 25 } },
|
||||
{ uuid: 8110, skill: 6010, rarity: 1, icon: "Sub_Item-FA_WP_Sub_MagicBall_001_Purple", name: "紫魔球卷轴", info: "召唤紫魔球攻击敌人,造成攻击力150%的伤害,25%击晕", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, stun: 25 } },
|
||||
// --- 药瓶系:冰冻 ---
|
||||
{ uuid: 8111, skill: 6011, card_lv: 1, icon: "Sub_Item-FA_WP_Sub_Potion_001_Green", name: "绿药瓶卷轴", info: "召唤绿药瓶攻击敌人,造成攻击力150%的伤害,25%冰冻", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, frz: 25 } },
|
||||
{ uuid: 8112, skill: 6012, card_lv: 1, icon: "Sub_Item-FA_WP_Sub_Potion_001_Red", name: "红药瓶卷轴", info: "召唤红药瓶攻击敌人,造成攻击力150%的伤害,25%冰冻", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, frz: 25 } },
|
||||
{ uuid: 8111, skill: 6011, rarity: 1, icon: "Sub_Item-FA_WP_Sub_Potion_001_Green", name: "绿药瓶卷轴", info: "召唤绿药瓶攻击敌人,造成攻击力150%的伤害,25%冰冻", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, frz: 25 } },
|
||||
{ uuid: 8112, skill: 6012, rarity: 1, icon: "Sub_Item-FA_WP_Sub_Potion_001_Red", name: "红药瓶卷轴", info: "召唤红药瓶攻击敌人,造成攻击力150%的伤害,25%冰冻", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, frz: 25 } },
|
||||
|
||||
// ==================== card_lv 2 · 中阶范围(ap:200,群体附加) ====================
|
||||
{ uuid: 8201, skill: 6200, card_lv: 2, icon: "Stat_FireDamage", name: "火球·双卷轴", info: "召唤火球·双攻击敌人,一次释放2发,造成攻击力200%的伤害,30%暴击,可命中2个目标", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 200, crt: 30, num: 1 } },
|
||||
{ uuid: 8202, skill: 6201, card_lv: 2, icon: "Stat_Mana", name: "飓风卷轴", info: "召唤飓风攻击敌人,造成攻击力200%的伤害,30%击晕,可命中2个目标", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 200, stun: 30 } },
|
||||
// ==================== rarity 2 · 中阶范围(ap:200,群体附加) ====================
|
||||
{ uuid: 8201, skill: 6200, rarity: 2, icon: "Stat_FireDamage", name: "火球·双卷轴", info: "召唤火球·双攻击敌人,一次释放2发,造成攻击力200%的伤害,30%暴击,可命中2个目标", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 200, crt: 30, num: 1 } },
|
||||
{ uuid: 8202, skill: 6201, rarity: 2, icon: "Stat_Mana", name: "飓风卷轴", info: "召唤飓风攻击敌人,造成攻击力200%的伤害,30%击晕,可命中2个目标", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 200, stun: 30 } },
|
||||
|
||||
// ==================== card_lv 3 · 高阶范围(ap:250,群体附加) ====================
|
||||
// ==================== rarity 3 · 高阶范围(ap:250,群体附加) ====================
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -75,7 +75,7 @@ export const SkillCardList: CardConfig[] = SkillCardData.map(data => {
|
||||
cost: 0,
|
||||
weight: 10,
|
||||
kind: CKind.Skill,
|
||||
card_lv: data.card_lv,
|
||||
rarity: data.rarity,
|
||||
icon: data.icon,
|
||||
name: data.name,
|
||||
info: data.info,
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
}
|
||||
],
|
||||
"info": "",
|
||||
"card_lv": 4,
|
||||
"rarity": 4,
|
||||
"grow_type": "Mage",
|
||||
"role": "Mage",
|
||||
"trig_order": [
|
||||
@@ -225,7 +225,7 @@
|
||||
}
|
||||
],
|
||||
"info": "",
|
||||
"card_lv": 5,
|
||||
"rarity": 5,
|
||||
"grow_type": "Warrior",
|
||||
"role": "Warrior",
|
||||
"trig_order": [
|
||||
@@ -347,7 +347,7 @@
|
||||
}
|
||||
],
|
||||
"info": "",
|
||||
"card_lv": 4,
|
||||
"rarity": 4,
|
||||
"grow_type": "Warrior",
|
||||
"role": "Warrior",
|
||||
"trig_order": [
|
||||
@@ -477,7 +477,7 @@
|
||||
}
|
||||
],
|
||||
"info": "",
|
||||
"card_lv": 4,
|
||||
"rarity": 4,
|
||||
"grow_type": "Mage",
|
||||
"role": "Mage",
|
||||
"trig_order": [
|
||||
@@ -590,7 +590,7 @@
|
||||
}
|
||||
],
|
||||
"info": "",
|
||||
"card_lv": 5,
|
||||
"rarity": 5,
|
||||
"grow_type": "Tank",
|
||||
"role": "Tank",
|
||||
"trig_order": [
|
||||
@@ -755,7 +755,7 @@
|
||||
}
|
||||
],
|
||||
"info": "",
|
||||
"card_lv": 4,
|
||||
"rarity": 4,
|
||||
"grow_type": "Support",
|
||||
"role": "Support",
|
||||
"trig_order": [
|
||||
@@ -887,7 +887,7 @@
|
||||
}
|
||||
],
|
||||
"info": "",
|
||||
"card_lv": 3,
|
||||
"rarity": 3,
|
||||
"grow_type": "Tank",
|
||||
"role": "Tank",
|
||||
"trig_order": [
|
||||
@@ -910,7 +910,7 @@
|
||||
],
|
||||
"block_comments": {
|
||||
"ap_bonus": [
|
||||
" // card_lv 3:lv9 无光环,改为基础属性+50%"
|
||||
" // rarity 3:lv9 无光环,改为基础属性+50%"
|
||||
]
|
||||
},
|
||||
"ap_bonus": [
|
||||
@@ -1006,7 +1006,7 @@
|
||||
}
|
||||
],
|
||||
"info": "",
|
||||
"card_lv": 5,
|
||||
"rarity": 5,
|
||||
"grow_type": "Warrior",
|
||||
"role": "Warrior",
|
||||
"trig_order": [
|
||||
@@ -1116,7 +1116,7 @@
|
||||
}
|
||||
],
|
||||
"info": "",
|
||||
"card_lv": 3,
|
||||
"rarity": 3,
|
||||
"grow_type": "Tank",
|
||||
"role": "Tank",
|
||||
"trig_order": [
|
||||
@@ -1161,7 +1161,7 @@
|
||||
],
|
||||
"block_comments": {
|
||||
"ap_bonus": [
|
||||
" // card_lv 3:lv9 无光环,改为基础属性+50%"
|
||||
" // rarity 3:lv9 无光环,改为基础属性+50%"
|
||||
]
|
||||
},
|
||||
"ap_bonus": [
|
||||
|
||||
@@ -117,15 +117,15 @@ export const HERO_GROW_COEF: Record<HGrowType, { hp: number; ap: number; def: nu
|
||||
};
|
||||
|
||||
/**
|
||||
* 英雄品质系数步长:相邻品质(card_lv)基础属性相差 5%。
|
||||
* 系数 = 1 + HERO_QUALITY_STEP × (card_lv - 1),lv1~lv5 → 1.00/1.05/1.10/1.15/1.20。
|
||||
* 英雄品质系数步长:相邻品质(rarity)基础属性相差 5%。
|
||||
* 系数 = 1 + HERO_QUALITY_STEP × (rarity - 1),lv1~lv5 → 1.00/1.05/1.10/1.15/1.20。
|
||||
* 仅作用于 lv1 初始基础属性(AP/HP/DEF),成长与等级 bonus 不随品质缩放。
|
||||
*/
|
||||
export const HERO_QUALITY_STEP = 0.05;
|
||||
|
||||
/** 计算英雄品质系数(相邻品质基础属性差 5%) */
|
||||
export function getHeroQualityCoef(cardLv: number): number {
|
||||
return 1 + HERO_QUALITY_STEP * (Math.max(1, cardLv) - 1);
|
||||
export function getHeroQualityCoef(rarity: number): number {
|
||||
return 1 + HERO_QUALITY_STEP * (Math.max(1, rarity) - 1);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -308,7 +308,7 @@ export interface heroInfo {
|
||||
fac: FacSet; // 阵营(FacSet.HERO 或 FacSet.MON)
|
||||
kind?: number; // 未使用
|
||||
lv: number; // 英雄等级
|
||||
card_lv?: number; // 卡牌等级(驱动 bg_node 颜色:1=green 2=blue 3=purple 4=red 5=yellow)
|
||||
rarity?: number; // 卡牌等级(驱动 bg_node 颜色:1=green 2=blue 3=purple 4=red 5=yellow)
|
||||
type: HType; // 攻击定位(近战/中程/远程)
|
||||
grow_type?: HGrowType; // 成长类型(决定每级 hp/ap 标准增量,默认 Warrior)
|
||||
role?: HRole; // 位置类型/职业定位(英雄专用,怪物用 monType 表达)
|
||||
@@ -346,8 +346,8 @@ export interface HeroCardConfig {
|
||||
name?: string;
|
||||
info?: string;
|
||||
cost: number;
|
||||
card_lv: number;
|
||||
base_card_lv?: number;
|
||||
rarity: number;
|
||||
base_rarity?: number;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -357,7 +357,7 @@ export interface HeroCardPoolEntry {
|
||||
uuid: number;
|
||||
cost: number;
|
||||
weight: number;
|
||||
card_lv: number;
|
||||
rarity: number;
|
||||
}
|
||||
|
||||
/** 英雄卡池:由 HeroList 动态生成(见文件末尾初始化代码) */
|
||||
@@ -459,9 +459,9 @@ export interface LvBonusEntry {
|
||||
* 规则:lv1 激活 skills[0]/skills[1],lv6 解锁 atking/atked/fstart/dead/field 触发技能(触发类统一 lv6 激活),
|
||||
* 大招(skills[1])lv9/lv16 走 lv_entries 分档成长,lv12 按职业对单项基础属性 +50%(基数取 lv11 有效值),
|
||||
* revive[0] 与 skills[1] 互斥二选一(配置 revive 时按 lv1/lv9/lv16 走 lv_entries 3 级成长),
|
||||
* lv6 card_lv 4/5 配 field 光环,card_lv 1/2/3 配 ap_bonus/hp_bonus 基础属性+30/40/50%,
|
||||
* 品质(card_lv)相邻基础属性差 5%(仅 lv1 初始 AP/HP/DEF)
|
||||
* 编号:本批复刻英雄集中于 5001~5009,card_lv 按配置(不遵循段位规则)
|
||||
* lv6 rarity 4/5 配 field 光环,rarity 1/2/3 配 ap_bonus/hp_bonus 基础属性+30/40/50%,
|
||||
* 品质(rarity)相邻基础属性差 5%(仅 lv1 初始 AP/HP/DEF)
|
||||
* 编号:本批复刻英雄集中于 5001~5009,rarity 按配置(不遵循段位规则)
|
||||
*/
|
||||
|
||||
// @hero-setup:region-begin
|
||||
@@ -470,7 +470,7 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
|
||||
// 5001 紫电魔女 — atking 麻痹 + 大招 6203 大能量波(击退/麻痹)+ 攻击光环(深渊女王复刻)
|
||||
5001: {
|
||||
uuid: 5001, name: "紫电魔女", path: "hm1", fac: FacSet.HERO, card_lv: 4, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, hp: HERO_ROLE_BASE[HRole.Mage].hp - 5, ap: HERO_ROLE_BASE[HRole.Mage].ap + 10, def: HERO_ROLE_BASE[HRole.Mage].def,
|
||||
uuid: 5001, name: "紫电魔女", path: "hm1", fac: FacSet.HERO, rarity: 4, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, hp: HERO_ROLE_BASE[HRole.Mage].hp - 5, ap: HERO_ROLE_BASE[HRole.Mage].ap + 10, def: HERO_ROLE_BASE[HRole.Mage].def,
|
||||
skills: {
|
||||
// 普攻:紫魔球底座 + overrides 注入麻痹
|
||||
6010: { uuid: 6010, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 100, para: 30 }, desc: "掷出紫魔球,对{target}造成攻击力{ap}%伤害,{para}%概率麻痹目标" },
|
||||
@@ -497,7 +497,7 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
},
|
||||
// 5002 刀刀暴击 — atking 暴击 + 大招 6100 光闪(出血/多段)+ 暴击/暴伤双光环(剑圣复刻)
|
||||
5002: {
|
||||
uuid: 5002, name: "刀刀暴击", path: "hk2", fac: FacSet.HERO, card_lv: 5, lv: 1, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, hp: HERO_ROLE_BASE[HRole.Warrior].hp, ap: HERO_ROLE_BASE[HRole.Warrior].ap + 15, def: HERO_ROLE_BASE[HRole.Warrior].def,
|
||||
uuid: 5002, name: "刀刀暴击", path: "hk2", fac: FacSet.HERO, rarity: 5, lv: 1, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, hp: HERO_ROLE_BASE[HRole.Warrior].hp, ap: HERO_ROLE_BASE[HRole.Warrior].ap + 15, def: HERO_ROLE_BASE[HRole.Warrior].def,
|
||||
skills: {
|
||||
6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, desc: "挥刀对{target}造成攻击力{ap}%伤害" },
|
||||
// 大招:光闪,独立 cd,按英雄等级分档成长
|
||||
@@ -523,7 +523,7 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
},
|
||||
// 5003 格挡反杀 — fstart 剑气 + atked 护盾 + 大招 6103 闪电斩(减攻)(剑豪复刻)
|
||||
5003: {
|
||||
uuid: 5003, name: "格挡反杀", path: "hk4", fac: FacSet.HERO, card_lv: 4, lv: 1, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, hp: HERO_ROLE_BASE[HRole.Warrior].hp + 10, ap: HERO_ROLE_BASE[HRole.Warrior].ap + 5, def: HERO_ROLE_BASE[HRole.Warrior].def + 5,
|
||||
uuid: 5003, name: "格挡反杀", path: "hk4", fac: FacSet.HERO, rarity: 4, lv: 1, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, hp: HERO_ROLE_BASE[HRole.Warrior].hp + 10, ap: HERO_ROLE_BASE[HRole.Warrior].ap + 5, def: HERO_ROLE_BASE[HRole.Warrior].def + 5,
|
||||
skills: {
|
||||
6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, desc: "挥刀对{target}造成攻击力{ap}%伤害" },
|
||||
// 大招:闪电斩,独立 cd,按英雄等级分档成长
|
||||
@@ -554,7 +554,7 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
},
|
||||
// 5004 冻住不谢 — atking 冰冻 + 大招 6203 大能量波(冰冻链)+ 击晕光环(巫妖王复刻)
|
||||
5004: {
|
||||
uuid: 5004, name: "冻住不谢", path: "hm2", fac: FacSet.HERO, card_lv: 4, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, hp: HERO_ROLE_BASE[HRole.Mage].hp, ap: HERO_ROLE_BASE[HRole.Mage].ap + 5, def: HERO_ROLE_BASE[HRole.Mage].def + 5,
|
||||
uuid: 5004, name: "冻住不谢", path: "hm2", fac: FacSet.HERO, rarity: 4, lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, hp: HERO_ROLE_BASE[HRole.Mage].hp, ap: HERO_ROLE_BASE[HRole.Mage].ap + 5, def: HERO_ROLE_BASE[HRole.Mage].def + 5,
|
||||
skills: {
|
||||
6009: { uuid: 6009, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, desc: "射出寒冰珠,对{target}造成攻击力{ap}%伤害" },
|
||||
// 大招:大能量波,独立 cd,按英雄等级分档成长
|
||||
@@ -580,7 +580,7 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
},
|
||||
// 5005 叠甲骑士 — 护盾大招 + fstart 防御 + dead 治疗 + revive 回光返照(黑暗骑士复刻)
|
||||
5005: {
|
||||
uuid: 5005, name: "叠甲骑士", path: "hk1", fac: FacSet.HERO, card_lv: 5, lv: 1, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, hp: HERO_ROLE_BASE[HRole.Tank].hp + 20, ap: HERO_ROLE_BASE[HRole.Tank].ap, def: HERO_ROLE_BASE[HRole.Tank].def + 10,
|
||||
uuid: 5005, name: "叠甲骑士", path: "hk1", fac: FacSet.HERO, rarity: 5, lv: 1, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, hp: HERO_ROLE_BASE[HRole.Tank].hp + 20, ap: HERO_ROLE_BASE[HRole.Tank].ap, def: HERO_ROLE_BASE[HRole.Tank].def + 10,
|
||||
skills: {
|
||||
6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, desc: "挥剑对{target}造成攻击力{ap}%伤害" },
|
||||
// 大招位辅助技能:护盾,按英雄等级分档成长(护盾层数)
|
||||
@@ -616,7 +616,7 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
},
|
||||
// 5006 光明奶爸 — 治疗大招 + atking 自疗 + fstart 防御 + 生命光环(光明骑士复刻)
|
||||
5006: {
|
||||
uuid: 5006, name: "光明奶爸", path: "hh1", fac: FacSet.HERO, card_lv: 4, lv: 1, type: HType.Long, grow_type: HGrowType.Support, role: HRole.Support, hp: HERO_ROLE_BASE[HRole.Support].hp + 15, ap: HERO_ROLE_BASE[HRole.Support].ap, def: HERO_ROLE_BASE[HRole.Support].def + 10,
|
||||
uuid: 5006, name: "光明奶爸", path: "hh1", fac: FacSet.HERO, rarity: 4, lv: 1, type: HType.Long, grow_type: HGrowType.Support, role: HRole.Support, hp: HERO_ROLE_BASE[HRole.Support].hp + 15, ap: HERO_ROLE_BASE[HRole.Support].ap, def: HERO_ROLE_BASE[HRole.Support].def + 10,
|
||||
skills: {
|
||||
6012: { uuid: 6012, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal].cd, ccd: 0, desc: "投掷药瓶,对{target}造成攻击力{ap}%伤害" },
|
||||
// 大招:治疗,独立 cd,按英雄等级分档成长
|
||||
@@ -647,7 +647,7 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
},
|
||||
// 5007 微醺战神 — atking 击退 + 大招 6101 气斩(易伤),lv9 属性补偿(酒仙复刻)
|
||||
5007: {
|
||||
uuid: 5007, name: "微醺战神", path: "hk3", fac: FacSet.HERO, card_lv: 3, lv: 1, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, hp: HERO_ROLE_BASE[HRole.Tank].hp + 15, ap: HERO_ROLE_BASE[HRole.Tank].ap + 5, def: HERO_ROLE_BASE[HRole.Tank].def + 10,
|
||||
uuid: 5007, name: "微醺战神", path: "hk3", fac: FacSet.HERO, rarity: 3, lv: 1, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, hp: HERO_ROLE_BASE[HRole.Tank].hp + 15, ap: HERO_ROLE_BASE[HRole.Tank].ap + 5, def: HERO_ROLE_BASE[HRole.Tank].def + 10,
|
||||
skills: {
|
||||
6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, desc: "挥拳对{target}造成攻击力{ap}%伤害" },
|
||||
// 大招:气斩,独立 cd,按英雄等级分档成长
|
||||
@@ -666,14 +666,14 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
{ lv: 6, s_lv: SkillLv.Lv1, name: "雷霆一击", t_num: 3, overrides: { bck: 40 }, desc: "重击{target},击退{bck}" },
|
||||
],
|
||||
},
|
||||
// card_lv 3:lv6 无光环,改为基础属性+50%
|
||||
// rarity 3:lv6 无光环,改为基础属性+50%
|
||||
ap_bonus: [{ lv: 6, value: 0.5 }],
|
||||
hp_bonus: [{ lv: 6, value: 0.5 }],
|
||||
info: "",
|
||||
},
|
||||
// 5008 眩晕暴击哥 — atking 暴击 + 大招 6104 开山斧(击晕)+ 暴伤光环(齐天大圣复刻)
|
||||
5008: {
|
||||
uuid: 5008, name: "眩晕暴击哥", path: "hk5", fac: FacSet.HERO, card_lv: 5, lv: 1, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, hp: HERO_ROLE_BASE[HRole.Warrior].hp + 5, ap: HERO_ROLE_BASE[HRole.Warrior].ap + 20, def: HERO_ROLE_BASE[HRole.Warrior].def,
|
||||
uuid: 5008, name: "眩晕暴击哥", path: "hk5", fac: FacSet.HERO, rarity: 5, lv: 1, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, hp: HERO_ROLE_BASE[HRole.Warrior].hp + 5, ap: HERO_ROLE_BASE[HRole.Warrior].ap + 20, def: HERO_ROLE_BASE[HRole.Warrior].def,
|
||||
skills: {
|
||||
6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, desc: "挥斧对{target}造成攻击力{ap}%伤害" },
|
||||
// 大招:开山斧,独立 cd,按英雄等级分档成长
|
||||
@@ -699,7 +699,7 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
},
|
||||
// 5009 铁壳斧弟 — atked 叠防 + atking 自疗 + 大招 6101 气斩,lv9 属性补偿(斧小王复刻)
|
||||
5009: {
|
||||
uuid: 5009, name: "铁壳斧弟", path: "hc1", fac: FacSet.HERO, card_lv: 3, lv: 1, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, hp: HERO_ROLE_BASE[HRole.Tank].hp + 10, ap: HERO_ROLE_BASE[HRole.Tank].ap + 5, def: HERO_ROLE_BASE[HRole.Tank].def + 15,
|
||||
uuid: 5009, name: "铁壳斧弟", path: "hc1", fac: FacSet.HERO, rarity: 3, lv: 1, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, hp: HERO_ROLE_BASE[HRole.Tank].hp + 10, ap: HERO_ROLE_BASE[HRole.Tank].ap + 5, def: HERO_ROLE_BASE[HRole.Tank].def + 15,
|
||||
skills: {
|
||||
6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, desc: "挥斧对{target}造成攻击力{ap}%伤害" },
|
||||
// 大招:气斩,独立 cd,按英雄等级分档成长
|
||||
@@ -724,7 +724,7 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
{ lv: 6, s_lv: SkillLv.Lv1, name: "坚硬皮肤", t_num: 2, overrides: { TGroup: TGroup.Self, timed_buff_id: 7023, buff_duration: 10 }, desc: "{target}防御提升{buff_value}%,持续{dur}秒" },
|
||||
],
|
||||
},
|
||||
// card_lv 3:lv6 无光环,改为基础属性+50%
|
||||
// rarity 3:lv6 无光环,改为基础属性+50%
|
||||
ap_bonus: [{ lv: 6, value: 0.5 }],
|
||||
hp_bonus: [{ lv: 6, value: 0.5 }],
|
||||
info: "",
|
||||
@@ -733,7 +733,7 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
|
||||
/*
|
||||
*=============怪物配置列表================
|
||||
* 怪物与英雄采用同一套设定体系:基础值 = HERO_ROLE_BASE[role],品质(card_lv)
|
||||
* 怪物与英雄采用同一套设定体系:基础值 = HERO_ROLE_BASE[role],品质(rarity)
|
||||
* 相邻基础属性差 5%,成长系数走 HERO_GROW_COEF[grow_type]。
|
||||
* 怪物普攻统一使用 SkillSet 基础单体攻击(6001~6012 段),
|
||||
* 并通过 overrides.ap=100 显式声明伤害为攻击力的 100%。
|
||||
@@ -744,63 +744,63 @@ export const HeroInfo: Record<number, heroInfo> = {
|
||||
// 基础怪物 (全部固定点位站桩攻击,HType仅决定是前排还是后排)
|
||||
// 前排怪物 — 战士系基准(Warrior 模板),变体按品质微分定位
|
||||
6001: {
|
||||
uuid: 6001, name: "兽人战士", path: "m1", fac: FacSet.MON, lv: 1, card_lv: 1, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, monType: MonType.Melee, hp: HERO_ROLE_BASE[HRole.Warrior].hp, ap: HERO_ROLE_BASE[HRole.Warrior].ap, def: HERO_ROLE_BASE[HRole.Warrior].def, speed: 70,
|
||||
uuid: 6001, name: "兽人战士", path: "m1", fac: FacSet.MON, lv: 1, rarity: 1, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, monType: MonType.Melee, hp: HERO_ROLE_BASE[HRole.Warrior].hp, ap: HERO_ROLE_BASE[HRole.Warrior].ap, def: HERO_ROLE_BASE[HRole.Warrior].def, speed: 70,
|
||||
skills: { 6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 100 } } }, info: "基础前排怪, 战士系基准"
|
||||
},
|
||||
6002: {
|
||||
uuid: 6002, name: "兽人精锐战士", path: "m2", fac: FacSet.MON, lv: 1, card_lv: 2, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, monType: MonType.Melee, hp: HERO_ROLE_BASE[HRole.Warrior].hp, ap: HERO_ROLE_BASE[HRole.Warrior].ap, def: HERO_ROLE_BASE[HRole.Warrior].def, speed: 110,
|
||||
uuid: 6002, name: "兽人精锐战士", path: "m2", fac: FacSet.MON, lv: 1, rarity: 2, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, monType: MonType.Melee, hp: HERO_ROLE_BASE[HRole.Warrior].hp, ap: HERO_ROLE_BASE[HRole.Warrior].ap, def: HERO_ROLE_BASE[HRole.Warrior].def, speed: 110,
|
||||
skills: { 6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0 } }, info: "进阶前排怪, 品质2更快更痛"
|
||||
},
|
||||
6003: {
|
||||
uuid: 6003, name: "兽人重装兵", path: "m3", fac: FacSet.MON, lv: 1, card_lv: 2, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, monType: MonType.Heavy, hp: HERO_ROLE_BASE[HRole.Tank].hp, ap: HERO_ROLE_BASE[HRole.Tank].ap, def: HERO_ROLE_BASE[HRole.Tank].def, speed: 50,
|
||||
uuid: 6003, name: "兽人重装兵", path: "m3", fac: FacSet.MON, lv: 1, rarity: 2, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, monType: MonType.Heavy, hp: HERO_ROLE_BASE[HRole.Tank].hp, ap: HERO_ROLE_BASE[HRole.Tank].ap, def: HERO_ROLE_BASE[HRole.Tank].def, speed: 50,
|
||||
skills: { 6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.VerySlow].cd, ccd: 0, overrides: { ap: 100 } } }, info: "重型坦克怪, 高HP低攻承伤位"
|
||||
},
|
||||
// 后排怪物 — 射手/刺客/法系基准,变体按品质微分定位
|
||||
6004: {
|
||||
uuid: 6004, name: "兽人射手", path: "m4", fac: FacSet.MON, lv: 1, card_lv: 1, type: HType.Long, grow_type: HGrowType.Archer, role: HRole.Archer, monType: MonType.Long, hp: HERO_ROLE_BASE[HRole.Archer].hp, ap: HERO_ROLE_BASE[HRole.Archer].ap, def: HERO_ROLE_BASE[HRole.Archer].def, speed: 70,
|
||||
uuid: 6004, name: "兽人射手", path: "m4", fac: FacSet.MON, lv: 1, rarity: 1, type: HType.Long, grow_type: HGrowType.Archer, role: HRole.Archer, monType: MonType.Long, hp: HERO_ROLE_BASE[HRole.Archer].hp, ap: HERO_ROLE_BASE[HRole.Archer].ap, def: HERO_ROLE_BASE[HRole.Archer].def, speed: 70,
|
||||
skills: { 6006: { uuid: 6006, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 100 } } }, info: "后排输出怪, 射手系基准"
|
||||
},
|
||||
6005: {
|
||||
uuid: 6005, name: "兽人刺客", path: "m5", fac: FacSet.MON, lv: 1, card_lv: 1, type: HType.Long, grow_type: HGrowType.Assassin, role: HRole.Assassin, monType: MonType.Assassin, hp: HERO_ROLE_BASE[HRole.Assassin].hp, ap: HERO_ROLE_BASE[HRole.Assassin].ap, def: HERO_ROLE_BASE[HRole.Assassin].def, speed: 130,
|
||||
uuid: 6005, name: "兽人刺客", path: "m5", fac: FacSet.MON, lv: 1, rarity: 1, type: HType.Long, grow_type: HGrowType.Assassin, role: HRole.Assassin, monType: MonType.Assassin, hp: HERO_ROLE_BASE[HRole.Assassin].hp, ap: HERO_ROLE_BASE[HRole.Assassin].ap, def: HERO_ROLE_BASE[HRole.Assassin].def, speed: 130,
|
||||
skills: { 6002: { uuid: 6002, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal].cd, ccd: 0, overrides: { ap: 100, hit_count: 2 } } }, info: "高攻速低HP刺客"
|
||||
},
|
||||
// 特殊位怪物
|
||||
6006: {
|
||||
uuid: 6006, name: "骷髅领主", path: "m6", fac: FacSet.MON, lv: 1, card_lv: 3, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, monType: MonType.MeleeBoss, hp: HERO_ROLE_BASE[HRole.Tank].hp, ap: HERO_ROLE_BASE[HRole.Tank].ap, def: HERO_ROLE_BASE[HRole.Tank].def, speed: 60,
|
||||
uuid: 6006, name: "骷髅领主", path: "m6", fac: FacSet.MON, lv: 1, rarity: 3, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, monType: MonType.MeleeBoss, hp: HERO_ROLE_BASE[HRole.Tank].hp, ap: HERO_ROLE_BASE[HRole.Tank].ap, def: HERO_ROLE_BASE[HRole.Tank].def, speed: 60,
|
||||
skills: { 6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.VerySlow].cd, ccd: 0, overrides: { ap: 100 } } }, info: "前排MiniBoss级坦克"
|
||||
},
|
||||
6007: {
|
||||
uuid: 6007, name: "兽人术士", path: "m7", fac: FacSet.MON, lv: 1, card_lv: 1, type: HType.Long, grow_type: HGrowType.Support, role: HRole.Support, monType: MonType.Support, hp: HERO_ROLE_BASE[HRole.Support].hp, ap: HERO_ROLE_BASE[HRole.Support].ap, def: HERO_ROLE_BASE[HRole.Support].def, speed: 70,
|
||||
uuid: 6007, name: "兽人术士", path: "m7", fac: FacSet.MON, lv: 1, rarity: 1, type: HType.Long, grow_type: HGrowType.Support, role: HRole.Support, monType: MonType.Support, hp: HERO_ROLE_BASE[HRole.Support].hp, ap: HERO_ROLE_BASE[HRole.Support].ap, def: HERO_ROLE_BASE[HRole.Support].def, speed: 70,
|
||||
skills: { 6009: { uuid: 6009, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 100, hit_count: 2 } } }, info: "后排辅助法师怪"
|
||||
},
|
||||
6008: {
|
||||
uuid: 6008, name: "兽人火法", path: "m8", fac: FacSet.MON, lv: 1, card_lv: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, monType: MonType.Summoner, hp: HERO_ROLE_BASE[HRole.Mage].hp, ap: HERO_ROLE_BASE[HRole.Mage].ap, def: HERO_ROLE_BASE[HRole.Mage].def, speed: 70,
|
||||
uuid: 6008, name: "兽人火法", path: "m8", fac: FacSet.MON, lv: 1, rarity: 1, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, monType: MonType.Summoner, hp: HERO_ROLE_BASE[HRole.Mage].hp, ap: HERO_ROLE_BASE[HRole.Mage].ap, def: HERO_ROLE_BASE[HRole.Mage].def, speed: 70,
|
||||
skills: { 6010: { uuid: 6010, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 100, hit_count: 2 } } }, info: "后排召唤系法师怪"
|
||||
},
|
||||
|
||||
// BOSS怪物 — 与英雄同一套设定(role 模板 + 品质系数),高品质承伤/输出位
|
||||
6101: {
|
||||
uuid: 6101, name: "兽人首领-双刀战士", path: "mb1", fac: FacSet.MON, lv: 6, card_lv: 4, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, monType: MonType.MeleeBoss, hp: HERO_ROLE_BASE[HRole.Warrior].hp, ap: HERO_ROLE_BASE[HRole.Warrior].ap, def: HERO_ROLE_BASE[HRole.Warrior].def, speed: 120,
|
||||
uuid: 6101, name: "兽人首领-双刀战士", path: "mb1", fac: FacSet.MON, lv: 6, rarity: 4, type: HType.Melee, grow_type: HGrowType.Warrior, role: HRole.Warrior, monType: MonType.MeleeBoss, hp: HERO_ROLE_BASE[HRole.Warrior].hp, ap: HERO_ROLE_BASE[HRole.Warrior].ap, def: HERO_ROLE_BASE[HRole.Warrior].def, speed: 120,
|
||||
skills: { 6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 100 } } }, info: "前排Boss, 攻速型"
|
||||
},
|
||||
6102: {
|
||||
uuid: 6102, name: "兽人首领-斧头战士", path: "mb2", fac: FacSet.MON, lv: 6, card_lv: 5, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, monType: MonType.MeleeBoss, hp: HERO_ROLE_BASE[HRole.Tank].hp, ap: HERO_ROLE_BASE[HRole.Tank].ap, def: HERO_ROLE_BASE[HRole.Tank].def, speed: 60,
|
||||
uuid: 6102, name: "兽人首领-斧头战士", path: "mb2", fac: FacSet.MON, lv: 6, rarity: 5, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, monType: MonType.MeleeBoss, hp: HERO_ROLE_BASE[HRole.Tank].hp, ap: HERO_ROLE_BASE[HRole.Tank].ap, def: HERO_ROLE_BASE[HRole.Tank].def, speed: 60,
|
||||
skills: { 6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.VerySlow].cd, ccd: 0, overrides: { ap: 100 } } }, info: "前排Boss, 超高HP"
|
||||
},
|
||||
6103: {
|
||||
uuid: 6103, name: "兽人首领-魔法师", path: "mb3", fac: FacSet.MON, lv: 6, card_lv: 4, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, monType: MonType.LongBoss, hp: HERO_ROLE_BASE[HRole.Mage].hp, ap: HERO_ROLE_BASE[HRole.Mage].ap, def: HERO_ROLE_BASE[HRole.Mage].def, speed: 110,
|
||||
uuid: 6103, name: "兽人首领-魔法师", path: "mb3", fac: FacSet.MON, lv: 6, rarity: 4, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, monType: MonType.LongBoss, hp: HERO_ROLE_BASE[HRole.Mage].hp, ap: HERO_ROLE_BASE[HRole.Mage].ap, def: HERO_ROLE_BASE[HRole.Mage].def, speed: 110,
|
||||
skills: { 6009: { uuid: 6009, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 100, hit_count: 2 } } }, info: "后排法系Boss"
|
||||
},
|
||||
6104: {
|
||||
uuid: 6104, name: "兽人首领-射手", path: "mb4", fac: FacSet.MON, lv: 6, card_lv: 4, type: HType.Long, grow_type: HGrowType.Archer, role: HRole.Archer, monType: MonType.LongBoss, hp: HERO_ROLE_BASE[HRole.Archer].hp, ap: HERO_ROLE_BASE[HRole.Archer].ap, def: HERO_ROLE_BASE[HRole.Archer].def, speed: 70,
|
||||
uuid: 6104, name: "兽人首领-射手", path: "mb4", fac: FacSet.MON, lv: 6, rarity: 4, type: HType.Long, grow_type: HGrowType.Archer, role: HRole.Archer, monType: MonType.LongBoss, hp: HERO_ROLE_BASE[HRole.Archer].hp, ap: HERO_ROLE_BASE[HRole.Archer].ap, def: HERO_ROLE_BASE[HRole.Archer].def, speed: 70,
|
||||
skills: { 6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 100 } } }, info: "后排位Boss, 均衡型"
|
||||
},
|
||||
6105: {
|
||||
uuid: 6105, name: "亡灵首领-法师", path: "mb5", fac: FacSet.MON, lv: 6, card_lv: 5, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, monType: MonType.LongBoss, hp: HERO_ROLE_BASE[HRole.Mage].hp, ap: HERO_ROLE_BASE[HRole.Mage].ap, def: HERO_ROLE_BASE[HRole.Mage].def, speed: 110,
|
||||
uuid: 6105, name: "亡灵首领-法师", path: "mb5", fac: FacSet.MON, lv: 6, rarity: 5, type: HType.Long, grow_type: HGrowType.Mage, role: HRole.Mage, monType: MonType.LongBoss, hp: HERO_ROLE_BASE[HRole.Mage].hp, ap: HERO_ROLE_BASE[HRole.Mage].ap, def: HERO_ROLE_BASE[HRole.Mage].def, speed: 110,
|
||||
skills: { 6011: { uuid: 6011, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Slow].cd, ccd: 0, overrides: { ap: 100, hit_count: 2, timed_buff_id: 7002 } } }, info: "后排高AP Boss"
|
||||
},
|
||||
6106: {
|
||||
uuid: 6106, name: "亡灵首领-骑马战士", path: "mb6", fac: FacSet.MON, lv: 6, card_lv: 5, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, monType: MonType.MeleeBoss, hp: HERO_ROLE_BASE[HRole.Tank].hp, ap: HERO_ROLE_BASE[HRole.Tank].ap, def: HERO_ROLE_BASE[HRole.Tank].def, speed: 130,
|
||||
uuid: 6106, name: "亡灵首领-骑马战士", path: "mb6", fac: FacSet.MON, lv: 6, rarity: 5, type: HType.Melee, grow_type: HGrowType.Tank, role: HRole.Tank, monType: MonType.MeleeBoss, hp: HERO_ROLE_BASE[HRole.Tank].hp, ap: HERO_ROLE_BASE[HRole.Tank].ap, def: HERO_ROLE_BASE[HRole.Tank].def, speed: 130,
|
||||
skills: { 6004: { uuid: 6004, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.VerySlow].cd, ccd: 0, overrides: { ap: 100 } } }, info: "前排终极Boss, 最高HP+高速"
|
||||
},
|
||||
|
||||
@@ -825,7 +825,7 @@ export interface HeroComboInfo {
|
||||
name: string; // 阵容名称(体现流派)
|
||||
heroes: number[]; // 英雄 uuid 列表,固定 3 个;索引 0=前排,其余按站位从近到远
|
||||
desc: string; // 配合思路说明(信息面板展示)
|
||||
low_heroes?: number[]; // 低配替代阵容(card_lv 1~2,供新手期引导)
|
||||
low_heroes?: number[]; // 低配替代阵容(rarity 1~2,供新手期引导)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -883,21 +883,21 @@ export const HeroComboList: number[] = [8001, 8002, 8003, 8004, 8005, 8006];
|
||||
* 英雄卡费用规则
|
||||
* lv1=5, lv2=10, lv3+=15
|
||||
*/
|
||||
function getHeroCost(cardLv: number): number {
|
||||
if (cardLv === 1) return 5;
|
||||
if (cardLv === 2) return 10;
|
||||
function getHeroCost(rarity: number): number {
|
||||
if (rarity === 1) return 5;
|
||||
if (rarity === 2) return 10;
|
||||
return 15;
|
||||
}
|
||||
|
||||
/**
|
||||
* 英雄卡按 card_lv 分配抽取权重(几何递减,高等级越稀有)
|
||||
* 英雄卡按 rarity 分配抽取权重(几何递减,高等级越稀有)
|
||||
* 梯度:lv1=40, lv2=25, lv3=15, lv4=8, lv5=3
|
||||
*/
|
||||
const HERO_WEIGHT_BY_LV: Record<number, number> = {
|
||||
1: 40, 2: 25, 3: 15, 4: 8, 5: 3,
|
||||
};
|
||||
function getHeroWeight(cardLv: number): number {
|
||||
return HERO_WEIGHT_BY_LV[cardLv] ?? HERO_WEIGHT_BY_LV[1];
|
||||
function getHeroWeight(rarity: number): number {
|
||||
return HERO_WEIGHT_BY_LV[rarity] ?? HERO_WEIGHT_BY_LV[1];
|
||||
}
|
||||
|
||||
// 动态生成英雄卡池:所有英雄统一生成 lv1 卡牌
|
||||
@@ -906,9 +906,9 @@ HeroList.forEach(uuid => {
|
||||
if (!hero) return;
|
||||
HeroCardPoolList.push({
|
||||
uuid: hero.uuid,
|
||||
cost: getHeroCost(hero.card_lv ?? 1),
|
||||
weight: getHeroWeight(hero.card_lv ?? 1),
|
||||
card_lv: hero.card_lv ?? 1,
|
||||
cost: getHeroCost(hero.rarity ?? 1),
|
||||
weight: getHeroWeight(hero.rarity ?? 1),
|
||||
rarity: hero.rarity ?? 1,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1039,7 +1039,7 @@ export function getEffectiveStats(hero: heroInfo, targetLv: number): { hp: numbe
|
||||
*/
|
||||
export function getHeroDisplayStats(hero: heroInfo, targetLv: number): { hp: number, ap: number, def: number } {
|
||||
const lv = Math.max(1, Math.floor(targetLv));
|
||||
const coef = getHeroQualityCoef(hero.card_lv ?? 1);
|
||||
const coef = getHeroQualityCoef(hero.rarity ?? 1);
|
||||
const eff = getEffectiveStats(hero, lv);
|
||||
const stats = {
|
||||
hp: Math.round(hero.hp * coef) + (eff.hp - hero.hp),
|
||||
@@ -1057,7 +1057,7 @@ export function getHeroDisplayStats(hero: heroInfo, targetLv: number): { hp: num
|
||||
|
||||
/** 内部:lv12 专项基数(不含 lv12 自身)的展示有效值 */
|
||||
function getHeroDisplayStatsBase(hero: heroInfo, targetLv: number): { hp: number, ap: number, def: number } {
|
||||
const coef = getHeroQualityCoef(hero.card_lv ?? 1);
|
||||
const coef = getHeroQualityCoef(hero.rarity ?? 1);
|
||||
const eff = getEffectiveStats(hero, targetLv);
|
||||
return {
|
||||
hp: Math.round(hero.hp * coef) + (eff.hp - hero.hp),
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
| 剧毒利刃(普攻30%淬毒) | lv2 atking:6010 紫魔球(远程法师普攻)+ `overrides: { timed_buff_id: 7005(中毒) }`,t_num=3 模拟 30% |
|
||||
| 强化声波(击退+30%) | lv3/5 提升 `bck` 档位 |
|
||||
| 女王尖啸(第20秒全场失去18%当前生命+眩晕2秒,每场1次) | lv7 大招升级:6203 大能量波 + `overrides: { ap: 400, timed_buff_id: 7004(击晕) }`;"失去当前生命%"简化为高 ap 直接伤害 |
|
||||
| 攻击增强 +25% | lv9(card_lv 4/5)攻击光环 7002 |
|
||||
| 攻击增强 +25% | lv9(rarity 4/5)攻击光环 7002 |
|
||||
|
||||
**推荐配置**:普攻 6010 紫魔球(远程法师系);大招 6203 大能量波(远程群体,击退/击晕);光环 HeroAtk。定位:远程控场法师。
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
|
||||
## 四、复刻落地清单(按优先级)
|
||||
|
||||
| 优先级 | 英雄(新名) | card_lv 建议 | 核心组合 | 一句话卖点 |
|
||||
| 优先级 | 英雄(新名) | rarity 建议 | 核心组合 | 一句话卖点 |
|
||||
|---|---|---|---|---|
|
||||
| P0 | 紫电魔女 | 4 | 6010 紫魔球 + 6203 大能量波(击退/击晕)+ 7005 中毒 + 攻击光环 | 远程群体击退+毒+控场法师 |
|
||||
| P0 | 刀刀暴击 | 5 | 6100 光闪多段 + `crt` + 7007 出血 + 暴击光环 | 暴击流血剑士 |
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
```
|
||||
英雄名称:xxx
|
||||
card_lv:4 // 品质 1~5,决定 uuid 段位与 lv6 是否有光环
|
||||
rarity:4 // 品质 1~5,决定 uuid 段位与 lv6 是否有光环
|
||||
类型:tank // HRole 职业定位(tank/warrior/assassin/mage/support)
|
||||
形态:远程 // 攻击定位:近战/中距/远程(决定普攻底座与 dis)
|
||||
ap:tank+5 // 职业基础值 + 手动偏移
|
||||
@@ -41,7 +41,7 @@ atking[0]_lv6:攻击触发(t_num 模拟概率,1=每次 3≈33% 4≈25%)
|
||||
atked[0]_lv6:无
|
||||
fstart[0]_lv6:无
|
||||
dead[0]_lv6:无
|
||||
field[0]_lv6:驻场光环(仅 card_lv 4/5;card_lv 1/2/3 改为属性+30/40/50%)
|
||||
field[0]_lv6:驻场光环(仅 rarity 4/5;rarity 1/2/3 改为属性+30/40/50%)
|
||||
revive[0]_lv1:无(与 skills[1] 互斥二选一;配置时与大招同走 lv1/lv9/lv16 三档)
|
||||
revive[0]_lv9:无
|
||||
revive[0]_lv16:无
|
||||
@@ -52,7 +52,7 @@ revive[0]_lv16:无
|
||||
|
||||
- 等级节奏:lv1 激活 skills[0]/skills[1];lv6 解锁 atking/atked/fstart/dead/field 触发技能(触发类技能统一 lv6 激活,各触发槽最多 1 个);大招(skills[1])lv9/lv16 走 `lv_entries` 分档提升;lv12 按职业对单项基础属性 +50%(基数取 lv11 当前等级有效值:坦克→def、战士/辅助→hp、刺客/射手/法师→ap);lv6 光环或属性补偿
|
||||
- **revive 与大招互斥**:`revive[0]` 与 `skills[1]` 只能二选一;配置 revive 的英雄不走大招体系,revive 采用与大招相同的 3 级成长机制(lv1/lv9/lv16 走 `lv_entries` 分档强化)
|
||||
- 品质差异:相邻品质(card_lv)lv1 初始基础属性(AP/HP/DEF)相差 5%(系数 1+0.05×(card_lv-1)),其余配置参数完全一致
|
||||
- 品质差异:相邻品质(rarity)lv1 初始基础属性(AP/HP/DEF)相差 5%(系数 1+0.05×(rarity-1)),其余配置参数完全一致
|
||||
- 能力只能从能力池(BuffList 7001\~7024 / FieldSkillSet 7001\~7020 / SkillSet 底座)引用 + `overrides` 数值覆盖,**禁止新增同义底座**
|
||||
|
||||
**大招召唤数约束**(`summon_count` 覆写规则):
|
||||
@@ -69,7 +69,7 @@ revive[0]_lv16:无
|
||||
|
||||
```
|
||||
英雄名称:紫电魔女
|
||||
card_lv:4
|
||||
rarity:4
|
||||
类型:mage
|
||||
形态:远程
|
||||
ap:mage+10
|
||||
@@ -94,7 +94,7 @@ revive[0]_lv16:无
|
||||
|
||||
```
|
||||
英雄名称:刀刀暴击
|
||||
card_lv:5
|
||||
rarity:5
|
||||
类型:warrior
|
||||
形态:近战
|
||||
ap:warrior+15
|
||||
@@ -119,7 +119,7 @@ revive[0]_lv16:无
|
||||
|
||||
```
|
||||
英雄名称:格挡反杀
|
||||
card_lv:4
|
||||
rarity:4
|
||||
类型:warrior
|
||||
形态:近战
|
||||
ap:warrior+5
|
||||
@@ -144,7 +144,7 @@ revive[0]_lv16:无
|
||||
|
||||
```
|
||||
英雄名称:冻住不谢
|
||||
card_lv:4
|
||||
rarity:4
|
||||
类型:mage
|
||||
形态:远程
|
||||
ap:mage+5
|
||||
@@ -173,7 +173,7 @@ revive[0]_lv16:无
|
||||
|
||||
```
|
||||
英雄名称:叠甲骑士
|
||||
card_lv:5
|
||||
rarity:5
|
||||
类型:tank
|
||||
形态:近战
|
||||
ap:tank+0
|
||||
@@ -198,7 +198,7 @@ revive[0]_lv16:无
|
||||
|
||||
```
|
||||
英雄名称:光明奶爸
|
||||
card_lv:4
|
||||
rarity:4
|
||||
类型:support
|
||||
形态:远程
|
||||
ap:support+0
|
||||
@@ -223,7 +223,7 @@ revive[0]_lv16:无
|
||||
|
||||
```
|
||||
英雄名称:微醺战神
|
||||
card_lv:3
|
||||
rarity:3
|
||||
类型:tank
|
||||
形态:近战
|
||||
ap:tank+5
|
||||
@@ -237,7 +237,7 @@ atking[0]_lv6:雷霆一击——普攻3次附加击退强化(t_num3,bck40
|
||||
atked[0]_lv6:无
|
||||
fstart[0]_lv6:无
|
||||
dead[0]_lv6:无
|
||||
field[0]_lv6:无(card_lv3 → 基础属性+50%:ap_bonus/hp_bonus 按档)
|
||||
field[0]_lv6:无(rarity3 → 基础属性+50%:ap_bonus/hp_bonus 按档)
|
||||
revive[0]_lv1:无
|
||||
revive[0]_lv9:无
|
||||
revive[0]_lv16:无
|
||||
@@ -248,7 +248,7 @@ revive[0]_lv16:无
|
||||
|
||||
```
|
||||
英雄名称:眩晕暴击哥
|
||||
card_lv:5
|
||||
rarity:5
|
||||
类型:warrior
|
||||
形态:近战
|
||||
ap:warrior+20
|
||||
@@ -273,7 +273,7 @@ revive[0]_lv16:无
|
||||
|
||||
```
|
||||
英雄名称:铁壳斧弟
|
||||
card_lv:3
|
||||
rarity:3
|
||||
类型:tank
|
||||
形态:近战
|
||||
ap:tank+5
|
||||
@@ -287,7 +287,7 @@ atking[0]_lv6:嗜血战斧——攻击4次触发自疗(t_num4,6302 ap120
|
||||
atked[0]_lv6:坚硬皮肤——受击2次叠加防御(t_num2,buff 7023 防御强化,buff_duration 10 可叠层)
|
||||
fstart[0]_lv6:无
|
||||
dead[0]_lv6:无
|
||||
field[0]_lv6:无(card_lv3 → 基础属性+50%:ap_bonus/hp_bonus 按档)
|
||||
field[0]_lv6:无(rarity3 → 基础属性+50%:ap_bonus/hp_bonus 按档)
|
||||
revive[0]_lv1:无
|
||||
revive[0]_lv9:无
|
||||
revive[0]_lv16:无
|
||||
@@ -316,10 +316,10 @@ revive[0]_lv16:无
|
||||
|
||||
怪物与英雄采用同一套设定体系:
|
||||
|
||||
- **基础值与品质**:基础属性取 `HERO_ROLE_BASE[role]`,`card_lv` 决定品质(相邻品质基础属性差 5%,仅作用 lv1 初始 AP/HP/DEF)
|
||||
- **基础值与品质**:基础属性取 `HERO_ROLE_BASE[role]`,`rarity` 决定品质(相邻品质基础属性差 5%,仅作用 lv1 初始 AP/HP/DEF)
|
||||
- **成长系数**:走 `HERO_GROW_COEF[grow_type]`(含 hp/ap/def),与英雄一致
|
||||
- **数值平衡**:怪物与英雄仅通过**品质差异**(`card_lv`)拉开数值,高难波次用更高 `card_lv` 的怪物变体承担压场
|
||||
- **Boss**:同体系,通过高 `card_lv`(4/5)实现承伤/输出压制
|
||||
- **数值平衡**:怪物与英雄仅通过**品质差异**(`rarity`)拉开数值,高难波次用更高 `rarity` 的怪物变体承担压场
|
||||
- **Boss**:同体系,通过高 `rarity`(4/5)实现承伤/输出压制
|
||||
- **成长驱动**:怪物按等级成长由后续肉鸽配置驱动;当前配置承担“职业基准 + 品质差异”的静态表达,运行时按品质系数缩放基础值
|
||||
|
||||
## 配置检查清单
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
> **前置约束**(已确认的设计原则):
|
||||
> - 局内固定(战斗开始召唤的时候同)等级成长移交局外(局外等级与碎片数量)
|
||||
> - 单场战斗 30 左右秒
|
||||
> - card_lv 角色品质(1~5):初始基础数值带有品质增量,每升 1级都是按 20% 增量。
|
||||
> - rarity 角色品质(1~5):初始基础数值带有品质增量,每升 1级都是按 20% 增量。
|
||||
> - 初始 技能 普通攻击和大招 skills[0]、skills[1](对应"普通攻击"、"大招"),| 复活 | `SkillTriggerType.Revive` | 属于大招
|
||||
> - lv2: atking/atked/fstart 提升普通攻击能力,atking/atked 附加临时buff,fstart 局内持久 buff
|
||||
> - lv3/lv5/lv7: skills[1] 提升大招能力,攻击附加 buff 或 debuff
|
||||
> - lv9 card_lv 4/5 英雄新增能力驻场光环;card_lv 1/2/3 额外提升基础属性30/40/50%
|
||||
> - lv9 rarity 4/5 英雄新增能力驻场光环;rarity 1/2/3 额外提升基础属性30/40/50%
|
||||
> - 能力的附加 采用引用+数值覆盖 skillset 和 bufflist(skillset 和 bufflist是底座,已存在能力就不能添加,只要数值替代就可以)
|
||||
|
||||
---
|
||||
@@ -76,7 +76,7 @@
|
||||
| `bck` | 额外击退距离增量 | `overrides.bck` | 气斩、重击 |
|
||||
|
||||
### 2.4 驻场光环能力池(FieldSkillType)
|
||||
| 能力 | FieldSkillType | 底座 uuid | 适用 card_lv | 几何王国对应场景 |
|
||||
| 能力 | FieldSkillType | 底座 uuid | 适用 rarity | 几何王国对应场景 |
|
||||
|---|---|---|---|---|
|
||||
| 战后恢复 | WaveHeal | 7001 | 4/5 | 团队续航 |
|
||||
| 攻击光环 | HeroAtk | 7002 | 4/5 | 团队输出强化 |
|
||||
@@ -106,7 +106,7 @@
|
||||
| 多段释放 | `num` | `overrides: { num: 2 }` |
|
||||
|
||||
### 2.6 能力组合范式(英雄设计指引)
|
||||
| 英雄定位 | 普攻(lv2) | 大招(lv3/5/7) | 光环(lv9,card_lv 4/5) | 核心能力组合 |
|
||||
| 英雄定位 | 普攻(lv2) | 大招(lv3/5/7) | 光环(lv9,rarity 4/5) | 核心能力组合 |
|
||||
|---|---|---|---|---|
|
||||
| 暴击输出 | `crt` + 攻击强化(7001) | `crt` + 出血(7007) | 暴击光环(7004)/暴伤光环(7005) | 暴击率→出血→被暴击率联动 |
|
||||
| 冰冻控制 | `frz` + 冰冻(7003) | `frz` + 冰冻(7003)+ 减攻(7006) | 击晕光环(7003) | 冰冻→减攻→团队控制链 |
|
||||
|
||||
@@ -98,13 +98,13 @@ interface HeroConfigFile {
|
||||
| 不变量 | 依赖方 |
|
||||
|---|---|
|
||||
| 4 空格缩进、双引号、行尾无分号风格跟随原文件 | 全部 diff 工具 |
|
||||
| 条目头字段单行紧凑(`uuid, name, path, fac, card_lv, lv, type, grow_type, role, hp, ap, def` 一行),触发块换行展开 | 现有阅读习惯 |
|
||||
| 按 uuid 段位插入注释块(`// ===== card_lv=5(5401-5499)=====`) | 段位规则 |
|
||||
| 条目头字段单行紧凑(`uuid, name, path, fac, rarity, lv, type, grow_type, role, hp, ap, def` 一行),触发块换行展开 | 现有阅读习惯 |
|
||||
| 按 uuid 段位插入注释块(`// ===== rarity=5(5401-5499)=====`) | 段位规则 |
|
||||
| **档位数组 lv 严格升序**(lv_entries / LvTriggerEntry[] / field / revive / ap_bonus / hp_bonus) | `HeroSkillDesc.ts:384` 的 `filter(e=>e.lv<=lv).pop()` |
|
||||
| 数字键无引号、保持插入序 | Record 索引 |
|
||||
| `ccd: 0` 占位字段不丢(HSkillInfo 必填) | Hero.ts 加载 |
|
||||
| 字段顺序稳定(skills → atked/atking → dead → fstart → field → revive → info) | 减少 diff 噪音 |
|
||||
| HeroList 按 card_lv 分组升序 | CardSet 卡池派生顺序 |
|
||||
| HeroList 按 rarity 分组升序 | CardSet 卡池派生顺序 |
|
||||
| `info: ""` 收尾、`path/icon/info` 字符串原样不转义变换 | 文本保真 |
|
||||
| **文件头 BOM 原样保留**(读 utf-8 后首字符检测写回) | 避免整文件 diff |
|
||||
|
||||
@@ -163,8 +163,8 @@ interface HeroConfigFile {
|
||||
| 规则 | 说明 |
|
||||
|---|---|
|
||||
| lv > 6 档位 | `HERO_MAX_LV=6` 封顶,lv7/9 档当前永不生效(数据先行,运行时扩展上限后自动生效) |
|
||||
| card_lv 1/2/3 配了 field | 应改走 ap_bonus/hp_bonus(30/40/50% 补偿) |
|
||||
| card_lv 4/5 的 lv9 未配 field | 按设计指引应有驻场光环 |
|
||||
| rarity 1/2/3 配了 field | 应改走 ap_bonus/hp_bonus(30/40/50% 补偿) |
|
||||
| rarity 4/5 的 lv9 未配 field | 按设计指引应有驻场光环 |
|
||||
| infos 条数与实际档位不匹配 | 面板逐条展示依赖 |
|
||||
|
||||
## 六、UI 设计
|
||||
@@ -177,7 +177,7 @@ interface HeroConfigFile {
|
||||
┌ [强度评估 | 英雄配置●] ────────────────────────── ●=有未保存改动 ┐
|
||||
├────────────┬──────────────────────────────┬─────────┤
|
||||
│ 🔍搜索 │ 锚点导航: 基础|技能|触发|光环|复活|加成|说明 │ 校验抽屉 │
|
||||
│ ▾LV5 │ ①基础: uuid/name/path/card_lv/role/type │ ✕2 ⚠1 │
|
||||
│ ▾LV5 │ ①基础: uuid/name/path/rarity/role/type │ ✕2 ⚠1 │
|
||||
│ ●5401 刀刀│ hp/ap/def 基准+增量双输入(显示合计) │ 点击 │
|
||||
│ ▾LV4 … │ ②技能: [普攻|大招] SkillPicker + 底座只读条 │ 定位 │
|
||||
│ [+新建] │ + OverridesEditor + 档位矩阵 │ [保存] │
|
||||
@@ -188,7 +188,7 @@ interface HeroConfigFile {
|
||||
|
||||
| 组件 | 职责 | 数据源 | 校验 |
|
||||
|---|---|---|---|
|
||||
| HeroListView | card_lv 分组、搜索、dirty 圆点、新建入口 | heroSet.data.json | – |
|
||||
| HeroListView | rarity 分组、搜索、dirty 圆点、新建入口 | heroSet.data.json | – |
|
||||
| BaseForm | 基础字段;hp/ap/def 基准+增量双输入 | HERO_ROLE_BASE | uuid 段位/重复;role→type 联动锁定 |
|
||||
| SkillPicker | 自制搜索下拉选 SkillSet,显示 `6200 火焰喷射 · 远程 · AOE` | SkillSet | 普攻限 6001~6012 按 IType 过滤;大招按形态过滤;辅助技能放行 |
|
||||
| SkillBasePanel | 底座关键参数只读展示(ap/cd/hit/IType/RType/DTType) | SkillSet | – |
|
||||
@@ -196,14 +196,14 @@ interface HeroConfigFile {
|
||||
| LvMatrix | lv 档位矩阵(技能 lv_entries / 触发档 / field / revive 复用变体):行=lv1/2/3/5/7/9、列=参数,可整行复制加档;**lv7/9 行黄色边框+⚠「运行时 HERO_MAX_LV=6 暂不生效」** | 当前英雄 | lv 升序不重复;t_num≥1 |
|
||||
| TriggerGroupEditor | s_uuid 卡片嵌套档位行(外层技能组、内层档位),保存时统一升序 | SkillSet | s_uuid 存在性 |
|
||||
| InfosEditor | 9 档分级说明文本 | 当前英雄 | 条数与档位对照提示 |
|
||||
| BonusEditor | ap_bonus/hp_bonus 档位(lv+value) | 当前英雄 | 仅 card_lv1/2/3 提示使用 |
|
||||
| BonusEditor | ap_bonus/hp_bonus 档位(lv+value) | 当前英雄 | 仅 rarity1/2/3 提示使用 |
|
||||
| ValidationPanel | 错误/警告列表(区域·字段·消息),点击 scrollIntoView + 字段红框高亮;保存按钮 error>0 时禁用 | 校验器输出 | – |
|
||||
|
||||
### 6.3 关键交互
|
||||
|
||||
- **ui- 组件与 Vue 混用**:`isCustomElement` 已配置;ui- 元素 `v-model` 不生效,须 `:value` + `@change`/`@confirm` 手动双向;属性用 kebab-case
|
||||
- **自制组件**(ui- 缺失):档位矩阵表格、可搜索 SkillPicker、BuffList 分组下拉、校验列表、确认 modal
|
||||
- **新建向导**:单屏 modal——选 card_lv → role →(形态按映射自动锁定为只读徽章)→ 模板预填:uuid 取段位内最小空位、职业基准属性(增量 0)、按指引 2.6 能力组合范式推荐技能(tank→6004+6301、support→6009+6302 等)、lv3/5/7 空档骨架;提供「空白模板」选项
|
||||
- **新建向导**:单屏 modal——选 rarity → role →(形态按映射自动锁定为只读徽章)→ 模板预填:uuid 取段位内最小空位、职业基准属性(增量 0)、按指引 2.6 能力组合范式推荐技能(tank→6004+6301、support→6009+6302 等)、lv3/5/7 空档骨架;提供「空白模板」选项
|
||||
- **状态管理**:dirty 深度 watch(加载时存 snapshot 对比),列表项与 tab 标题打点;切换英雄/切 tab 弹确认(放弃/留下);底座加载沿用 spawn 异步 + loading 态
|
||||
- **保存流程**:error>0 → 保存禁用(tooltip 显示错误数);仅 warning → 自制 modal 确认后执行保存流水线
|
||||
|
||||
|
||||
Reference in New Issue
Block a user