Skip to content

Refactor Shrine Resurrection Handling for Team-Based Bots #185

Description

@caustic-kronos

Description

Several bots in the project operate as a sequence of navigation and action steps. When the entire team wipes, the game resurrects the party at a shrine, effectively resetting the team's physical position to an earlier point in the route.

Some bots already handle this scenario correctly by structuring their logic into discrete route segments. Each segment is implemented as a loop that starts at a shrine and progresses until the next checkpoint or shrine. See SoO, Froggy, Tunnels, and Voltaic bots for examples.

When a team wipe occurs:

  • the current segment is aborted.
  • execution returns to the start of the segment loop.
  • the bot waits until the entire team has been resurrected.
  • the segment is replayed from the shrine.

This guarantees that the bot's internal state remains consistent with the team's actual position in the world.

Problem

Many older bots are implemented as a single linear for loop over a list of steps.
When a team wipe occurs, the game resets the party to a shrine, but the bot continues executing from the current loop index.
As a result, the bot assumes it is still at step N even though the party has been moved back to a much earlier location.

This causes various issues, including:

  • Attempting to path to unreachable locations.
  • Walking into walls or obstacles.
  • Skipping required setup actions.
  • Desynchronization between bot state and game state.
  • Route failures that require manual intervention.

Fix

Implement SoO/Froggy/Tunnels/Voltaic behaviour to all bots that can support it.
The exact segmentation should follow the natural shrine-to-shrine (or checkpoint-to-checkpoint) boundaries of each bot.

Bots to fix:

  • Lightbringer-Sunspear
  • Lightbringer
  • Minotaurs
  • Deldrimor
  • Asuran
  • Kurzick Ferndale
  • Kurzick Drazach
  • Luxon Mount Qinkai
  • Luxon Silent Surf
  • Norn
  • Vanguard

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions