# src/core/constants.gd # Zero Godot dependency — no class_name, use static functions to avoid global state. const RESULT_OK := 0 const ERR_INVALID_CARDS := 1 const ERR_NOT_YOUR_TURN := 2 const ERR_CANNOT_PASS := 3 const ERR_CARD_NOT_FOUND := 4 const ERR_HAND_EMPTY := 5 const ERR_INVALID_TRIBUTE := 6 const ERR_GAME_OVER := 7 const ERR_STATE_CONFLICT := 8 const SUIT_SPADE := 0 const SUIT_HEART := 1 const SUIT_CLUB := 2 const SUIT_DIAMOND := 3 const SUIT_JOKER_SMALL := 4 const SUIT_JOKER_BIG := 5 const RANK_2 := 2 const RANK_3 := 3 const RANK_4 := 4 const RANK_5 := 5 const RANK_6 := 6 const RANK_7 := 7 const RANK_8 := 8 const RANK_9 := 9 const RANK_10 := 10 const RANK_J := 11 const RANK_Q := 12 const RANK_K := 13 const RANK_A := 14 const RANK_SMALL_JOKER := 15 const RANK_BIG_JOKER := 16 const TYPE_SINGLE := 0 const TYPE_PAIR := 1 const TYPE_TRIPLE := 2 const TYPE_TRIPLE_PLUS_TWO := 3 const TYPE_STRAIGHT := 4 const TYPE_CONSECUTIVE_PAIRS := 5 const TYPE_STEEL_PLATE := 6 const TYPE_STRAIGHT_FLUSH := 7 const TYPE_BOMB := 8 const TYPE_ROCKET := 9 const TURN_PLAY := 0 const TURN_PASS := 1 const TURN_TRIBUTE_GIVE := 2 const TURN_TRIBUTE_RETURN := 3 const PHASE_INIT := 0 const PHASE_DEAL := 1 const PHASE_TRIBUTE := 2 const PHASE_PLAY := 3 const PHASE_LEVEL_UP := 4 const PHASE_GAME_OVER := 5 const WILD_SOURCE_GRADE := 0 const WILD_SOURCE_SYSTEM := 1 const MAX_AI_DECISION_MS := 3000 const BEAM_WIDTH := 50 const MAX_ENUM_NODES := 10000 const TOTAL_CARDS := 108 const CARDS_PER_PLAYER := 27 const PLAYER_COUNT := 4 static func make_result(ok: bool, error_code: int, data = null) -> Dictionary: return {"ok": ok, "error_code": error_code, "data": data} static func success(data = null) -> Dictionary: return {"ok": true, "error_code": RESULT_OK, "data": data} static func err(code: int) -> Dictionary: return {"ok": false, "error_code": code, "data": null}