class Country(Land): default_name = "country of {}{}" name_parts = [ Thing.list_factory([ "Li", "Arme", "Le", "Molda", "Slove", "Tur", "Afgha", "Alba", "Alge", "Tu", "Fran", "Baha", "Su", "Austra", "Germa", "In", "Ara", "Austri", "Be", "Ba", "Bra", "Ru", "Chi", "Ja", "Tai", "Bangla", "Gha", "Bou", "Bo", "Tas", "Ze", "Mon", "Mo", "Ne", "Neder", "Spai", "Portu", "Po", "Por", "Mol", "Bul", "Bru", "Bur", "Gro", "Syl", "Gui", "Da", "Gree", "Bri", "Ita" ]), Thing.list_factory([ "ly", "dania", "mas", "vania", "ce", "nea", "nau", "topia", "garia", "gal", "laska", "golia", "nisia", "land", "snia", "livia", "mania", "than", "nin", "pan", "wan", "zil", "ssia", "na", "rein", "lgium", "bia", "ny", "ce", "stan", "distan", "nistan", "dan", "lia", "nia", "via", "sia", "tia", "key", "desh", "dia", ]), ]
def children_data(cls): yield dummy.Door.multiple_factory(1, 4) yield dummy.Window.multiple_factory(0, 6) yield Thing.list_factory([ MedievalWall.multiple_factory(4), MedievalWall.multiple_factory(4, 8), ])
class AncientLand(Land): default_name = "{} land" biome_types = Thing.list_factory([ "hilly", "rainy", "lush", "foggy", "desertic", "green", "tropical", "rich", "barren", "scorched", ]) @classmethod def generate_name(cls): return cls.default_name.format(cls.biome_types.generate()) @classmethod def region_factory(cls): yield from [] @classmethod def battlefield_factory(cls): yield from [] @classmethod def biome_factory(cls): yield from AncientBiome.children_data()
class Region(Thing): default_name = "{}{} region" directions = Thing.list_factory([ "north ", "east ", "south ", "west ", "north-west ", "north-east ", "south-west ", "south-east ", "center ", "oversea ", ]) biome_types = Thing.list_factory([ "hilly", "rainy", "lush", "foggy", "desertic", "green", "tropical", "rich", "barren", "scorched", ]) @classmethod def children_data(cls): yield town.Capital yield town.City.multiple_factory(1, 10) yield town.Village.multiple_factory(2, 15) @property def capital(self): return self.find_one(town.Capital) @property def cities(self): return self.find(town.City) @property def villages(self): return self.find(town.Village)
class AncientBiome(Biome): forest_types = Thing.list_factory([ dummy.AncientForest.multiple_factory(0, 4), dummy.AncientJungle.multiple_factory(0, 4), ]) @classmethod def children_data(cls): yield dummy.AncientPlain.multiple_factory(1, 10) yield cls.forest_types.generate() yield Mountain.multiple_factory(0, 3)
class Biome(Thing): default_name = "biome" forest_types = Thing.list_factory([ dummy.Forest.multiple_factory(0, 4), dummy.Jungle.multiple_factory(0, 4), ]) @classmethod def children_data(cls): yield dummy.Plain.multiple_factory(1, 5) yield cls.forest_types.next() yield dummy.Mountain.multiple_factory(0, 3)
class MedievalRegion(Region): default_name = "{} {}" biome_types = Thing.list_factory([ "hilly", "rainy", "lush", "foggy", "desertic", "green", "tropical", "rich", "barren", "scorched" ]) region_types = Thing.list_factory( ["shire", "province", "county", "parish", "pale"]) @classmethod def generate_name(cls): return cls.default_name.format( cls.biome_types.next(), cls.region_types.next(), ) @classmethod def children_data(cls): yield town.MedievalCapital yield town.MedievalVillage.multiple_factory(2, 6) yield dummy.Dungeon.probable_factory(15) yield dummy.Dungeon.probable_factory(5)
class MedievalTemple(MedievalRoom): default_name = "{} {} {}" temple_types = Thing.list_factory([ "temple of the", "church of the", "chapel of the", "house of the", "abbey of the", "cathedral of the", "shrine of the", "sanctuary of the", "priory of the", ]) deity_epithets = Thing.list_factory([ "blinding", "sacred", "holy", "unholy", "bloody", "cursed", "marvellous", "wondrous", "pious", "miraculous", "endless", "unending", "undying", "infinite", "unworldly", "worldly", "divine", "demonic", "ghostly", "monstrous", "tentacled", "all-knowing", "rational", "pretty good", "vengeful", "hallowed" ]) temple_deities = Thing.list_factory([ "light", "star", "beam", "sphere", "goddess", "god", "lords", "sisterhood", "brotherhood", "skies", "pact", "sect", "harmony", "discord", "child", "entity", "ghost", "builders", "makers", "guide", "wit", "story", "tale", "unicorn", "flame", "fountain", "locust", "squid", "gembaby", "father", "mother", ]) @classmethod def generate_name(cls): return cls.default_name.format( cls.temple_types.next(), cls.deity_epithets.next(), cls.temple_deities.next(), ) @classmethod def children_data(cls): yield dummy.MedievalPriest.multiple_factory(1, 3) yield dummy.MedievalNoble.multiple_factory(0, 2) yield dummy.MedievalPeasant.multiple_factory(0, 4) yield dummy.MedievalAltar.multiple_factory(1, 2) yield dummy.MedievalTable.probable_factory(70) yield dummy.MedievalBench.multiple_factory(2, 6) yield dummy.MedievalChair.multiple_factory(1, 3) yield dummy.MedievalChest.multiple_factory(1, 4) yield dummy.MedievalClutter.multiple_factory(0, 4) yield MedievalFireplace.probable_factory(20) yield from MedievalRoom.children_data()
class MedievalMonument(Thing): monument_types = Thing.list_factory([ "fountain", "memorial", "statue", "well", "altar", ]) @classmethod def generate_name(cls): return cls.monument_types.next() @classmethod def children_data(cls): yield Thing.list_factory([ dummy.Stone, dummy.Dirt, ])
class MedievalHouse(MedievalBuilding): house_types = Thing.list_factory([ "a small", "a large", "a big", "a cozy", "a bland", "a boring", "an old", "a new", "a freshly-painted", "a pretty", "an old-fashioned", "a creepy", "a spooky", "a gloomy", "a tall", "a tiny", "a fine", "a happy little", ]) default_name = "{} hovel" @classmethod def generate_name(cls): return cls.default_name.format(cls.house_types.next()) @classmethod def children_data(cls): yield MedievalLivingQuarters yield MedievalBedroom yield MedievalBedroom.probable_factory(50) yield from MedievalBuilding.children_data()
def children_data(cls): yield Thing.list_factory([ dummy.Stone, dummy.Dirt, ])
def children_data(cls): yield Thing.list_factory([ dummy.Dragon, dummy.SeaMonster, ])
class MedievalLand(Land): default_name = "{} of {}{}{}{}{}{}" land_types = Thing.list_factory(["realm", "kingdom", "empire", "dominion"]) land_name_parts = [ Thing.list_factory([ "G", "P", "S", "St", "Sh", "B", "F", "K", "Z", "Az", "Oz", ]), Thing.list_factory([ "", "", "", "r", "l", ]), Thing.list_factory([ "u", "o", "a", "e", ]), Thing.list_factory([ "r", "sh", "nd", "st", "sd", "kl", "kt", "pl", "fr", "ck", "sh", "ff", "gg", "l", "lig", "rag", "sha", "pta", "lir", "limd", "lim", "shim", "stel", ]), Thing.list_factory([ "i", "u", "o", "oo", "e", "ee", "y", "a", ]), Thing.list_factory([ "ll", "th", "h", "k", "lm", "r", "g", "gh", "n", "m", "p", "s", "rg", "lg", ]), ] @classmethod def generate_name(cls): return cls.default_name.format( cls.land_types.next(), cls.land_name_parts[0].next(), cls.land_name_parts[1].next(), cls.land_name_parts[2].next(), cls.land_name_parts[3].next(), cls.land_name_parts[4].next(), cls.land_name_parts[5].next(), ) @classmethod def region_factory(cls): yield MedievalRegion.multiple_factory(1, 10) @classmethod def battlefield_factory(cls): yield dummy.MedievalBattlefield.probable_factory(10)
class ModernContinent(Continent): default_name = "continent of {}{}" name_parts = [ Thing.list_factory([ "A", "Eu", "Ame", "Ocea", "Anta", "Atla", ]), Thing.list_factory([ "frica", "rtica", "ropa", "rica", "nia", "sia", "ntide", ]), Thing.list_factory([ "Eu", "A", "O", "E", ]), Thing.list_factory([ "rt", "lt", "rm", "t", "tr", "tl", "str", "s", "m", "fr", ]), Thing.list_factory([ "a", "o", "e", "i", ]), Thing.list_factory([ "ri", "ni", "ti", "fri", "", "", ]), Thing.list_factory([ "sia", "nia", "ca", ]), ] @classmethod def generate_name(cls): return cls.default_name.format( cls.name_parts[0].generate(), cls.name_parts[1].generate(), )