aboutsummaryrefslogtreecommitdiff
path: root/internal/game/tick.go
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-06-19 18:20:26 -0400
committerhistoria <[not public]>2026-06-19 18:20:26 -0400
commit0ea4eec5dd2122c6704216971eb1249276297867 (patch)
tree430fbbef04e837820f1d031c190f52ecd6112e25 /internal/game/tick.go
parent3a58125d14bb307f861b38c6c5b0a63babde7e08 (diff)
downloadthehouseoficarus-0ea4eec5dd2122c6704216971eb1249276297867.tar.gz
shop fixes, 'toggle' completely removed, movement speed increased
Diffstat (limited to 'internal/game/tick.go')
-rw-r--r--internal/game/tick.go59
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)
+ }
+ }
+}