Files
Catacombs/dungeon/theme.go
tolelom 1e155c62fb feat: add floor themes with status effect modifiers
Add 4 floor themes (Swamp/Volcano/Glacier/Inferno) that boost status
effect damage on matching floors. Realign boss patterns to match themes
and add PatternFreeze for the Glacier boss.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 15:22:17 +09:00

33 lines
941 B
Go

package dungeon
import "github.com/tolelom/catacombs/entity"
// ThemeModifier defines gameplay modifiers for a range of floors.
type ThemeModifier struct {
Name string
StatusBoost entity.StatusEffect // which status is boosted (-1 = all for Inferno)
DamageMult float64
Description string
}
var themeModifiers = []ThemeModifier{
{"Swamp", entity.StatusPoison, 1.5, "Toxic marshes amplify poison"},
{"Volcano", entity.StatusBurn, 1.5, "Volcanic heat intensifies burns"},
{"Glacier", entity.StatusFreeze, 1.5, "Glacial cold strengthens frost"},
{"Inferno", entity.StatusEffect(-1), 1.3, "Hellfire empowers all afflictions"},
}
// GetTheme returns the theme modifier for the given floor number.
func GetTheme(floor int) ThemeModifier {
switch {
case floor <= 5:
return themeModifiers[0]
case floor <= 10:
return themeModifiers[1]
case floor <= 15:
return themeModifiers[2]
default:
return themeModifiers[3]
}
}