UNPKG

@bot-shiki/koishi-plugin-werewolf

Version:
59 lines (58 loc) 1.93 kB
import { Context, Dict, z } from 'koishi'; import { Corridor, Game, Player } from 'koishi-plugin-lobby'; import { Character, Identity, Weather } from './utils'; import IkuAction from './action/iku'; import YukariAction from './action/yukari'; import RemiliaAction from './action/remilia'; import MamizouAction from './action/mamizou'; import DoremyAction from './action/doremy'; import NingenAction from './action/ningen'; import SageAction from './action/sage'; import ExileAction from './action/exile'; import DeathAction from './action/death'; export type CountdownTag = never | 'init' | 'confirm' | 'death' | 'ningen' | 'speech' | 'vote' | 'last-words' | 'show-kill' | 'sage-order' | 'sage-transfer'; export type Phase = 'init' | 'Vote' | 'Day' | 'Night'; export declare class WerewolfGame extends Game<WerewolfGame.Options> { dayCount: number; weather: Weather; seats: Character[]; chars: Map<Player, Character>; winner: Identity.Winner; iku: IkuAction; sage: SageAction; exile: ExileAction; death: DeathAction; ningen: NingenAction; remilia: RemiliaAction; mamizou: MamizouAction; yukari: YukariAction; doremy: DoremyAction; getChar(identity: Identity): Character; validate(): Promise<void>; leave(player: Player): void; init(): Promise<void>; start(): Promise<void>; isNingenWinner(): boolean; check(): void; private announce; private dayAction; nightAction(): Promise<void>; } export declare namespace WerewolfGame { interface Options { sage?: boolean; weather?: boolean; timeout?: Dict<number>; } } declare class RPSCorridor extends Corridor { config: RPSCorridor.Config; factory: typeof WerewolfGame; constructor(ctx: Context, config: RPSCorridor.Config); } declare namespace RPSCorridor { interface Config { } const Config: z<Config>; } export default RPSCorridor;