Skip to content

Add Wine of zamorak spawn to the Asgarnia Chaos Temple - #1308

Open
HarleyGilpin wants to merge 6 commits into
GregHib:mainfrom
HarleyGilpin:feat/chaos-temple-zamorak-wine
Open

HarleyGilpin wants to merge 6 commits into
GregHib:mainfrom
HarleyGilpin:feat/chaos-temple-zamorak-wine

Conversation

@HarleyGilpin

@HarleyGilpin HarleyGilpin commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds the Wine of zamorak floor spawn to the Chaos Temple north-west of Goblin Village (2931,3515, 50 tick respawn) with the 2011 theft mechanic, and fixes a few things found on the way.

Wine of zamorak (ChaosTempleWine, hooked through takeable)

  • Taking it by hand from the spawn tile: "STOP STEALING MY WINE! GAH!", Flames of Zamorak gfx, 30-40 damage, Attack/Strength/Defence/Ranged/Magic drained by 1 per 13 current levels (max 3), and every live Monk of Zamorak in the temple attacks.
  • Telekinetic Grab, a wine on any other tile, or a full inventory: no punishment.
  • Arriving after another player has already taken it: no punishment, just the usual "Too late".

Telekinetic Grab

  • Never passed telegrab = true to takeable handlers, so content could not tell a grab from a hand pickup (the ZogreFleshEaters telegrab branch was unreachable). Fixed.
  • Projectile and impact now end at the item's height when it sits on a table. Object definitions can declare height in client units (the temple table is 384); FloorItem.height() reads it. Projectile heights are divided by 16 to match the client, and areaGfx clamps to the packet's byte range.
  • Flight time halved and the item is removed on the tick the impact plays instead of six ticks after casting.

Monks of Zamorak

  • height = 40 on the base and Goblin Village defs (Ourania already had it) and height = 50 on the zap gfx so it plays at hand height rather than the feet.

Verification

  • ChaosTempleWineTest: hand pickup, telegrab safe, off-tile harmless, respawn, telegrab race, late-arrival race.
  • TelekineticGrabTest, FloorItemRespawnTest, TakeTest, MageArenaTest still pass.
  • Checked in-game: projectile lands on the wine, monks aggro, stats drain, wine respawns.

Sources: 2011 wiki revision of Wine of zamorak for the numbers and messages.

HarleyGilpin and others added 6 commits September 16, 2026 11:42
Taking the wine by hand triggers Zamorak's wrath: 30-40 damage, a
1-per-13-levels (max 3) drain to Attack, Strength, Defence, Ranged and
Magic, and the temple's monks attack. Telekinetic Grab is unaffected.

Telekinetic Grab now passes telegrab = true to takeable handlers so
content can distinguish grabs from hand pickups.
The client raises item piles by the model height of the object under
them, so Telekinetic Grab's projectile and impact graphic now end at the
floor item's height. Object definitions declare it with a height param
(packet units, model units / 4); the Chaos Temple table is 96.

Monks of Zamorak get a 40 height like other humanoids and the zap
graphic a 50 offset so it plays at hand height instead of the feet.
The client scales projectile heights by 16 and area graphic heights not
at all (single byte, max 255), while item piles sit at the supporting
object's model height in client units. Store object heights in client
units, divide for the projectile end height and cap area graphics.
Halve the projectile's flight time and remove the floor item on the tick
the impact graphic plays instead of a fixed six ticks after casting.
The takeable hook runs before FloorItems.remove, so a player who lost
the race to another thief was drained and burnt for nothing. Skip the
punishment when the item is no longer on the floor. Add tests covering
both hand and telegrab races.
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