Merge branch 'main' into movablepanes

This commit is contained in:
Ryan
2026-03-21 23:14:23 +00:00
committed by GitHub
32 changed files with 569 additions and 33 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

@@ -0,0 +1,13 @@
{
"name": "Tourney1",
"nations": [
{
"coordinates": [177, 510],
"name": "Left"
},
{
"coordinates": [847, 511],
"name": "Right"
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

@@ -0,0 +1,17 @@
{
"name": "Tourney2",
"nations": [
{
"coordinates": [339, 987],
"name": "South West"
},
{
"coordinates": [1162, 990],
"name": "South East"
},
{
"coordinates": [750, 278],
"name": "North"
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

@@ -0,0 +1,21 @@
{
"name": "Tourney3",
"nations": [
{
"coordinates": [437, 410],
"name": "North West"
},
{
"coordinates": [1066, 408],
"name": "North East"
},
{
"coordinates": [433, 1088],
"name": "South West"
},
{
"coordinates": [1068, 1075],
"name": "South East"
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

@@ -0,0 +1,37 @@
{
"name": "Tourney4",
"nations": [
{
"coordinates": [568, 309],
"name": "North North West"
},
{
"coordinates": [308, 562],
"name": "West North West"
},
{
"coordinates": [945, 303],
"name": "North North East"
},
{
"coordinates": [1188, 556],
"name": "East North East"
},
{
"coordinates": [1196, 931],
"name": "East South East"
},
{
"coordinates": [941, 1178],
"name": "South South East"
},
{
"coordinates": [564, 1185],
"name": "South South West"
},
{
"coordinates": [315, 927],
"name": "West South West"
}
]
}
+4
View File
@@ -68,6 +68,10 @@ var maps = []struct {
{Name: "world"},
{Name: "lemnos"},
{Name: "twolakes"},
{Name: "tourney1"},
{Name: "tourney2"},
{Name: "tourney3"},
{Name: "tourney4"},
{Name: "thebox"},
{Name: "didier"},
{Name: "didierfrance"},
+5
View File
@@ -329,6 +329,10 @@
"svalmel": "Svalmel",
"manicouagan": "Manicouagan",
"lemnos": "Lemnos",
"tourney1": "Tourney 2 Teams",
"tourney2": "Tourney 3 Teams",
"tourney3": "Tourney 4 Teams",
"tourney4": "Tourney 8 Teams",
"passage": "Passage",
"sierpinski": "Sierpinski",
"thebox": "The Box",
@@ -352,6 +356,7 @@
"featured": "Featured",
"continental": "Continental",
"regional": "Regional",
"tournament": "Tournament",
"fantasy": "Other",
"special": "Special",
"arcade": "Arcade"
+28
View File
@@ -0,0 +1,28 @@
{
"map": {
"height": 1500,
"num_land_tiles": 984577,
"width": 1500
},
"map16x": {
"height": 375,
"num_land_tiles": 60237,
"width": 375
},
"map4x": {
"height": 750,
"num_land_tiles": 244567,
"width": 750
},
"name": "Tourney1",
"nations": [
{
"coordinates": [177, 510],
"name": "Left"
},
{
"coordinates": [847, 511],
"name": "Right"
}
]
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

+32
View File
@@ -0,0 +1,32 @@
{
"map": {
"height": 1500,
"num_land_tiles": 1024327,
"width": 1500
},
"map16x": {
"height": 375,
"num_land_tiles": 62691,
"width": 375
},
"map4x": {
"height": 750,
"num_land_tiles": 254300,
"width": 750
},
"name": "Tourney2",
"nations": [
{
"coordinates": [339, 987],
"name": "South West"
},
{
"coordinates": [1162, 990],
"name": "South East"
},
{
"coordinates": [750, 278],
"name": "North"
}
]
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

+36
View File
@@ -0,0 +1,36 @@
{
"map": {
"height": 1500,
"num_land_tiles": 1008007,
"width": 1500
},
"map16x": {
"height": 375,
"num_land_tiles": 61644,
"width": 375
},
"map4x": {
"height": 750,
"num_land_tiles": 250191,
"width": 750
},
"name": "Tourney3",
"nations": [
{
"coordinates": [437, 410],
"name": "North West"
},
{
"coordinates": [1066, 408],
"name": "North East"
},
{
"coordinates": [433, 1088],
"name": "South West"
},
{
"coordinates": [1068, 1075],
"name": "South East"
}
]
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

+52
View File
@@ -0,0 +1,52 @@
{
"map": {
"height": 1500,
"num_land_tiles": 905705,
"width": 1500
},
"map16x": {
"height": 375,
"num_land_tiles": 54860,
"width": 375
},
"map4x": {
"height": 750,
"num_land_tiles": 224342,
"width": 750
},
"name": "Tourney4",
"nations": [
{
"coordinates": [568, 309],
"name": "North North West"
},
{
"coordinates": [308, 562],
"name": "West North West"
},
{
"coordinates": [945, 303],
"name": "North North East"
},
{
"coordinates": [1188, 556],
"name": "East North East"
},
{
"coordinates": [1196, 931],
"name": "East South East"
},
{
"coordinates": [941, 1178],
"name": "South South East"
},
{
"coordinates": [564, 1185],
"name": "South South West"
},
{
"coordinates": [315, 927],
"name": "West South West"
}
]
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

+10
View File
@@ -120,6 +120,10 @@ export enum GameMapType {
Lisbon = "Lisbon",
Manicouagan = "Manicouagan",
Lemnos = "Lemnos",
Tourney1 = "Tourney 2 Teams",
Tourney2 = "Tourney 3 Teams",
Tourney3 = "Tourney 4 Teams",
Tourney4 = "Tourney 8 Teams",
Passage = "Passage",
Sierpinski = "Sierpinski",
TheBox = "The Box",
@@ -210,6 +214,12 @@ export const mapCategories: Record<string, GameMapType[]> = {
GameMapType.DidierFrance,
GameMapType.Sierpinski,
],
tournament: [
GameMapType.Tourney1,
GameMapType.Tourney2,
GameMapType.Tourney3,
GameMapType.Tourney4,
],
};
export enum GameType {
+302 -33
View File
@@ -199,6 +199,60 @@ const NAME_TEMPLATES: NameTemplate[] = [
["House of", PLURAL_NOUN],
["Certified Organic", NOUN],
["Unregulated", NOUN],
["Slightly Damp", NOUN],
["Suspiciously Quiet", PLURAL_NOUN],
["Weaponized", NOUN],
["Accidentally Evil", NOUN],
["Extremely Loud", PLURAL_NOUN],
["Bootleg", NOUN],
["Questionable", NOUN],
["Off-Brand", NOUN],
["Counterfeit", PLURAL_NOUN],
["Sentient", PLURAL_NOUN],
["Feral", PLURAL_NOUN],
["Aggressively Friendly", PLURAL_NOUN],
["Mildly Threatening", NOUN],
["Dangerously Cute", PLURAL_NOUN],
["Legally Distinct", NOUN],
["Deeply Confused", PLURAL_NOUN],
["Order of the", NOUN],
["Knights of the", NOUN],
["Cult of the", NOUN],
["League of", PLURAL_NOUN],
["Band of", PLURAL_NOUN],
["Council of", PLURAL_NOUN],
["Assembly of", PLURAL_NOUN],
["Haunted", NOUN],
["Cursed", NOUN],
["Blessed", NOUN],
["Radioactive", PLURAL_NOUN],
["Deep Fried", NOUN],
["Gluten Free", PLURAL_NOUN],
["Turbocharged", NOUN],
["Nomadic", PLURAL_NOUN],
["Vengeful", PLURAL_NOUN],
["Legendary", PLURAL_NOUN],
["Outlaw", PLURAL_NOUN],
["AFK", NOUN],
["Noob", NOUN],
["Pro", NOUN],
["Tryhard", PLURAL_NOUN],
["Sweaty", PLURAL_NOUN],
["Griefing", PLURAL_NOUN],
["Speedrunning", PLURAL_NOUN],
["Nerfed", PLURAL_NOUN],
["Buffed", PLURAL_NOUN],
["OP", NOUN],
["Overpowered", NOUN],
["Underpowered", PLURAL_NOUN],
["Modded", PLURAL_NOUN],
["Prestige", NOUN],
["Hardcore", PLURAL_NOUN],
["Clutch", NOUN],
["Cracked", NOUN],
["Unranked", PLURAL_NOUN],
["Max Level", NOUN],
["Ironman", NOUN],
[NOUN, "For Hire"],
[PLURAL_NOUN, "That Bite"],
@@ -224,6 +278,43 @@ const NAME_TEMPLATES: NameTemplate[] = [
[NOUN, "State"],
[NOUN, "Duchy"],
[NOUN, "Ocean"],
[NOUN, "Syndicate"],
[NOUN, "Republic"],
[NOUN, "Province"],
[NOUN, "Dominion"],
[NOUN, "Commune"],
[NOUN, "Federation"],
[NOUN, "Parliament"],
[NOUN, "Tribunal"],
[NOUN, "Armada"],
[NOUN, "Rebellion"],
[NOUN, "Resistance"],
[NOUN, "Expedition"],
[NOUN, "Preservation Society"],
[NOUN, "Defense League"],
[NOUN, "Thunderdome"],
[NOUN, "Uprising"],
[NOUN, "Enthusiasts"],
[NOUN, "Appreciation Society"],
[NOUN, "Fan Club"],
[NOUN, "Simulation"],
[PLURAL_NOUN, "Anonymous"],
[PLURAL_NOUN, "With Attitude"],
[PLURAL_NOUN, "Gone Wrong"],
[PLURAL_NOUN, "on Vacation"],
[PLURAL_NOUN, "in Disguise"],
[PLURAL_NOUN, "With Hats"],
[PLURAL_NOUN, "on Ice"],
[PLURAL_NOUN, "United"],
[PLURAL_NOUN, "Unhinged"],
[PLURAL_NOUN, "Unleashed"],
[PLURAL_NOUN, "Reloaded"],
[PLURAL_NOUN, "After Dark"],
[PLURAL_NOUN, "From Space"],
[PLURAL_NOUN, "of Doom"],
[PLURAL_NOUN, "Without Borders"],
[NOUN, "Meta"],
[PLURAL_NOUN, "OP Please Nerf"],
["Alternate", NOUN, "Universe"],
["Famous", NOUN, "Collection"],
@@ -237,50 +328,39 @@ const NAME_TEMPLATES: NameTemplate[] = [
["Quantum", NOUN, "Computer"],
["Hadron", NOUN, "Collider"],
["Large", NOUN, "Obliterator"],
["Interstellar", NOUN, "Cabal"],
["Interstellar", NOUN, "Army"],
["Interstellar", NOUN, "Pirates"],
["Interstellar", NOUN, "Dynasty"],
["Interstellar", NOUN, "Clan"],
["Galactic", NOUN, "Smugglers"],
["Galactic", NOUN, "Cabal"],
["Galactic", NOUN, "Alliance"],
["Galactic", NOUN, "Empire"],
["Galactic", NOUN, "Army"],
["Galactic", NOUN, "Crown"],
["Galactic", NOUN, "Pirates"],
["Galactic", NOUN, "Dynasty"],
["Galactic", NOUN, "Clan"],
["Alien", NOUN, "Army"],
["Alien", NOUN, "Cabal"],
["Alien", NOUN, "Alliance"],
["Alien", NOUN, "Empire"],
["Alien", NOUN, "Pirates"],
["Alien", NOUN, "Clan"],
["Grand", NOUN, "Empire"],
["Grand", NOUN, "Dynasty"],
["Grand", NOUN, "Army"],
["Grand", NOUN, "Cabal"],
["Grand", NOUN, "Alliance"],
["Royal", NOUN, "Army"],
["Royal", NOUN, "Cabal"],
["Royal", NOUN, "Empire"],
["Royal", NOUN, "Dynasty"],
["Holy", NOUN, "Dynasty"],
["Holy", NOUN, "Empire"],
["Holy", NOUN, "Alliance"],
["Eternal", NOUN, "Empire"],
["Eternal", NOUN, "Cabal"],
["Eternal", NOUN, "Alliance"],
["Eternal", NOUN, "Dynasty"],
["Invading", NOUN, "Cabal"],
["Invading", NOUN, "Empire"],
["Invading", NOUN, "Alliance"],
["Immortal", NOUN, "Pirates"],
["Shadow", NOUN, "Cabal"],
["Secret", NOUN, "Dynasty"],
["The Great", NOUN, "Army"],
["The", NOUN, "Matrix"],
["Tax-Free", NOUN, "Paradise"],
["Self-Proclaimed", NOUN, "Experts"],
["Forbidden", NOUN, "Zone"],
["Reluctant", NOUN, "Monarchy"],
["Chaotic", NOUN, "Collective"],
["Unsanctioned", NOUN, "Olympics"],
["The", NOUN, "Conspiracy"],
["The", NOUN, "Incident"],
["The", NOUN, "Situation"],
["Premium", NOUN, "Subscription"],
["Clearance", NOUN, "Warehouse"],
["Budget", NOUN, "Emporium"],
["Overnight", NOUN, "Delivery"],
["National", NOUN, "Reserve"],
["The", NOUN, "Dimension"],
["The", NOUN, "Prophecy"],
["The", NOUN, "Awakening"],
["The", NOUN, "Inquisition"],
["Legendary", NOUN, "Drop"],
["Elite", NOUN, "Squad"],
["The", NOUN, "Saga"],
];
const NOUNS = [
@@ -350,12 +430,201 @@ const NOUNS = [
"Burger",
"Tomato",
"Penguin",
"Waffle",
"Toaster",
"Hamster",
"Pretzel",
"Walrus",
"Raccoon",
"Llama",
"Noodle",
"Goblin",
"Muffin",
"Coconut",
"Biscuit",
"Cactus",
"Moose",
"Platypus",
"Yeti",
"Sponge",
"Spatula",
"Trampoline",
"Dolphin",
"Taco",
"Chainsaw",
"Spoon",
"Doorknob",
"Bathrobe",
"Lampshade",
"Crowbar",
"Shoelace",
"Wheelbarrow",
"Barnacle",
"Armadillo",
"Cabbage",
"Wig",
"Plunger",
"Kazoo",
"Napkin",
"Pelican",
"Turnip",
"Canoe",
"Igloo",
"Stapler",
"Ferret",
"Anchovy",
"Dumpling",
"Mattress",
"Parsnip",
"Gargoyle",
"Crayon",
"Corgi",
"Macaroni",
"Blender",
"Ukulele",
"Flamingo",
"Nugget",
"Porcupine",
"Tadpole",
"Papaya",
"Chinchilla",
"Teapot",
"Baguette",
"Squid",
"Otter",
"Badger",
"Hedgehog",
"Mantis",
"Scorpion",
"Vulture",
"Falcon",
"Jackal",
"Hyena",
"Panther",
"Stingray",
"Octopus",
"Basilisk",
"Dragon",
"Sphinx",
"Phoenix",
"Kraken",
"Leviathan",
"Mammoth",
"Chimera",
"Griffin",
"Minotaur",
"Cyclops",
"Brick",
"Anvil",
"Torpedo",
"Lantern",
"Compass",
"Telescope",
"Pendulum",
"Furnace",
"Cauldron",
"Beacon",
"Anchor",
"Dagger",
"Gauntlet",
"Helmet",
"Shield",
"Banner",
"Trumpet",
"Bagpipe",
"Tambourine",
"Accordion",
"Xylophone",
"Avocado",
"Broccoli",
"Radish",
"Artichoke",
"Kumquat",
"Pomegranate",
"Mango",
"Truffle",
"Croissant",
"Lasagna",
"Soufflé",
"Spaghetti",
"Tsunami",
"Tornado",
"Avalanche",
"Volcano",
"Glacier",
"Comet",
"Meteor",
"Nebula",
"Supernova",
"Quasar",
"Abyss",
"Labyrinth",
"Caterpillar",
"Chameleon",
"Narwhal",
"Capybara",
"Pangolin",
"Axolotl",
"Sloth",
"Lemur",
"Alpaca",
"Tapir",
"Wombat",
"Ocelot",
"Manatee",
"Ibis",
"Kiwi",
"Creeper",
"Enderman",
"Skeleton",
"Necromancer",
"Paladin",
"Warlock",
"Ranger",
"Boss",
"NPC",
"Assassin",
"Viking",
"Samurai",
"Pirate",
"Champion",
"Gladiator",
"Demon",
"Angel",
"Fullsender",
"Fullsender",
"Fullsender",
"Mito",
"Mito",
"Mito",
"Mitochondria",
"Mitochondria",
"Mitochondria",
];
// Words from NOUNS that need irregular "-oes" plural
const O_TO_OES = new Set(["Potato", "Tomato"]);
const O_TO_OES = new Set(["Potato", "Tomato", "Volcano", "Torpedo"]);
// Words from NOUNS that need special plural forms
const SPECIAL_PLURALS = new Map([
["Cactus", "Cacti"],
["Platypus", "Platypuses"],
["Moose", "Moose"],
["Octopus", "Octopi"],
["Cyclops", "Cyclopes"],
["Samurai", "Samurai"],
["Fish", "Fish"],
["Salmon", "Salmon"],
["Cod", "Cod"],
["Enderman", "Endermen"],
["Mitochondria", "Mitochondria"],
]);
function pluralize(noun: string): string {
if (SPECIAL_PLURALS.has(noun)) {
return SPECIAL_PLURALS.get(noun)!;
}
if (
noun.endsWith("s") ||
noun.endsWith("ch") ||