It might make logical sense. Honestly, I'm just tired of the code for World being so long.
106 lines
6.0 KiB
Python
106 lines
6.0 KiB
Python
from collections import defaultdict
|
|
|
|
from aoe.types import *
|
|
from aoe.exceptions import *
|
|
|
|
|
|
|
|
class Production():
|
|
|
|
|
|
def check_production(self, world, thing):
|
|
building = self.building[thing]
|
|
if world.production_available[building] < 1:
|
|
raise ProductionBuildingNotAvailableException
|
|
|
|
|
|
# assumes for now each unit can be built in only one type of building
|
|
def __init__(self):
|
|
self.building = defaultdict(None, {
|
|
Units.VILLAGER: Buildings.TOWNCENTER,
|
|
Units.TRADECART: Buildings.MARKET,
|
|
Units.SPEARMAN: Buildings.BARRACKS,
|
|
Units.MILITIA: Buildings.BARRACKS,
|
|
Units.SCOUT: Buildings.STABLE,
|
|
Units.KNIGHT: Buildings.STABLE,
|
|
Units.SKIRMISHER: Buildings.ARCHERYRANGE,
|
|
Units.ARCHER: Buildings.ARCHERYRANGE,
|
|
Research.TOWNWATCH: Buildings.TOWNCENTER,
|
|
Research.TOWNPATROL: Buildings.TOWNCENTER,
|
|
Research.TREADMILLCRANE: Buildings.UNIVERSITY,
|
|
Research.MASONRY: Buildings.UNIVERSITY,
|
|
Research.ARCHITECTURE: Buildings.UNIVERSITY,
|
|
Research.HOARDINGS: Buildings.CASTLE,
|
|
Research.CONSCRIPTION: Buildings.CASTLE,
|
|
Research.WHEELBARROW: Buildings.TOWNCENTER,
|
|
Research.HANDCART: Buildings.TOWNCENTER,
|
|
Research.DOUBLEBITAXE: Buildings.LUMBERCAMP,
|
|
Research.BOWSAW: Buildings.LUMBERCAMP,
|
|
Research.TWOMANSAW: Buildings.LUMBERCAMP,
|
|
Research.HORSECOLLAR: Buildings.MILL,
|
|
Research.HEAVYPLOW: Buildings.MILL,
|
|
Research.CROPROTATION: Buildings.MILL,
|
|
Research.GOLDMINING: Buildings.MININGCAMP,
|
|
Research.GOLDSHAFTMINING: Buildings.MININGCAMP,
|
|
Research.STONEMINING: Buildings.MININGCAMP,
|
|
Research.STONESHAFTMINING: Buildings.MININGCAMP,
|
|
Research.CARAVAN: Buildings.MARKET,
|
|
Research.COINAGE: Buildings.MARKET,
|
|
Research.BANKING: Buildings.MARKET,
|
|
Research.GUILDS: Buildings.MARKET,
|
|
Research.FISHINGLINES: Buildings.DOCK,
|
|
Research.GILLNETS: Buildings.DOCK,
|
|
Research.DOMESTICATION: Buildings.MILL,
|
|
Research.PASTORALISM: Buildings.MILL,
|
|
Research.TRANSHUMANCE: Buildings.MILL,
|
|
Research.REDEMPTION: Buildings.MONASTERY,
|
|
Research.ATONEMENT: Buildings.MONASTERY,
|
|
Research.HERBALMEDICINE: Buildings.MONASTERY,
|
|
Research.HERESY: Buildings.MONASTERY,
|
|
Research.SANCTITY: Buildings.MONASTERY,
|
|
Research.FERVOR: Buildings.MONASTERY,
|
|
Research.DEVOTION: Buildings.MONASTERY,
|
|
Research.FAITH: Buildings.MONASTERY,
|
|
Research.ILLUMINATION: Buildings.MONASTERY,
|
|
Research.BLOCKPRINTING: Buildings.MONASTERY,
|
|
Research.THEOCRACY: Buildings.MONASTERY,
|
|
Research.ARSON: Buildings.BARRACKS,
|
|
Research.GAMBESONS: Buildings.BARRACKS,
|
|
Research.SQUIRES: Buildings.BARRACKS,
|
|
Research.FORGING: Buildings.BLACKSMITH,
|
|
Research.IRONCASTING: Buildings.BLACKSMITH,
|
|
Research.BLASTFURNACE: Buildings.BLACKSMITH,
|
|
Research.SCALEMAILARMOR: Buildings.BLACKSMITH,
|
|
Research.CHAINMAILARMOR: Buildings.BLACKSMITH,
|
|
Research.PLATEMAILARMOR: Buildings.BLACKSMITH,
|
|
Research.THUMBRING: Buildings.ARCHERYRANGE,
|
|
Research.PARTHIANTACTICS: Buildings.ARCHERYRANGE,
|
|
Research.FLETCHING: Buildings.BLACKSMITH,
|
|
Research.BODKINARROW: Buildings.BLACKSMITH,
|
|
Research.BRACER: Buildings.BLACKSMITH,
|
|
Research.PADDEDARCHERARMOR: Buildings.BLACKSMITH,
|
|
Research.LEATHERARCHERARMOR: Buildings.BLACKSMITH,
|
|
Research.RINGARCHERARMOR: Buildings.BLACKSMITH,
|
|
Research.BALLISTICS: Buildings.UNIVERSITY,
|
|
Research.HEATEDSHOT: Buildings.UNIVERSITY,
|
|
Research.MURDERHOLES: Buildings.UNIVERSITY,
|
|
Research.ARROWSLITS: Buildings.UNIVERSITY,
|
|
Research.CHEMISTRY: Buildings.UNIVERSITY,
|
|
Research.SIEGEENGINEERS: Buildings.UNIVERSITY,
|
|
Research.BLOODLINES: Buildings.STABLE,
|
|
Research.HUSBANDRY: Buildings.STABLE,
|
|
Research.SCALEBARDINGARMOR: Buildings.BLACKSMITH,
|
|
Research.CHAINBARDINGARMOR: Buildings.BLACKSMITH,
|
|
Research.PLATEBARDINGARMOR: Buildings.BLACKSMITH,
|
|
Research.CAREENING: Buildings.UNIVERSITY,
|
|
Research.DRYDOCK: Buildings.UNIVERSITY,
|
|
Research.SHIPWRIGHT: Buildings.UNIVERSITY,
|
|
Research.CLINKERCONSTRUCTION: Buildings.UNIVERSITY,
|
|
Research.CARVELHULL: Buildings.UNIVERSITY,
|
|
Research.SIPHONS: Buildings.UNIVERSITY,
|
|
Research.INCENDIARIES: Buildings.UNIVERSITY,
|
|
Research.LOOM: Buildings.TOWNCENTER,
|
|
Research.SAPPERS: Buildings.CASTLE,
|
|
Research.BOMBARDTOWER: Buildings.UNIVERSITY,
|
|
})
|