Repository navigation
Conversation
…und, setcamerafovy
Now when adding an info of a command, please add to the map in the static getDocString function and then use the function getDocString().at(someCommandName)
…esktop, so the xdg-open should work with default web browser
patched to compile on MS Visual Studio Code some functions got return statements the reloading new level file in edtior should work fine -- proper cleanup procedure between levels
Library room has a new carpet pattern
This reverts commit 6858191.
split of Tile to Tile and TileLava class improved cleanup after game and editor mode one can reload new levels without a crash
…r every creature owned by player, now the tangents are correctly re-generated for every model in the game, split of SelectionEntityWanted.h into separate file
…pass i.e. setDepthBias(-4, -32)
This packages the accepted implementation without private development notes. No release version or changelog change is required for this unreleased contribution.
This packages the accepted implementation without private development notes. No release version or changelog change is required for this unreleased contribution.
This packages the accepted implementation without private development notes. No release version or changelog change is required for this unreleased contribution.
…62408a1c296287d00f9e647306654deb35ca' into HEAD
This packages the accepted implementation without private development notes. No release version or changelog change is required for this unreleased contribution.
Replace the auto declarations introduced by this branch with explicit types, as requested in issue tomluchowski#42 and required by CLAUDE.md. No behavioural change.
When an enemy hits a heart that is at or below 11 % of its durability, the human owner receives one event message. No warning on the killing hit, for AI or defeated owners, or in the editor.
When a human player loses the last dungeon heart, the server sends two owner-only messages appended to ServerNotificationType: playerDefeated with the conqueror seat and the heart tile, and levelStatistics with the elapsed time and six per-seat counters (keepers defeated, creatures killed, heroes destroyed, rooms captured, items made, creatures converted). The counters are kept per seat on the server and are not saved. The client stores the statistics and hands playerDefeated to a new GameMode::startDefeatSequence entry point.
On playerDefeated the client hides the interface and pointer, blocks input and cuts the camera to the destroyed heart. A client-only copy of the heart shakes and bursts into particles and a rubble pile, a swirl in the conqueror's colour leaves the heart, and a red tint, two subtitles and a fade to black follow. The timeline runs on a monotonic clock, so repeated frame callbacks do not speed it up. On the black screen a debriefing window shows the player, the outcome, the elapsed time and a per-seat statistics table from levelStatistics. Its confirm button returns to the main menu, which zooms in briefly and opens the skirmish sub-menu.
When a heart's health reaches 0, only the heart object is removed. The room keeps its floor tiles as an inert ruin with no health, so the seat has no temple any more and the existing defeat path runs as before. The ruin cannot be attacked, its floor is never released in game mode, and a saved ruin gets no new heart object on load.
3 tasks
The heart took its health from the durability of its floor tiles, so a 3 by 3 heart fell to a few blows. It now has 10000 health per room tile (90000 for a 3 by 3 heart); the critical warning stays at 11 % of this maximum. Only fighters damage an enemy heart: workers deal no damage to it, and a worker given a non-creature target drops its fight action. Saves write the heart health as "HeartHealth" on the new scale. An older "HeartHP" record is converted to the same share of the new maximum, a value above the maximum is limited to it, an unknown record is rejected and a destroyed heart stays a ruin.
The green ring of the heart badge now shows the remaining heart health of the local player as an arc, and the badge glows magenta for three seconds after the heart was hit. The server sends the new owner-only heartHealth notification (appended last to ServerNotificationType) when the health fraction changed by at least one percentage point, when the heart is destroyed and once when a game starts or is loaded. The client redraws the badge into its existing texture with blitFromMemory, since loadFromMemory would create a new texture that the badge never shows. The badge drawing moves into drawBadgePixels, with the symbol test as a named function instead of a lambda.
The badge icon still said "Your Mana". The heartHealth message now also carries the current and maximum heart HP, the server sends it on every whole HP change, and the client sets the icon tooltip and context line to "Dungeon Heart: current/max" every frame. The badge tooltip in the layout reads "Dungeon Heart Health" until the first message arrives.
This was referenced Sep 27, 2026
Rokk001
force-pushed
the
pr/defeat-sequence-2026-09-25
branch
from
September 27, 2026 17:16
d530f06 to
afc847b
Compare
This was referenced Sep 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
When a player's dungeon heart is destroyed, the defeated player now gets a defeat sequence instead of only a chat message. The interface disappears, the camera cuts to the heart, the heart shakes and bursts into rubble, a swirl in the conqueror's colour crosses the platform and the screen fades to black. A debriefing follows with per-seat statistics and one button back to the main menu. The platform of the heart stays as a ruin. While the heart is damaged, the ring of the top-left badge shows its remaining health, and a one-time warning appears when it is in critical condition.
Addresses #5.
Changes
playerDefeated(conqueror seat, heart tile) andlevelStatisticsserver messages, sent to the defeated human player only.Depends on
#143. Until it is merged the diff also shows its commits; the new work is the last six commits.
Validation