def __init__(self, parent, model, surface_manager, action_factory, rng, rules_engine, configuration): """ Default constructor """ super().__init__(parent) self.model = model self.scene = None self.surface_manager = surface_manager self.action_factory = action_factory self.rng = rng self.rules_engine = rules_engine self.configuration = configuration self.current_level = None self.view = None self.animation_adapters = [] self.animation_timers = [] for adapter in range(10): self.animation_adapters.append(TimerAdapter()) self.animation_timers.append(QTimer(self)) self.animation_timers[adapter].timeout.connect( self.animation_adapters[adapter].trigger_animations) self.animation_timers[adapter].start(450 + adapter * 10) self.animations = [] self.move_controller = MoveController(action_factory=action_factory, rng=rng) self.__set_layout() self.keymap, self.move_key_map = self._construct_keymaps( configuration.controls) self.animation_factory = AnimationFactory()