Add bump-to-attack, death and a sim event queue

A step onto an occupied tile is now an attack: the geometry rule is checked
against terrain only and the target tile decides between move and bump.
Entities carry an attack stat; at zero hp they are removed. The sim reports
Attacked/Died through an event queue the game drains after every movement
window — the seam for sound, log, camera effects and spawns. Click-to-move
treats an occupied goal as a target but detours around entities in the way;
the player's death ends the game.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-19 10:59:14 +02:00
co-authored by Claude Opus 5
parent c512bf49da
commit b64c83fce0
6 changed files with 181 additions and 39 deletions
+4 -1
View File
@@ -13,10 +13,12 @@ pub struct Entity {
pub pos: (i16, i16),
pub hp: u16,
pub hp_max: u16,
/// Damage dealt per bump.
pub attack: u16,
}
impl Entity {
pub fn new(id: u32, kind: EntityKind, type_id: u16, pos: (i16, i16), hp: u16) -> Self {
pub fn new(id: u32, kind: EntityKind, type_id: u16, pos: (i16, i16), hp: u16, attack: u16) -> Self {
Self {
id,
kind,
@@ -24,6 +26,7 @@ impl Entity {
pos,
hp,
hp_max: hp,
attack,
}
}
}