Example #1
0
 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()
Example #2
0
    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))