From 778157981cccb8cb4856e3ab5a72085830c59120 Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Wed, 1 Jul 2026 22:39:42 -0400 Subject: feat: god lets admins set all stats to level --- internal/game/cmd_god.go | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'internal/game/cmd_god.go') diff --git a/internal/game/cmd_god.go b/internal/game/cmd_god.go index 0545c3f..56311cb 100644 --- a/internal/game/cmd_god.go +++ b/internal/game/cmd_god.go @@ -1,6 +1,9 @@ package game import ( + "fmt" + "strconv" + "thehouseoficarus/internal/net" "thehouseoficarus/internal/player" ) @@ -19,19 +22,29 @@ func (g *Game) executeGod(sess *net.Session, args []string, rawInput string) { return } + level := 99 + if len(args) > 0 { + n, err := strconv.Atoi(args[0]) + if err != nil || n < 1 || n > 99 { + sess.WriteLine("Usage: god [level] (1-99).") + return + } + level = n + } + p.GodBackup = make(map[player.SkillName]int, len(p.Skills)) for k, v := range p.Skills { p.GodBackup[k] = v } - lvl99xp := player.XPForLevel(99) + lvlXP := player.XPForLevel(level) for _, s := range player.AllSkills { - p.Skills[s] = lvl99xp + p.Skills[s] = lvlXP } p.GodMode = true p.HP = p.MaxHP() - sess.WriteLine("God mode activated. All skills set to 99.") + sess.WriteLine(fmt.Sprintf("God mode activated. All skills set to %d.", level)) } func (g *Game) executeUnGod(sess *net.Session, args []string, rawInput string) { @@ -48,6 +61,7 @@ func (g *Game) executeUnGod(sess *net.Session, args []string, rawInput string) { return } g.restoreGodPlayer(p) + g.AccountStore.SaveCharacter(p) sess.WriteLine("God mode deactivated. Skills restored.") } @@ -60,4 +74,7 @@ func (g *Game) restoreGodPlayer(p *player.Player) { } p.GodMode = false p.GodBackup = nil + if p.HP > p.MaxHP() { + p.HP = p.MaxHP() + } } -- cgit v1.2.3