예제 #1
0
    def __init__(self, db, rng_seed=None, ingame_gui_class=IngameGui):
        super(Session, self).__init__()
        assert isinstance(db, horizons.util.uhdbaccessor.UhDbAccessor)
        self.log.debug("Initing session")
        self.db = db  # main db for game data (game.sql)
        # this saves how often the current game has been saved
        self.savecounter = 0
        self.is_alive = True
        self.paused_ticks_per_second = GAME_SPEED.TICKS_PER_SECOND

        self._clear_caches()

        #game
        self.random = self.create_rng(rng_seed)
        assert isinstance(self.random, Random)
        self.timer = self.create_timer()
        Scheduler.create_instance(self.timer)
        self.manager = self.create_manager()
        self.view = View()
        Entities.load(self.db)
        self.scenario_eventhandler = ScenarioEventHandler(
            self)  # dummy handler with no events

        #GUI
        self._ingame_gui_class = ingame_gui_class

        self.selected_instances = set()
        # List of sets that holds the player assigned unit groups.
        self.selection_groups = [set() for _unused in range(10)]

        self._old_autosave_interval = None
예제 #2
0
	def __init__(self, gui, db):
		super(Session, self).__init__()
		self.log.debug("Initing session")
		self.gui = gui # main gui, not ingame gui
		self.db = db # main db for game data (game.sqlite)
		# this saves how often the current game has been saved
		self.savecounter = 0
		self.is_alive = True

		WorldObject.reset()
		NamedObject.reset()

		#game
		self.random = self.create_rng()
		self.timer = Timer()
		Scheduler.create_instance(self.timer)
		self.manager = self.create_manager()
		self.view = View(self, (15, 15))
		Entities.load(self.db)
		self.scenario_eventhandler = ScenarioEventHandler(self) # dummy handler with no events
		self.campaign = {}

		#GUI
		self.gui.session = self
		self.ingame_gui = IngameGui(self, self.gui)
		self.keylistener = IngameKeyListener(self)
		self.display_speed()

		self.selected_instances = set()
		self.selection_groups = [set()] * 10 # List of sets that holds the player assigned unit groups.
예제 #3
0
    def setUp(self):
        self.inventory = GenericStorage()
        self.owner_inventory = GenericStorage()

        class Instance(object):
            def __init__(self, comp):
                self.comp = comp

            def get_component(self, x):
                class Comp(object):
                    inventory = self.comp

                return Comp()

        self.tradepost = TradePostComponent()
        self.tradepost.instance = Instance(self.inventory)
        self.tradepost.instance.owner = Instance(self.owner_inventory)
        self.tradepost.initialize()

        class Timer(object):
            def add_call(self, x):
                pass

            def get_ticks(self, x):
                return 100

        Scheduler.create_instance(timer=Timer())
예제 #4
0
	def __init__(self, db, rng_seed=None, ingame_gui_class=IngameGui):
		super(Session, self).__init__()
		assert isinstance(db, horizons.util.uhdbaccessor.UhDbAccessor)
		self.log.debug("Initing session")
		self.db = db # main db for game data (game.sql)
		# this saves how often the current game has been saved
		self.savecounter = 0
		self.is_alive = True

		self._clear_caches()

		#game
		self.random = self.create_rng(rng_seed)
		assert isinstance(self.random, Random)
		self.timer = self.create_timer()
		Scheduler.create_instance(self.timer)
		self.manager = self.create_manager()
		self.view = View()
		Entities.load(self.db)
		self.scenario_eventhandler = ScenarioEventHandler(self) # dummy handler with no events

		#GUI
		self._ingame_gui_class = ingame_gui_class

		self.selected_instances = set()
		# List of sets that holds the player assigned unit groups.
		self.selection_groups = [set()] * 10

		self._old_autosave_interval = None
예제 #5
0
	def __init__(self, db, rng_seed=None):
		"""
		Unfortunately, right now there is no other way to setup Dummy versions of the GUI,
		View etc., unless we want to patch the references in the session module.
		"""
		super(LivingObject, self).__init__()
		self.gui = Dummy()
		self.db = db
		self.savecounter = 0	# this is a new game.
		self.is_alive = True

		WorldObject.reset()
		NamedObject.reset()
		AIPlayer.clear_caches()

		# Game
		self.current_tick = 0
		self.random = self.create_rng(rng_seed)
		self.timer = self.create_timer()
		Scheduler.create_instance(self.timer)
		ExtScheduler.create_instance(Dummy)
		self.manager = self.create_manager()
		self.view = Dummy()
		self.view.renderer = Dummy()
		Entities.load(self.db)
		self.scenario_eventhandler = Dummy()
		self.campaign = {}
		self.selected_instances = []

		# GUI
		self.gui.session = self
		self.ingame_gui = Dummy()

		GAME_SPEED.TICKS_PER_SECOND = 16
	def setUp(self):
		self.inventory = GenericStorage()
		self.owner_inventory = GenericStorage()

		class Instance:
			def __init__(self, comp):
				self.comp = comp
				self.owner = None # type: Optional[Instance]

			def get_component(self, x):
				class Comp:
					inventory = self.comp
				return Comp()

		self.tradepost = TradePostComponent()
		self.tradepost.instance = Instance(self.inventory)
		self.tradepost.instance.owner = Instance(self.owner_inventory)
		self.tradepost.initialize()

		class Timer:
			def add_call(self, x):
				pass

			def get_ticks(self, x):
				return 100
		Scheduler.create_instance(timer=Timer())
예제 #7
0
	def __init__(self, gui, db, rng_seed=None):
		super(Session, self).__init__()
		assert isinstance(db, horizons.util.uhdbaccessor.UhDbAccessor)
		self.log.debug("Initing session")
		self.gui = gui # main gui, not ingame gui
		self.db = db # main db for game data (game.sql)
		# this saves how often the current game has been saved
		self.savecounter = 0
		self.is_alive = True

		self._clear_caches()

		#game
		self.random = self.create_rng(rng_seed)
		assert isinstance(self.random, Random)
		self.timer = self.create_timer()
		Scheduler.create_instance(self.timer)
		self.manager = self.create_manager()
		self.view = View(self)
		Entities.load(self.db)
		self.scenario_eventhandler = ScenarioEventHandler(self) # dummy handler with no events
		self.campaign = {}

		#GUI
		self.gui.session = self
		self.ingame_gui = IngameGui(self, self.gui)
		self.keylistener = IngameKeyListener(self)
		self.coordinates_tooltip = None
		self.display_speed()
		LastActivePlayerSettlementManager.create_instance(self)


		self.status_icon_manager = StatusIconManager(
		  renderer=self.view.renderer['GenericRenderer'],
		  layer=self.view.layers[LAYERS.OBJECTS]
		  )
		self.production_finished_icon_manager = None
		self.create_production_finished_icon_manager()


		self.selected_instances = set()
		self.selection_groups = [set() for _ in range(10)]  # List of sets that holds the player assigned unit groups.

		self._old_autosave_interval = None
예제 #8
0
    def __init__(self, gui, db, rng_seed=None):
        super(Session, self).__init__()
        assert isinstance(db, horizons.util.uhdbaccessor.UhDbAccessor)
        self.log.debug("Initing session")
        self.gui = gui  # main gui, not ingame gui
        self.db = db  # main db for game data (game.sql)
        # this saves how often the current game has been saved
        self.savecounter = 0
        self.is_alive = True

        self._clear_caches()

        #game
        self.random = self.create_rng(rng_seed)
        assert isinstance(self.random, Random)
        self.timer = self.create_timer()
        Scheduler.create_instance(self.timer)
        self.manager = self.create_manager()
        self.view = View(self)
        Entities.load(self.db)
        self.scenario_eventhandler = ScenarioEventHandler(
            self)  # dummy handler with no events

        #GUI
        self.gui.session = self
        self.ingame_gui = IngameGui(self, self.gui)
        self.keylistener = IngameKeyListener(self)
        self.coordinates_tooltip = None
        self.display_speed()
        LastActivePlayerSettlementManager.create_instance(self)

        self.status_icon_manager = StatusIconManager(
            renderer=self.view.renderer['GenericRenderer'],
            layer=self.view.layers[LAYERS.OBJECTS])
        self.production_finished_icon_manager = None
        self.create_production_finished_icon_manager()

        self.selected_instances = set()
        self.selection_groups = [
            set() for _ in range(10)
        ]  # List of sets that holds the player assigned unit groups.

        self._old_autosave_interval = None
예제 #9
0
	def __init__(self, gui, db, rng_seed=None):
		super(Session, self).__init__()
		assert isinstance(gui, Gui)
		assert isinstance(db, horizons.util.uhdbaccessor.UhDbAccessor)
		self.log.debug("Initing session")
		self.gui = gui # main gui, not ingame gui
		self.db = db # main db for game data (game.sql)
		# this saves how often the current game has been saved
		self.savecounter = 0
		self.is_alive = True

		self.message_bus = MessageBus()

		# misc
		WorldObject.reset()
		NamedComponent.reset()
		AIPlayer.clear_caches()

		#game
		self.random = self.create_rng(rng_seed)
		assert isinstance(self.random, Random)
		self.timer = self.create_timer()
		Scheduler.create_instance(self.timer)
		self.manager = self.create_manager()
		self.view = View(self)
		Entities.load(self.db)
		self.scenario_eventhandler = ScenarioEventHandler(self) # dummy handler with no events
		self.campaign = {}

		#GUI
		self.gui.session = self
		self.ingame_gui = IngameGui(self, self.gui)
		self.keylistener = IngameKeyListener(self)
		self.coordinates_tooltip = None
		self.display_speed()
		LastActivePlayerSettlementManager.create_instance(self)


		self.status_icon_manager = StatusIconManager(self)

		self.selected_instances = set()
		self.selection_groups = [set()] * 10 # List of sets that holds the player assigned unit groups.
예제 #10
0
	def __init__(self, db, rng_seed=None):
		"""
		Unfortunately, right now there is no other way to setup Dummy versions of the GUI,
		View etc., unless we want to patch the references in the session module.
		"""
		super(LivingObject, self).__init__()
		self.gui = Dummy()
		self.db = db
		self.savecounter = 0	# this is a new game.
		self.is_alive = True

		WorldObject.reset()
		NamedComponent.reset()
		AIPlayer.clear_caches()

		# Game
		self.random = self.create_rng(rng_seed)
		self.timer = self.create_timer()
		Scheduler.create_instance(self.timer)
		ExtScheduler.create_instance(Dummy)
		self.manager = self.create_manager()
		self.view = Dummy()
		self.view.renderer = Dummy()
		Entities.load(self.db)
		self.scenario_eventhandler = Dummy()
		self.campaign = {}

		self.message_bus = MessageBus()
		self.status_icon_manager = StatusIconManager(self)


		# GUI
		self.gui.session = self
		self.ingame_gui = Dummy()
		LastActivePlayerSettlementManager.create_instance(self)

		self.selected_instances = set()
		self.selection_groups = [set()] * 10 # List of sets that holds the player assigned unit groups.

		GAME_SPEED.TICKS_PER_SECOND = 16
예제 #11
0
	def test_create_then_register_with_timer(self):
		# create a new scheduler but do not reset timer mock
		Scheduler.destroy_instance()
		Scheduler.create_instance(self.timer)
		self.scheduler = Scheduler()
		self.timer.add_call.assert_called_once_with(self.scheduler.tick)
예제 #12
0
	def setUp(self):
		self.callback = Mock()
		self.timer = Mock()
		Scheduler.create_instance(self.timer)
		self.scheduler = Scheduler()
		self.timer.reset_mock()
예제 #13
0
	def test_create_then_register_with_timer(self):
		# create a new scheduler but do not reset timer mock
		Scheduler.destroy_instance()
		Scheduler.create_instance(self.timer)
		self.scheduler = Scheduler()
		self.timer.add_call.assert_called_once_with(self.scheduler.tick)
예제 #14
0
	def setUp(self):
		self.callback = Mock()
		self.timer = Mock()
		Scheduler.create_instance(self.timer)
		self.scheduler = Scheduler()
		self.timer.reset_mock()