Triangle.js Docs
    Preparing search index...

    Interface State

    interface State {
        actors: Record<string, unknown>;
        bag: Engine.Mino[];
        bagex: Engine.Mino[];
        bagid: number;
        board?: BoardSquare[][];
        boardedges: number[][];
        cancelstreak: number;
        cheesespawned: number;
        clearsbypiece?: Record<string, Record<string, number>>;
        clutchCount: number;
        countdown_started: boolean;
        destroyed: boolean;
        diyusi: number;
        endqueued: boolean;
        enemies: number[];
        esc: boolean;
        escAllowed: boolean;
        esciter: number;
        falling?: {
            flags: number;
            hy: number;
            irs: number;
            keys: number;
            kick: number;
            locking: number;
            lockresets: number;
            r: number;
            rotresets: number;
            safelock: number;
            skip: unknown[];
            type: Engine.Mino;
            x: number;
            y: number;
        };
        fire: number;
        fireAppr: number;
        fireGrace: number;
        firstInputTime: number;
        g: number;
        gameoverreason: GameOverReason
        | null;
        garbageacknowledgements: {
            incoming: Record<number, number>;
            outgoing: Record<number, { amt: number; iid: number }[]>;
        };
        garbageareentries: unknown[];
        garbagearelockeduntil: number;
        garbagebonus: number;
        garbageid: number;
        garbagereceived: number;
        glock: number;
        handling: Handling;
        haschangedcolumn: boolean;
        hesitatedattacks: unknown[];
        hold: Engine.Mino
        | null;
        holdlocked: boolean;
        hyperForfeitAllowed: boolean;
        hyperRetryAllowed: boolean;
        impendingdamage: {
            ackiid: number | null;
            active: boolean;
            actor_neg?: string;
            actor_pos?: string;
            amt: number;
            cid: number | null;
            color: unknown;
            column: number | undefined;
            delay: number;
            firstcycle?: boolean;
            gameid: number | null;
            hardened?: boolean;
            id: number;
            iid: number | null;
            neg: unknown;
            pos: unknown;
            position: unknown;
            queued: boolean;
            shielded?: boolean;
            size: number;
            status: "caution" | "spawn" | "sleeping";
            type: unknown;
            username: string | null;
            x: number;
            y: number;
        }[];
        inputHold: boolean;
        inputRotate180: boolean;
        inputRotateCCW: boolean;
        inputRotateCW: boolean;
        inputSoftdrop: boolean;
        interactionid: number;
        killer: { gameid: number; type: "sizzle"; username?: string
        | null };
        lastatktime: number | null;
        lastcolumn: number | null;
        lastdoublepiece: unknown;
        lastGenerated: number | null;
        lastoffensive: {
            defense: number;
            offence: number;
            surge: number;
            x: number;
            y: number;
        };
        lastpiecetime: number;
        lastreceivedcount: number;
        lastshift: -1
        | 1;
        laststrategychange: number;
        lasttanktime: number;
        lastwasattack: boolean;
        lastwasclear: boolean;
        lShift: { arr: number; das: number; dir: -1; held: boolean };
        nextwilltank: boolean;
        notyetreceivedattacks: number;
        otherstates?: {
            lastpiece: Types.Game.State | null;
            redo: Types.Game.State[];
            undo: Types.Game.State[];
        };
        pause: boolean;
        placement: number;
        playing: boolean;
        quadcolumns: number[];
        retry: boolean;
        retryAllowed: boolean;
        retryiter: number;
        rng: number;
        rngex: number;
        rShift: { arr: number; das: number; dir: 1; held: boolean };
        setoptions: ReadyOptions;
        spike: { count: number; count_nomult: number; timer: number };
        started: boolean;
        stats: Types.Game.Stats;
        stock: number;
        subframe: number;
        successful: boolean;
        targets: number[];
        time: {
            frameoffset: number;
            locked: boolean;
            prev: number;
            start: number;
            zero: boolean;
        };
        totalRotations: number;
        tutorial: {
            finished: number;
            freeze: number;
            progress: number;
            reqs: number;
            stage: number;
        };
        unsafewaitingframes: unknown[];
        waitingframes: { data: any; target: number; type: string }[];
        windupwaituntil: number;
        zenith: {
            allyincapacitated: boolean;
            blighted: boolean;
            blockrationing: number;
            blockrationing_app: number;
            blockrationing_final: number;
            bonusfromally: number;
            bonusremaining: number;
            climb_pts: number;
            columnsicknessbuckets_i: unknown[];
            columnsicknessbuckets_lj: unknown[];
            columnsicknessbuckets_sz: unknown[];
            escapeartist: number;
            garbageahead: unknown[];
            garbagerowcount: number;
            garbageside: number;
            gracestillmessy: boolean;
            hasseenI5: boolean;
            highestrevive: number;
            incapacitated: boolean;
            isDanger: boolean;
            last_rank_change_was_promote: boolean;
            lastcancel: number;
            lastclearcount: unknown;
            lastclearpiece: unknown;
            lastclearspin: unknown;
            lastclearwasdupe: boolean;
            lastfloorchange: number;
            maxmessy: boolean;
            nogarbagesince: unknown;
            promotion_fatigue: number;
            promptstarttime: number;
            quadbuckets: unknown[];
            rank_locked_until: number;
            revivelevel: number;
            reviveprompts: unknown[];
            spinbuckets: unknown[];
            stalepieces: number;
            staletime: number;
            szsickness: unknown[];
            talentless: boolean;
            top3rowsince: unknown;
            was180Used: boolean;
            wasCCWUsed: boolean;
            wasCWUsed: boolean;
        };
    }
    Index

    Properties

    actors: Record<string, unknown>
    bag: Engine.Mino[]
    bagex: Engine.Mino[]
    bagid: number
    board?: BoardSquare[][]

    Note: board is reversed compared to triangle

    boardedges: number[][]

    0 to 255

    cancelstreak: number
    cheesespawned: number
    clearsbypiece?: Record<string, Record<string, number>>
    clutchCount: number
    countdown_started: boolean
    destroyed: boolean
    diyusi: number
    endqueued: boolean
    enemies: number[]
    esc: boolean
    escAllowed: boolean
    esciter: number
    falling?: {
        flags: number;
        hy: number;
        irs: number;
        keys: number;
        kick: number;
        locking: number;
        lockresets: number;
        r: number;
        rotresets: number;
        safelock: number;
        skip: unknown[];
        type: Engine.Mino;
        x: number;
        y: number;
    }
    fire: number
    fireAppr: number
    fireGrace: number
    firstInputTime: number
    g: number
    gameoverreason: GameOverReason | null
    garbageacknowledgements: {
        incoming: Record<number, number>;
        outgoing: Record<number, { amt: number; iid: number }[]>;
    }
    garbageareentries: unknown[]
    garbagearelockeduntil: number
    garbagebonus: number
    garbageid: number
    garbagereceived: number
    glock: number
    handling: Handling
    haschangedcolumn: boolean
    hesitatedattacks: unknown[]
    hold: Engine.Mino | null
    holdlocked: boolean
    hyperForfeitAllowed: boolean
    hyperRetryAllowed: boolean
    impendingdamage: {
        ackiid: number | null;
        active: boolean;
        actor_neg?: string;
        actor_pos?: string;
        amt: number;
        cid: number | null;
        color: unknown;
        column: number | undefined;
        delay: number;
        firstcycle?: boolean;
        gameid: number | null;
        hardened?: boolean;
        id: number;
        iid: number | null;
        neg: unknown;
        pos: unknown;
        position: unknown;
        queued: boolean;
        shielded?: boolean;
        size: number;
        status: "caution" | "spawn" | "sleeping";
        type: unknown;
        username: string | null;
        x: number;
        y: number;
    }[]
    inputHold: boolean
    inputRotate180: boolean
    inputRotateCCW: boolean
    inputRotateCW: boolean
    inputSoftdrop: boolean
    interactionid: number
    killer: { gameid: number; type: "sizzle"; username?: string | null }
    lastatktime: number | null
    lastcolumn: number | null
    lastdoublepiece: unknown
    lastGenerated: number | null
    lastoffensive: {
        defense: number;
        offence: number;
        surge: number;
        x: number;
        y: number;
    }
    lastpiecetime: number
    lastreceivedcount: number
    lastshift: -1 | 1
    laststrategychange: number
    lasttanktime: number
    lastwasattack: boolean
    lastwasclear: boolean
    lShift: { arr: number; das: number; dir: -1; held: boolean }
    nextwilltank: boolean
    notyetreceivedattacks: number
    otherstates?: {
        lastpiece: Types.Game.State | null;
        redo: Types.Game.State[];
        undo: Types.Game.State[];
    }
    pause: boolean
    placement: number
    playing: boolean
    quadcolumns: number[]
    retry: boolean
    retryAllowed: boolean
    retryiter: number
    rng: number
    rngex: number
    rShift: { arr: number; das: number; dir: 1; held: boolean }
    setoptions: ReadyOptions
    spike: { count: number; count_nomult: number; timer: number }
    started: boolean
    stock: number
    subframe: number
    successful: boolean
    targets: number[]
    time: {
        frameoffset: number;
        locked: boolean;
        prev: number;
        start: number;
        zero: boolean;
    }
    totalRotations: number
    tutorial: {
        finished: number;
        freeze: number;
        progress: number;
        reqs: number;
        stage: number;
    }
    unsafewaitingframes: unknown[]
    waitingframes: { data: any; target: number; type: string }[]
    windupwaituntil: number
    zenith: {
        allyincapacitated: boolean;
        blighted: boolean;
        blockrationing: number;
        blockrationing_app: number;
        blockrationing_final: number;
        bonusfromally: number;
        bonusremaining: number;
        climb_pts: number;
        columnsicknessbuckets_i: unknown[];
        columnsicknessbuckets_lj: unknown[];
        columnsicknessbuckets_sz: unknown[];
        escapeartist: number;
        garbageahead: unknown[];
        garbagerowcount: number;
        garbageside: number;
        gracestillmessy: boolean;
        hasseenI5: boolean;
        highestrevive: number;
        incapacitated: boolean;
        isDanger: boolean;
        last_rank_change_was_promote: boolean;
        lastcancel: number;
        lastclearcount: unknown;
        lastclearpiece: unknown;
        lastclearspin: unknown;
        lastclearwasdupe: boolean;
        lastfloorchange: number;
        maxmessy: boolean;
        nogarbagesince: unknown;
        promotion_fatigue: number;
        promptstarttime: number;
        quadbuckets: unknown[];
        rank_locked_until: number;
        revivelevel: number;
        reviveprompts: unknown[];
        spinbuckets: unknown[];
        stalepieces: number;
        staletime: number;
        szsickness: unknown[];
        talentless: boolean;
        top3rowsince: unknown;
        was180Used: boolean;
        wasCCWUsed: boolean;
        wasCWUsed: boolean;
    }