Skip to content

Releases: c0ze/tsl-go

v0.40.1 — full parity, on every platform including your browser

11 Jun 13:24
cdb1695

Choose a tag to compare

The release that empties the issue tracker: every audited parity gap against the 0.40 C source is now closed, and the game runs in the browser at tsl.coze.org.

Highlights

  • Play on the web — WebAssembly front-end with localStorage saves (resume deletes the save, as everywhere else). No engine changes were needed; the browser is just another renderer.
  • The chainsaw ogre — the last missing spawnable regular from 0.40's bestiary ('O', and yes, the chainsaw is 1d5+2).
  • Gear slots — feet, head, and cloak slots with the 13 items the armor table was quietly dealing 40% of the time: stealth cloaks, boots of speed, lead boots, flippers, the gas mask (filters fumes, but you'll have to take it off to eat), the blindfold, a crowbar, and the big ugly knife.
  • Trap variants — webs that hold you (and monsters) while you struggle free, blinding flashes that mean nothing to covered eyes, the electrified plate, and the polymorph trap.
  • The door chain — secret doors that wear the wall glyph until you bump into them, locked doors opened with consumable keys, pried with the crowbar, or forced bare-handed at 5-in-8 (loudly, when it goes wrong), and a close verb on O — the original's own default binding — complete with the stealth roll between "You silently close the door." and a slam that wakes the neighbors.

Every mechanic above is grounded in the original C (tsl-0.40/ in-tree) with the original constants and messages, and pinned by tests — 11 packages, all green.

What's Changed

  • Play in the browser: wasm front-end + GitHub Pages (tsl.arda.tr) by @c0ze in #82
  • Remove stray tsl-wasm build artifact by @c0ze in #83
  • The chainsaw ogre: the last 0.40 bestiary regular (closes the #13 audit gap) by @c0ze in #84
  • Feet/head/cloak slots + the missing 0.40 gear (issue #14 remainder) by @c0ze in #85
  • Trap variants: web, flash, polymorph, plate (issue #18 remainder, part 1) by @c0ze in #86
  • The door chain: secret doors, locked doors, keys, and the close verb (issue #18 remainder, part 2) by @c0ze in #87

Full Changelog: v0.40.0...v0.40.1

v0.40.0

11 Jun 10:00
f9aef5b

Choose a tag to compare

What's Changed

  • Go port: M1 Plan 1 — foundation & walking skeleton by @c0ze in #3
  • Go port: M1 Plan 2 — RNG + dungeon generation by @c0ze in #4
  • Go port: M1 Plan 3 — field of view + visibility/memory by @c0ze in #5
  • Go port: M1 Plan 4 — creatures, AI, combat, message log by @c0ze in #6
  • Go port: M1 Plan 5 — items, inventory, equip, behavior registry by @c0ze in #7
  • Go port: M1 Plan 6 — descent, win, lose, morgue (completes M1) by @c0ze in #8
  • Go port: review fixes — fail-fast validation, UI bounds, embedded data by @c0ze in #9
  • Go port: Plan 7 — speed/energy scheduler by @c0ze in #10
  • Go port: HUD — HP / depth / gear status line by @c0ze in #11
  • Eating & corpses (#12): drop corpses on death, e to eat by @c0ze in #19
  • Monster roster batch 1 (#13): ratman/ghoul canon + 4 melee monsters by @c0ze in #20
  • Depth-scaled spawns (#16 slice): min_depth + first depth-gated tanks by @c0ze in #21
  • Dungeon graph 2a (#16): data-driven branching levels + portal travel by @c0ze in #22
  • Dungeon 2b (#16): the full 10-level branching map by @c0ze in #23
  • Dungeon endgame 2c (#16): ascension altar + mummylich + dragon by @c0ze in #24
  • Gear breadth 14a (#14): melee weapons + body armor by @c0ze in #25
  • Player loadout (#14): autoequip on pickup + starting kit by @c0ze in #26
  • Status effects 15a (#15): the effect system + poison & regen by @c0ze in #27
  • Hazard tiles 18a (#18): dart traps that poison by @c0ze in #28
  • Wands + targeting 15c (#15): zap a wand at a creature by @c0ze in #29
  • feat: status-effect wands (wand of venom) by @c0ze in #30
  • feat: wand of slowing (control affliction) by @c0ze in #31
  • feat: scrolls + read verb (closes #15) by @c0ze in #32
  • feat: doors (open on bump, block sight) — #18 by @c0ze in #33
  • feat: monster roster batch 2 (bat/kobold/zombie/skeleton/wraith/ogre) — #13 by @c0ze in #34
  • feat: ranged-attacker monsters + line of sight (imp) — #13 by @c0ze in #35
  • feat: player ranged weapons (fire) + ranged bosses — #14 by @c0ze in #36
  • feat: dark levels (reduced vision) — #18 by @c0ze in #37
  • feat: torches (carry light into the dark) — #18 by @c0ze in #38
  • feat: unidentified items / per-type identify (from 0.40) — #15 by @c0ze in #39
  • feat: instant-healing/pain potions + identify/recharge scrolls — #15 by @c0ze in #40
  • feat: spell system foundation — EP + cast (first aid) — #15 by @c0ze in #41
  • feat: offensive spells — force bolt (targeted casting) — #15 by @c0ze in #42
  • feat: potion of blindness — #15 by @c0ze in #43
  • feat: frost ray — beam attack spell — #15 by @c0ze in #44
  • feat: flash — AoE blind spell — #15 by @c0ze in #45
  • feat: potion of energy (restores EP) — #15 by @c0ze in #46
  • feat: monster roster batch 3 (jackal/snake/spider/wolf/wisp/troll) — #13 by @c0ze in #47
  • feat: rings & amulets — passive accessory equip slots (#14) by @c0ze in #48
  • feat: monster roster batch 4 — six canonical 0.40 foes (#13) by @c0ze in #49
  • feat: spellbook of noxious cloud — AoE poison spell (#15) by @c0ze in #50
  • feat: monster roster batch 5 — six more canonical 0.40 foes (#13) by @c0ze in #51
  • feat: wand of confusion — new confuse status effect (#15) by @c0ze in #52
  • feat: scroll of scare monster — new fear effect + flee AI (#15) by @c0ze in #53
  • Player turn-energy scheduler (tick loop) by @c0ze in #54
  • Potions of speed and slowing by @c0ze in #55
  • Potion of sleep by @c0ze in #56
  • Water & drowning (swimming arc 1/3) by @c0ze in #57
  • Potion of levitation (swimming arc 2/3) by @c0ze in #58
  • Swimming monsters & the Lurker (swimming arc 3/3) by @c0ze in #59
  • Roster batch 6: electric snake, sludge dweller, severed hand, floating brain, flame spirit by @c0ze in #60
  • The Necromancer — boss of the Catacombs by @c0ze in #61
  • Potions of yuck & elixir (potion table complete sans polymorph) by @c0ze in #62
  • Player burden: carried weight halves your speed by @c0ze in #63
  • Blink scroll (0.40's true name) + scroll of amnesia by @c0ze in #64
  • Mark & recall scrolls (cross-level teleport home) by @c0ze in #65
  • Hidden traps + trap detection scroll by @c0ze in #66
  • Lava (the hazard pair's second half) by @c0ze in #67
  • Scroll of magic weapon (flame hands) by @c0ze in #68
  • Scroll of Summon Familiar (the 0.40 scroll list complete) by @c0ze in #69
  • Breath weapons: cone attacks for the six 0.40 breathers by @c0ze in #70
  • Breath spellbooks (the player exhales too) by @c0ze in #71
  • Book of Deathspell + manual of pharmacy by @c0ze in #72
  • Ammunition: arrows, stacking, Out of ammo! by @c0ze in #73
  • Ammo stacks weigh per arrow (C stack_size × weight) by @c0ze in #74
  • The mimic: item disguise, wasted-swing reveal, rooted AI by @c0ze in #75
  • t)alk verb + the King of Worms by @c0ze in #76
  • Save/resume 1/2: the engine round-trip by @c0ze in #77
  • Save/resume 2/2: S)ave-and-quit, resume-on-start, no scumming by @c0ze in #78
  • Spell memorization: books are learned, not carried by @c0ze in #79
  • Polymorph: the 0.40 potion table completes by @c0ze in #80
  • tsl-go: Go at root, the 0.40 original under tsl-0.40/, cross-platform CI by @c0ze in #81

New Contributors

  • @c0ze made their first contribution in #3

Full Changelog: https://github.com/c0ze/tsl-go/commits/v0.40.0