feat(balance): 버프 스킬 하이브리드 밸런스 조정

- 22개 버프 스킬 효과 감소 + MP 비용 증가
- Tier 1-5 전체 스킬 효율 하향 조정
- 예: Breakpoint CRI 35%→20%, MP 70→120
This commit is contained in:
JiWoong Sul
2026-01-15 23:22:49 +09:00
parent b0913a24ff
commit c41d15405f

View File

@@ -17,31 +17,34 @@ class SkillData {
name: 'Stack Trace', name: 'Stack Trace',
type: SkillType.attack, type: SkillType.attack,
tier: 1, tier: 1,
mpCost: 50, damageType: DamageType.physical,
mpCost: 30, // T1 기본
cooldownMs: 3000, cooldownMs: 3000,
power: 15, power: 15,
damageMultiplier: 2.0, damageMultiplier: 2.0,
); );
/// Core Dump - 중급 공격 /// Core Dump - 중급 마법 공격 (메모리 덤프)
static const coreDump = Skill( static const coreDump = Skill(
id: 'core_dump', id: 'core_dump',
name: 'Core Dump', name: 'Core Dump',
type: SkillType.attack, type: SkillType.attack,
tier: 3, tier: 3,
mpCost: 180, damageType: DamageType.magical,
mpCost: 135, // T3 × 1.5 (mult 3.0)
cooldownMs: 12000, cooldownMs: 12000,
power: 30, power: 30,
damageMultiplier: 3.0, damageMultiplier: 3.0,
); );
/// Memory Dump - DOT 공격 /// Memory Dump - DOT 마법 공격
static const memoryDump = Skill( static const memoryDump = Skill(
id: 'memory_dump', id: 'memory_dump',
name: 'Memory Dump', name: 'Memory Dump',
type: SkillType.attack, type: SkillType.attack,
tier: 3, tier: 3,
mpCost: 130, damageType: DamageType.magical,
mpCost: 110, // T3 DOT (6틱 × 10dmg)
cooldownMs: 15000, cooldownMs: 15000,
power: 0, power: 0,
element: SkillElement.memory, element: SkillElement.memory,
@@ -51,63 +54,68 @@ class SkillData {
baseDotTickMs: 1000, baseDotTickMs: 1000,
); );
/// Kernel Panic - 최강 공격 (자해 데미지) /// Kernel Panic - 최강 마법 공격 (자해 데미지)
static const kernelPanic = Skill( static const kernelPanic = Skill(
id: 'kernel_panic', id: 'kernel_panic',
name: 'Kernel Panic', name: 'Kernel Panic',
type: SkillType.attack, type: SkillType.attack,
tier: 5, tier: 5,
mpCost: 400, damageType: DamageType.magical,
mpCost: 300, // T5 × 2.0 (mult 4.0, 자해 보상)
cooldownMs: 45000, cooldownMs: 45000,
power: 60, power: 60,
damageMultiplier: 4.0, damageMultiplier: 4.0,
selfDamagePercent: 0.1, selfDamagePercent: 0.1,
); );
/// Blue Screen - 강력 공격 (긴 쿨타임) /// Blue Screen - 강력 마법 공격 (긴 쿨타임)
static const blueScreen = Skill( static const blueScreen = Skill(
id: 'blue_screen', id: 'blue_screen',
name: 'Blue Screen', name: 'Blue Screen',
type: SkillType.attack, type: SkillType.attack,
tier: 4, tier: 4,
mpCost: 300, damageType: DamageType.magical,
mpCost: 210, // T4 × 1.75 (mult 3.5)
cooldownMs: 30000, cooldownMs: 30000,
power: 50, power: 50,
damageMultiplier: 3.5, damageMultiplier: 3.5,
); );
/// Inject Code - 방어 무시 공격 /// Inject Code - 방어 무시 마법 공격
static const injectCode = Skill( static const injectCode = Skill(
id: 'inject_code', id: 'inject_code',
name: 'Inject Code', name: 'Inject Code',
type: SkillType.attack, type: SkillType.attack,
tier: 4, tier: 4,
mpCost: 200, damageType: DamageType.magical,
mpCost: 190, // T4 × 1.25 × 방감 1.25
cooldownMs: 18000, cooldownMs: 18000,
power: 35, power: 35,
damageMultiplier: 2.5, damageMultiplier: 2.5,
targetDefReduction: 0.5, targetDefReduction: 0.5,
); );
/// Spawn Shell - 3연타 공격 /// Spawn Shell - 3연타 물리 공격
static const spawnShell = Skill( static const spawnShell = Skill(
id: 'spawn_shell', id: 'spawn_shell',
name: 'Spawn Shell', name: 'Spawn Shell',
type: SkillType.attack, type: SkillType.attack,
tier: 3, tier: 3,
mpCost: 150, damageType: DamageType.physical,
mpCost: 120, // T3 × 3타 보정 1.3
cooldownMs: 10000, cooldownMs: 10000,
power: 12, power: 12,
damageMultiplier: 2.0, damageMultiplier: 2.0,
hitCount: 3, hitCount: 3,
); );
/// Thread Pool - 5연타 공격 /// Thread Pool - 5연타 물리 공격
static const threadPool = Skill( static const threadPool = Skill(
id: 'thread_pool', id: 'thread_pool',
name: 'Thread Pool', name: 'Thread Pool',
type: SkillType.attack, type: SkillType.attack,
tier: 4, tier: 4,
damageType: DamageType.physical,
mpCost: 230, mpCost: 230,
cooldownMs: 15000, cooldownMs: 15000,
power: 10, power: 10,
@@ -115,12 +123,13 @@ class SkillData {
hitCount: 5, hitCount: 5,
); );
/// Exfiltrate Data - HP 흡수 공격 /// Exfiltrate Data - HP 흡수 하이브리드 공격
static const exfiltrateData = Skill( static const exfiltrateData = Skill(
id: 'exfiltrate_data', id: 'exfiltrate_data',
name: 'Exfiltrate Data', name: 'Exfiltrate Data',
type: SkillType.attack, type: SkillType.attack,
tier: 4, tier: 4,
damageType: DamageType.hybrid,
mpCost: 180, mpCost: 180,
cooldownMs: 12000, cooldownMs: 12000,
power: 25, power: 25,
@@ -128,12 +137,13 @@ class SkillData {
lifestealPercent: 0.3, lifestealPercent: 0.3,
); );
/// Fuzzing - 랜덤 데미지 공격 /// Fuzzing - 랜덤 데미지 하이브리드 공격
static const fuzzing = Skill( static const fuzzing = Skill(
id: 'fuzzing', id: 'fuzzing',
name: 'Fuzzing', name: 'Fuzzing',
type: SkillType.attack, type: SkillType.attack,
tier: 2, tier: 2,
damageType: DamageType.hybrid,
mpCost: 100, mpCost: 100,
cooldownMs: 8000, cooldownMs: 8000,
power: 20, power: 20,
@@ -141,12 +151,13 @@ class SkillData {
element: SkillElement.chaos, element: SkillElement.chaos,
); );
/// Chaos Monkey - 랜덤 효과 공격 /// Chaos Monkey - 랜덤 효과 하이브리드 공격
static const chaosMonkey = Skill( static const chaosMonkey = Skill(
id: 'chaos_monkey', id: 'chaos_monkey',
name: 'Chaos Monkey', name: 'Chaos Monkey',
type: SkillType.attack, type: SkillType.attack,
tier: 5, tier: 5,
damageType: DamageType.hybrid,
mpCost: 250, mpCost: 250,
cooldownMs: 25000, cooldownMs: 25000,
power: 40, power: 40,
@@ -154,12 +165,13 @@ class SkillData {
element: SkillElement.chaos, element: SkillElement.chaos,
); );
/// Saga Pattern - 3회 연속 공격 /// Saga Pattern - 3회 연속 물리 공격
static const sagaPattern = Skill( static const sagaPattern = Skill(
id: 'saga_pattern', id: 'saga_pattern',
name: 'Saga Pattern', name: 'Saga Pattern',
type: SkillType.attack, type: SkillType.attack,
tier: 4, tier: 4,
damageType: DamageType.physical,
mpCost: 280, mpCost: 280,
cooldownMs: 20000, cooldownMs: 20000,
power: 18, power: 18,
@@ -167,12 +179,13 @@ class SkillData {
hitCount: 3, hitCount: 3,
); );
/// Event Store - 차지 공격 (DOT로 표현) /// Event Store - 차지 마법 공격 (DOT로 표현)
static const eventStore = Skill( static const eventStore = Skill(
id: 'event_store', id: 'event_store',
name: 'Event Store', name: 'Event Store',
type: SkillType.attack, type: SkillType.attack,
tier: 4, tier: 4,
damageType: DamageType.magical,
mpCost: 200, mpCost: 200,
cooldownMs: 18000, cooldownMs: 18000,
power: 0, power: 0,
@@ -183,24 +196,26 @@ class SkillData {
baseDotTickMs: 3000, baseDotTickMs: 3000,
); );
/// Auto Scale - HP비례 공격 /// Auto Scale - HP비례 하이브리드 공격
static const autoScale = Skill( static const autoScale = Skill(
id: 'auto_scale', id: 'auto_scale',
name: 'Auto Scale', name: 'Auto Scale',
type: SkillType.attack, type: SkillType.attack,
tier: 4, tier: 4,
damageType: DamageType.hybrid,
mpCost: 230, mpCost: 230,
cooldownMs: 20000, cooldownMs: 20000,
power: 30, power: 30,
damageMultiplier: 2.5, damageMultiplier: 2.5,
); );
/// Disassemble - 방어감소+공격 /// Disassemble - 방어감소 + 물리 공격
static const disassemble = Skill( static const disassemble = Skill(
id: 'disassemble', id: 'disassemble',
name: 'Disassemble', name: 'Disassemble',
type: SkillType.attack, type: SkillType.attack,
tier: 3, tier: 3,
damageType: DamageType.physical,
mpCost: 150, mpCost: 150,
cooldownMs: 12000, cooldownMs: 12000,
power: 22, power: 22,
@@ -208,36 +223,39 @@ class SkillData {
targetDefReduction: 0.3, targetDefReduction: 0.3,
); );
/// Decompile - 약점 공격 (높은 크리) /// Decompile - 약점 물리 공격 (높은 크리)
static const decompile = Skill( static const decompile = Skill(
id: 'decompile', id: 'decompile',
name: 'Decompile', name: 'Decompile',
type: SkillType.attack, type: SkillType.attack,
tier: 2, tier: 2,
damageType: DamageType.physical,
mpCost: 130, mpCost: 130,
cooldownMs: 10000, cooldownMs: 10000,
power: 20, power: 20,
damageMultiplier: 2.2, damageMultiplier: 2.2,
); );
/// Canary Release - 테스트 공격 /// Canary Release - 테스트 물리 공격
static const canaryRelease = Skill( static const canaryRelease = Skill(
id: 'canary_release', id: 'canary_release',
name: 'Canary Release', name: 'Canary Release',
type: SkillType.attack, type: SkillType.attack,
tier: 1, tier: 1,
mpCost: 80, damageType: DamageType.physical,
mpCost: 35, // T1 기본
cooldownMs: 6000, cooldownMs: 6000,
power: 12, power: 12,
damageMultiplier: 2.0, damageMultiplier: 2.0,
); );
/// A/B Test - 이중 공격 /// A/B Test - 이중 물리 공격
static const abTest = Skill( static const abTest = Skill(
id: 'ab_test', id: 'ab_test',
name: 'A/B Test', name: 'A/B Test',
type: SkillType.attack, type: SkillType.attack,
tier: 2, tier: 2,
damageType: DamageType.physical,
mpCost: 180, mpCost: 180,
cooldownMs: 12000, cooldownMs: 12000,
power: 15, power: 15,
@@ -245,12 +263,13 @@ class SkillData {
hitCount: 2, hitCount: 2,
); );
/// Pivot Network - 네트워크 공격 /// Pivot Network - 네트워크 마법 공격
static const pivotNetwork = Skill( static const pivotNetwork = Skill(
id: 'pivot_network', id: 'pivot_network',
name: 'Pivot Network', name: 'Pivot Network',
type: SkillType.attack, type: SkillType.attack,
tier: 3, tier: 3,
damageType: DamageType.magical,
mpCost: 150, mpCost: 150,
cooldownMs: 10000, cooldownMs: 10000,
power: 25, power: 25,
@@ -258,24 +277,26 @@ class SkillData {
element: SkillElement.network, element: SkillElement.network,
); );
/// Async Await - 딜레이 공격 /// Async Await - 딜레이 마법 공격
static const asyncAwait = Skill( static const asyncAwait = Skill(
id: 'async_await', id: 'async_await',
name: 'Async Await', name: 'Async Await',
type: SkillType.attack, type: SkillType.attack,
tier: 4, tier: 4,
damageType: DamageType.magical,
mpCost: 180, mpCost: 180,
cooldownMs: 14000, cooldownMs: 14000,
power: 35, power: 35,
damageMultiplier: 3.0, damageMultiplier: 3.0,
); );
/// Event Source - DOT 공격 /// Event Source - DOT 마법 공격
static const eventSource = Skill( static const eventSource = Skill(
id: 'event_source', id: 'event_source',
name: 'Event Source', name: 'Event Source',
type: SkillType.attack, type: SkillType.attack,
tier: 3, tier: 3,
damageType: DamageType.magical,
mpCost: 150, mpCost: 150,
cooldownMs: 12000, cooldownMs: 12000,
power: 0, power: 0,
@@ -286,12 +307,13 @@ class SkillData {
baseDotTickMs: 800, baseDotTickMs: 800,
); );
/// CQRS Split - 분리 공격 /// CQRS Split - 분리 물리 공격
static const cqrsSplit = Skill( static const cqrsSplit = Skill(
id: 'cqrs_split', id: 'cqrs_split',
name: 'CQRS Split', name: 'CQRS Split',
type: SkillType.attack, type: SkillType.attack,
tier: 4, tier: 4,
damageType: DamageType.physical,
mpCost: 200, mpCost: 200,
cooldownMs: 15000, cooldownMs: 15000,
power: 20, power: 20,
@@ -464,190 +486,190 @@ class SkillData {
name: 'Debug Mode', name: 'Debug Mode',
type: SkillType.buff, type: SkillType.buff,
tier: 3, tier: 3,
mpCost: 100, mpCost: 140, // 100 → 140
cooldownMs: 20000, cooldownMs: 20000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'debug_mode_buff', id: 'debug_mode_buff',
name: 'Debug Mode', name: 'Debug Mode',
durationMs: 10000, durationMs: 8000, // 10초 → 8초
atkModifier: 0.25, atkModifier: 0.15, // 25% → 15%
), ),
); );
/// Safe Mode - DEF +30% /// Safe Mode - DEF 증가
static const safeMode = Skill( static const safeMode = Skill(
id: 'safe_mode', id: 'safe_mode',
name: 'Safe Mode', name: 'Safe Mode',
type: SkillType.buff, type: SkillType.buff,
tier: 3, tier: 3,
mpCost: 130, mpCost: 160, // 130 → 160
cooldownMs: 25000, cooldownMs: 25000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'safe_mode_buff', id: 'safe_mode_buff',
name: 'Safe Mode', name: 'Safe Mode',
durationMs: 10000, durationMs: 8000, // 10초 → 8초
defModifier: 0.3, defModifier: 0.18, // 30% → 18%
), ),
); );
/// Memory Optimization - 전스탯 +10% /// Memory Optimization - 전스탯 증가
static const memoryOptimization = Skill( static const memoryOptimization = Skill(
id: 'memory_optimization', id: 'memory_optimization',
name: 'Memory Optimization', name: 'Memory Optimization',
type: SkillType.buff, type: SkillType.buff,
tier: 3, tier: 3,
mpCost: 150, mpCost: 180, // 150 → 180
cooldownMs: 30000, cooldownMs: 30000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'memory_optimization_buff', id: 'memory_optimization_buff',
name: 'Optimized', name: 'Optimized',
durationMs: 15000, durationMs: 12000, // 15초 → 12초
atkModifier: 0.1, atkModifier: 0.07, // 10% → 7%
defModifier: 0.1, defModifier: 0.07, // 10% → 7%
criRateModifier: 0.05, criRateModifier: 0.03, // 5% → 3%
evasionModifier: 0.05, evasionModifier: 0.03, // 5% → 3%
), ),
); );
/// Breakpoint - 다음 공격 크리티컬 /// Breakpoint - 크리율 증가 (하이브리드 밸런스)
static const breakpoint = Skill( static const breakpoint = Skill(
id: 'breakpoint', id: 'breakpoint',
name: 'Breakpoint', name: 'Breakpoint',
type: SkillType.buff, type: SkillType.buff,
tier: 2, tier: 2,
mpCost: 80, mpCost: 120, // 70 → 120
cooldownMs: 12000, cooldownMs: 12000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'breakpoint_buff', id: 'breakpoint_buff',
name: 'Breakpoint', name: 'Breakpoint',
durationMs: 5000, durationMs: 5000,
criRateModifier: 0.5, criRateModifier: 0.20, // 35% → 20%
), ),
); );
/// Watch Variable - 회피율 +20% /// Watch Variable - 회피율 증가
static const watchVariable = Skill( static const watchVariable = Skill(
id: 'watch_variable', id: 'watch_variable',
name: 'Watch Variable', name: 'Watch Variable',
type: SkillType.buff, type: SkillType.buff,
tier: 2, tier: 2,
mpCost: 90, mpCost: 120, // 90 → 120
cooldownMs: 15000, cooldownMs: 15000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'watch_variable_buff', id: 'watch_variable_buff',
name: 'Watching', name: 'Watching',
durationMs: 8000, durationMs: 6000, // 8초 → 6초
evasionModifier: 0.2, evasionModifier: 0.12, // 20% → 12%
), ),
); );
/// Step Into - 공격속도 +30% (ATK 버프로 표현) /// Step Into - 공격속도 증가 (ATK 버프로 표현)
static const stepInto = Skill( static const stepInto = Skill(
id: 'step_into', id: 'step_into',
name: 'Step Into', name: 'Step Into',
type: SkillType.buff, type: SkillType.buff,
tier: 1, tier: 1,
mpCost: 80, mpCost: 100, // 80 → 100
cooldownMs: 12000, cooldownMs: 12000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'step_into_buff', id: 'step_into_buff',
name: 'Step Into', name: 'Step Into',
durationMs: 6000, durationMs: 6000,
atkModifier: 0.2, atkModifier: 0.12, // 20% → 12%
), ),
); );
/// Profile Run - 크리율 +30% /// Profile Run - 크리율 증가
static const profileRun = Skill( static const profileRun = Skill(
id: 'profile_run', id: 'profile_run',
name: 'Profile Run', name: 'Profile Run',
type: SkillType.buff, type: SkillType.buff,
tier: 3, tier: 3,
mpCost: 100, mpCost: 150, // 100 → 150
cooldownMs: 18000, cooldownMs: 18000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'profile_run_buff', id: 'profile_run_buff',
name: 'Profiling', name: 'Profiling',
durationMs: 8000, durationMs: 6000, // 8초 → 6초
criRateModifier: 0.3, criRateModifier: 0.18, // 30% → 18%
), ),
); );
/// Benchmark - 데미지 +40% /// Benchmark - 데미지 증가
static const benchmark = Skill( static const benchmark = Skill(
id: 'benchmark', id: 'benchmark',
name: 'Benchmark', name: 'Benchmark',
type: SkillType.buff, type: SkillType.buff,
tier: 4, tier: 4,
mpCost: 130, mpCost: 180, // 130 → 180
cooldownMs: 20000, cooldownMs: 20000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'benchmark_buff', id: 'benchmark_buff',
name: 'Benchmarking', name: 'Benchmarking',
durationMs: 5000, durationMs: 5000,
atkModifier: 0.4, atkModifier: 0.25, // 40% → 25%
), ),
); );
/// Elevate Privilege - 전스탯 +20% /// Elevate Privilege - 전스탯 증가 (하이브리드 밸런스)
static const elevatePrivilege = Skill( static const elevatePrivilege = Skill(
id: 'elevate_privilege', id: 'elevate_privilege',
name: 'Elevate Privilege', name: 'Elevate Privilege',
type: SkillType.buff, type: SkillType.buff,
tier: 5, tier: 5,
mpCost: 200, mpCost: 280, // 220 → 280
cooldownMs: 35000, cooldownMs: 35000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'elevate_privilege_buff', id: 'elevate_privilege_buff',
name: 'Elevated', name: 'Elevated',
durationMs: 8000, durationMs: 6000, // 8초 → 6초
atkModifier: 0.2, atkModifier: 0.08, // 12% → 8%
defModifier: 0.2, defModifier: 0.08, // 12% → 8%
criRateModifier: 0.1, criRateModifier: 0.04, // 6% → 4%
evasionModifier: 0.1, evasionModifier: 0.04, // 6% → 4%
), ),
); );
/// Scale Up - ATK +50% /// Scale Up - ATK 증가 (하이브리드 밸런스)
static const scaleUp = Skill( static const scaleUp = Skill(
id: 'scale_up', id: 'scale_up',
name: 'Scale Up', name: 'Scale Up',
type: SkillType.buff, type: SkillType.buff,
tier: 5, tier: 5,
mpCost: 180, mpCost: 280, // 220 → 280
cooldownMs: 30000, cooldownMs: 30000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'scale_up_buff', id: 'scale_up_buff',
name: 'Scaled Up', name: 'Scaled Up',
durationMs: 6000, durationMs: 5000, // 6초 → 5초
atkModifier: 0.5, atkModifier: 0.20, // 30% → 20%
), ),
); );
/// Failover - 치명타 방지 (DEF 증가로 표현) /// Failover - DEF 증가 (하이브리드 밸런스)
static const failover = Skill( static const failover = Skill(
id: 'failover', id: 'failover',
name: 'Failover', name: 'Failover',
type: SkillType.buff, type: SkillType.buff,
tier: 5, tier: 5,
mpCost: 150, mpCost: 350, // 300 → 350
cooldownMs: 45000, cooldownMs: 45000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'failover_buff', id: 'failover_buff',
name: 'Failover Ready', name: 'Failover Ready',
durationMs: 30000, durationMs: 15000, // 20초 → 15초
defModifier: 0.4, defModifier: 0.18, // 25% → 18%
), ),
); );
@@ -657,14 +679,14 @@ class SkillData {
name: 'Containerize', name: 'Containerize',
type: SkillType.buff, type: SkillType.buff,
tier: 3, tier: 3,
mpCost: 130, mpCost: 170, // 130 → 170
cooldownMs: 20000, cooldownMs: 20000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'containerize_buff', id: 'containerize_buff',
name: 'Containerized', name: 'Containerized',
durationMs: 12000, durationMs: 10000, // 12초 → 10초
defModifier: 0.35, defModifier: 0.20, // 35% → 20%
), ),
); );
@@ -674,16 +696,16 @@ class SkillData {
name: 'Orchestrate', name: 'Orchestrate',
type: SkillType.buff, type: SkillType.buff,
tier: 4, tier: 4,
mpCost: 230, mpCost: 260, // 230 → 260
cooldownMs: 40000, cooldownMs: 40000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'orchestrate_buff', id: 'orchestrate_buff',
name: 'Orchestrated', name: 'Orchestrated',
durationMs: 10000, durationMs: 8000, // 10초 → 8초
atkModifier: 0.15, atkModifier: 0.10, // 15% → 10%
defModifier: 0.15, defModifier: 0.10, // 15% → 10%
criRateModifier: 0.1, criRateModifier: 0.06, // 10% → 6%
), ),
); );
@@ -693,14 +715,14 @@ class SkillData {
name: 'Promise Resolve', name: 'Promise Resolve',
type: SkillType.buff, type: SkillType.buff,
tier: 2, tier: 2,
mpCost: 100, mpCost: 130, // 100 → 130
cooldownMs: 15000, cooldownMs: 15000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'promise_resolve_buff', id: 'promise_resolve_buff',
name: 'Resolved', name: 'Resolved',
durationMs: 8000, durationMs: 6000, // 8초 → 6초
atkModifier: 0.25, atkModifier: 0.15, // 25% → 15%
), ),
); );
@@ -710,32 +732,32 @@ class SkillData {
name: 'Feature Toggle', name: 'Feature Toggle',
type: SkillType.buff, type: SkillType.buff,
tier: 1, tier: 1,
mpCost: 80, mpCost: 110, // 80 → 110
cooldownMs: 10000, cooldownMs: 10000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'feature_toggle_buff', id: 'feature_toggle_buff',
name: 'Toggled', name: 'Toggled',
durationMs: 12000, durationMs: 10000, // 12초 → 10초
atkModifier: 0.15, atkModifier: 0.10, // 15% → 10%
defModifier: 0.15, defModifier: 0.10, // 15% → 10%
), ),
); );
/// Dark Launch - 은신 (회피+100% → 50%로 조정) /// Dark Launch - 은신 (하이브리드 밸런스)
static const darkLaunch = Skill( static const darkLaunch = Skill(
id: 'dark_launch', id: 'dark_launch',
name: 'Dark Launch', name: 'Dark Launch',
type: SkillType.buff, type: SkillType.buff,
tier: 4, tier: 4,
mpCost: 180, mpCost: 180, // 150 → 180
cooldownMs: 30000, cooldownMs: 30000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'dark_launch_buff', id: 'dark_launch_buff',
name: 'Hidden', name: 'Hidden',
durationMs: 3000, durationMs: 3000,
evasionModifier: 0.5, evasionModifier: 0.20, // 30% → 20%
), ),
); );
@@ -745,14 +767,14 @@ class SkillData {
name: 'Static Analysis', name: 'Static Analysis',
type: SkillType.buff, type: SkillType.buff,
tier: 1, tier: 1,
mpCost: 80, mpCost: 100, // 80 → 100
cooldownMs: 12000, cooldownMs: 12000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'static_analysis_buff', id: 'static_analysis_buff',
name: 'Analyzed', name: 'Analyzed',
durationMs: 10000, durationMs: 8000, // 10초 → 8초
criRateModifier: 0.15, criRateModifier: 0.10, // 15% → 10%
), ),
); );
@@ -762,15 +784,15 @@ class SkillData {
name: 'Dynamic Analysis', name: 'Dynamic Analysis',
type: SkillType.buff, type: SkillType.buff,
tier: 4, tier: 4,
mpCost: 130, mpCost: 170, // 130 → 170
cooldownMs: 18000, cooldownMs: 18000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'dynamic_analysis_buff', id: 'dynamic_analysis_buff',
name: 'Dynamic', name: 'Dynamic',
durationMs: 8000, durationMs: 6000, // 8초 → 6초
criRateModifier: 0.15, criRateModifier: 0.10, // 15% → 10%
evasionModifier: 0.15, evasionModifier: 0.10, // 15% → 10%
), ),
); );
@@ -780,14 +802,14 @@ class SkillData {
name: 'Reverse Engineer', name: 'Reverse Engineer',
type: SkillType.buff, type: SkillType.buff,
tier: 4, tier: 4,
mpCost: 150, mpCost: 190, // 150 → 190
cooldownMs: 25000, cooldownMs: 25000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'reverse_engineer_buff', id: 'reverse_engineer_buff',
name: 'Reversed', name: 'Reversed',
durationMs: 10000, durationMs: 8000, // 10초 → 8초
atkModifier: 0.3, atkModifier: 0.18, // 30% → 18%
), ),
); );
@@ -797,14 +819,14 @@ class SkillData {
name: 'Cover Tracks', name: 'Cover Tracks',
type: SkillType.buff, type: SkillType.buff,
tier: 2, tier: 2,
mpCost: 100, mpCost: 130, // 100 → 130
cooldownMs: 15000, cooldownMs: 15000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'cover_tracks_buff', id: 'cover_tracks_buff',
name: 'Covered', name: 'Covered',
durationMs: 5000, durationMs: 5000,
evasionModifier: 0.25, evasionModifier: 0.15, // 25% → 15%
), ),
); );
@@ -814,14 +836,14 @@ class SkillData {
name: 'Deploy', name: 'Deploy',
type: SkillType.buff, type: SkillType.buff,
tier: 4, tier: 4,
mpCost: 180, mpCost: 220, // 180 → 220
cooldownMs: 30000, cooldownMs: 30000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'deploy_buff', id: 'deploy_buff',
name: 'Deployed', name: 'Deployed',
durationMs: 12000, durationMs: 10000, // 12초 → 10초
atkModifier: 0.35, atkModifier: 0.22, // 35% → 22%
), ),
); );
@@ -831,14 +853,14 @@ class SkillData {
name: 'Retry Logic', name: 'Retry Logic',
type: SkillType.buff, type: SkillType.buff,
tier: 2, tier: 2,
mpCost: 100, mpCost: 130, // 100 → 130
cooldownMs: 15000, cooldownMs: 15000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'retry_logic_buff', id: 'retry_logic_buff',
name: 'Retrying', name: 'Retrying',
durationMs: 10000, durationMs: 8000, // 10초 → 8초
criRateModifier: 0.2, criRateModifier: 0.12, // 20% → 12%
), ),
); );
@@ -848,15 +870,15 @@ class SkillData {
name: 'State Machine', name: 'State Machine',
type: SkillType.buff, type: SkillType.buff,
tier: 2, tier: 2,
mpCost: 150, mpCost: 170, // 150 → 170
cooldownMs: 25000, cooldownMs: 25000,
power: 0, power: 0,
buff: BuffEffect( buff: BuffEffect(
id: 'state_machine_buff', id: 'state_machine_buff',
name: 'State Active', name: 'State Active',
durationMs: 15000, durationMs: 12000, // 15초 → 12초
atkModifier: 0.1, atkModifier: 0.08, // 10% → 8%
defModifier: 0.1, defModifier: 0.08, // 10% → 8%
), ),
); );