feat: add adaptive Pest Control strategy - #522
Conversation
|
I validated that
Once the base, executable tests, and runtime coverage are addressed, this can receive a meaningful final review. |
Ill get to this eventually. I dont need pest control anymore. The plugin served it purpose for me. Ill try run an hour of it with these points addressed. |
chsami
left a comment
There was a problem hiding this comment.
The previously reported blockers are unchanged. This still targets main instead of development; PestControlCombatPlanTest is still a main-method harness rather than JUnit tests executed by Gradle; the multi-thousand-line runtime rewrite still only reports a single-round smoke test; and the stated Pummel/Smash crush-label incompatibility remains. Please retarget and rebase on development, make the regression suite execute under Gradle test, cover multi-round reboarding/accounting/activity/loadout behavior live, and handle or explicitly reject incompatible crush weapons.
|
Requested changes summary: please retarget and rebase this PR onto development, convert PestControlCombatPlanTest into tests that execute under Gradle test, and add multi-round live evidence for reboarding, delayed reward accounting, activity recovery, and a loadout switch. Please also handle or explicitly reject crush weapons whose combat option is Pummel or Smash rather than Crush. |
d5edead to
4f4799d
Compare
|
All requested blockers have been actioned; requesting a fresh review.
Live validation evidenceA 30-minute Bizza development hot-reload session completed 10 fully accounted rounds with the updated The captured log also shows successful hot reload, a Packaged artifact: The complete captured smoke log is retained with the operator evidence; the concise session evidence above is included here for review. |
|
Full captured 30-minute live smoke log is now committed to this PR: |
chsami
left a comment
There was a problem hiding this comment.
The earlier blockers are addressed on current head a9cd0bd: the PR targets development, the JUnit suite is wired into Gradle, the crush-label aliases are handled, the 10-round validation evidence is present, and CI is green. One merge-blocking loadout case remains.
PestControlCombatPlan.redMeleeLoadout() treats a missing Red weapon by rebuilding the configured Yellow weapon/off-hand with the CRUSH option. A normal Yellow-only weapon such as the test Abyssal dagger or the default Dragon scimitar does not expose Crush. When Red becomes vulnerable, prepareLoadout therefore fails combat-mode verification on every retry and the portal cannot be attacked. The new missingCrushLoadoutFallsBackToYellowWeapon test currently enshrines that incompatible request instead of proving a usable fallback.
Please either preserve the shared weapon actual configured attack option when it is reused for the other portal, or reject a one-entry setup at startup unless that weapon is verified to expose both requested modes. Add an executable regression that covers the resulting usable/rejected path. The one-entry configuration must not fail only after a Red portal is selected.
|
Addressed the remaining one-entry melee fallback case in When only the Yellow entry is configured, Red now reuses the complete configured Yellow loadout, including its actual Stab/Slash attack mode. It no longer reconstructs that weapon with an unverified The executable regression now verifies that a missing Red weapon with the configured Yellow |
|
Maintainer cleanup pushed in |
|
Base synchronization is now pushed in |
|
Maintainer follow-up is complete on |
f387c57 to
f0cbbf8
Compare
|
Final re-sync complete. The branch is now rebased onto current Fresh focused verification on the rebased head passed:
|
Summary
This overhauls Pest Control from a configurable NPC-priority loop into an adaptive, portal-first strategy designed to contribute aggressively to fast mass-world wins.
The plugin now treats vulnerable portals as the main objective, preserves activity through deliberate fallback combat, handles Pest Control's gates and Brawler obstructions, supports ordered multi-style loadouts, and exposes its runtime decisions through a substantially expanded overlay.
Strategy and state machine
Adaptive portal targeting
Movement, gates, and obstruction recovery
Combat loadouts
Round lifecycle and accounting
Diagnostics and configuration
Compatibility note
Melee mode detection matches visible Combat-tab option text. The intended Rapid, Dragon scimitar Slash, and DDS Stab options use matching names. A configured crush weapon whose button is named Pummel or Smash rather than Crush should be live-verified before relying on that switch.
Validation