Releases: c0ze/tsl-go
Releases · c0ze/tsl-go
v0.40.1 — full parity, on every platform including your browser
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
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
Full Changelog: https://github.com/c0ze/tsl-go/commits/v0.40.0