From 9ba7ea8a1661961eadbfadc538416f71c9e996b1 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Sun, 15 Sep 2024 16:24:27 +0200 Subject: Improve client log capabilities. - shorter piece names for logging - piece tooltips - dice icons - tactics rating icons - lime green tooltip highlights --- data.js | 302 ++++++++++++++++++++++++++--------------------------- die_black_pips.svg | 37 +++++++ die_white_pips.svg | 37 +++++++ mountain-tip.svg | 2 +- play.css | 52 +++++++-- play.html | 2 +- play.js | 99 ++++++++++++++---- 7 files changed, 349 insertions(+), 182 deletions(-) create mode 100644 die_black_pips.svg create mode 100644 die_white_pips.svg diff --git a/data.js b/data.js index f33a4fe..fd3577a 100644 --- a/data.js +++ b/data.js @@ -78,157 +78,157 @@ null, const pieces = [ {name:"None"}, -{faction:"british",type:"leader",name:"Amherst",initiative:2,command:7,tactics:1,movement:6,desc:"2-7-1 Amherst",square:"british_square_leader_seven m2s",tall:"british_leader_seven t2s"}, -{faction:"british",type:"leader",name:"Braddock",initiative:2,command:7,tactics:0,movement:6,desc:"2-7-0 Braddock",square:"british_square_leader_seven m3s",tall:"british_leader_seven t3s"}, -{faction:"british",type:"leader",name:"Abercromby",initiative:3,command:7,tactics:0,movement:6,desc:"3-7-0 Abercromby",square:"british_square_leader_seven m1s",tall:"british_leader_seven t1s"}, -{faction:"british",type:"leader",name:"Loudoun",initiative:3,command:7,tactics:0,movement:6,desc:"3-7-0 Loudoun",square:"british_square_leader_seven m4s",tall:"british_leader_seven t4s"}, -{faction:"british",type:"leader",name:"Wolfe",initiative:1,command:6,tactics:2,movement:6,desc:"1-6-2 Wolfe",square:"british_square_leader m9s",tall:"british_leader t9s"}, -{faction:"british",type:"leader",name:"Forbes",initiative:1,command:6,tactics:0,movement:6,desc:"1-6-0 Forbes",square:"british_square_leader m3s",tall:"british_leader t3s"}, -{faction:"british",type:"leader",name:"Shirley",initiative:2,command:6,tactics:0,movement:6,desc:"2-6-0 Shirley",square:"british_square_leader m7s",tall:"british_leader t7s"}, -{faction:"british",type:"leader",name:"Murray",initiative:1,command:5,tactics:0,movement:6,desc:"1-5-0 Murray",square:"british_square_leader m6s",tall:"british_leader t6s"}, -{faction:"british",type:"leader",name:"Monckton",initiative:2,command:5,tactics:0,movement:6,desc:"2-5-0 Monckton",square:"british_square_leader m5s",tall:"british_leader t5s"}, -{faction:"british",type:"leader",name:"Webb",initiative:3,command:5,tactics:0,movement:6,desc:"3-5-0 Webb",square:"british_square_leader m8s",tall:"british_leader t8s"}, -{faction:"british",type:"leader",name:"Bradstreet",initiative:1,command:4,tactics:1,movement:6,desc:"1-4-1 Bradstreet",square:"british_square_leader m1s",tall:"british_leader t1s"}, -{faction:"british",type:"leader",name:"Dunbar",initiative:3,command:4,tactics:0,movement:6,desc:"3-4-0 Dunbar",square:"british_square_leader m2s",tall:"british_leader t2s"}, -{faction:"british",type:"leader",name:"Johnson",initiative:1,command:3,tactics:1,movement:6,desc:"1-3-1 Johnson",square:"british_square_leader m4s",tall:"british_leader t4s"}, -{faction:"british",type:"indian",subtype:"cherokee",name:"Cherokee",strength:1,reduced_strength:0,movement:6,desc:"1-6 Cherokee",rdesc:"0-6 Cherokee",counter:"british_indian_cherokee c1"}, -{faction:"british",type:"indian",subtype:"cherokee",name:"Cherokee",strength:1,reduced_strength:0,movement:6,desc:"1-6 Cherokee",rdesc:"0-6 Cherokee",counter:"british_indian_cherokee c1"}, -{faction:"british",type:"indian",subtype:"gray",name:"Cayuga",strength:1,reduced_strength:0,movement:6,desc:"1-6 Cayuga",rdesc:"0-6 Cayuga",counter:"british_indian_gray c1"}, -{faction:"british",type:"indian",subtype:"gray",name:"Oneida",strength:1,reduced_strength:0,movement:6,desc:"1-6 Oneida",rdesc:"0-6 Oneida",counter:"british_indian_gray c2"}, -{faction:"british",type:"indian",subtype:"gray",name:"Onondaga",strength:1,reduced_strength:0,movement:6,desc:"1-6 Onondaga",rdesc:"0-6 Onondaga",counter:"british_indian_gray c3"}, -{faction:"british",type:"indian",subtype:"gray",name:"Seneca",strength:1,reduced_strength:0,movement:6,desc:"1-6 Seneca",rdesc:"0-6 Seneca",counter:"british_indian_gray c4"}, -{faction:"british",type:"indian",subtype:"gray",name:"Tuscarora",strength:1,reduced_strength:0,movement:6,desc:"1-6 Tuscarora",rdesc:"0-6 Tuscarora",counter:"british_indian_gray c5"}, -{faction:"british",type:"indian",subtype:"mohawk",name:"Mohawk",strength:1,reduced_strength:0,movement:6,desc:"1-6 Mohawk",rdesc:"0-6 Mohawk",counter:"british_indian_mohawk c1"}, -{faction:"british",type:"indian",subtype:"mohawk",name:"Mohawk",strength:1,reduced_strength:0,movement:6,desc:"1-6 Mohawk",rdesc:"0-6 Mohawk",counter:"british_indian_mohawk c1"}, -{faction:"british",type:"ranger",name:"Armstrong",strength:2,reduced_strength:1,movement:6,desc:"2-6 ranger",rdesc:"1-6 ranger",counter:"british_ranger c1"}, -{faction:"british",type:"ranger",name:"Goreham",strength:2,reduced_strength:1,movement:6,desc:"2-6 ranger",rdesc:"1-6 ranger",counter:"british_ranger c2"}, -{faction:"british",type:"ranger",name:"Rogers",strength:2,reduced_strength:1,movement:6,desc:"2-6 ranger",rdesc:"1-6 ranger",counter:"british_ranger c3"}, -{faction:"british",type:"light infantry",name:"1/95th",strength:2,reduced_strength:1,movement:6,desc:"2-6 light infantry",rdesc:"1-6 light infantry",counter:"british_light_infantry m1"}, -{faction:"british",type:"light infantry",name:"2/95th",strength:2,reduced_strength:1,movement:6,desc:"2-6 light infantry",rdesc:"1-6 light infantry",counter:"british_light_infantry m2"}, -{faction:"british",type:"light infantry",name:"85th Ryl. Vol.",strength:2,reduced_strength:1,movement:6,desc:"2-6 light infantry",rdesc:"1-6 light infantry",counter:"british_light_infantry m3"}, -{faction:"british",type:"light infantry",name:"Gage's 80th",strength:2,reduced_strength:1,movement:6,desc:"2-6 light infantry",rdesc:"1-6 light infantry",counter:"british_light_infantry m4"}, -{faction:"british",type:"light infantry",name:"Howe's",strength:2,reduced_strength:1,movement:6,desc:"2-6 light infantry",rdesc:"1-6 light infantry",counter:"british_light_infantry m5"}, -{faction:"british",type:"light infantry",name:"Scott's",strength:2,reduced_strength:1,movement:6,desc:"2-6 light infantry",rdesc:"1-6 light infantry",counter:"british_light_infantry m6"}, -{faction:"british",type:"northern provincial",name:"Connecticut",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m1"}, -{faction:"british",type:"northern provincial",name:"Connecticut",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m1"}, -{faction:"british",type:"northern provincial",name:"Connecticut",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m1"}, -{faction:"british",type:"northern provincial",name:"Massachusetts",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m2"}, -{faction:"british",type:"northern provincial",name:"Massachusetts",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m2"}, -{faction:"british",type:"northern provincial",name:"Massachusetts",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m2"}, -{faction:"british",type:"northern provincial",name:"Massachusetts",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m2"}, -{faction:"british",type:"northern provincial",name:"Massachusetts",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m2"}, -{faction:"british",type:"northern provincial",name:"Massachusetts",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m2"}, -{faction:"british",type:"northern provincial",name:"New Hampshire",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m3"}, -{faction:"british",type:"northern provincial",name:"New Jersey",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m4"}, -{faction:"british",type:"northern provincial",name:"New Jersey",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m4"}, -{faction:"british",type:"northern provincial",name:"New York",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m5"}, -{faction:"british",type:"northern provincial",name:"New York",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m5"}, -{faction:"british",type:"northern provincial",name:"New York",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m5"}, -{faction:"british",type:"northern provincial",name:"New York",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m5"}, -{faction:"british",type:"northern provincial",name:"New York",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m5"}, -{faction:"british",type:"northern provincial",name:"Rhode Island",strength:2,reduced_strength:1,movement:4,desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m6"}, -{faction:"british",type:"southern provincial",name:"Maryland",strength:2,reduced_strength:1,movement:4,desc:"2-4 southern provincial",rdesc:"1-4 southern provincial",counter:"british_southern_provincial m1"}, -{faction:"british",type:"southern provincial",name:"Pennsylvania",strength:2,reduced_strength:1,movement:4,desc:"2-4 southern provincial",rdesc:"1-4 southern provincial",counter:"british_southern_provincial m2"}, -{faction:"british",type:"southern provincial",name:"Pennsylvania",strength:2,reduced_strength:1,movement:4,desc:"2-4 southern provincial",rdesc:"1-4 southern provincial",counter:"british_southern_provincial m2"}, -{faction:"british",type:"southern provincial",name:"Pennsylvania",strength:2,reduced_strength:1,movement:4,desc:"2-4 southern provincial",rdesc:"1-4 southern provincial",counter:"british_southern_provincial m2"}, -{faction:"british",type:"southern provincial",name:"Virginia",strength:2,reduced_strength:1,movement:4,desc:"2-4 southern provincial",rdesc:"1-4 southern provincial",counter:"british_southern_provincial m3"}, -{faction:"british",type:"southern provincial",name:"Virginia",strength:2,reduced_strength:1,movement:4,desc:"2-4 southern provincial",rdesc:"1-4 southern provincial",counter:"british_southern_provincial m3"}, -{faction:"british",type:"regular",name:"15th",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m1"}, -{faction:"british",type:"regular",name:"17th",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m2"}, -{faction:"british",type:"regular",name:"1st Royal",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m3"}, -{faction:"british",type:"regular",name:"22nd",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m4"}, -{faction:"british",type:"regular",name:"27th",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m5"}, -{faction:"british",type:"regular",name:"28th",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m6"}, -{faction:"british",type:"regular",name:"35th",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m7"}, -{faction:"british",type:"regular",name:"40th",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m8"}, -{faction:"british",type:"regular",name:"43rd",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m9"}, -{faction:"british",type:"regular",name:"44th",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m10"}, -{faction:"british",type:"regular",name:"45th",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m11"}, -{faction:"british",type:"regular",name:"46th",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m12"}, -{faction:"british",type:"regular",name:"47th",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m13"}, -{faction:"british",type:"regular",name:"48th",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m14"}, -{faction:"british",type:"regular",name:"55th",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m15"}, -{faction:"british",type:"regular",name:"58th",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m16"}, -{faction:"british",type:"regular",name:"90th",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m17"}, -{faction:"british",type:"royal american",name:"1/60th",strength:4,reduced_strength:3,movement:4,desc:"4-4 royal american",rdesc:"3-4 royal american",counter:"british_royal_american m1"}, -{faction:"british",type:"royal american",name:"2/60th",strength:4,reduced_strength:3,movement:4,desc:"4-4 royal american",rdesc:"3-4 royal american",counter:"british_royal_american m2"}, -{faction:"british",type:"royal american",name:"3/60th",strength:4,reduced_strength:3,movement:4,desc:"4-4 royal american",rdesc:"3-4 royal american",counter:"british_royal_american m3"}, -{faction:"british",type:"royal american",name:"4/60th",strength:4,reduced_strength:3,movement:4,desc:"4-4 royal american",rdesc:"3-4 royal american",counter:"british_royal_american m4"}, -{faction:"british",type:"highland",name:"1/42nd",strength:4,reduced_strength:3,movement:4,desc:"4-4 highland",rdesc:"3-4 highland",counter:"british_highland m1"}, -{faction:"british",type:"highland",name:"2/42nd",strength:4,reduced_strength:3,movement:4,desc:"4-4 highland",rdesc:"3-4 highland",counter:"british_highland m2"}, -{faction:"british",type:"highland",name:"77th (a)",strength:4,reduced_strength:3,movement:4,desc:"4-4 highland",rdesc:"3-4 highland",counter:"british_highland m3"}, -{faction:"british",type:"highland",name:"77th (b)",strength:4,reduced_strength:3,movement:4,desc:"4-4 highland",rdesc:"3-4 highland",counter:"british_highland m4"}, -{faction:"british",type:"highland",name:"78th (a)",strength:4,reduced_strength:3,movement:4,desc:"4-4 highland",rdesc:"3-4 highland",counter:"british_highland m5"}, -{faction:"british",type:"highland",name:"78th (b)",strength:4,reduced_strength:3,movement:4,desc:"4-4 highland",rdesc:"3-4 highland",counter:"british_highland m6"}, -{faction:"british",type:"militia",name:"Colonial Militia",strength:1,reduced_strength:1,movement:0,desc:"1-0 militia",rdesc:"1-0 militia",counter:"british_militia m1"}, -{faction:"british",type:"militia",name:"Colonial Militia",strength:1,reduced_strength:1,movement:0,desc:"1-0 militia",rdesc:"1-0 militia",counter:"british_militia m1"}, -{faction:"british",type:"militia",name:"Colonial Militia",strength:1,reduced_strength:1,movement:0,desc:"1-0 militia",rdesc:"1-0 militia",counter:"british_militia m1"}, -{faction:"british",type:"militia",name:"Colonial Militia",strength:1,reduced_strength:1,movement:0,desc:"1-0 militia",rdesc:"1-0 militia",counter:"british_militia m1"}, -{faction:"french",type:"leader",name:"Montcalm",initiative:1,command:6,tactics:2,movement:6,desc:"1-6-2 Montcalm",square:"french_square_leader m7s",tall:"french_leader t7s"}, -{faction:"french",type:"leader",name:"Dieskau",initiative:2,command:6,tactics:0,movement:6,desc:"2-6-0 Dieskau",square:"french_square_leader m3s",tall:"french_leader t3s"}, -{faction:"french",type:"leader",name:"Lévis",initiative:2,command:5,tactics:1,movement:6,desc:"2-5-1 Lévis",square:"french_square_leader m6s",tall:"french_leader t6s"}, -{faction:"french",type:"leader",name:"Vaudreuil",initiative:3,command:5,tactics:0,movement:6,desc:"3-5-0 Vaudreuil",square:"french_square_leader m9s",tall:"french_leader t9s"}, -{faction:"french",type:"leader",name:"Drucour",initiative:2,command:4,tactics:1,movement:6,desc:"2-4-1 Drucour",square:"french_square_leader m4s",tall:"french_leader t4s"}, -{faction:"french",type:"leader",name:"Rigaud",initiative:2,command:4,tactics:0,movement:6,desc:"2-4-0 Rigaud",square:"french_square_leader m8s",tall:"french_leader t8s"}, -{faction:"french",type:"leader",name:"Villiers",initiative:2,command:3,tactics:1,movement:6,desc:"2-3-1 Villiers",square:"french_square_leader m10s",tall:"french_leader t10s"}, -{faction:"french",type:"leader",name:"Bougainville",initiative:1,command:3,tactics:0,movement:6,desc:"1-3-0 Bougainville",square:"french_square_leader m2s",tall:"french_leader t2s"}, -{faction:"french",type:"leader",name:"Beaujeu",initiative:1,command:2,tactics:1,movement:6,desc:"1-2-1 Beaujeu",square:"french_square_leader m1s",tall:"french_leader t1s"}, -{faction:"french",type:"leader",name:"Dumas",initiative:1,command:2,tactics:1,movement:6,desc:"1-2-1 Dumas",square:"french_square_leader m5s",tall:"french_leader t5s"}, -{faction:"french",type:"indian",subtype:"blue-orange",name:"Huron",strength:1,reduced_strength:0,movement:6,desc:"1-6 Huron",rdesc:"0-6 Huron",counter:"french_indian_blue_orange c1"}, -{faction:"french",type:"indian",subtype:"blue-orange",name:"Ojibwa",strength:1,reduced_strength:0,movement:6,desc:"1-6 Ojibwa",rdesc:"0-6 Ojibwa",counter:"french_indian_blue_orange c2"}, -{faction:"french",type:"indian",subtype:"blue-orange",name:"Ottawa",strength:1,reduced_strength:0,movement:6,desc:"1-6 Ottawa",rdesc:"0-6 Ottawa",counter:"french_indian_blue_orange c3"}, -{faction:"french",type:"indian",subtype:"blue-orange",name:"Potawatomi",strength:1,reduced_strength:0,movement:6,desc:"1-6 Potawatomi",rdesc:"0-6 Potawatomi",counter:"french_indian_blue_orange c4"}, -{faction:"french",type:"indian",subtype:"blue",name:"Abenaki",strength:1,reduced_strength:0,movement:6,desc:"1-6 Abenaki",rdesc:"0-6 Abenaki",counter:"french_indian_blue c1"}, -{faction:"french",type:"indian",subtype:"blue",name:"Abenaki",strength:1,reduced_strength:0,movement:6,desc:"1-6 Abenaki",rdesc:"0-6 Abenaki",counter:"french_indian_blue c2"}, -{faction:"french",type:"indian",subtype:"blue",name:"Algonquin",strength:1,reduced_strength:0,movement:6,desc:"1-6 Algonquin",rdesc:"0-6 Algonquin",counter:"french_indian_blue c3"}, -{faction:"french",type:"indian",subtype:"blue",name:"Algonquin",strength:1,reduced_strength:0,movement:6,desc:"1-6 Algonquin",rdesc:"0-6 Algonquin",counter:"french_indian_blue c4"}, -{faction:"french",type:"indian",subtype:"blue",name:"Caughnawaga",strength:1,reduced_strength:0,movement:6,desc:"1-6 Caughnawaga",rdesc:"0-6 Caughnawaga",counter:"french_indian_blue c5"}, -{faction:"french",type:"indian",subtype:"blue",name:"Caughnawaga",strength:1,reduced_strength:0,movement:6,desc:"1-6 Caughnawaga",rdesc:"0-6 Caughnawaga",counter:"french_indian_blue c6"}, -{faction:"french",type:"indian",subtype:"blue",name:"Mississauga",strength:1,reduced_strength:0,movement:6,desc:"1-6 Mississauga",rdesc:"0-6 Mississauga",counter:"french_indian_blue c7"}, -{faction:"french",type:"indian",subtype:"gray",name:"Cayuga",strength:1,reduced_strength:0,movement:6,desc:"1-6 Cayuga",rdesc:"0-6 Cayuga",counter:"french_indian_gray c1"}, -{faction:"french",type:"indian",subtype:"gray",name:"Oneida",strength:1,reduced_strength:0,movement:6,desc:"1-6 Oneida",rdesc:"0-6 Oneida",counter:"french_indian_gray c2"}, -{faction:"french",type:"indian",subtype:"gray",name:"Onondaga",strength:1,reduced_strength:0,movement:6,desc:"1-6 Onondaga",rdesc:"0-6 Onondaga",counter:"french_indian_gray c3"}, -{faction:"french",type:"indian",subtype:"gray",name:"Seneca",strength:1,reduced_strength:0,movement:6,desc:"1-6 Seneca",rdesc:"0-6 Seneca",counter:"french_indian_gray c4"}, -{faction:"french",type:"indian",subtype:"gray",name:"Tuscarora",strength:1,reduced_strength:0,movement:6,desc:"1-6 Tuscarora",rdesc:"0-6 Tuscarora",counter:"french_indian_gray c5"}, -{faction:"french",type:"indian",subtype:"orange",name:"Delaware",strength:1,reduced_strength:0,movement:6,desc:"1-6 Delaware",rdesc:"0-6 Delaware",counter:"french_indian_orange c1"}, -{faction:"french",type:"indian",subtype:"orange",name:"Delaware",strength:1,reduced_strength:0,movement:6,desc:"1-6 Delaware",rdesc:"0-6 Delaware",counter:"french_indian_orange c2"}, -{faction:"french",type:"indian",subtype:"orange",name:"Mingo",strength:1,reduced_strength:0,movement:6,desc:"1-6 Mingo",rdesc:"0-6 Mingo",counter:"french_indian_orange c3"}, -{faction:"french",type:"indian",subtype:"orange",name:"Mingo",strength:1,reduced_strength:0,movement:6,desc:"1-6 Mingo",rdesc:"0-6 Mingo",counter:"french_indian_orange c4"}, -{faction:"french",type:"indian",subtype:"orange",name:"Shawnee",strength:1,reduced_strength:0,movement:6,desc:"1-6 Shawnee",rdesc:"0-6 Shawnee",counter:"french_indian_orange c5"}, -{faction:"french",type:"indian",subtype:"orange",name:"Shawnee",strength:1,reduced_strength:0,movement:6,desc:"1-6 Shawnee",rdesc:"0-6 Shawnee",counter:"french_indian_orange c6"}, -{faction:"french",type:"coureurs",name:"Boishébert Acadian",strength:1,reduced_strength:0,movement:6,desc:"1-6 coureurs",rdesc:"0-6 coureurs",counter:"french_coureurs c1"}, -{faction:"french",type:"coureurs",name:"Joncaire",strength:1,reduced_strength:0,movement:6,desc:"1-6 coureurs",rdesc:"0-6 coureurs",counter:"french_coureurs c2"}, -{faction:"french",type:"coureurs",name:"Langlade",strength:1,reduced_strength:0,movement:6,desc:"1-6 coureurs",rdesc:"0-6 coureurs",counter:"french_coureurs c3"}, -{faction:"french",type:"coureurs",name:"Ligneris",strength:1,reduced_strength:0,movement:6,desc:"1-6 coureurs",rdesc:"0-6 coureurs",counter:"french_coureurs c4"}, -{faction:"french",type:"coureurs",name:"Léry",strength:1,reduced_strength:0,movement:6,desc:"1-6 coureurs",rdesc:"0-6 coureurs",counter:"french_coureurs c5"}, -{faction:"french",type:"coureurs",name:"Marin",strength:1,reduced_strength:0,movement:6,desc:"1-6 coureurs",rdesc:"0-6 coureurs",counter:"french_coureurs c6"}, -{faction:"french",type:"coureurs",name:"Perière",strength:1,reduced_strength:0,movement:6,desc:"1-6 coureurs",rdesc:"0-6 coureurs",counter:"french_coureurs c7"}, -{faction:"french",type:"coureurs",name:"Repentigny",strength:1,reduced_strength:0,movement:6,desc:"1-6 coureurs",rdesc:"0-6 coureurs",counter:"french_coureurs c8"}, -{faction:"french",type:"marine detachment",name:"Marine Detachment",strength:1,reduced_strength:0,movement:4,desc:"1-4 marine detachment",rdesc:"0-4 marine detachment",counter:"french_marine_detachment m1"}, -{faction:"french",type:"marine detachment",name:"Marine Detachment",strength:1,reduced_strength:0,movement:4,desc:"1-4 marine detachment",rdesc:"0-4 marine detachment",counter:"french_marine_detachment m1"}, -{faction:"french",type:"marine detachment",name:"Marine Detachment",strength:1,reduced_strength:0,movement:4,desc:"1-4 marine detachment",rdesc:"0-4 marine detachment",counter:"french_marine_detachment m1"}, -{faction:"french",type:"marine detachment",name:"Marine Detachment",strength:1,reduced_strength:0,movement:4,desc:"1-4 marine detachment",rdesc:"0-4 marine detachment",counter:"french_marine_detachment m1"}, -{faction:"french",type:"marine detachment",name:"Marine Detachment",strength:1,reduced_strength:0,movement:4,desc:"1-4 marine detachment",rdesc:"0-4 marine detachment",counter:"french_marine_detachment m1"}, -{faction:"french",type:"marine detachment",name:"Marine Detachment",strength:1,reduced_strength:0,movement:4,desc:"1-4 marine detachment",rdesc:"0-4 marine detachment",counter:"french_marine_detachment m1"}, -{faction:"french",type:"marine detachment",name:"Marine Detachment",strength:1,reduced_strength:0,movement:4,desc:"1-4 marine detachment",rdesc:"0-4 marine detachment",counter:"french_marine_detachment m1"}, -{faction:"french",type:"regular",name:"2/Berry",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m1"}, -{faction:"french",type:"regular",name:"3/Berry",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m2"}, -{faction:"french",type:"regular",name:"Artois",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m3"}, -{faction:"french",type:"regular",name:"Bourgogne",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m4"}, -{faction:"french",type:"regular",name:"Béarn",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m5"}, -{faction:"french",type:"regular",name:"Cambis",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m6"}, -{faction:"french",type:"regular",name:"Guyenne",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m7"}, -{faction:"french",type:"regular",name:"La Reine",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m8"}, -{faction:"french",type:"regular",name:"La Sarre",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m9"}, -{faction:"french",type:"regular",name:"Languedoc",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m10"}, -{faction:"french",type:"regular",name:"Marine",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m11"}, -{faction:"french",type:"regular",name:"Marine",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m11"}, -{faction:"french",type:"regular",name:"Royal Roussillon",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m12"}, -{faction:"french",type:"regular",name:"V. Étrangers",strength:3,reduced_strength:2,movement:4,desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m13"}, -{faction:"french",type:"militia",name:"Canadian Militia",strength:1,reduced_strength:1,movement:0,desc:"1-0 militia",rdesc:"1-0 militia",counter:"french_militia m1"}, -{faction:"french",type:"militia",name:"Canadian Militia",strength:1,reduced_strength:1,movement:0,desc:"1-0 militia",rdesc:"1-0 militia",counter:"french_militia m1"}, -{faction:"french",type:"militia",name:"Canadian Militia",strength:1,reduced_strength:1,movement:0,desc:"1-0 militia",rdesc:"1-0 militia",counter:"french_militia m1"}, -{faction:"french",type:"militia",name:"Canadian Militia",strength:1,reduced_strength:1,movement:0,desc:"1-0 militia",rdesc:"1-0 militia",counter:"french_militia m1"} +{faction:"british",type:"leader",name:"Amherst",initiative:2,command:7,tactics:1,movement:6,log_name:"Amherst",desc:"2-7-1 Amherst",square:"british_square_leader_seven m2s",tall:"british_leader_seven t2s"}, +{faction:"british",type:"leader",name:"Braddock",initiative:2,command:7,tactics:0,movement:6,log_name:"Braddock",desc:"2-7-0 Braddock",square:"british_square_leader_seven m3s",tall:"british_leader_seven t3s"}, +{faction:"british",type:"leader",name:"Abercromby",initiative:3,command:7,tactics:0,movement:6,log_name:"Abercromby",desc:"3-7-0 Abercromby",square:"british_square_leader_seven m1s",tall:"british_leader_seven t1s"}, +{faction:"british",type:"leader",name:"Loudoun",initiative:3,command:7,tactics:0,movement:6,log_name:"Loudoun",desc:"3-7-0 Loudoun",square:"british_square_leader_seven m4s",tall:"british_leader_seven t4s"}, +{faction:"british",type:"leader",name:"Wolfe",initiative:1,command:6,tactics:2,movement:6,log_name:"Wolfe",desc:"1-6-2 Wolfe",square:"british_square_leader m9s",tall:"british_leader t9s"}, +{faction:"british",type:"leader",name:"Forbes",initiative:1,command:6,tactics:0,movement:6,log_name:"Forbes",desc:"1-6-0 Forbes",square:"british_square_leader m3s",tall:"british_leader t3s"}, +{faction:"british",type:"leader",name:"Shirley",initiative:2,command:6,tactics:0,movement:6,log_name:"Shirley",desc:"2-6-0 Shirley",square:"british_square_leader m7s",tall:"british_leader t7s"}, +{faction:"british",type:"leader",name:"Murray",initiative:1,command:5,tactics:0,movement:6,log_name:"Murray",desc:"1-5-0 Murray",square:"british_square_leader m6s",tall:"british_leader t6s"}, +{faction:"british",type:"leader",name:"Monckton",initiative:2,command:5,tactics:0,movement:6,log_name:"Monckton",desc:"2-5-0 Monckton",square:"british_square_leader m5s",tall:"british_leader t5s"}, +{faction:"british",type:"leader",name:"Webb",initiative:3,command:5,tactics:0,movement:6,log_name:"Webb",desc:"3-5-0 Webb",square:"british_square_leader m8s",tall:"british_leader t8s"}, +{faction:"british",type:"leader",name:"Bradstreet",initiative:1,command:4,tactics:1,movement:6,log_name:"Bradstreet",desc:"1-4-1 Bradstreet",square:"british_square_leader m1s",tall:"british_leader t1s"}, +{faction:"british",type:"leader",name:"Dunbar",initiative:3,command:4,tactics:0,movement:6,log_name:"Dunbar",desc:"3-4-0 Dunbar",square:"british_square_leader m2s",tall:"british_leader t2s"}, +{faction:"british",type:"leader",name:"Johnson",initiative:1,command:3,tactics:1,movement:6,log_name:"Johnson",desc:"1-3-1 Johnson",square:"british_square_leader m4s",tall:"british_leader t4s"}, +{faction:"british",type:"indian",subtype:"cherokee",name:"Cherokee",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Cherokee",rdesc:"0-6 Cherokee",counter:"british_indian_cherokee c1"}, +{faction:"british",type:"indian",subtype:"cherokee",name:"Cherokee",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Cherokee",rdesc:"0-6 Cherokee",counter:"british_indian_cherokee c1"}, +{faction:"british",type:"indian",subtype:"gray",name:"Cayuga",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Cayuga",rdesc:"0-6 Cayuga",counter:"british_indian_gray c1"}, +{faction:"british",type:"indian",subtype:"gray",name:"Oneida",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Oneida",rdesc:"0-6 Oneida",counter:"british_indian_gray c2"}, +{faction:"british",type:"indian",subtype:"gray",name:"Onondaga",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Onondaga",rdesc:"0-6 Onondaga",counter:"british_indian_gray c3"}, +{faction:"british",type:"indian",subtype:"gray",name:"Seneca",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Seneca",rdesc:"0-6 Seneca",counter:"british_indian_gray c4"}, +{faction:"british",type:"indian",subtype:"gray",name:"Tuscarora",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Tuscarora",rdesc:"0-6 Tuscarora",counter:"british_indian_gray c5"}, +{faction:"british",type:"indian",subtype:"mohawk",name:"Mohawk",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Mohawk",rdesc:"0-6 Mohawk",counter:"british_indian_mohawk c1"}, +{faction:"british",type:"indian",subtype:"mohawk",name:"Mohawk",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Mohawk",rdesc:"0-6 Mohawk",counter:"british_indian_mohawk c1"}, +{faction:"british",type:"ranger",name:"Armstrong",strength:2,reduced_strength:1,movement:6,log_name:"rangers",desc:"2-6 ranger",rdesc:"1-6 ranger",counter:"british_ranger c1"}, +{faction:"british",type:"ranger",name:"Goreham",strength:2,reduced_strength:1,movement:6,log_name:"rangers",desc:"2-6 ranger",rdesc:"1-6 ranger",counter:"british_ranger c2"}, +{faction:"british",type:"ranger",name:"Rogers",strength:2,reduced_strength:1,movement:6,log_name:"rangers",desc:"2-6 ranger",rdesc:"1-6 ranger",counter:"british_ranger c3"}, +{faction:"british",type:"light infantry",name:"1/95th",strength:2,reduced_strength:1,movement:6,log_name:"light infantry",desc:"2-6 light infantry",rdesc:"1-6 light infantry",counter:"british_light_infantry m1"}, +{faction:"british",type:"light infantry",name:"2/95th",strength:2,reduced_strength:1,movement:6,log_name:"light infantry",desc:"2-6 light infantry",rdesc:"1-6 light infantry",counter:"british_light_infantry m2"}, +{faction:"british",type:"light infantry",name:"85th Ryl. Vol.",strength:2,reduced_strength:1,movement:6,log_name:"light infantry",desc:"2-6 light infantry",rdesc:"1-6 light infantry",counter:"british_light_infantry m3"}, +{faction:"british",type:"light infantry",name:"Gage's 80th",strength:2,reduced_strength:1,movement:6,log_name:"light infantry",desc:"2-6 light infantry",rdesc:"1-6 light infantry",counter:"british_light_infantry m4"}, +{faction:"british",type:"light infantry",name:"Howe's",strength:2,reduced_strength:1,movement:6,log_name:"light infantry",desc:"2-6 light infantry",rdesc:"1-6 light infantry",counter:"british_light_infantry m5"}, +{faction:"british",type:"light infantry",name:"Scott's",strength:2,reduced_strength:1,movement:6,log_name:"light infantry",desc:"2-6 light infantry",rdesc:"1-6 light infantry",counter:"british_light_infantry m6"}, +{faction:"british",type:"northern provincial",name:"Connecticut",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m1"}, +{faction:"british",type:"northern provincial",name:"Connecticut",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m1"}, +{faction:"british",type:"northern provincial",name:"Connecticut",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m1"}, +{faction:"british",type:"northern provincial",name:"Massachusetts",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m2"}, +{faction:"british",type:"northern provincial",name:"Massachusetts",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m2"}, +{faction:"british",type:"northern provincial",name:"Massachusetts",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m2"}, +{faction:"british",type:"northern provincial",name:"Massachusetts",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m2"}, +{faction:"british",type:"northern provincial",name:"Massachusetts",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m2"}, +{faction:"british",type:"northern provincial",name:"Massachusetts",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m2"}, +{faction:"british",type:"northern provincial",name:"New Hampshire",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m3"}, +{faction:"british",type:"northern provincial",name:"New Jersey",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m4"}, +{faction:"british",type:"northern provincial",name:"New Jersey",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m4"}, +{faction:"british",type:"northern provincial",name:"New York",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m5"}, +{faction:"british",type:"northern provincial",name:"New York",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m5"}, +{faction:"british",type:"northern provincial",name:"New York",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m5"}, +{faction:"british",type:"northern provincial",name:"New York",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m5"}, +{faction:"british",type:"northern provincial",name:"New York",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m5"}, +{faction:"british",type:"northern provincial",name:"Rhode Island",strength:2,reduced_strength:1,movement:4,log_name:"northern provincials",desc:"2-4 northern provincial",rdesc:"1-4 northern provincial",counter:"british_northern_provincial m6"}, +{faction:"british",type:"southern provincial",name:"Maryland",strength:2,reduced_strength:1,movement:4,log_name:"southern provincials",desc:"2-4 southern provincial",rdesc:"1-4 southern provincial",counter:"british_southern_provincial m1"}, +{faction:"british",type:"southern provincial",name:"Pennsylvania",strength:2,reduced_strength:1,movement:4,log_name:"southern provincials",desc:"2-4 southern provincial",rdesc:"1-4 southern provincial",counter:"british_southern_provincial m2"}, +{faction:"british",type:"southern provincial",name:"Pennsylvania",strength:2,reduced_strength:1,movement:4,log_name:"southern provincials",desc:"2-4 southern provincial",rdesc:"1-4 southern provincial",counter:"british_southern_provincial m2"}, +{faction:"british",type:"southern provincial",name:"Pennsylvania",strength:2,reduced_strength:1,movement:4,log_name:"southern provincials",desc:"2-4 southern provincial",rdesc:"1-4 southern provincial",counter:"british_southern_provincial m2"}, +{faction:"british",type:"southern provincial",name:"Virginia",strength:2,reduced_strength:1,movement:4,log_name:"southern provincials",desc:"2-4 southern provincial",rdesc:"1-4 southern provincial",counter:"british_southern_provincial m3"}, +{faction:"british",type:"southern provincial",name:"Virginia",strength:2,reduced_strength:1,movement:4,log_name:"southern provincials",desc:"2-4 southern provincial",rdesc:"1-4 southern provincial",counter:"british_southern_provincial m3"}, +{faction:"british",type:"regular",name:"15th",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m1"}, +{faction:"british",type:"regular",name:"17th",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m2"}, +{faction:"british",type:"regular",name:"1st Royal",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m3"}, +{faction:"british",type:"regular",name:"22nd",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m4"}, +{faction:"british",type:"regular",name:"27th",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m5"}, +{faction:"british",type:"regular",name:"28th",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m6"}, +{faction:"british",type:"regular",name:"35th",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m7"}, +{faction:"british",type:"regular",name:"40th",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m8"}, +{faction:"british",type:"regular",name:"43rd",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m9"}, +{faction:"british",type:"regular",name:"44th",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m10"}, +{faction:"british",type:"regular",name:"45th",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m11"}, +{faction:"british",type:"regular",name:"46th",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m12"}, +{faction:"british",type:"regular",name:"47th",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m13"}, +{faction:"british",type:"regular",name:"48th",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m14"}, +{faction:"british",type:"regular",name:"55th",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m15"}, +{faction:"british",type:"regular",name:"58th",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m16"}, +{faction:"british",type:"regular",name:"90th",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"british_regular m17"}, +{faction:"british",type:"royal american",name:"1/60th",strength:4,reduced_strength:3,movement:4,log_name:"royal americans",desc:"4-4 royal american",rdesc:"3-4 royal american",counter:"british_royal_american m1"}, +{faction:"british",type:"royal american",name:"2/60th",strength:4,reduced_strength:3,movement:4,log_name:"royal americans",desc:"4-4 royal american",rdesc:"3-4 royal american",counter:"british_royal_american m2"}, +{faction:"british",type:"royal american",name:"3/60th",strength:4,reduced_strength:3,movement:4,log_name:"royal americans",desc:"4-4 royal american",rdesc:"3-4 royal american",counter:"british_royal_american m3"}, +{faction:"british",type:"royal american",name:"4/60th",strength:4,reduced_strength:3,movement:4,log_name:"royal americans",desc:"4-4 royal american",rdesc:"3-4 royal american",counter:"british_royal_american m4"}, +{faction:"british",type:"highland",name:"1/42nd",strength:4,reduced_strength:3,movement:4,log_name:"highlanders",desc:"4-4 highland",rdesc:"3-4 highland",counter:"british_highland m1"}, +{faction:"british",type:"highland",name:"2/42nd",strength:4,reduced_strength:3,movement:4,log_name:"highlanders",desc:"4-4 highland",rdesc:"3-4 highland",counter:"british_highland m2"}, +{faction:"british",type:"highland",name:"77th (a)",strength:4,reduced_strength:3,movement:4,log_name:"highlanders",desc:"4-4 highland",rdesc:"3-4 highland",counter:"british_highland m3"}, +{faction:"british",type:"highland",name:"77th (b)",strength:4,reduced_strength:3,movement:4,log_name:"highlanders",desc:"4-4 highland",rdesc:"3-4 highland",counter:"british_highland m4"}, +{faction:"british",type:"highland",name:"78th (a)",strength:4,reduced_strength:3,movement:4,log_name:"highlanders",desc:"4-4 highland",rdesc:"3-4 highland",counter:"british_highland m5"}, +{faction:"british",type:"highland",name:"78th (b)",strength:4,reduced_strength:3,movement:4,log_name:"highlanders",desc:"4-4 highland",rdesc:"3-4 highland",counter:"british_highland m6"}, +{faction:"british",type:"militia",name:"Colonial Militia",strength:1,reduced_strength:1,movement:0,log_name:"militia",desc:"1-0 militia",rdesc:"1-0 militia",counter:"british_militia m1"}, +{faction:"british",type:"militia",name:"Colonial Militia",strength:1,reduced_strength:1,movement:0,log_name:"militia",desc:"1-0 militia",rdesc:"1-0 militia",counter:"british_militia m1"}, +{faction:"british",type:"militia",name:"Colonial Militia",strength:1,reduced_strength:1,movement:0,log_name:"militia",desc:"1-0 militia",rdesc:"1-0 militia",counter:"british_militia m1"}, +{faction:"british",type:"militia",name:"Colonial Militia",strength:1,reduced_strength:1,movement:0,log_name:"militia",desc:"1-0 militia",rdesc:"1-0 militia",counter:"british_militia m1"}, +{faction:"french",type:"leader",name:"Montcalm",initiative:1,command:6,tactics:2,movement:6,log_name:"Montcalm",desc:"1-6-2 Montcalm",square:"french_square_leader m7s",tall:"french_leader t7s"}, +{faction:"french",type:"leader",name:"Dieskau",initiative:2,command:6,tactics:0,movement:6,log_name:"Dieskau",desc:"2-6-0 Dieskau",square:"french_square_leader m3s",tall:"french_leader t3s"}, +{faction:"french",type:"leader",name:"Lévis",initiative:2,command:5,tactics:1,movement:6,log_name:"Lévis",desc:"2-5-1 Lévis",square:"french_square_leader m6s",tall:"french_leader t6s"}, +{faction:"french",type:"leader",name:"Vaudreuil",initiative:3,command:5,tactics:0,movement:6,log_name:"Vaudreuil",desc:"3-5-0 Vaudreuil",square:"french_square_leader m9s",tall:"french_leader t9s"}, +{faction:"french",type:"leader",name:"Drucour",initiative:2,command:4,tactics:1,movement:6,log_name:"Drucour",desc:"2-4-1 Drucour",square:"french_square_leader m4s",tall:"french_leader t4s"}, +{faction:"french",type:"leader",name:"Rigaud",initiative:2,command:4,tactics:0,movement:6,log_name:"Rigaud",desc:"2-4-0 Rigaud",square:"french_square_leader m8s",tall:"french_leader t8s"}, +{faction:"french",type:"leader",name:"Villiers",initiative:2,command:3,tactics:1,movement:6,log_name:"Villiers",desc:"2-3-1 Villiers",square:"french_square_leader m10s",tall:"french_leader t10s"}, +{faction:"french",type:"leader",name:"Bougainville",initiative:1,command:3,tactics:0,movement:6,log_name:"Bougainville",desc:"1-3-0 Bougainville",square:"french_square_leader m2s",tall:"french_leader t2s"}, +{faction:"french",type:"leader",name:"Beaujeu",initiative:1,command:2,tactics:1,movement:6,log_name:"Beaujeu",desc:"1-2-1 Beaujeu",square:"french_square_leader m1s",tall:"french_leader t1s"}, +{faction:"french",type:"leader",name:"Dumas",initiative:1,command:2,tactics:1,movement:6,log_name:"Dumas",desc:"1-2-1 Dumas",square:"french_square_leader m5s",tall:"french_leader t5s"}, +{faction:"french",type:"indian",subtype:"blue-orange",name:"Huron",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Huron",rdesc:"0-6 Huron",counter:"french_indian_blue_orange c1"}, +{faction:"french",type:"indian",subtype:"blue-orange",name:"Ojibwa",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Ojibwa",rdesc:"0-6 Ojibwa",counter:"french_indian_blue_orange c2"}, +{faction:"french",type:"indian",subtype:"blue-orange",name:"Ottawa",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Ottawa",rdesc:"0-6 Ottawa",counter:"french_indian_blue_orange c3"}, +{faction:"french",type:"indian",subtype:"blue-orange",name:"Potawatomi",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Potawatomi",rdesc:"0-6 Potawatomi",counter:"french_indian_blue_orange c4"}, +{faction:"french",type:"indian",subtype:"blue",name:"Abenaki",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Abenaki",rdesc:"0-6 Abenaki",counter:"french_indian_blue c1"}, +{faction:"french",type:"indian",subtype:"blue",name:"Abenaki",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Abenaki",rdesc:"0-6 Abenaki",counter:"french_indian_blue c2"}, +{faction:"french",type:"indian",subtype:"blue",name:"Algonquin",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Algonquin",rdesc:"0-6 Algonquin",counter:"french_indian_blue c3"}, +{faction:"french",type:"indian",subtype:"blue",name:"Algonquin",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Algonquin",rdesc:"0-6 Algonquin",counter:"french_indian_blue c4"}, +{faction:"french",type:"indian",subtype:"blue",name:"Caughnawaga",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Caughnawaga",rdesc:"0-6 Caughnawaga",counter:"french_indian_blue c5"}, +{faction:"french",type:"indian",subtype:"blue",name:"Caughnawaga",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Caughnawaga",rdesc:"0-6 Caughnawaga",counter:"french_indian_blue c6"}, +{faction:"french",type:"indian",subtype:"blue",name:"Mississauga",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Mississauga",rdesc:"0-6 Mississauga",counter:"french_indian_blue c7"}, +{faction:"french",type:"indian",subtype:"gray",name:"Cayuga",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Cayuga",rdesc:"0-6 Cayuga",counter:"french_indian_gray c1"}, +{faction:"french",type:"indian",subtype:"gray",name:"Oneida",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Oneida",rdesc:"0-6 Oneida",counter:"french_indian_gray c2"}, +{faction:"french",type:"indian",subtype:"gray",name:"Onondaga",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Onondaga",rdesc:"0-6 Onondaga",counter:"french_indian_gray c3"}, +{faction:"french",type:"indian",subtype:"gray",name:"Seneca",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Seneca",rdesc:"0-6 Seneca",counter:"french_indian_gray c4"}, +{faction:"french",type:"indian",subtype:"gray",name:"Tuscarora",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Tuscarora",rdesc:"0-6 Tuscarora",counter:"french_indian_gray c5"}, +{faction:"french",type:"indian",subtype:"orange",name:"Delaware",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Delaware",rdesc:"0-6 Delaware",counter:"french_indian_orange c1"}, +{faction:"french",type:"indian",subtype:"orange",name:"Delaware",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Delaware",rdesc:"0-6 Delaware",counter:"french_indian_orange c2"}, +{faction:"french",type:"indian",subtype:"orange",name:"Mingo",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Mingo",rdesc:"0-6 Mingo",counter:"french_indian_orange c3"}, +{faction:"french",type:"indian",subtype:"orange",name:"Mingo",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Mingo",rdesc:"0-6 Mingo",counter:"french_indian_orange c4"}, +{faction:"french",type:"indian",subtype:"orange",name:"Shawnee",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Shawnee",rdesc:"0-6 Shawnee",counter:"french_indian_orange c5"}, +{faction:"french",type:"indian",subtype:"orange",name:"Shawnee",strength:1,reduced_strength:0,movement:6,log_name:"indians",desc:"1-6 Shawnee",rdesc:"0-6 Shawnee",counter:"french_indian_orange c6"}, +{faction:"french",type:"coureurs",name:"Boishébert Acadian",strength:1,reduced_strength:0,movement:6,log_name:"coureurs",desc:"1-6 coureurs",rdesc:"0-6 coureurs",counter:"french_coureurs c1"}, +{faction:"french",type:"coureurs",name:"Joncaire",strength:1,reduced_strength:0,movement:6,log_name:"coureurs",desc:"1-6 coureurs",rdesc:"0-6 coureurs",counter:"french_coureurs c2"}, +{faction:"french",type:"coureurs",name:"Langlade",strength:1,reduced_strength:0,movement:6,log_name:"coureurs",desc:"1-6 coureurs",rdesc:"0-6 coureurs",counter:"french_coureurs c3"}, +{faction:"french",type:"coureurs",name:"Ligneris",strength:1,reduced_strength:0,movement:6,log_name:"coureurs",desc:"1-6 coureurs",rdesc:"0-6 coureurs",counter:"french_coureurs c4"}, +{faction:"french",type:"coureurs",name:"Léry",strength:1,reduced_strength:0,movement:6,log_name:"coureurs",desc:"1-6 coureurs",rdesc:"0-6 coureurs",counter:"french_coureurs c5"}, +{faction:"french",type:"coureurs",name:"Marin",strength:1,reduced_strength:0,movement:6,log_name:"coureurs",desc:"1-6 coureurs",rdesc:"0-6 coureurs",counter:"french_coureurs c6"}, +{faction:"french",type:"coureurs",name:"Perière",strength:1,reduced_strength:0,movement:6,log_name:"coureurs",desc:"1-6 coureurs",rdesc:"0-6 coureurs",counter:"french_coureurs c7"}, +{faction:"french",type:"coureurs",name:"Repentigny",strength:1,reduced_strength:0,movement:6,log_name:"coureurs",desc:"1-6 coureurs",rdesc:"0-6 coureurs",counter:"french_coureurs c8"}, +{faction:"french",type:"marine detachment",name:"Marine Detachment",strength:1,reduced_strength:0,movement:4,log_name:"marine detachments",desc:"1-4 marine detachment",rdesc:"0-4 marine detachment",counter:"french_marine_detachment m1"}, +{faction:"french",type:"marine detachment",name:"Marine Detachment",strength:1,reduced_strength:0,movement:4,log_name:"marine detachments",desc:"1-4 marine detachment",rdesc:"0-4 marine detachment",counter:"french_marine_detachment m1"}, +{faction:"french",type:"marine detachment",name:"Marine Detachment",strength:1,reduced_strength:0,movement:4,log_name:"marine detachments",desc:"1-4 marine detachment",rdesc:"0-4 marine detachment",counter:"french_marine_detachment m1"}, +{faction:"french",type:"marine detachment",name:"Marine Detachment",strength:1,reduced_strength:0,movement:4,log_name:"marine detachments",desc:"1-4 marine detachment",rdesc:"0-4 marine detachment",counter:"french_marine_detachment m1"}, +{faction:"french",type:"marine detachment",name:"Marine Detachment",strength:1,reduced_strength:0,movement:4,log_name:"marine detachments",desc:"1-4 marine detachment",rdesc:"0-4 marine detachment",counter:"french_marine_detachment m1"}, +{faction:"french",type:"marine detachment",name:"Marine Detachment",strength:1,reduced_strength:0,movement:4,log_name:"marine detachments",desc:"1-4 marine detachment",rdesc:"0-4 marine detachment",counter:"french_marine_detachment m1"}, +{faction:"french",type:"marine detachment",name:"Marine Detachment",strength:1,reduced_strength:0,movement:4,log_name:"marine detachments",desc:"1-4 marine detachment",rdesc:"0-4 marine detachment",counter:"french_marine_detachment m1"}, +{faction:"french",type:"regular",name:"2/Berry",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m1"}, +{faction:"french",type:"regular",name:"3/Berry",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m2"}, +{faction:"french",type:"regular",name:"Artois",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m3"}, +{faction:"french",type:"regular",name:"Bourgogne",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m4"}, +{faction:"french",type:"regular",name:"Béarn",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m5"}, +{faction:"french",type:"regular",name:"Cambis",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m6"}, +{faction:"french",type:"regular",name:"Guyenne",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m7"}, +{faction:"french",type:"regular",name:"La Reine",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m8"}, +{faction:"french",type:"regular",name:"La Sarre",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m9"}, +{faction:"french",type:"regular",name:"Languedoc",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m10"}, +{faction:"french",type:"regular",name:"Marine",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m11"}, +{faction:"french",type:"regular",name:"Marine",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m11"}, +{faction:"french",type:"regular",name:"Royal Roussillon",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m12"}, +{faction:"french",type:"regular",name:"V. Étrangers",strength:3,reduced_strength:2,movement:4,log_name:"regulars",desc:"3-4 regular",rdesc:"2-4 regular",counter:"french_regular m13"}, +{faction:"french",type:"militia",name:"Canadian Militia",strength:1,reduced_strength:1,movement:0,log_name:"militia",desc:"1-0 militia",rdesc:"1-0 militia",counter:"french_militia m1"}, +{faction:"french",type:"militia",name:"Canadian Militia",strength:1,reduced_strength:1,movement:0,log_name:"militia",desc:"1-0 militia",rdesc:"1-0 militia",counter:"french_militia m1"}, +{faction:"french",type:"militia",name:"Canadian Militia",strength:1,reduced_strength:1,movement:0,log_name:"militia",desc:"1-0 militia",rdesc:"1-0 militia",counter:"french_militia m1"}, +{faction:"french",type:"militia",name:"Canadian Militia",strength:1,reduced_strength:1,movement:0,log_name:"militia",desc:"1-0 militia",rdesc:"1-0 militia",counter:"french_militia m1"} ] const spaces = diff --git a/die_black_pips.svg b/die_black_pips.svg new file mode 100644 index 0000000..d641f28 --- /dev/null +++ b/die_black_pips.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/die_white_pips.svg b/die_white_pips.svg new file mode 100644 index 0000000..efc864b --- /dev/null +++ b/die_white_pips.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mountain-tip.svg b/mountain-tip.svg index 3dd60fa..6582d4b 100644 --- a/mountain-tip.svg +++ b/mountain-tip.svg @@ -2,7 +2,7 @@ diff --git a/play.css b/play.css index 95fbdfe..badc1e4 100644 --- a/play.css +++ b/play.css @@ -32,11 +32,11 @@ aside { min-width: 220px; } #log .tip { color: blue; } #log .tip:hover { text-decoration: underline; } #log .spacetip:hover { text-decoration: underline; cursor: pointer; } +#log .piecetip:hover { text-decoration: underline; cursor: pointer; } -#log .indent { - padding-left: 12px; - text-indent: -12px; -} +#log div { padding-left: 20px; text-indent: -12px; } +#log div.i { padding-left: 32px; text-indent: -12px; } +#log div.ii { padding-left: 44px; text-indent: -12px; } #turn_info { position: relative; @@ -48,6 +48,39 @@ aside { min-width: 220px; } bottom: 3px; } +#log .number { + display: inline-block; + margin: 0; + text-indent: 0; + text-align: center; + width: 12px; + height: 12px; + line-height: 12px; + border: 1px solid #444; +} +#log .number.br { background-color: hsl(15, 90%, 75%); } +#log .number.fr { background-color: hsl(211, 50%, 75%); } + +#log .dice { + display: inline-block; + vertical-align: -3px; + width: 12px; + height: 12px; + background-size: 600% 100%; + background-repeat: no-repeat; + background-image: url(die_black_pips.svg); + background-color: white; + border: 1px solid black; +} + +.d0 { background-position: -100% 0 } +.d1 { background-position: 0% 0; } +.d2 { background-position: 20% 0; } +.d3 { background-position: 40% 0; } +.d4 { background-position: 60% 0; } +.d5 { background-position: 80% 0; } +.d6 { background-position: 100% 0; } + /* CARDS */ .hand { @@ -115,7 +148,6 @@ aside { min-width: 220px; } } #tooltip { - display: none; pointer-events: none; position: fixed; z-index: 600; @@ -123,9 +155,8 @@ aside { min-width: 220px; } top: 60px; } -#tooltip.show { - display: block; -} +body.flat #tooltip.leader { box-shadow: 1px 1px 5px rgba(0,0,0,0.5); } +body.bevel #tooltip.leader { box-shadow: 0 0 0 1px black, 1px 1px 5px rgba(0,0,0,0.5); } @media (max-width: 800px) { #tooltip { @@ -328,10 +359,13 @@ body.shift .cultivated.highlight box-shadow: inset 0 0 0 2px red, inset 0 0 3px 2px black, 0 0 3px black; } .wilderness.tip, .cultivated.tip, .box.tip, .militia-box.tip { - border-color: white; + border-color: lime; box-shadow: 0 0 3px black, inset 0 0 3px black; z-index: 100; } +.leader.tip, .unit.tip { + box-shadow: 0 0 0 1px #222, 0 0 0 4px lime !important; +} .wilderness.french_supply, .cultivated.french_supply, .box.french_supply { border-width: 6px; diff --git a/play.html b/play.html index 6173314..6c1ea40 100644 --- a/play.html +++ b/play.html @@ -16,7 +16,7 @@ -
+
  • CARD diff --git a/play.js b/play.js index 16754e4..4e1d9d7 100644 --- a/play.js +++ b/play.js @@ -244,21 +244,21 @@ function print(x) { } function on_focus_card_tip(card_number) { - document.getElementById("tooltip").className = "card show card_" + card_number + ui.tooltip.className = "card show card_" + card_number } function on_blur_card_tip() { - document.getElementById("tooltip").classList = "card" + ui.tooltip.classList = "hide" } function on_focus_last_card() { if (typeof view.last_card === 'number') { - document.getElementById("tooltip").className = "card show card_" + view.last_card + ui.tooltip.className = "card show card_" + view.last_card } } function on_blur_last_card() { - document.getElementById("tooltip").classList = "card" + ui.tooltip.classList = "card" } function on_focus_pa_marker() { @@ -298,6 +298,25 @@ function on_click_space_tip(s) { scroll_into_view(ui.space_list[s]) } +function on_focus_piece_tip(p) { + pieces[p].element.classList.add("tip") + if (is_leader(p)) { + let leader = pieces[p] + ui.tooltip.className = "leader " + leader.faction + " " + leader.tall + } +} + +function on_blur_piece_tip(p) { + pieces[p].element.classList.remove("tip") + ui.tooltip.className = "hide" +} + +function on_click_piece_tip(p) { + scroll_into_view(pieces[p].element) +} + +// LOG + function on_log_line(text, cn) { let p = document.createElement("div") if (cn) p.className = cn @@ -311,14 +330,48 @@ function sub_space_name(match, p1, offset, string) { return `${n}` } +function sub_piece_name(match, p1, offset, string) { + let p = p1 | 0 + let n = pieces[p].log_name + return `${n}` +} + +function sub_card_name(match, p1, offset, string) { + let c = p1 | 0 + let n = `(${cards[c].activation}) ${cards[c].name}` + return `${n}` +} + +const ICONS = { + D0: '', + D1: '', + D2: '', + D3: '', + D4: '', + D5: '', + D6: '', + RB0: '0', + RB1: '1', + RB2: '2', + RF0: '0', + RF1: '1', + RF2: '2', +} + +function sub_icon(match) { + return ICONS[match] +} + function on_log(text) { let p = document.createElement("div") - text = text.replace(/&/g, "&") - text = text.replace(//g, ">") - text = text.replace(/#(\d+)[^\]]*\]/g, - '$&') - text = text.replace(/%(\d+)/g, sub_space_name) + if (text.startsWith(">>")) { + p.className = "ii" + text = text.substring(2) + } + if (text.startsWith(">")) { + p.className = "i" + text = text.substring(1) + } if (text.match(/^\.h1/)) { text = text.substring(4) @@ -358,14 +411,19 @@ function on_log(text) { p.className = 'b' } - if (text.indexOf("\n") < 0) { - p.innerHTML = text - } else { - text = text.split("\n") - p.appendChild(on_log_line(text[0])) - for (let i = 1; i < text.length; ++i) - p.appendChild(on_log_line(text[i], "indent")) - } + text = text.replace(/&/g, "&") + text = text.replace(//g, ">") + text = text.replace(/#(\d+)[^\]]*\]/g, + '$&') + text = text.replace(/C(\d+)/g, sub_card_name) + text = text.replace(/P(\d+)/g, sub_piece_name) + text = text.replace(/%(\d+)/g, sub_space_name) + text = text.replace(/\bD\d\b/g, match => ICONS[match]) + text = text.replace(/\bR[BF]\d\b/g, match => ICONS[match]) + + p.innerHTML = text + return p } @@ -402,6 +460,7 @@ function on_reply(q, params) { let ui = { map: document.getElementById("map"), + tooltip: document.getElementById("tooltip"), status: document.getElementById("status"), spaces: document.getElementById("spaces"), markers: document.getElementById("markers"), @@ -1081,8 +1140,8 @@ const MINX = 15 const MINY = 15 const MAXX = 2550 - 15 -// TODO: two or more columns/rows if too many pieces in stack -// TODO: separate layout for leader and militia boxes +// todo: two or more columns/rows if too many pieces in stack +// todo: separate layout for leader and militia boxes function layout_stack(stack, x, y, dx) { let dim = style_dims[style] -- cgit v1.2.3