initial commit

This commit is contained in:
2024-05-26 15:21:54 +02:00
commit 0cd59cdb23
6 changed files with 368 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
import { ContainerVisibility, IContainer, IFireGemsStack, IInteractibleContainer, IMarket, IMarketStack, IPlayableContainer, IPlayerBoard, IPlayerDiscard, IPlayerHand, IPlayerStack } from "../generic/containers.js"
import { IGameObject, ICard, IPlayer, IGame } from "../generic/index.js"
export interface ICContainer<T> extends IContainer<T> {
onCardsAppend: (cards: Array<ICard>) => void
onDraw: (cards: Array<ICard>) => void
onRemoveCards: (cards: Array<ICard>) => void
onShuffle: () => void
}
export interface ICInteractibleContainer extends IInteractibleContainer {
onSacrifice: (card: ICard) => void
}
export interface ICPlayableContainer extends IPlayableContainer {
onDiscard: (card: ICard) => void
}
export interface ICMarketStack extends IMarketStack {
}
export interface ICMarket extends IMarket {
onBuy: (card: ICard) => void
onBuyInHand: (card: ICard) => void
onBuyInStack: (card: ICard) => void
}
export interface ICFireGemsStack extends IFireGemsStack {
}
export interface ICPlayerStack extends IPlayerStack {
}
export interface ICPlayerDiscard extends IPlayerDiscard {
onPutOnStack: (card: ICard) => void
}
export interface ICPlayerHand extends IPlayerHand {
onPutAllOnBoard: () => void
}
export interface ICPlayerBoard extends IPlayerBoard {
onStunChampion: (card: ICard) => void
}
+58
View File
@@ -0,0 +1,58 @@
import { IFireGemsStack, IMarket, IMarketStack, IPlayerBoard, IPlayerDiscard, IPlayerHand } from "../generic/containers.js"
import { ICard, IEffect, IGame, IGameObject, ILobby, IPlayer, ITeam, ITurn, IUser } from "../generic/index.js"
import { ISLobby } from "../server/index.js"
export interface ICEffect extends IEffect {
}
export interface ICCard extends ICard {
}
export interface ICTurn extends ITurn {
onCardLock: (card: ICard) => void
}
export interface ICPlayer extends IPlayer {
onReadyStateChange: (ready: boolean) => void
}
export interface ICTeam extends ITeam {
damage: (amount: number) => void
join: () => void
onTakeDamage: (amount: number) => void
onPlayerAdd: (player: IPlayer) => void
onPlayerRemove: (player: IPlayer) => void
onStartTurn: () => void
onEndTurn: () => void
onDie: () => void
}
export interface ICGame extends IGame {
join: () => void
kick: (player: IPlayer) => void
leave: () => void
start: () => void
request_join: () => void
request_kick: (player: ICPlayer) => void
request_leave: () => void
request_start: () => void
request_changeRules: () => void
request_gameEnd: () => void
onRulesChange: () => void
onAddTeam: (team: ITeam) => void
onRemoveTeam: (team: ITeam) => void
onGameStart: () => void
onGameEnd: () => void
}
export interface ICUser extends IUser {
}
export interface ICLobby extends ILobby {
request_createGame: () => Promise<ReturnType<ISLobby["request_createGame"]>>
}