Files
aoe2-resource-simulator/runner.py
2026-07-27 22:20:29 -04:00

70 lines
1.9 KiB
Python

from aoe.exceptions import *
from aoe.types import *
from aoe.gameplay import *
#import ipdb; breakpoint()
# for testing
# TODO need to go back through old tasks when new housing is added
# TODO wherever we test against Age, it's probably wrong
# TODO add building to production_available when finished
# TODO need some warning, penalty, etc. if villager is assigned to task
# without appropriate building (e.g., mining with no camp)
# TODO building time assumes just 1 vil is working for now
# TODO need efficiency penalties on, e.g., "stale" lumber camp
# Set up world
game = Gameplay()
# should work even before we do anything
#game.print_status()
game.queue_villager(5, Tasks.WOOD) # first number is time in seconds
# should generate exception
#game.assign_villager(40, Tasks.SHEEP, Tasks.WOOD)
game.assign_villager(0, Tasks.IDLE, Tasks.SHEEP)
game.assign_villager(2, Tasks.IDLE, Tasks.SHEEP, 2)
# should generate exception
#game.assign_villager(0, Tasks.IDLE, Tasks.SHEEP)
# should generate exception
#game.build(45, Buildings.STABLE, Tasks.WOOD, Tasks.IDLE)
#game.build(45, Buildings.LUMBERCAMP, Tasks.WOOD, Tasks.IDLE)
game.build(45, Buildings.LUMBERCAMP, Tasks.WOOD, Tasks.WOOD)
game.queue_research(45, Research.LOOM)
game.queue_villager(45, Tasks.WOOD)
game.queue_villager(45, Tasks.WOOD)
game.play_until(46)
game.print_status()
game.build(100, Buildings.HOUSE, [Tasks.SHEEP, Tasks.WOOD], [Tasks.IDLE]*2)
#game.assign_villager(Build.Stable(), "food", wait_until_finished=True)
'''
game.queue_unit(s1, Scout)
'''
game.assign_villager(130, Tasks.IDLE, Tasks.WOOD, 2)
# should generate exception
#game.build(200, Buildings.FARM, [Tasks.SHEEP], [Tasks.WOOD])
game.build(200, Buildings.MILL, [Tasks.SHEEP], [Tasks.WOOD])
game.build(250, Buildings.FARM, [Tasks.SHEEP, Tasks.WOOD], [Tasks.IDLE]*2)
# Evaluate game
game.play_until(800)
game.print_status()
# should generate exception
#game.assign_villager(0, Tasks.SHEEP, Tasks.WOOD)