Add Isafdar navigation obstacles and Lletya content - #1237
Conversation
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
|
I can convert Regicide, Roving Elves and MEP1 to compliment this at some point. |
There was a problem hiding this comment.
Dense forests:
- anims don't seem to be correct
- if you stand to the side of one and enter you can clip yourself into the forest on the other side
- Anim finishes too early and force walk slides the last tick
Sticks:
- Can move diagonal
- Anim finishing too early and slides at end
- You can step onto them without setting them off
Tripwire:
- A little janky with teleports/anims but generally okay
Leaf traps:
- Also diagonal movement issue
- Doesn't trigger when walking over without interaction
- Also slide at end of movement
Log balance:
- Run orb disables when walking across (see other log balances)
- Dense forest: correct animations per passage type (839 climb-over, 749 double squeeze, 1237 side squeeze) with sounds, 94cs move with 30cs start delay to stop the end-of-move slide, and a collision-aware line-up walk so entering from the side can no longer clip through - Tripwire: step-over is now a lined-up single-tile exact move over the wire; failing fires the flanking arrow launcher animations and projectiles - Sticks trap: crossing walks along the trap at walk speed; failing springs the trap and flings the player off in the direction fixed by the trap's rotation, and walking onto the trap without interacting now sets it off - Leaf traps: trigger areas cover the full 3x3 leaf patches so walking (or cutting diagonally) over any leaf tile drops the player into the pit with the stumble and getup animations; jumps line up with the trap first and use the proper timings; centre pit tile corrected - Log balance: no longer toggles the run setting while crossing (run orb stays lit) and plays the balance sound each step
|
Addressed the review in bf7c86f, using a packet capture from the original 634 servers as reference: Dense forests — animations were wrong for most ids: 3937/3999 use 839 (climb-over), 3938/3998 use 749 (double squeeze, cleared after the move), 3939 uses 1237 (side squeeze), each with their forest sound. The exact move is now 94cs with a 30cs start delay which removes the early anim finish/slide. The line-up walk is now collision-aware ( Tripwire — reworked to the captured shape: walk onto the near wire tile, single-tile exact move over the wire with anim 1236, then step off. Failing now animates the flanking arrow launchers (3920) and fires arrow projectiles at the player. Sticks — crossing walks straight along the trap at walk speed (lined up first, so no diagonals). Failing springs the trap (obj anim + stumble-back 846) and flings the player off in the fixed direction given by the trap's rotation. Walking onto the trap without interacting now sets it off the same way, with a regression test. Leaf traps — trigger areas now cover the full 3x3 leaf patches, so walking or cutting a diagonal over any leaf tile drops the player into the pit (stumble 764 → getup 534 + "Ouch!"), with a test. Jumps line up with the trap centre first and use the captured timings, which also fixes the end slide. Scripted crossings suppress the walk-on trigger via a var. Log balance — the run setting is no longer touched; crossing relies on force-walk like the other log balances so the run orb stays lit, and the balance sound plays each step. One deviation: in our map data the tripwire midline carries wall flags, so walking through the wire without interacting is collision-blocked — the capture's walk-through arrow volley can't trigger and I left that walk-on handler out rather than firing it from the approach tile. |
Adds the interactable objects needed to navigate Isafdar and the missing Lletya content, plus a crystal bow combat fix found while testing.
Isafdar navigation
levelparam). Players line up with the tile nearest the passage centre before squeezing through.Lletya
interacts = false), staying locked facing south.Fixes
new_crystal_bowdidn't match thestartsWith("crystal_bow")check inammo/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.objectApproachsupportsarrive = false(mirroringobjectOperate): 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
questCompleted("roving_elves"), relying onquests.requirements.skipMissinguntil 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.:game:and:engine:suites pass.