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