Source code for VegansDeluxe.core.Events.Events

from typing import TypeVar

from VegansDeluxe.core.States import State

T = TypeVar("T")


[docs]class Event: def __init__(self, unique_type=None): self.unique_type = unique_type self.canceled = False def __str__(self): return type(self).__name__
[docs]class AttachSessionEvent(Event): """ Published by SessionManager after attaching a Session. Used by ContentManager to initialize it. """ def __init__(self, session_id): super().__init__() self.session_id = session_id
[docs]class StartSessionEvent(Event): """ Published by Session when it is started. """ def __init__(self, session_id): super().__init__() self.session_id = session_id
[docs]class AttachStateEvent[T: State](Event): def __init__(self, session_id, entity_id, state: State): super().__init__(type(state)) self.session_id = session_id self.entity_id = entity_id self.state: T = state
[docs]class GameEvent(Event): def __init__(self, session_id, turn): super().__init__() self.session_id = session_id self.turn = turn
[docs]class ActionGameEvent(GameEvent): def __init__(self, session_id, turn, source_id, target_id): super().__init__(session_id, turn) self.source_id = source_id self.target_id = target_id
[docs]class DeliveryRequestEvent(GameEvent): def __init__(self, session_id, turn): super().__init__(session_id, turn)
[docs]class DeliveryPackageEvent(GameEvent): def __init__(self, session_id, turn): super().__init__(session_id, turn)
[docs]class ExecuteActionEvent(GameEvent): def __init__(self, session_id, turn, action): super().__init__(session_id, turn) self.action = action
[docs]class PreDeathGameEvent(GameEvent): def __init__(self, session_id, turn, entity): super().__init__(session_id, turn) self.entity = entity
[docs]class DeathGameEvent(GameEvent): def __init__(self, session_id, turn, entity): super().__init__(session_id, turn) self.entity = entity
[docs]class HPLossGameEvent(GameEvent): def __init__(self, session_id, turn, source, damage, hp_loss): super().__init__(session_id, turn) self.source = source self.damage = damage self.hp_loss = hp_loss
[docs]class SessionStopGameEvent(GameEvent): pass
[docs]class SessionFinishGameEvent(GameEvent): pass
[docs]class CallActionsGameEvent(GameEvent): pass
[docs]class PreMoveGameEvent(GameEvent): pass
# Action updating events start
[docs]class PreUpdatesGameEvent(GameEvent): pass
[docs]class PostUpdatesGameEvent(GameEvent): pass
[docs]class PreUpdateActionsGameEvent(GameEvent): def __init__(self, session_id, turn, entity_id): super().__init__(session_id, turn) self.entity_id = entity_id
[docs]class PostUpdateActionsGameEvent(GameEvent): def __init__(self, session_id, turn, entity_id): super().__init__(session_id, turn) self.entity_id = entity_id
# Action updating events end
[docs]class PreActionsGameEvent(GameEvent): pass
[docs]class PostActionsGameEvent(GameEvent): pass
[docs]class PreDamagesGameEvent(GameEvent): pass
[docs]class PostDamagesGameEvent(GameEvent): pass
[docs]class PostTickGameEvent(GameEvent): pass
[docs]class PostDeathsGameEvent(GameEvent): pass