# Path: roglick/engine/event.py
# class Event(object):
#     """Base class from which all Events should inherit."""
#     def __init__(self, entity=None):
#         self.entity = entity
# 
#         self._propagate = True
# 
#     def stop(self):
#         """Stop an event from continuing to propagate to other handlers.
# 
#         Note that this should only be used when an event is being "cancelled"
#         or in situations when it is being replaced by another dispatched event.
#         """
#         self._propagate = False
# 
#     @property
#     def propagate(self):
#         """Returns True if the event should continue to propagate to handlers.
# 
#         This property is True until the stop() method is called on this event.
#         """
#         return self._propagate
# 
#     def __repr__(self):
#         if self.entity is None:
#             return "{cls}".format(cls=self.__class__.__name__)
#         else:
#             return "{cls}({e})".format(
#                     cls=self.__class__.__name__,
#                     e=self.entity)


from roglick.engine.event import Event


class OpenDoorEvent(Event):
    def __init__(self, entity, x, y):
        super().__init__(entity=entity)

        self.x = x
        self.y = y

    def __repr__(self):
        return "{cls}({e}, {x}, {y})".format(
                cls=self.__class__.__name__,
                e=self.entity,
                x=self.x,
                y=self.y)



# Path: roglick/engine/event.py
# class Event(object):
#     """Base class from which all Events should inherit."""
#     def __init__(self, entity=None):
#         self.entity = entity
# 
#         self._propagate = True
# 
#     def stop(self):
#         """Stop an event from continuing to propagate to other handlers.
# 
#         Note that this should only be used when an event is being "cancelled"
#         or in situations when it is being replaced by another dispatched event.
#         """
#         self._propagate = False
# 
#     @property
#     def propagate(self):
#         """Returns True if the event should continue to propagate to handlers.
# 
#         This property is True until the stop() method is called on this event.
#         """
#         return self._propagate
# 
#     def __repr__(self):
#         if self.entity is None:
#             return "{cls}".format(cls=self.__class__.__name__)
#         else:
#             return "{cls}({e})".format(
#                     cls=self.__class__.__name__,
#                     e=self.entity)


# Path: roglick/events/action.py
from roglick.engine.event import Event



class OpenDoorEvent(Event):
    def __init__(self, entity, x, y):
        super().__init__(entity=entity)

        self.x = x
        self.y = y

    def __repr__(self):
        return "{cls}({e}, {x}, {y})".format(
                cls=self.__class__.__name__,
                e=self.entity,
                x=self.x,
                y=self.y)



class ActionCompleteEvent(Event):