Skip to content

feat: intermediate quests — agent bug fixes for roads_run_red, iron_will, warchiefs_fury#1096

Open
terminaldestiny wants to merge 4 commits into
PlayHyperia:mainfrom
terminaldestiny:feat/intermediate-quests
Open

feat: intermediate quests — agent bug fixes for roads_run_red, iron_will, warchiefs_fury#1096
terminaldestiny wants to merge 4 commits into
PlayHyperia:mainfrom
terminaldestiny:feat/intermediate-quests

Conversation

@terminaldestiny

@terminaldestiny terminaldestiny commented Mar 26, 2026

Copy link
Copy Markdown
  • Fix mobType always undefined in getNearbyEntities: setProperty() stores in entity.config.properties, not entity.data — add fallback to read from entityConfig.properties.mobType so warchief/barbarian are correctly distinguished during kill stages

  • Fix attack cancel-requeue loop: pickQuestAction issued a new attack command every 8s tick, which cancelled the pending walk-to-target via requestServerAttack/cancelPendingAttack before the agent could close the distance — add 15s cooldown (lastAttackCommandAt/TargetId) so the walk completes before re-issuing
    the companion PR to assets#19.

I lowered leather_boots crafting requirement from 7→1 and shortbow_u/shortbow fletching requirement from 5→1 in the local manifests so the agent could complete crafting_basics and fletchers_introduction from a fresh start. Not sure if this matches what's in the assets repo or if it was intentionally gated — happy to revert if so

Alex Martinez added 2 commits March 26, 2026 09:25
- Fix mobType always undefined in getNearbyEntities: setProperty() stores
  in entity.config.properties, not entity.data — add fallback to read from
  entityConfig.properties.mobType so warchief/barbarian are correctly
  distinguished during kill stages

- Fix attack cancel-requeue loop: pickQuestAction issued a new attack
  command every 8s tick, which cancelled the pending walk-to-target via
  requestServerAttack/cancelPendingAttack before the agent could close
  the distance — add 15s cooldown (lastAttackCommandAt/TargetId) so the
  walk completes before re-issuing

All 10 quests now complete; DESTINY advancing to skill grinding
- Fix mobType always undefined in getNearbyEntities (stored in
  entity.config.properties, not entity.data) — mobs now correctly
  identified for kill stage targeting
- Fix attack cancel-requeue loop: add 15s cooldown per target so
  walk-to-attack completes before re-issuing requestServerAttack
- Fix findMobForQuest to use exact mobType match (barbarian_warchief
  no longer matches barbarian kill stage)
- Fix moveTowardMobType includes() matching navigating agent to wrong mob
- Add barbarian/warchief spawning for intermediate quest camps
- Fix QuestSystem missing RUNECRAFTING/CRAFTING/FLETCHING_COMPLETE subscribers
- Fix gathering: stop player movement before starting gather session
- Fix ore/fish resource variants (were falling back to tree_normal)
- Fix ore_essence 100% mining success rate
- Fix inventory management during quest gather stages (drop non-target ores)
- Fix pickup filter to ignore non-target ores during iron ore quest stage
- All 10 quests verified working end-to-end with DESTINY agent
Alex Martinez added 2 commits April 2, 2026 21:07
Three bugs fixed:

1. Crafting Basics leather loop: inventory was 28/28 with crafted
   leather_gloves (armor-protected, undrop-able). Freed slots by explicitly
   dropping crafted leather outputs (leather_gloves/leather_boots) when
   manageShopping needs room for raw leather. Also skip picking them back
   up during crafting-quest interact stages to avoid drop-pickup loop.

2. Rune essence rocks not spawning: r.resourceId was undefined at runtime
   in initializeWorldAreaResources() despite JSON having the field. Fixed
   with rAny cast + fallback chain (rAny.resourceId → rAny.id → rAny.resource_id).

3. Added "essence" to OreSubType union so TypeScript accepts subType: "essence"
   for rune essence spawn points.
… limit

- gc(true) time scales with HeapTotal (JSC virtual heap), not RSS.
  With HeapTotal=22GB, gc(true) blocks for 40+ seconds even if RSS=3GB,
  causing TPS=0 and combat to freeze mid-quest.
  Now checks both RSS < 4GB AND HeapTotal < 8GB before using gc(true).
- Add HeapTotal > 16GB restart threshold: JSC auto-triggers a major GC
  when heap arenas fill up; at 16GB+ this takes 30-60s per cycle
  (GC thrashing). Exit cleanly before hitting this state so quest
  progress (saved to DB each kill) persists across restarts.
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.

1 participant