feat(game-loop): implement strict phase rules, exploration stops, and hero attacks

This commit is contained in:
2026-01-05 23:11:31 +01:00
parent b619e4cee4
commit 77c0c07a44
11 changed files with 591 additions and 142 deletions

View File

@@ -5,14 +5,14 @@ export const HERO_DEFINITIONS = {
portrait: '/assets/images/dungeon1/standees/heroes/barbarian.png?v=1',
stats: {
move: 4,
ws: 4, // Weapon Skill
bs: 5, // Ballistic Skill (3+ to hit, often lower is better in WHQ, let's use standard table numbers for now)
ws: 3,
to_hit_missile: 5, // 5+ to hit with ranged
str: 4,
toughness: 4,
wounds: 12,
toughness: 4, // 3 Base + 1 Armor (Pieles Gruesas)
wounds: 12, // 1D6 + 9 (Using fixed average for now)
attacks: 1,
init: 3,
luck: 2 // Rerolls??
pin_target: 6 // 6+ to escape pin
}
},
dwarf: {
@@ -20,15 +20,15 @@ export const HERO_DEFINITIONS = {
name: 'Enano',
portrait: '/assets/images/dungeon1/standees/heroes/dwarf.png',
stats: {
move: 3,
ws: 5,
bs: 5,
move: 4,
ws: 4,
to_hit_missile: 5, // 5+ to hit with ranged
str: 3,
toughness: 5,
wounds: 13,
toughness: 5, // 4 Base + 1 Armor (Cota de Malla)
wounds: 11, // 1D6 + 8 (Using fixed average for now)
attacks: 1,
init: 2,
luck: 0
pin_target: 5 // 5+ to escape pin
}
},
elf: {
@@ -36,15 +36,15 @@ export const HERO_DEFINITIONS = {
name: 'Elfa',
portrait: '/assets/images/dungeon1/standees/heroes/elfa.png',
stats: {
move: 5,
move: 4,
ws: 4,
bs: 2, // Amazing shot
to_hit_missile: 4, // 4+ to hit with ranged
str: 3,
toughness: 3,
wounds: 10,
wounds: 10, // 1D6 + 7 (Using fixed average for now)
attacks: 1,
init: 6,
luck: 1
pin_target: 1 // Auto escape ("No se puede trabar al Elfo")
}
},
wizard: {
@@ -53,15 +53,15 @@ export const HERO_DEFINITIONS = {
portrait: '/assets/images/dungeon1/standees/heroes/warlock.png',
stats: {
move: 4,
ws: 3,
bs: 6,
ws: 2,
to_hit_missile: 6, // 6+ to hit with ranged
str: 3,
toughness: 3,
wounds: 9,
wounds: 9, // 1D6 + 6 (Using fixed average for now)
attacks: 1,
init: 4,
luck: 1,
power: 0 // Special mechanic
init: 3,
power: 0, // Tracks current power points
pin_target: 4 // 4+ to escape pin
}
}
};