feat(balance): 버프 스킬 하이브리드 밸런스 조정
- 22개 버프 스킬 효과 감소 + MP 비용 증가 - Tier 1-5 전체 스킬 효율 하향 조정 - 예: Breakpoint CRI 35%→20%, MP 70→120
This commit is contained in:
@@ -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%
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user