Skip to content

Update dungeon automation and EOTN tooling - #112

Open
sky51100 wants to merge 1 commit into
apoguita:mainfrom
sky51100:clean-pr
Open

sky51100 wants to merge 1 commit into
apoguita:mainfrom
sky51100:clean-pr

Conversation

@sky51100

@sky51100 sky51100 commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

This PR consolidates the latest dungeon automation and EOTN tooling improvements into a clean branch based on the current upstream main.

Main changes:

  • Added Vloxen dungeon BottingTree automation.
  • Improved Bogroot Growths automation.
  • Improved Frostmaw automation.
  • Improved Oola's Lab automation.
  • Improved Shards of Orr automation.
  • Improved Tunnels of the Forsaken automation.
  • Expanded and improved the EOTN storyline automation.
  • Updated EOTN skill unlocker automation.
  • Improved BottingTree runtime, planner, services and upkeep handling.
  • Updated FrameTree support required by the new automation logic.
  • Added EOTN Skill and Vloxen module icons.

MerchantRules changes are intentionally excluded from this PR.

@apoguita

Copy link
Copy Markdown
Owner

Verdict for the original request: Request changes — the PR contains one library-boundary violation.

[HIGH] The Skills Unlocker script overrides a shared library UI owner

Widgets/Automation/Bots/SkillsUnlocker/EOTN_SKILL_UNLOCKER.py:2029 assigns:

botting_tree.UI._draw_main_child = _draw_compact_main_child

This mutates a private method on the shared BottingTree.UI owner from a leaf script. It bypasses the library’s UI ownership boundary and can change behavior for other consumers of that class. The skill selector belongs in the library’s UI extension path, not in a script-side monkey patch.

Required direction:

  1. Remove the script-side assignment to _draw_main_child.
  2. Extend Py4GWCoreLib/botting_tree_src/ui.py with an explicit owner-controlled integration point for the additional skill-selector content.
  3. Have the Skills Unlocker compose that supported surface without replacing or shadowing the shared UI method.
  4. Verify that the selector remains visible for the Skills Unlocker while Navigation, Settings, Help, Debug, and unrelated BottingTree consumers retain their existing behavior.

Why: the current implementation places reusable UI behavior and control of a shared library owner inside one script. That creates an uncontrolled path for other scripts to copy and leaves the library unable to govern its own UI behavior.

The bot and route rewrites are not findings by themselves; this review is limited to reusable library behavior, library-owned features, and bypasses of library control.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants