Skip to content

Add Isafdar navigation obstacles and Lletya content - #1237

Open
HarleyGilpin wants to merge 1 commit into
GregHib:mainfrom
HarleyGilpin:area/isafdar
Open

Add Isafdar navigation obstacles and Lletya content#1237
HarleyGilpin wants to merge 1 commit into
GregHib:mainfrom
HarleyGilpin:area/isafdar

Conversation

@HarleyGilpin

Copy link
Copy Markdown
Contributor

Adds the interactable objects needed to navigate Isafdar and the missing Lletya content, plus a crystal bow combat fix found while testing.

Isafdar navigation

  • Dense forest passages (3937-3939, 3998/3999) - squeeze through with rotation-aware movement; the two Elf Camp passages require 56 Agility (data-driven level param). Players line up with the tile nearest the passage centre before squeezing through.
  • Tripwire (3921) / sticks trap (3922) - step-over with an agility success roll; failure deals damage with authentic messages.
  • Leaf traps (3923-3925) - jump across on click; failing the roll or walking onto the trap tile drops the player into the pit below (spikes damage), with the protruding rocks (3927) to climb back out. All four trap sites wired to their pits.
  • Log balances (3931/3932/3933) - 45 Agility, 7.5 xp. Approach is interruptible by walking away; the crossing itself is done at walk speed with the rope balance render emote.
  • Elven Overpass rocks (9296/9297) - three cliffside shortcuts at 59/68/85 Agility.
  • Lletya tree entrance (8742) - gated on Roving Elves.
  • Arandar heavy gates (3944/3945), Underground Pass door pass-through (4006/36000) and Poison Waste caves/sewer ladders (until the full dungeon content exists).

Lletya

  • Teleport crystal - Activate teleports to Lletya using the existing charge degrade chain, with degradation messages.
  • Eluned - re-enchants uncharged crystals for 750 coins, decreasing by 150 per recharge to a floor of 150 (persisted per player).
  • Islwyn - sells new crystal bows/shields for 900,000 and attunes crystal seeds for 900,000 decreasing by 180,000 to a floor of 180,000 (persisted per player).
  • Shopkeeper dialogues (Eudav, Oronwen, Dalldav, Gethin) opening their existing shops, and flavour dialogue for Goreu, Ysgawyn, Mawrth, Arvel, Kelyn, Eoin, Iona and Gwir.
  • Elf musician (8723) no longer turns to face players (interacts = false), staying locked facing south.

Fixes

  • Crystal bow dropped itself as ammo: new_crystal_bow didn't match the startsWith("crystal_bow") check in ammo/Ammo.kt, so firing it removed the bow from the weapon slot and dropped it at the target like a thrown weapon. Now maps to the same no-ammo handling as the rest of the chain.
  • objectApproach supports arrive = false (mirroring objectOperate): approach handlers can now run without waiting for the already-queued route to finish. Needed because the log balance's cache reach tile is south of the log - without this the player always detoured a tile south before crossing.

Notes

  • Trap fail damages and success rates are placeholder values flagged with TODOs; exact 2011 numbers are unverified.
  • Which pit belongs to the west/centre/north leaf traps is a best guess (the south trap's pit is verified); flagged in code.
  • Quest gates use questCompleted("roving_elves"), relying on quests.requirements.skipMissing until the elf quests are implemented.

Testing

  • IsafdarTest (17 tests): every obstacle type, level gates, trap failure damage, pit fall/climb-out, log pathing regression (7 start positions asserting no south detour), approach interruption.
  • LletyaTest (6 tests): teleport crystal charge chain, Eluned/Islwyn price ladders and persistence, shopkeeper dialogue opening shops.
  • CrystalBowTest: bow stays equipped and degrades correctly when fired.
  • Full :game: and :engine: suites pass.

Isafdar:
- Dense forest passages (56 Agility for the two Elf Camp entrances),
  lining up with the passage centre before squeezing through
- Tripwire and sticks traps with agility roll, fail damage and messages
- Leaf traps: jump over, fall into the pit below on failure or when
  walking onto the trap tile, climb out via the protruding rocks
- Log balances (45 Agility) at the hunting grounds and Arandar,
  interruptible while approaching, walked at walk speed while crossing
- Elven Overpass cliffside rocks (59/68/85 Agility)
- Arandar heavy gates, Underground Pass door pass-through and
  Poison Waste cave entrances, exits and sewer ladders

Lletya:
- Teleport crystal Activate with charge degradation
- Eluned recharges teleport crystals (750 coins, decreasing to 150)
- Islwyn sells and attunes crystal bows and shields (900k, decreasing)
- Shopkeeper and resident dialogues
- Elf musician locked facing south

Fixes:
- New crystal bow no longer dropped at the target as ammo when fired
- objectApproach supports arrive = false to skip waiting for the
  pending route, matching objectOperate
@Ebp90

Ebp90 commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

I can convert Regicide, Roving Elves and MEP1 to compliment this at some point.

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