UNPKG

binmat

Version:
545 lines 110 kB
import type { Card, State } from "./shared"; export type Attacker = `a${0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | `a` | `b` | `c` | `d` | `e` | `f`}`; export type Defender = `d${0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | `a` | `b` | `c` | `d` | `e` | `f`}`; export type BinmatArgs = { /** player role */ plr: Defender; /** state */ s: { /** turn number */ turns: number; /** lane deck 0 */ l0?: { c: number; t: `X`; }; /** lane deck 1 */ l1?: { c: number; t: `X`; }; /** lane deck 2 */ l2?: { c: number; t: `X`; }; /** lane deck 3 */ l3?: { c: number; t: Card; }; /** lane deck 4 */ l4?: { c: number; t: Card; }; /** lane deck 5 */ l5?: { c: number; t: Card; }; /** lane discard pile 0 */ x0?: `${Card}u`[]; /** lane discard pile 1 */ x1?: `${Card}u`[]; /** lane discard pile 2 */ x2?: `${Card}u`[]; /** lane discard pile 3 */ x3?: `${Card}u`[]; /** lane discard pile 4 */ x4?: `${Card}u`[]; /** lane discard pile 5 */ x5?: `${Card}u`[]; /** attacker discard pile */ xa?: Card[]; /** attacker deck */ a?: { c: number; t: `X`; }; /** turn order */ ord: number; /** attacker stack 0 */ a0?: `X`[]; /** attacker stack 1 */ a1?: `X`[]; /** attacker stack 2 */ a2?: `X`[]; /** attacker stack 3 */ a3?: `X`[]; /** attacker stack 4 */ a4?: `X`[]; /** attacker stack 5 */ a5?: `X`[]; /** defender stack 0 */ d0?: (Card | `${Card}u`)[]; /** defender stack 1 */ d1?: (Card | `${Card}u`)[]; /** defender stack 2 */ d2?: (Card | `${Card}u`)[]; /** defender stack 3 */ d3?: (Card | `${Card}u`)[]; /** defender stack 4 */ d4?: (Card | `${Card}u`)[]; /** defender stack 5 */ d5?: (Card | `${Card}u`)[]; /** attacker 0 hand */ ha0?: number; /** attacker 1 hand */ ha1?: number; /** attacker 2 hand */ ha2?: number; /** attacker 3 hand */ ha3?: number; /** attacker 4 hand */ ha4?: number; /** attacker 5 hand */ ha5?: number; /** attacker 6 hand */ ha6?: number; /** attacker 7 hand */ ha7?: number; /** attacker 8 hand */ ha8?: number; /** attacker 9 hand */ ha9?: number; /** attacker 10 hand */ haa?: number; /** attacker 11 hand */ hab?: number; /** attacker 12 hand */ hac?: number; /** attacker 13 hand */ had?: number; /** attacker 14 hand */ hae?: number; /** attacker 15 hand */ haf?: number; /** defender 0 hand */ hd0?: Card[]; /** defender 1 hand */ hd1?: Card[]; /** defender 2 hand */ hd2?: Card[]; /** defender 3 hand */ hd3?: Card[]; /** defender 4 hand */ hd4?: Card[]; /** defender 5 hand */ hd5?: Card[]; /** defender 6 hand */ hd6?: Card[]; /** defender 7 hand */ hd7?: Card[]; /** defender 8 hand */ hd8?: Card[]; /** defender 9 hand */ hd9?: Card[]; /** defender 10 hand */ hda?: Card[]; /** defender 11 hand */ hdb?: Card[]; /** defender 12 hand */ hdc?: Card[]; /** defender 13 hand */ hdd?: Card[]; /** defender 14 hand */ hde?: Card[]; /** defender 15 hand */ hdf?: Card[]; }; /** player list */ plrs: [role: Defender | Attacker, userName: string][]; /** binlog */ ops: string[]; } | { /** player role */ plr: Attacker; /** state */ s: { /** turn number */ turns: number; /** lane deck 0 */ l0?: { c: number; t: `X`; }; /** lane deck 1 */ l1?: { c: number; t: `X`; }; /** lane deck 2 */ l2?: { c: number; t: `X`; }; /** lane deck 3 */ l3?: { c: number; t: Card; }; /** lane deck 4 */ l4?: { c: number; t: Card; }; /** lane deck 5 */ l5?: { c: number; t: Card; }; /** lane discard pile 0 */ x0?: `${Card}u`[]; /** lane discard pile 1 */ x1?: `${Card}u`[]; /** lane discard pile 2 */ x2?: `${Card}u`[]; /** lane discard pile 3 */ x3?: `${Card}u`[]; /** lane discard pile 4 */ x4?: `${Card}u`[]; /** lane discard pile 5 */ x5?: `${Card}u`[]; /** attacker discard pile */ xa?: Card[]; /** attacker deck */ a?: { c: number; t: `X`; }; /** turn order */ ord: number; /** attacker stack 0 */ a0?: Card[]; /** attacker stack 1 */ a1?: Card[]; /** attacker stack 2 */ a2?: Card[]; /** attacker stack 3 */ a3?: Card[]; /** attacker stack 4 */ a4?: Card[]; /** attacker stack 5 */ a5?: Card[]; /** defender stack 0 */ d0?: `${Card}u`[] | `X`[]; /** defender stack 1 */ d1?: `${Card}u`[] | `X`[]; /** defender stack 2 */ d2?: `${Card}u`[] | `X`[]; /** defender stack 3 */ d3?: `${Card}u`[] | `X`[]; /** defender stack 4 */ d4?: `${Card}u`[] | `X`[]; /** defender stack 5 */ d5?: `${Card}u`[] | `X`[]; /** attacker 0 hand */ ha0?: Card[]; /** attacker 1 hand */ ha1?: Card[]; /** attacker 2 hand */ ha2?: Card[]; /** attacker 3 hand */ ha3?: Card[]; /** attacker 4 hand */ ha4?: Card[]; /** attacker 5 hand */ ha5?: Card[]; /** attacker 6 hand */ ha6?: Card[]; /** attacker 7 hand */ ha7?: Card[]; /** attacker 8 hand */ ha8?: Card[]; /** attacker 9 hand */ ha9?: Card[]; /** attacker 10 hand */ haa?: Card[]; /** attacker 11 hand */ hab?: Card[]; /** attacker 12 hand */ hac?: Card[]; /** attacker 13 hand */ had?: Card[]; /** attacker 14 hand */ hae?: Card[]; /** attacker 15 hand */ haf?: Card[]; /** defender 0 hand */ hd0?: number; /** defender 1 hand */ hd1?: number; /** defender 2 hand */ hd2?: number; /** defender 3 hand */ hd3?: number; /** defender 4 hand */ hd4?: number; /** defender 5 hand */ hd5?: number; /** defender 6 hand */ hd6?: number; /** defender 7 hand */ hd7?: number; /** defender 8 hand */ hd8?: number; /** defender 9 hand */ hd9?: number; /** defender 10 hand */ hda?: number; /** defender 11 hand */ hdb?: number; /** defender 12 hand */ hdc?: number; /** defender 13 hand */ hdd?: number; /** defender 14 hand */ hde?: number; /** defender 15 hand */ hdf?: number; }; /** player list */ plrs: [role: Defender | Attacker, userName: string][]; /** binlog */ ops: string[]; }; export declare function generateArgs(state: State, defender: string, attacker: string, binlog: string[]): { /** player role */ plr: "d0" | "da" | "d6" | "d2" | "d1" | "d3" | "d4" | "d5" | "d8" | "dd" | "d7" | "d9" | "db" | "dc" | "de" | "df"; /** state */ s: { /** turn number */ turns: number; /** lane deck 0 */ l0?: { c: number; t: "X"; }; /** lane deck 1 */ l1?: { c: number; t: "X"; }; /** lane deck 2 */ l2?: { c: number; t: "X"; }; /** lane deck 3 */ l3?: { c: number; t: "2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#"; }; /** lane deck 4 */ l4?: { c: number; t: "2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#"; }; /** lane deck 5 */ l5?: { c: number; t: "2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#"; }; /** lane discard pile 0 */ x0?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** lane discard pile 1 */ x1?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** lane discard pile 2 */ x2?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** lane discard pile 3 */ x3?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** lane discard pile 4 */ x4?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** lane discard pile 5 */ x5?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** attacker discard pile */ xa?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** attacker deck */ a?: { c: number; t: "X"; }; /** turn order */ ord: number; /** attacker stack 0 */ a0?: "X"[]; /** attacker stack 1 */ a1?: "X"[]; /** attacker stack 2 */ a2?: "X"[]; /** attacker stack 3 */ a3?: "X"[]; /** attacker stack 4 */ a4?: "X"[]; /** attacker stack 5 */ a5?: "X"[]; /** defender stack 0 */ d0?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#" | "2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** defender stack 1 */ d1?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#" | "2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** defender stack 2 */ d2?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#" | "2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** defender stack 3 */ d3?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#" | "2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** defender stack 4 */ d4?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#" | "2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** defender stack 5 */ d5?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#" | "2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** attacker 0 hand */ ha0?: number; /** attacker 1 hand */ ha1?: number; /** attacker 2 hand */ ha2?: number; /** attacker 3 hand */ ha3?: number; /** attacker 4 hand */ ha4?: number; /** attacker 5 hand */ ha5?: number; /** attacker 6 hand */ ha6?: number; /** attacker 7 hand */ ha7?: number; /** attacker 8 hand */ ha8?: number; /** attacker 9 hand */ ha9?: number; /** attacker 10 hand */ haa?: number; /** attacker 11 hand */ hab?: number; /** attacker 12 hand */ hac?: number; /** attacker 13 hand */ had?: number; /** attacker 14 hand */ hae?: number; /** attacker 15 hand */ haf?: number; /** defender 0 hand */ hd0?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** defender 1 hand */ hd1?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** defender 2 hand */ hd2?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** defender 3 hand */ hd3?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** defender 4 hand */ hd4?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** defender 5 hand */ hd5?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** defender 6 hand */ hd6?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** defender 7 hand */ hd7?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** defender 8 hand */ hd8?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** defender 9 hand */ hd9?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** defender 10 hand */ hda?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** defender 11 hand */ hdb?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** defender 12 hand */ hdc?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** defender 13 hand */ hdd?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** defender 14 hand */ hde?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** defender 15 hand */ hdf?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; }; /** player list */ plrs: [role: "a0" | "aa" | "a6" | "a2" | "a1" | "a3" | "a4" | "a5" | "a8" | "ad" | "a7" | "a9" | "ab" | "ac" | "ae" | "af" | "d0" | "da" | "d6" | "d2" | "d1" | "d3" | "d4" | "d5" | "d8" | "dd" | "d7" | "d9" | "db" | "dc" | "de" | "df", userName: string][]; /** binlog */ ops: string[]; } | { /** player role */ plr: "a0" | "aa" | "a6" | "a2" | "a1" | "a3" | "a4" | "a5" | "a8" | "ad" | "a7" | "a9" | "ab" | "ac" | "ae" | "af"; /** state */ s: { /** turn number */ turns: number; /** lane deck 0 */ l0?: { c: number; t: "X"; }; /** lane deck 1 */ l1?: { c: number; t: "X"; }; /** lane deck 2 */ l2?: { c: number; t: "X"; }; /** lane deck 3 */ l3?: { c: number; t: "2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#"; }; /** lane deck 4 */ l4?: { c: number; t: "2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#"; }; /** lane deck 5 */ l5?: { c: number; t: "2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#"; }; /** lane discard pile 0 */ x0?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** lane discard pile 1 */ x1?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** lane discard pile 2 */ x2?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** lane discard pile 3 */ x3?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** lane discard pile 4 */ x4?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** lane discard pile 5 */ x5?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[]; /** attacker discard pile */ xa?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** attacker deck */ a?: { c: number; t: "X"; }; /** turn order */ ord: number; /** attacker stack 0 */ a0?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** attacker stack 1 */ a1?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** attacker stack 2 */ a2?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** attacker stack 3 */ a3?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** attacker stack 4 */ a4?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** attacker stack 5 */ a5?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** defender stack 0 */ d0?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[] | "X"[]; /** defender stack 1 */ d1?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[] | "X"[]; /** defender stack 2 */ d2?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[] | "X"[]; /** defender stack 3 */ d3?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[] | "X"[]; /** defender stack 4 */ d4?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[] | "X"[]; /** defender stack 5 */ d5?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[] | "X"[]; /** attacker 0 hand */ ha0?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** attacker 1 hand */ ha1?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[]; /** attacker 2 hand */ ha2?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&"