Siege engines: knights bring rams and catapults, masters build their own in the forge

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard ZinkandClaude Opus 5.5 committed 2026-11-05 22:46:06 +01:00
1 parent 5a8ebb984e
commit 1ae41228ab
28 files changed
+530 -15

No files matched your search

+7 -1
View File
@@ -34,6 +34,11 @@ pub enum Act {
Sell(Rect),
Bridge(Rect),
Steel(Rect),
Siege {
which: u8, // 0 ram, 1 catapult
x: i32,
y: i32,
},
Wall(Rect), // plan walls on own floor (or cancel planned ones)
Drawbridge(Rect), // build drawbridges, or (one tile on an own drawbridge) switch it: down, up, automatic
Tower {
@@ -145,7 +150,7 @@ impl Game {
Act::Sell(r) => (rect_center(r), MARK_SELL, 4.0),
Act::Bridge(r) | Act::Drawbridge(r) | Act::Wall(r) => (rect_center(r), MARK_BRIDGE, 4.0),
Act::Steel(r) => (rect_center(r), MARK_STEEL, 4.0),
Act::Tower { x, y, .. } => (point(x as f32, y as f32), MARK_TOWER, 6.0),
Act::Tower { x, y, .. } | Act::Siege { x, y, .. } => (point(x as f32, y as f32), MARK_TOWER, 6.0),
Act::Trap { x, y, .. } => (point(x as f32, y as f32), MARK_TRAP, 6.0),
Act::Cast { x, y, .. } => (point(x, y), MARK_SPELL, 5.0),
Act::Lightning { x, y } => (point(x, y), MARK_LIGHTNING, 5.0),
@@ -189,6 +194,7 @@ impl Game {
Act::Bridge(r) => self.build_bridges(r.x0, r.y0, r.x1, r.y1),
Act::Drawbridge(r) => self.drawbridge_order(r.x0, r.y0, r.x1, r.y1),
Act::Wall(r) => self.plan_walls(r.x0, r.y0, r.x1, r.y1),
Act::Siege { which, x, y } => self.build_siege(which, x, y),
Act::Steel(r) => self.build_steel(r.x0, r.y0, r.x1, r.y1),
Act::Tower { kind, x, y } => self.build_tower(kind, x, y),
Act::Trap { kind, x, y } => self.place_trap(kind, x, y),