summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--play.css20
-rw-r--r--play.html38
-rw-r--r--play.js37
-rw-r--r--rules.js61
4 files changed, 94 insertions, 62 deletions
diff --git a/play.css b/play.css
index 5e02eea..4811f80 100644
--- a/play.css
+++ b/play.css
@@ -256,16 +256,16 @@ body svg .sea.action {
z-index: 2;
}
-body.p3 #Hispania_NPG { display: block }
-body.p3 #Africa_NPG { display: block }
-body.p3 #Aegyptus_NPG { display: block }
-
-body.p2 #Britannia_NPG { display: block }
-body.p2 #Hispania_NPG { display: block }
-body.p2 #Africa_NPG { display: block }
-body.p2 #Aegyptus_NPG { display: block }
-body.p2 #Syria_NPG { display: block }
-body.p2 #Galatia_NPG { display: block }
+body.p3 #npg_hispania { display: block }
+body.p3 #npg_africa { display: block }
+body.p3 #npg_aegyptus { display: block }
+
+body.p2 #npg_britannia { display: block }
+body.p2 #npg_hispania { display: block }
+body.p2 #npg_africa { display: block }
+body.p2 #npg_aegyptus { display: block }
+body.p2 #npg_syria { display: block }
+body.p2 #npg_galatia { display: block }
/* COUNTERS */
diff --git a/play.html b/play.html
index 28172fd..9cd8e32 100644
--- a/play.html
+++ b/play.html
@@ -146,25 +146,25 @@
<div id="yellow_legacy" class="yellow legacy hide" style="top:72px;left:43px;"></div>
<div id="green_legacy" class="green legacy hide" style="top:92px;left:43px;"></div>
-<div id="Italia_Capital" class="capital" style="left:1037px;top:742px"></div>
-<div id="Aegyptus_Capital" class="capital" style="left:1792px;top:1379px"></div>
-<div id="Africa_Capital" class="capital" style="left:740px;top:1203px"></div>
-<div id="Asia_Capital" class="capital" style="left:1789px;top:907px"></div>
-<div id="Britannia_Capital" class="capital" style="left:324px;top:176px"></div>
-<div id="Galatia_Capital" class="capital" style="left:2047px;top:841px"></div>
-<div id="Gallia_Capital" class="capital" style="left:553px;top:417px"></div>
-<div id="Hispania_Capital" class="capital" style="left:248px;top:891px"></div>
-<div id="Macedonia_Capital" class="capital" style="left:1476px;top:849px"></div>
-<div id="Pannonia_Capital" class="capital" style="left:1213px;top:535px"></div>
-<div id="Syria_Capital" class="capital" style="left:2173px;top:1192px"></div>
-<div id="Thracia_Capital" class="capital" style="left:1593px;top:630px"></div>
-
-<div id="Aegyptus_NPG" class="no_place_governor" style="left:1793px;top:1380px"></div>
-<div id="Africa_NPG" class="no_place_governor" style="left:741px;top:1204px"></div>
-<div id="Britannia_NPG" class="no_place_governor" style="left:325px;top:177px"></div>
-<div id="Galatia_NPG" class="no_place_governor" style="left:2048px;top:842px"></div>
-<div id="Hispania_NPG" class="no_place_governor" style="left:249px;top:891px"></div>
-<div id="Syria_NPG" class="no_place_governor" style="left:2174px;top:1193px"></div>
+<div id="capital_italia" class="capital" style="left:1037px;top:742px"></div>
+<div id="capital_aegyptus" class="capital" style="left:1792px;top:1379px"></div>
+<div id="capital_africa" class="capital" style="left:740px;top:1203px"></div>
+<div id="capital_asia" class="capital" style="left:1789px;top:907px"></div>
+<div id="capital_britannia" class="capital" style="left:324px;top:176px"></div>
+<div id="capital_galatia" class="capital" style="left:2047px;top:841px"></div>
+<div id="capital_gallia" class="capital" style="left:553px;top:417px"></div>
+<div id="capital_hispania" class="capital" style="left:248px;top:891px"></div>
+<div id="capital_macedonia" class="capital" style="left:1476px;top:849px"></div>
+<div id="capital_pannonia" class="capital" style="left:1213px;top:535px"></div>
+<div id="capital_syria" class="capital" style="left:2173px;top:1192px"></div>
+<div id="capital_thracia" class="capital" style="left:1593px;top:630px"></div>
+
+<div id="npg_aegyptus" class="no_place_governor" style="left:1793px;top:1380px"></div>
+<div id="npg_africa" class="no_place_governor" style="left:741px;top:1204px"></div>
+<div id="npg_britannia" class="no_place_governor" style="left:325px;top:177px"></div>
+<div id="npg_galatia" class="no_place_governor" style="left:2048px;top:842px"></div>
+<div id="npg_hispania" class="no_place_governor" style="left:249px;top:891px"></div>
+<div id="npg_syria" class="no_place_governor" style="left:2174px;top:1193px"></div>
</div>
diff --git a/play.js b/play.js
index 710610a..90408e6 100644
--- a/play.js
+++ b/play.js
@@ -160,11 +160,11 @@ const REGION_NAME = [
"Aegyptus",
"Africa",
"Hispania",
- "Alamanni Homeland",
- "Franks Homeland",
- "Goths Homeland",
- "Sassanids Homeland",
- "Nomads Homeland",
+ "Alamanni homeland",
+ "Frank homeland",
+ "Goth homeland",
+ "Sassanid homeland",
+ "Nomad homeland",
"Mare Occidentale",
"Mare Orientale",
"Oceanus Atlanticus",
@@ -686,7 +686,20 @@ let ui = {
document.getElementById("mapsvg").getElementById("region_oceanus_atlanticus"),
document.getElementById("mapsvg").getElementById("region_pontus_euxinus"),
],
- capital: [],
+ capital: [
+ document.getElementById("capital_italia"),
+ document.getElementById("capital_asia"),
+ document.getElementById("capital_gallia"),
+ document.getElementById("capital_macedonia"),
+ document.getElementById("capital_pannonia"),
+ document.getElementById("capital_thracia"),
+ document.getElementById("capital_britannia"),
+ document.getElementById("capital_galatia"),
+ document.getElementById("capital_syria"),
+ document.getElementById("capital_aegyptus"),
+ document.getElementById("capital_africa"),
+ document.getElementById("capital_hispania"),
+ ],
quaestor: [],
amphitheater: [],
basilica: [],
@@ -845,7 +858,6 @@ function on_init() {
for (let region = 0; region < 12; ++region) {
ui.mcastra[region] = create_thing({ className: "castra hide" })
ui.militia[region] = create_thing({ className: "militia hide", my_action: "militia", my_id: region })
- ui.capital[region] = document.getElementById(REGION_NAME[region] + "_Capital")
ui.quaestor[region] = create_thing({ className: "quaestor hide" })
ui.quaestor[region].style.left = (LAYOUT_QUAESTOR[region][0] + 16) + "px"
ui.quaestor[region].style.top = (LAYOUT_QUAESTOR[region][1]) + "px"
@@ -1377,8 +1389,13 @@ function on_update() {
ui.crisis.className = "p_" + PLAYER_CLASS[view.current] + " c" + (view.crisis[1] + view.crisis[2])
ui.dice[0].className = "dice black d" + view.crisis[1]
ui.dice[1].className = "dice white d" + view.crisis[2]
- ui.dice[2].className = "dice black d" + view.crisis[3]
- ui.dice[3].className = "dice white d" + view.crisis[4]
+ if (view.crisis[0] >= 0) {
+ ui.dice[2].className = "dice black d" + view.crisis[3]
+ ui.dice[3].className = "dice white d" + view.crisis[4]
+ } else {
+ ui.dice[2].className = "dice black hide"
+ ui.dice[3].className = "dice white hide"
+ }
ui.active_event.replaceChildren()
ui.active_event.appendChild(ui.event_cards[view.event])
@@ -1484,7 +1501,7 @@ function sub_card_1(match) {
}
function sub_card_x(match, p1, p2) {
- return p1 + "\xa0" + p2
+ return p1 + " " + p2
}
function on_log(text) {
diff --git a/rules.js b/rules.js
index 756374b..c529fbc 100644
--- a/rules.js
+++ b/rules.js
@@ -97,11 +97,11 @@ const REGION_NAME = [
"Aegyptus",
"Africa",
"Hispania",
- "Alamanni Homeland",
- "Frank Homeland",
- "Goth Homeland",
- "Sassanid Homeland",
- "Nomad Homeland",
+ "Alamanni homeland",
+ "Frank homeland",
+ "Goth homeland",
+ "Sassanid homeland",
+ "Nomad homeland",
"Mare Occidentale",
"Mare Orientale",
"Oceanus Atlanticus",
@@ -197,6 +197,14 @@ const BARBARIAN_NAME = [
"Nomads",
]
+const BARBARIAN_ONE = [
+ "Alamanni",
+ "Frank",
+ "Goth",
+ "Sassanid",
+ "Nomad",
+]
+
const BARBARIAN_HOMELAND = [
ALAMANNI_HOMELAND,
FRANKS_HOMELAND,
@@ -1118,7 +1126,7 @@ function has_card_event(event) {
states.setup_province = {
inactive: "Setup",
prompt() {
- view.prompt = "Setup: Choose a province to place your governor and general."
+ prompt("Setup: Choose a province to place your governor and general.")
view.selected_governor = game.current * 6
view.selected_general = game.current * 6
view.color = SENATE
@@ -1146,7 +1154,7 @@ states.setup_province = {
states.setup_hand = {
inactive: "Setup",
prompt() {
- view.prompt = "Setup: Draw cards."
+ prompt("Setup: Draw cards.")
let hand = current_hand()
if (hand.length < 5) {
for (let c of current_draw())
@@ -1328,10 +1336,10 @@ function goto_barbarian_crisis(tribe) {
}
states.barbarian_crisis = {
- get inactive() { return BARBARIAN_NAME[game.crisis[0]] },
+ get inactive() { return "Barbarian Crisis \u2013 " + BARBARIAN_NAME[game.crisis[0]] },
prompt() {
let tribe = game.crisis[0]
- prompt(BARBARIAN_NAME[tribe] + ": Activate one barbarian.")
+ prompt("Barbarian Crisis: Activate one " + BARBARIAN_ONE[tribe] + ".")
gen_action_barbarian(find_inactive_barbarian_at_home(tribe))
},
barbarian(id) {
@@ -1378,10 +1386,14 @@ function goto_barbarian_invasion(tribe, black) {
}
states.barbarian_invasion = {
- get inactive() { return BARBARIAN_NAME[game.crisis[0]] },
+ get inactive() { return "Barbarian Crisis \u2013 " + BARBARIAN_NAME[game.crisis[0]] },
prompt() {
let tribe = game.crisis[0]
- prompt(BARBARIAN_NAME[tribe] + " invade!")
+ let count = game.crisis[3]
+ if (count === 1)
+ prompt("Barbarian Crisis: Invade with 1 " + BARBARIAN_ONE[tribe] + ".")
+ else
+ prompt("Barbarian Crisis: Invade with " + count + " " + BARBARIAN_NAME[tribe] + ".")
gen_action_barbarian(find_active_barbarian_at_home(tribe))
},
barbarian(id) {
@@ -1483,7 +1495,7 @@ function goto_crisis_barbarian_leader(id, where) {
states.crisis_barbarian_leader = {
get inactive() { return EVENT_NAME[game.active_event] },
prompt() {
- prompt(EVENT_NAME[game.active_event] + ": Place barbarian leader.")
+ prompt(EVENT_NAME[game.active_event] + ": Place barbarian leader in " + REGION_NAME[game.where] + ".")
gen_action_region(game.where)
},
region(where) {
@@ -1930,7 +1942,7 @@ states.take_actions = {
hold_games() {
push_undo()
let where = get_governor_location(game.selected_governor)
- log("Held Games in %" + where + ".")
+ log("Hold Games in %" + where + ".")
spend_populace(2)
set_mobs(where, get_mobs(where) - 1)
},
@@ -1944,7 +1956,8 @@ states.take_actions = {
add_legion_to_army() {
push_undo()
- log("Add Legion to Army.")
+ let where = get_general_location(game.selected_general)
+ log("Add Legion to Army in %" + where + ".")
let cost = count_legions_in_army(game.selected_general) + 1
spend_military(cost)
set_legion_location(find_unused_legion(), ARMY + game.selected_general)
@@ -1952,7 +1965,8 @@ states.take_actions = {
train_legions() {
push_undo()
- log("Trained Legions.")
+ let where = get_general_location(game.selected_general)
+ log("Train Legions in %" + where + ".")
spend_military(1)
set_legion_full_strength(find_reduced_legion_in_army(game.selected_general))
},
@@ -2068,7 +2082,7 @@ function increase_support_level() {
function recall_governor() {
let where = get_governor_location(game.selected_governor)
- log("Recalled Governor from %" + where + ".")
+ log("Recall Governor from %" + where + ".")
spend_senate(2)
set_placed_governor(where)
remove_governor(where)
@@ -2978,7 +2992,7 @@ function gen_initiate_battle(where) {
function format_battle_target() {
switch (game.battle.type) {
- case "militia": return PLAYER_NAME[get_province_player(game.battle.target)] + " militia"
+ case "militia": return PLAYER_NAME[get_province_player(game.where)] + " militia"
case "barbarians": return BARBARIAN_NAME[game.battle.target]
case "general": return PLAYER_NAME[game.battle.target / 6 | 0] + " army"
case "rival_emperor": return RIVAL_EMPEROR_NAME[game.battle.target]
@@ -3421,7 +3435,7 @@ states.combat_victory = {
function goto_combat_victory() {
log_br()
- log("VICTORY")
+ log("RESULT")
let de = is_defender_eliminated()
let ae = is_attacker_eliminated()
if (de && ae)
@@ -3449,24 +3463,25 @@ function award_legacy_summary(p, reason, n) {
}
function goto_combat_no_victory() {
- log("Nobody")
+ log("Both sides eliminated.")
game.battle.killed = 0
end_battle()
}
function goto_combat_victory_defender() {
- log("Defender")
game.battle.killed = 0
if (game.battle.type === "general")
award_legacy(game.battle.target / 6 | 0, "Victory", 2)
- if (game.battle.type === "militia")
+ else if (game.battle.type === "militia")
award_legacy(get_province_player(game.where), "Victory", 2)
+ else if (game.battle.type === "barbarians")
+ log(BARBARIAN_NAME[game.battle.target] + " won.")
+ else if (game.battle.type === "rival_emperor")
+ log(RIVAL_EMPEROR_NAME[game.battle.target] + " won.")
end_battle()
}
function goto_combat_victory_attacker() {
- log("Attacker")
-
if (game.battle.type === "barbarians") {
award_legacy(game.current, "Victory", 2 + game.battle.dtaken)