diff --git a/assets/script/game/common/config/SCardSet.ts b/assets/script/game/common/config/SCardSet.ts index be5d60bd..253ab0ff 100644 --- a/assets/script/game/common/config/SCardSet.ts +++ b/assets/script/game/common/config/SCardSet.ts @@ -47,7 +47,7 @@ const SkillCardData: SkillCardRaw[] = [ { uuid: 8112, skill: 6012, card_lv: 1, icon: "Axe-FA_WP_Main_Axe_002_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: 6005, card_lv: 1, icon: "Spear-FA_WP_Main_Spear_010_MetalBlue", name: "飞枪", info: "造成攻击力150%的伤害,可贯穿2个目标", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, hit_count: 2 } }, - { uuid: 8106, skill: 6006, card_lv: 1, icon: "Stat_Attack_01", name: "突刺", info: "造成攻击力150%的伤害,可贯穿2个目标", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 150, hit_count: 2 } }, + { uuid: 8106, skill: 6006, 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: 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: 8109, skill: 6009, 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 } }, @@ -60,11 +60,11 @@ const SkillCardData: SkillCardRaw[] = [ { uuid: 8116, skill: 6016, 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 } }, // ==================== card_lv 2 · 中阶范围(ap:200,群体附加) ==================== - { uuid: 8201, skill: 6101, card_lv: 2, icon: "Stat_FireDamage", name: "火球", info: "造成攻击力200%的伤害,30%暴击,可命中2个目标", is_inst: false, t_times: 3, t_inv: 5, trigger_type: CardTriggerType.Interval, overrides: { ap: 200, crt: 30 } }, + { uuid: 8201, skill: 6101, 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: 6102, 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 } }, // ==================== card_lv 3 · 高阶范围(ap:250,群体附加) ==================== - { uuid: 8301, skill: 6201, card_lv: 3, icon: "Stat_SplashDamage", name: "陨石术", info: "召唤陨石造成攻击力250%的范围伤害,40%击晕", is_inst: false, t_times: 4, t_inv: 4, trigger_type: CardTriggerType.Interval, overrides: { ap: 250, stun: 40 } }, + { uuid: 8301, skill: 6201, card_lv: 3, icon: "Stat_SplashDamage", name: "陨石雨", info: "一次释放3发,每发造成攻击力250%的范围伤害,40%击晕", is_inst: false, t_times: 4, t_inv: 4, trigger_type: CardTriggerType.Interval, overrides: { ap: 250, stun: 40, num: 2 } }, ]; /** diff --git a/assets/script/game/common/config/SkillSet.ts b/assets/script/game/common/config/SkillSet.ts index db23d69b..0cceb03a 100644 --- a/assets/script/game/common/config/SkillSet.ts +++ b/assets/script/game/common/config/SkillSet.ts @@ -178,6 +178,8 @@ export interface SkillOverrides { buff_duration?: number; call_hero?: number; is_accel?: boolean; + /** 单次施法额外释放次数(0=单次,1=双发,2=三发;弹道由 resolveRepeatCastTargetPos 分散上/中/下三路) */ + num?: number; } /** diff --git a/assets/script/game/hero/SCastSystem.ts b/assets/script/game/hero/SCastSystem.ts index cceb13c1..1bcf3898 100644 --- a/assets/script/game/hero/SCastSystem.ts +++ b/assets/script/game/hero/SCastSystem.ts @@ -91,7 +91,8 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate } const sUp = SkillUpList[s_uuid] ? SkillUpList[s_uuid] : SkillUpList[1001]; - const cNum = Math.min(2, Math.max(0, Math.floor(sUp.num ?? 0))); + // 优先读 overrides.num(技能卡差异化多发),兜底 SkillUpList.num,限制在 [0, 2] + const cNum = Math.min(2, Math.max(0, Math.floor(overrides?.num ?? sUp.num ?? 0))); const castTimes = 1 + cNum; // 构造一个模拟的 HeroAttrsComp 用于数值计算,只包含基础卡牌伤害计算所需的属性 @@ -274,7 +275,8 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate } const sUp = SkillUpList[s_uuid] ? SkillUpList[s_uuid] : SkillUpList[1001]; - const cNum = Math.min(2, Math.max(0, Math.floor(sUp.num ?? 0))); + // 优先读 overrides.num(技能卡差异化多发),兜底 SkillUpList.num,限制在 [0, 2] + const cNum = Math.min(2, Math.max(0, Math.floor(overrides?.num ?? sUp.num ?? 0))); const castTimes = 1 + cNum; let val = "" if (castTimes > 1) { @@ -344,7 +346,8 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate const overrides = castPlan.overrides; let config = SkillSet[s_uuid]; const sUp = SkillUpList[s_uuid] ? SkillUpList[s_uuid] : SkillUpList[1001]; - const cNum = Math.min(2, Math.max(0, Math.floor(sUp.num ?? 0))); + // 优先读 overrides.num(技能卡差异化多发),兜底 SkillUpList.num,限制在 [0, 2] + const cNum = Math.min(2, Math.max(0, Math.floor(overrides?.num ?? sUp.num ?? 0))); if (!config) return; config = mergeSkillParams(config, overrides);