uncategorized gameMechanics - wxyz-abcd/node-haxball GitHub Wiki

API and Game mechanics

Event triggered by host

sequenceDiagram
    participant Host
    participant Client
    Note left of Host: User triggers some event
    Note left of Host: (Host Actions)
    Note left of Host: Send the event to all clients
    Host->>Client: Send event message
    Note right of Client: (Common Actions)

Event triggered by client

sequenceDiagram
    participant Host
    participant Client
    Note right of Client: User triggers some event
    Client->>Host: Send event message
    Note left of Host: (Host Actions)
    Note left of Host: Send the event to all clients
    Host->>Client: Send event message
    Note right of Client: (Common Actions)

(Host Actions)

flowchart TD
    event((event message))
    opRec{onOperationReceived}
    break[Break player's connection to host]
    discard[Block event]
    accept[Accept event]
    apply["(Common Actions)"]
    event-->opRec
    opRec-->|false| discard
    opRec-->|throw exception| break
    opRec-->|true| accept
    accept-->apply

(Common Actions)

flowchart TD
    event((event message))
    ae[Apply event to current game state]
    rcobe{RoomConfig.onBeforeEvent}
    break[Break player's connection to host]
    discard[Block event]
    accept[Accept event]
    subgraph poe[For each Plugin]
      xxx[Plugin.onEvent]
    end
    rcoe[RoomConfig.onEvent]
    roe[Renderer.onEvent]
    rcoae[RoomConfig.onAfterEvent]
    event-->rcobe
    rcobe-->|false| discard
    rcobe-->|throw exception| break
    rcobe-->|anything else=customData| accept
    accept-->ae
    ae-->poe
    poe-->rcoe
    rcoe-->roe
    roe-->rcoae
⚠️ **GitHub.com Fallback** ⚠️