diff options
| author | historia <[not public]> | 2026-06-19 18:20:26 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-06-19 18:20:26 -0400 |
| commit | 0ea4eec5dd2122c6704216971eb1249276297867 (patch) | |
| tree | 430fbbef04e837820f1d031c190f52ecd6112e25 /internal/game/tick.go | |
| parent | 3a58125d14bb307f861b38c6c5b0a63babde7e08 (diff) | |
| download | thehouseoficarus-0ea4eec5dd2122c6704216971eb1249276297867.tar.gz | |
shop fixes, 'toggle' completely removed, movement speed increased
Diffstat (limited to 'internal/game/tick.go')
| -rw-r--r-- | internal/game/tick.go | 59 |
1 files changed, 42 insertions, 17 deletions
diff --git a/internal/game/tick.go b/internal/game/tick.go index 4ab7e13..ec7eda9 100644 --- a/internal/game/tick.go +++ b/internal/game/tick.go @@ -17,8 +17,8 @@ func (g *Game) DisconnectTick() { if !sess.Disconnecting { continue } - p, ok := sess.Player.(*player.Player) - if !ok { + p := sess.Player + if p == nil { g.Hub.Remove(sess) continue } @@ -38,8 +38,8 @@ func (g *Game) RegenTick() { return } for _, sess := range g.Hub.AllSessions() { - p, ok := sess.Player.(*player.Player) - if !ok { + p := sess.Player + if p == nil { continue } if p.HP <= 0 || p.HP >= p.MaxHP() { @@ -65,7 +65,7 @@ func (g *Game) RegenTick() { p.HP = p.MaxHP() p.RegenerateTick = 0 } else { - p.RegenerateTick = 100 + p.RegenerateTick = player.RegenTickInterval } } } @@ -118,9 +118,9 @@ func (g *Game) WanderTick() { objMoves := g.World.FlushObjMoves() for _, om := range objMoves { for _, sess := range g.Hub.PlayersInRoom(om.FromRoom) { - if p, ok := sess.Player.(*player.Player); ok && p.Action != nil { + if p := sess.Player; p != nil && p.Action != nil { if p.Action.TargetID == om.DefID { - g.CancelAction(p) + g.cancelAction(p) g.writePrompt(sess) } } @@ -135,8 +135,8 @@ func (g *Game) WanderTick() { for _, m := range moves { for _, sess := range g.Hub.AllSessions() { - p, ok := sess.Player.(*player.Player) - if !ok { + p := sess.Player + if p == nil { continue } if p.RoomID == m.fromRoom && p.OptionBool("mob_leave") { @@ -162,8 +162,8 @@ func (g *Game) WanderTick() { func (g *Game) SharedDepletionTick() { activeKeys := make(map[string]bool) for _, sess := range g.Hub.AllSessions() { - p, ok := sess.Player.(*player.Player) - if !ok || p == nil || p.Action == nil || p.Action.Type != "gather" { + p := sess.Player + if p == nil || p.Action == nil || p.Action.Type != "gather" { continue } if key, ok := p.Action.Data["instance_key"].(string); ok { @@ -218,8 +218,8 @@ func (g *Game) TechTick() { return } for _, sess := range g.Hub.AllSessions() { - p, ok := sess.Player.(*player.Player) - if !ok || p == nil || len(p.ActiveTechs) == 0 { + p := sess.Player + if p == nil || len(p.ActiveTechs) == 0 { continue } @@ -281,8 +281,8 @@ func (g *Game) ConsumeTick() { return } for _, sess := range g.Hub.AllSessions() { - p, ok := sess.Player.(*player.Player) - if !ok || p == nil { + p := sess.Player + if p == nil { continue } if p.ConsumeCooldown > 0 { @@ -296,8 +296,8 @@ func (g *Game) VisualTick() { return } for _, sess := range g.Hub.AllSessions() { - p, ok := sess.Player.(*player.Player) - if !ok || p == nil || !p.OptionBool("visual_ticks") { + p := sess.Player + if p == nil || !p.OptionBool("visual_ticks") { continue } text := p.OptionString("visual_tick_text") @@ -318,3 +318,28 @@ func (g *Game) VisualTick() { } } } + +func (g *Game) MoveTick() { + if g.Hub == nil { + return + } + for _, sess := range g.Hub.AllSessions() { + p := sess.Player + if p == nil || p.MoveTicks <= 0 { + continue + } + p.MoveTicks-- + if p.MoveTicks > 0 { + if combat.GetCombat(p.Name) != nil && p.OptionBool("run_countdown") { + if p.MoveTicks > 1 { + sess.WriteLine(fmt.Sprintf("Running in %d ticks...", p.MoveTicks)) + } else { + sess.WriteLine("Running next tick!") + } + } + } else { + g.completeMove(sess, p) + g.writePrompt(sess) + } + } +} |
