nerf skeleton king

master
Denis Ranneft 1 month ago
parent 6991c26058
commit dbcb0c5c77

@ -365,16 +365,17 @@ func ProcessEnemyRegen(enemy *model.Enemy, tickDuration time.Duration, remainder
return 0 return 0
} }
// Regen rates vary by enemy type. // Regen rates: runtime_config JSON merged at startup; Effective* falls back to tuning.DefaultEnemyRegen*.
cfg := tuning.Get() var regenRate float64
regenRate := cfg.EnemyRegenDefault
switch enemy.Type { switch enemy.Type {
case model.EnemySkeletonKing: case model.EnemySkeletonKing:
regenRate = cfg.EnemyRegenSkeletonKing regenRate = tuning.EffectiveEnemyRegenSkeletonKing()
case model.EnemyForestWarden: case model.EnemyForestWarden:
regenRate = cfg.EnemyRegenForestWarden regenRate = tuning.EffectiveEnemyRegenForestWarden()
case model.EnemyBattleLizard: case model.EnemyBattleLizard:
regenRate = cfg.EnemyRegenBattleLizard regenRate = tuning.EffectiveEnemyRegenBattleLizard()
default:
regenRate = tuning.EffectiveEnemyRegenDefault()
} }
healFloat := float64(enemy.MaxHP) * regenRate * tickDuration.Seconds() healFloat := float64(enemy.MaxHP) * regenRate * tickDuration.Seconds()

@ -305,10 +305,10 @@ func DefaultValues() Values {
DebuffProcStun: 0.25, DebuffProcStun: 0.25,
DebuffProcFreeze: 0.20, DebuffProcFreeze: 0.20,
DebuffProcIceSlow: 0.20, DebuffProcIceSlow: 0.20,
EnemyRegenDefault: 0.02, EnemyRegenDefault: DefaultEnemyRegenDefault,
EnemyRegenSkeletonKing: 0.10, EnemyRegenSkeletonKing: DefaultEnemyRegenSkeletonKing,
EnemyRegenForestWarden: 0.05, EnemyRegenForestWarden: DefaultEnemyRegenForestWarden,
EnemyRegenBattleLizard: 0.01, EnemyRegenBattleLizard: DefaultEnemyRegenBattleLizard,
SummonCycleSeconds: 15, SummonCycleSeconds: 15,
SummonDamageDivisor: 4, SummonDamageDivisor: 4,
LuckBuffMultiplier: 1.75, LuckBuffMultiplier: 1.75,
@ -431,6 +431,33 @@ func EffectiveQuestOfferRefreshHours() int {
return n return n
} }
func effectiveRegenPerSecond(cfg float64, fallback float64) float64 {
if cfg <= 0 {
return fallback
}
return cfg
}
// EffectiveEnemyRegenDefault returns enemy regen rate (MaxHP per second) from runtime config with code fallback.
func EffectiveEnemyRegenDefault() float64 {
return effectiveRegenPerSecond(Get().EnemyRegenDefault, DefaultEnemyRegenDefault)
}
// EffectiveEnemyRegenSkeletonKing returns Skeleton King regen rate (MaxHP per second) from runtime config with code fallback.
func EffectiveEnemyRegenSkeletonKing() float64 {
return effectiveRegenPerSecond(Get().EnemyRegenSkeletonKing, DefaultEnemyRegenSkeletonKing)
}
// EffectiveEnemyRegenForestWarden returns Forest Warden regen rate from runtime config with code fallback.
func EffectiveEnemyRegenForestWarden() float64 {
return effectiveRegenPerSecond(Get().EnemyRegenForestWarden, DefaultEnemyRegenForestWarden)
}
// EffectiveEnemyRegenBattleLizard returns Battle Lizard regen rate from runtime config with code fallback.
func EffectiveEnemyRegenBattleLizard() float64 {
return effectiveRegenPerSecond(Get().EnemyRegenBattleLizard, DefaultEnemyRegenBattleLizard)
}
func Set(v Values) { func Set(v Values) {
current.Store(&v) current.Store(&v)
} }

Loading…
Cancel
Save