Skip to content

Add remaining Hunter methods: box traps, deadfalls, magic boxes, falconry and kebbit tracking - #1239

Open
HarleyGilpin wants to merge 27 commits into
GregHib:mainfrom
HarleyGilpin:feat/skill/hunter-traps
Open

Add remaining Hunter methods: box traps, deadfalls, magic boxes, falconry and kebbit tracking#1239
HarleyGilpin wants to merge 27 commits into
GregHib:mainfrom
HarleyGilpin:feat/skill/hunter-traps

Conversation

@HarleyGilpin

@HarleyGilpin HarleyGilpin commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Finishes the remaining Hunter training methods (bird snares, nets, pitfalls, butterflies and implings were already in).

Box traps

Lay/Check/Dismantle/Investigate on box_trap, sharing the bird snare lifecycle. Catches grey/carnivorous chinchompas, ferret (Eagles' Peak-gated), pawya and grenwall (bait-gated with papaya/raw pawya meat).

Deadfall traps

Set-trap on a boulder with knife + logs (level 23). Catches wild, barb-tailed, prickly and sabre-toothed kebbits. Logs consumed on trigger, returned on dismantle.

Magic box / imp catching

Level 71 magic box catches imps only. Imp-in-a-box supports Talk-to dialogue and Bank (authentic Imp Release Negotiation Form, interface 478).

Falconry

Matthias lends a gyr falcon (Hunter 43, both hands free). Catches spotted/dark/dashing kebbits from range; falconer's gloves occupy the weapon slot for the loan's duration.

Kebbit tracking

Adds polar, common, feldip weasel, razor-backed and desert devil trails. Trail data is TOML-driven; track-decal varbits were included. Trails are session-state, cleared on logout.

Unfinished

Rabbit snaring is still being worked on.

Tests

BoxTrapTest, DeadfallTest, MagicBoxTest, FalconryTest, KebbitTrackingTest — 31 new WorldTest cases; full :game:test green.

@HarleyGilpin HarleyGilpin changed the title Add box trap and deadfall trap hunting Add remaining Hunter methods: box traps, deadfalls, magic boxes, falconry and kebbit tracking Aug 31, 2026
@HarleyGilpin
HarleyGilpin force-pushed the feat/skill/hunter-traps branch from 54cddd2 to ffdc298 Compare August 31, 2026 01:31

@GregHib GregHib left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think chinchompa's should be able to walk over boxes

Comment thread game/src/main/kotlin/content/skill/hunter/BoxTrap.kt
Comment thread game/src/main/kotlin/content/skill/hunter/Traps.kt
Comment thread game/src/main/kotlin/content/skill/hunter/Falconry.kt
Comment thread game/src/main/kotlin/content/skill/hunter/Falconry.kt Outdated
Comment thread game/src/main/kotlin/content/skill/hunter/Falconry.kt
Comment thread game/src/main/kotlin/content/skill/hunter/Falconry.kt
Comment thread game/src/main/kotlin/content/skill/hunter/DeadfallTrap.kt
Comment thread game/src/main/kotlin/content/skill/hunter/DeadfallTrap.kt
Comment thread game/src/main/kotlin/content/skill/hunter/KebbitTracking.kt
- Torch item id was torch_lit (doesn't exist) instead of lit_torch, so
  smoking any trap silently fell through to noInterest()
- Ground traps had default collision, blocking NPCs from walking onto
  them (chinchompas couldn't approach a box trap)
- Deadfall dismantle played the snare pickup anim instead of the boulder
  lay anim, and setting a boulder trap incorrectly stepped the player
  away from an object they were never standing on
- Falconry catch kept walking the player toward the kebbit after the
  falcon was already thrown; leaving the area also left an unclaimed
  caught kebbit on the ground
- Falconry area's north boundary cut through Matthias's house, so
  players lost their falcon mid-room; extended it to the house's actual
  extent
- Inspecting an unrelated burrow reset any trail already in progress;
  now only the trail's own burrow can restart it
…raps

# Conflicts:
#	network/src/main/kotlin/world/gregs/voidps/network/login/protocol/encode/HintEncoder.kt
main replaced the per-index hint(npc)/clearHint(id) pair with
markHint(character)/clearHinted(), so the falcon catch hint needed
updating to keep compiling after merging upstream/main.
@HarleyGilpin

Copy link
Copy Markdown
Contributor Author

@GregHib - Code review comments addressed and tested.

loot = ["black_salamander"]
chance = [0, 212]

[.pawya]

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Box trapping pawya and grenwall's doesn't seem to work

@HarleyGilpin HarleyGilpin Sep 7, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Root cause: detection range. The trap only noticed creatures already within 2 tiles with line of sight, so with Isafdar's sparse spawns, wide wander radius and sight-blocking jungle a pawya/grenwall almost never triggered it within the trap's 100-tick life (reproduced with a randomWalk WorldTest). Raised the box trap's hunt_range to 8 and switched the mode to line_of_walk so baited traps lure creatures from range like they should, the wandering repro now catches reliably. 441e247

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still not working :(

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just tested it in game. Pawya's require using Papaya fruit, and Grenwalls require Pawya meat as bait. Chinchompas don't require any bait item.

Comment thread game/src/test/kotlin/content/skill/hunter/BoxTrapTest.kt
Comment thread game/src/main/kotlin/content/skill/hunter/Falconry.kt Outdated
Comment thread game/src/main/kotlin/content/skill/hunter/MagicBox.kt Outdated
Comment thread game/src/main/kotlin/content/skill/hunter/MagicBox.kt Outdated
Comment thread game/src/main/kotlin/content/skill/hunter/MagicBox.kt Outdated
Comment thread game/src/main/kotlin/content/skill/hunter/MagicBox.kt Outdated
Comment thread game/src/main/kotlin/content/skill/hunter/MagicBox.kt Outdated
Comment thread game/src/main/kotlin/content/skill/hunter/MagicBox.kt
Comment thread game/src/main/kotlin/content/skill/hunter/MagicBox.kt Outdated
face(target)
sound("falcon_swoop")
equipment.replace("falconers_glove_2", "falconers_glove")
shoot("gyr_falcon", target)

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs gfx times set in the .gfx.toml

shoot(falcon_travel_anim, sourceIndex = 0, targetIndex = 0, curve = 0, sizeOffset = 0, startTime = 24, endTime = 64, startHeight = 150, endHeight = 30, sourceIndex = 0, targetIndex = 0) // 922

falconry.txt

@HarleyGilpin HarleyGilpin Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the capture, corrected everything against it.

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