Commit Graph
73 Commits
Author SHA1 Message Date
Richard ZinkandClaude Opus 5.5 9931ca9b54 Statistics with a chart at the end of a game, 64 achievements kept locally and on the server
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 23:36:19 +01:00
Richard ZinkandClaude Opus 5.5 9535e68df0 Champions of the Order lead every fifth wave: four bosses with abilities, a health bar and loot
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 23:17:20 +01:00
Richard ZinkandClaude Opus 5.5 f27dbea2f1 Final missions above ground (M30, co-op M20), surface option for versus matches, docs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 22:50:24 +01:00
Richard ZinkandClaude Opus 5.5 1ae41228ab Siege engines: knights bring rams and catapults, masters build their own in the forge
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 22:46:06 +01:00
Richard ZinkandClaude Opus 5.5 8a35a903de Surface world: grass in daylight, forests, cliffs with cave mouths; free-game and editor option
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 22:35:46 +01:00
Richard ZinkandClaude Opus 5.5 ed3bc437e5 Raise walls: plan them on own floor, imps build reinforced earth
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 22:11:51 +01:00
Richard ZinkandClaude Opus 5.5 398bb95681 Wood: giant mushrooms underground, felled by imps; wooden bridges and doors cost wood
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 22:07:59 +01:00
Richard ZinkandClaude Opus 5.5 34b4640d85 Drawbridges (down, up, automatic), frost spell and obsidian over cooled lava
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 21:52:12 +01:00
Richard ZinkandClaude Opus 5.5 29e4970ab1 Wooden bridges burn; knights wear bridges down, imps mend them
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 21:34:33 +01:00
Richard ZinkandClaude Opus 5.5 c11d281281 Editor: remove tiles from painted zones, scrollable zone list
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 21:28:38 +01:00
Richard ZinkandClaude Opus 5.5 c7c3e979d6 Resume interrupted editor co-op runs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 21:08:33 +01:00
Richard ZinkandClaude Opus 5.5 f87b59390e Co-op offline with an AI partner
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 21:04:49 +01:00
Richard ZinkandClaude Opus 5.5 e3a9d32d61 Hero waves march on the strongest master
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 20:58:46 +01:00
Richard ZinkandClaude Opus 5.5 4e49c2fdc9 Co-op campaign "League against the Lightwatch": 20 missions, selectable on the Match page
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 20:07:04 +01:00
Richard ZinkandClaude Opus 5.5 fc9c49d4ca Versus teams, gold for allies, fallen hearts as spectators, multi-mission editor co-op
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 19:59:43 +01:00
Richard ZinkandClaude Opus 5.5 a0df40ab19 Editor: blocks wrap their fields, wider fields, the demo den behind a tunnel
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 19:48:44 +01:00
Richard ZinkandClaude Opus 5.5 d17668f3b2 Wait and both kinds of until loops; blocks run directly
Script runs are resumable threads saved with the game; Rhai is gone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 18:57:36 +01:00
Richard ZinkandClaude Opus 5.5 abe01ff23e Co-op matches of editor campaigns
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 17:39:38 +01:00
Richard ZinkandClaude Opus 5.5 985c34759d Editor texts (EN/DE), whole-campaign play and briefings for editor missions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 17:15:20 +01:00
Richard ZinkandClaude Opus 5.5 5701124c4f Block scripts and triggers: data model, Rhai translation and runtime
Editor missions keep a painted map or roll a random map per campaign run,
leave out goals they cannot have, and run their triggers in the fixed step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 16:51:43 +01:00
Richard ZinkandClaude Opus 5.5 d76e74b4b0 Switch to the Dinowyde font with DINOBYTE for missing glyphs
Unicode glyph lookup instead of CP437 codes, rope and double-strand
frames with clean title ends, progress bars in eighth blocks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 15:32:42 +01:00
Richard ZinkandClaude Opus 5.5 796143f20c Credit qwen3.8-flash-next-iq3xxs with Strata in OpenCode, with pixel marks
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 15:17:05 +01:00
Richard Zink b06c48172b Add campaign editor script runtime and debug overlays 2026-11-05 12:22:59 +01:00
Richard Zink 07371cc893 Debug FPS display with rendering backend info 2026-11-05 07:21:37 +01:00
Richard Zink ee7b76fa6a Manual AI seats for matches: host toggles empty seats, co-op allies fight heroes 2026-11-05 06:38:38 +01:00
Richard Zink 5928acf7f6 Co-op campaign matches and command markers: mission relay, allied masters, temporary flags 2026-11-04 20:07:06 +01:00
Richard Zink dc22e27184 Multiplayer continues after a player leaves: AI side takeover, background match while menus are open, match chat, five-tile fog start 2026-11-04 18:07:02 +01:00
Richard Zink eb11cca8cb Smooth camera and unit motion: display positions, camera target smoothing, pan speed setting 2026-11-04 13:56:11 +01:00
Richard Zink 583c3fcdaf Multiplayer client relay bridge and match lobby menu: WebSocket bridge, match lobby page, order relay, confirmed turns, checksums, chat, abort/resume 2026-11-04 12:47:34 +01:00
Richard Zink 42034b062b Match loop on the client side: orders go to the server, a confirmed turn steps the world five times, and a checksum of the shared state catches worlds that diverge 2026-11-04 11:07:24 +01:00
Richard Zink 87890adc53 Masters for a match: the four sides red, green, blue and yellow (side 4 gets its own owner), and start_masters gives every master his core and his starting area 2026-11-04 10:55:17 +01:00
Richard Zink dd4bb75b24 Game version in the menu: VERSION holds vYYYYMM-NNNNN, shown on the title screen and in the pause menu, tools/bump_version.py raises it with every change 2026-11-04 09:57:10 +01:00
Richard ZinkandClaude Opus 5.5 ada14951c4 Crookfinger's voice: he babbles in a squeaky imp language in the rhythm of his hints, important messages and the mission briefings (can be switched off in the sound settings)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 08:25:31 +01:00
Richard ZinkandClaude Opus 5.5 51814b8ac8 Creature overview: a toolbar button opens the list of all creatures grouped by kind (level, mood, wage, job, health) with wages and mood in total; a click moves the camera there
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 08:02:29 +01:00
Richard ZinkandClaude Opus 5.5 0606c1f994 Orders: attack (fighting creatures nearby go for an enemy or enemy tower) and guard (up to three creatures hold a room for two minutes); right click with an order tool cancels
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 07:52:03 +01:00
Richard ZinkandClaude Opus 5.5 4ce2c2919e Three new heroes: giant, fairy spy, battle mage
- giant (from wave 6): slow and enormous, smashes doors three times as hard and wrecks traps by standing next to them
- fairy spy (from wave 3): flies, finds the dungeon's traps (marked with a glint) so the heroes wreck them, and heals heroes around it
- battle mage (from wave 4): throws fireballs with splash and blasts reinforced walls (steel resists him better)
- sprites, bestiary texts EN/DE, test: fairies find traps, giants wreck them

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 07:40:20 +01:00
Richard ZinkandClaude Opus 5.5 a58497e3a9 Five new rooms: prison, graveyard, guard post, arena, sacrifice altar; new creature: the revenant
- prison: captured heroes sit in cells apart from the torture chamber, do not defect and starve in time; the hand can move prisoners between cells and torture
- graveyard: the fallen are buried there; after a while some rise as revenants (undead: no food, no sleep, life drain from level 5)
- guard post: creatures hold the position and attack whatever comes into view
- arena: creatures spar in pairs for fast, free experience, at the cost of bruises
- sacrifice altar: creatures dropped on it are sacrificed; certain pairs bring a rare creature, otherwise a blessing (mood and mana)
- researched in the library, campaign unlocks, textures, furniture, texts EN/DE, bestiary

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 07:35:12 +01:00
Richard ZinkandClaude Opus 5.5 2c8db33a69 Creature personality: favourite rooms, hatreds and brawls, abilities learned with the level
- every kind loves one room (working there lifts the mood) and cannot stand certain other kinds; close by they sour each other's mood and now and then brawl (they stop at 30% health)
- learned abilities: imps dig faster, kobold dash, spider web, mage shadow step, ogre stomp, jailer shackle, priestess healing pulse, chainbreaker whirlwind, bat shriek, gargoyle stone form, owl volley, wyrm inferno, cogling bomb
- bestiary lists likes, hatreds and the ability (highlighted from its level on)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 07:25:47 +01:00
Richard ZinkandClaude Opus 5.5 240e89d9cb Fog of war: unexplored darkness until the dungeon's ground, creatures or towers come close
- explored tiles stay known (saved compactly as bits), enemies are only drawn while in sight; sight runs along open ground, walls block it
- unexplored tiles are black blocks; units, towers, torches, furniture, portals, gate and rival cores in the dark are hidden; minimap and tile info too
- the nearest portal is known from the start; the seer's eye opens a wide area for 20 seconds without remembering it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 07:18:55 +01:00
Richard ZinkandClaude Opus 5.5 7f4d5ca7b4 Eight new spells: seer's eye, cave-in, haste, stoneskin, gold rain, invisibility, plague, quake
- researched in the library (and unlocked in the campaign), in the spells menu with own icons and a radius under the pointer
- haste speeds up everything a creature does, stoneskin halves damage, invisible creatures are ignored by enemies and towers until they attack (drawn see-through), plague spreads among enemies, quake hurts and stuns enemies only, cave-in turns floor back into earth
- particles for every spell

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 07:07:52 +01:00
Richard ZinkandClaude Opus 5.5 a54316c86e Research in the library: rooms, spells, towers, traps and doors are discovered in a fixed order
- studying creatures collect research points (mages and owls best, higher levels faster); studying gives less mana than before
- free play starts with the basics; campaign missions know what their story allows and can research what the next four missions would bring
- research shown in the top bar; the library's info lists the current item and what comes next; locked tools say whether they can be researched

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 07:00:33 +01:00
Richard ZinkandClaude Opus 5.5 4f20223c93 Traps and doors made in a new forge room, installed by imps; new creature: the cogling
- forge room: creatures work there (coglings fastest), the work goes into the oldest planned trap or door; finished pieces wait as crates, imps carry and install them
- traps: spike pit, poison vent (cloud), fire jet, stone roller, alarm bell (calls creatures), rune mine (one big blast), frost glow (slows around it)
- doors: wood, iron, magic (hurls attackers back); own creatures pass, enemies smash them on their way; clicking a door with a door tool locks it for everybody
- new 'Traps' category in the toolbar, forge in the rooms; texts EN/DE, bestiary entries; atlas grown for new textures and icons
- tests: forge to installed trap, spikes hurt, doors lock and get smashed

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 06:55:37 +01:00
Richard ZinkandClaude Opus 5.5 1016ee5d6c Bestiary in the title and pause menu; attacks look bigger with the unit level
- tabs: creatures, humans (incl. cave dwarves), dungeon buildings and towers, ranks
- every unit at every level: sprite with gear, rank badge, health, attack, range, speed, wage or bounty, what attracts it
- Crookfinger's texts: loving about the creatures, disgusted about the humans (EN/DE)
- projectiles, hit sparks and splashes grow with the attacker's level, with halos from Lv 5 and glow at Lv 9+

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 15:32:18 +01:00
Richard ZinkandClaude Opus 5.5 9a9f04ae1f Dwarf caves in all modes: neutral dwarves guard a hoard and sometimes a rune chest; the rune forge tower; imps repair towers before claiming
- 1-4 cave slots by map size, 50% each (at least one); knight treasure caves only where a mission places them
- dwarves fight intruders near the cave, never chase far, heal at home, grow with distance and the player's army, never count for victory
- rune chest: one free rune forge tower (chain bolt to three more enemies), upgradeable for gold, sold once it comes back (next mission / free play at once), unbuilt ones carry over
- new tool (key N) shown in the tower menu while a rune tower can be built or upgraded

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 15:14:36 +01:00
Richard ZinkandClaude Opus 5.5 d92b45a0b8 Credit Claude Code: note at the top of the README, in CREDITS and the standalone file; pixel-art mark with link next to the licence on title and login screens
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 14:44:28 +01:00
Richard ZinkandClaude Opus 5.5 ea0623fbe3 Campaign of 30 missions: six against the rival masters Mossgrim and Lady Nightwell, islands, mana springs, sealed caves with chained creatures
- missions interleaved into one story (EN/DE), new epilogue, map sizes grow to 176x176
- islands in water or lava with treasure and/or a mana spring; rivers at least four tiles wide
- sealed caves with treasure and a chained creature that joins once the cave is claimed
- new goals: rival cores, mana springs, freed creatures
- rival messages name the masters; new progress key for the new mission order

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 14:36:45 +01:00
Richard ZinkandClaude Opus 5.5 dd16c684e5 Free game against rival dungeon masters (green, blue) and/or the humans
- One opponent on maps up to 128x128, two on bigger maps; with a chance of one in two one of
  them is the humans' gate instead of a rival master
- Simplified rival masters (rival.rs): own soul core and dungeon (lair, treasury to loot) that
  grows ring by ring, creatures appear and get stronger over time, guard the dungeon and attack
  in groups - the player, the other master or the humans' gate; a fallen core puts the master
  out and frees its ground
- The humans attack everybody: waves now and then march on a rival master
- Sides for units: all other sides are enemies; towers and contested ground follow them; the
  hand cannot pick up rival creatures; the flag next to a rival core attacks it
- Difficulty (easy / medium / hard) in the New Game dialog
- Colours: green and blue floors, cores, unit rings, minimap, HUD bars of the rival cores
- Victory in free games: every rival core and the gate (if any) destroyed
- Tests for setups, growth and attacks, elimination and victory, humans against rivals

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 14:11:23 +01:00
Richard ZinkandClaude Opus 5.5 52c4d1caf8 Creatures report at the portal and set up their bed; payday wages are fetched from the treasury
- New creatures report at the portal (2 s), walk to the lair (flyers: aerie), set up their
  bed (4 s) and only then do as they like; without a reachable lair they start right away
- Payday: the training bill is paid at once; every creature goes for its wage at a random
  moment within about a minute, to the nearest treasury tile holding treasure (or the core),
  and takes it out of that tile; no gold = an angry creature; unreachable = paid anyway
- Tests for the arrival and the walking payday

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 13:49:13 +01:00
Richard ZinkandClaude Opus 5.5 c9848c8948 User accounts, login before the title screen, own savegames per user, standalone download
- Service: accounts with Argon2 password hashes and session tokens; the first login creates
  the admin (shared savegames of before move to the admin); the admin creates and deletes
  users; everybody can change the password; savegames are stored and listed per user
- Game: login page before the title (only when the service is reachable), with licence and
  repository link; account page (password, logout; users for the admin); text fields with
  Tab/Enter, masked passwords, browser dialog on touch screens; long status messages wrap
- Download Standalone: DungeonCraft.html with the game embedded (built in the Docker image,
  served to logged-in users via nginx auth_request); works from file:// without server and
  opens downloaded savegames
- Without the service (standalone, local files) there is no login, savegame files as before

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 13:33:22 +01:00
Richard ZinkandClaude Opus 5.5 8853d84564 Steel walls: plate earth walls next to own ground with steel
- New tool Steel (key O, orders category; campaign from mission 11): 80 gold per earth wall,
  40 for a reinforced wall; riveted iron plate texture
- Heroes dig through steel 20 times slower than through earth and avoid it (path cost 300)
- Selling turns a steel wall back into a reinforced wall and refunds half the plating
- Texts EN/DE, test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 13:10:04 +01:00