# 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
        return {
                'attacker': self.entity,
                'defender': self.defender,
                'atk_skill': self.atk_skill,
                'atk_mod': self.atk_mod,
                'def_skill': self.def_skill,
                'def_mod': self.def_mod,
                'dmg_mod': self.dmg_mod,
                'dmg': self.dmg,
                }

    def __repr__(self):
        kwargs = self.kwargs
        args = []
        for key in kwargs:
            if key == 'attacker' or key == 'defender':
                # We handle these separately to ensure proper order
                continue

            if kwargs[key] is not None and kwargs[key] != 0:
                args.append("{key}={val}".format(key=key, val=kwargs[key]))

        args = ", ".join(args)

        if len(args) > 0:
            return "{cls}({e}, {d}, {kwargs})".format(
                    cls=self.__class__.__name__,
                    e=self.entity,
                    d=self.defender,
                    kwargs=args)

# 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/combat.py
from roglick.engine.event import Event

        return {
                'attacker': self.entity,
                'defender': self.defender,
                'atk_skill': self.atk_skill,
                'atk_mod': self.atk_mod,
                'def_skill': self.def_skill,
                'def_mod': self.def_mod,
                'dmg_mod': self.dmg_mod,
                'dmg': self.dmg,
                }

    def __repr__(self):
        kwargs = self.kwargs
        args = []
        for key in kwargs:
            if key == 'attacker' or key == 'defender':
                # We handle these separately to ensure proper order
                continue

            if kwargs[key] is not None and kwargs[key] != 0:
                args.append("{key}={val}".format(key=key, val=kwargs[key]))

        args = ", ".join(args)

        if len(args) > 0:
            return "{cls}({e}, {d}, {kwargs})".format(
                    cls=self.__class__.__name__,
                    e=self.entity,
                    d=self.defender,
                    kwargs=args)

        else: