1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- -define(PLAYER,
- id :: pos_integer(), %% Player Id
- seat_num :: integer(),
- user_id :: binary(),
- is_bot :: boolean(),
- info :: #'PlayerInfo'{},
- connected :: boolean()
- ).
- -define(GAME_STATE,
- game_id :: pos_integer(),
- table_id :: pos_integer(),
- table_name :: string(),
- players, %% The register of table players
- parent :: {atom(), pid()},
- parent_mon_ref :: reference(),
- relay :: pid(),
- mult_factor :: integer(),
- slang_flag :: boolean(),
- observer_flag :: boolean(),
- tournament_type :: atom(), %% standalone | elimination | pointing | lucky
- speed :: slow | normal | fast,
- game_mode :: standard | color | evenodd | countdown,
- social_actions_enabled :: boolean(),
- tournament_table :: list(), %% [{TurnNum, TurnRes}], TurnRes = [{PlayerId, Points, Status}]
- % game tree
- rounds :: undefined | integer(), %% Not defined for countdown game type
- tour :: undefined | integer(),
- tours :: undefined | integer(),
- cur_round :: integer(),
- next_series_confirmation :: yes_exit | no_exit | no,
- % timeouts
- turn_timeout :: integer(),
- ready_timeout :: integer(),
- round_timeout :: infinity | integer(),
- set_timeout :: infinity | integer(),
- timeout_timer :: undefined | reference(),
- timeout_magic :: term(),
- round_timer :: undefined | reference(),
- set_timer :: undefined | reference(),
- wait_list :: list(),
- % pause
- pause_mode :: disabled | normal,
- paused_statename :: atom(), %% For storing a statename before pause
- paused_timeout_value :: integer(), %% For storing remain timeout value
- % scoring
- scoring_state :: term()).
- -record(table_state, {?GAME_STATE}).
- -record(okey_state, {?GAME_STATE,
- reveal_confirmation_timeout :: integer(),
- reveal_confirmation :: boolean(),
- gosterge_finish_allowed :: undefined | boolean(), %% Only defined for countdown game type
- %% Dynamic parameters
- desk_rule_pid :: undefined | pid(),
- start_seat :: integer(), %% The player who moves first
- reveal_confirmation_list :: list(), %% {SeatNum, Answer}
- desk_state %% OKEY DESK
- }).
- -record(tavla_state, {?GAME_STATE,
- tables_num :: integer(), %% For paired mode >= 1, otherwise = 1
- %% Dynamic parameters
- desk_rule_pid :: undefined | pid(),
- start_color, %% The player who moves first
- desk_state %% TAVLA DESK
- }).
|