Real AI masters: rivals, AI seats and the co-op partner play by the player's rules (imps dig, mine and claim, rooms, towers, tunnels and the attack flag); other masters are saved; portals belong to whoever claims them

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard ZinkandClaude Opus 5.5 committed 2026-11-06 08:18:09 +01:00
1 parent b940a959f1
commit a00ae6a06b
11 files changed
+456 -223

No files matched your search

+3 -3
View File
@@ -1297,7 +1297,7 @@ impl R3d {
let hp = (g.core_hp / CORE_HP).clamp(0.0, 1.0);
push(vec3(cx as f32 + 1.5, 1.6, cy as f32 + 1.5), 7.0, vec3(1.0, 0.25, 0.2), 1.1 + 0.2 * (t * 3.0).sin() * (1.5 - hp), 100.0);
for (k, &(px, py)) in g.map.portals.iter().enumerate() {
let owned = g.map.portal_owned(k);
let owned = g.map.portal_owner(k) == g.me;
push(vec3(px as f32 + 1.5, 0.8, py as f32 + 1.5), 6.0, vec3(0.7, 0.3, 1.0), if owned { 1.0 } else { 0.35 }, 20.0);
}
if g.gate_hp > 0.0 {
@@ -2338,7 +2338,7 @@ fn draw_landmarks_solid(g: &Game, t: f32) {
if !g.map.shown(idx(px + 1, py + 1)) {
continue;
}
let owned = g.map.portal_owned(pk);
let owned = g.map.portal_owner(pk) == g.me;
let pc = vec3(px as f32 + 1.5, 0.0, py as f32 + 1.5);
let stone = |k: u8| if owned { Color::from_rgba(46 + k, 30 + k / 2, 58 + k, 255) } else { Color::from_rgba(56 + k, 54 + k, 60 + k, 255) };
let bone = if owned { Color::from_rgba(212, 200, 176, 255) } else { Color::from_rgba(150, 146, 140, 255) };
@@ -2498,7 +2498,7 @@ fn draw_landmarks_glow(g: &Game, t: f32, cam_r: Vec3) {
if !g.map.shown(idx(px + 1, py + 1)) {
continue;
}
let owned = g.map.portal_owned(pk);
let owned = g.map.portal_owner(pk) == g.me;
let pc = vec3(px as f32 + 1.5, 0.0, py as f32 + 1.5);
let arm = if owned { Color::new(0.8, 0.35, 1.0, 1.0) } else { Color::new(0.45, 0.42, 0.5, 1.0) };
let mid = pc + vec3(0.0, 1.3, 0.0);