diff options
| author | historia <[not public]> | 2026-06-17 02:27:20 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-06-17 02:27:20 -0400 |
| commit | 731adf2e0fbcac9a32179da077299ed6465af41e (patch) | |
| tree | 29d368917f258350d426f2680bec59feeb464eaf /internal/game/tick.go | |
| parent | 389e307f205f9b7edf604fb9f86e1038ead736ef (diff) | |
| download | thehouseoficarus-731adf2e0fbcac9a32179da077299ed6465af41e.tar.gz | |
feat: movement overhauled. agility-enhancing items added.
Diffstat (limited to 'internal/game/tick.go')
| -rw-r--r-- | internal/game/tick.go | 38 |
1 files changed, 34 insertions, 4 deletions
diff --git a/internal/game/tick.go b/internal/game/tick.go index ab82254..8c40c96 100644 --- a/internal/game/tick.go +++ b/internal/game/tick.go @@ -129,16 +129,18 @@ func (g *Game) WanderTick() { } if p.RoomID == m.fromRoom && p.OptionBool("mob_leave") { if m.level > 0 { - sess.WriteLine(g.colorize(sess, "broadcast", fmt.Sprintf("\n%s (level %d) leaves.", m.name, m.level))) + levelStr := g.levelColorize(sess, p.CombatLevel(), m.level, fmt.Sprintf("(level %d)", m.level)) + sess.WriteLine(fmt.Sprintf("\n%s %s leaves.", g.colorize(sess, "mob_name", m.name), levelStr)) } else { - sess.WriteLine(g.colorize(sess, "broadcast", fmt.Sprintf("\n%s moves away.", m.name))) + sess.WriteLine(fmt.Sprintf("\n%s moves away.", g.colorize(sess, "mob_name", m.name))) } } if p.RoomID == m.toRoom && p.OptionBool("mob_enter") { if m.level > 0 { - sess.WriteLine(g.colorize(sess, "broadcast", fmt.Sprintf("\n%s (level %d) enters.", m.name, m.level))) + levelStr := g.levelColorize(sess, p.CombatLevel(), m.level, fmt.Sprintf("(level %d)", m.level)) + sess.WriteLine(fmt.Sprintf("\n%s %s enters.", g.colorize(sess, "mob_name", m.name), levelStr)) } else { - sess.WriteLine(g.colorize(sess, "broadcast", fmt.Sprintf("\n%s drifts in.", m.name))) + sess.WriteLine(fmt.Sprintf("\n%s drifts in.", g.colorize(sess, "mob_name", m.name))) } } } @@ -213,3 +215,31 @@ func (g *Game) ConsumeTick() { } } } + +func (g *Game) VisualTick() { + if g.Hub == nil { + return + } + for _, sess := range g.Hub.AllSessions() { + p, ok := sess.Player.(*player.Player) + if !ok || p == nil || !p.OptionBool("visual_ticks") { + continue + } + text := p.OptionString("visual_tick_text") + count := p.OptionInt("visual_tick_count") + if count <= 0 { + sess.WriteLine(g.colorize(sess, "visual_tick", text)) + } else { + p.VisualTickCurrent++ + if p.VisualTickCurrent > count { + p.VisualTickCurrent = 1 + } + msg := fmt.Sprintf("%s %d", text, p.VisualTickCurrent) + if p.VisualTickCurrent == 1 { + sess.WriteLine(g.colorize(sess, "visual_first_tick", msg)) + } else { + sess.WriteLine(g.colorize(sess, "visual_tick", msg)) + } + } + } +} |
