def Build(self, ident): if ident not in self.buildings: self.buildings[ident] = 0 level = self.buildings[ident] + 1 buildingobj = gamedef.get_building_object(ident) self.add_queue_event( qname="_buildings", timedelta=buildingobj.get_time(level), func="building_built", args=(ident, buildingobj.get_costs(level)), ) self.put()
def refresh(self): self.resource_income = gamedef.config.default_income self.queues_speed = {} class Env: def incr_resource_income(this, res): self.resource_income = self.resource_income.add(res) def speed_queue(this, name, times): if name not in self.queues_speed: self.queues_speed[name] = 1 self.queues_speed[name] *= times env = Env() for ident, level in self.buildings.items(): buildingobj = gamedef.get_building_object(ident) buildingobj.run(env, level) for ident, n in self.garnison.items(): self.decr_resource_income(gamedef.get_unit_object(ident).get_upkeep().mul(n))