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
+48
View File
@@ -0,0 +1,48 @@
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"
import { ISCard } from "./index.js"
export interface ISContainer<T> extends IContainer<T> {
appendCards: (cards: Array<ISCard>) => void
draw: (amount: number) => Array<ISCard>
removeCards: (cards: Array<ISCard>) => void
shuffle: () => void
}
export interface ISInteractibleContainer extends IInteractibleContainer {
sacrifice: (card: ISCard) => void
}
export interface ISPlayableContainer extends IPlayableContainer {
discard: (card: ISCard) => void
}
export interface ISMarketStack extends IMarketStack {
}
export interface ISMarket extends IMarket {
buy: (card: ISCard) => void
buyInHand: (card: ISCard) => void
buyInStack: (card: ISCard) => void
}
export interface ISFireGemsStack extends IFireGemsStack {
}
export interface ISPlayerStack extends IPlayerStack {
}
export interface ISPlayerDiscard extends IPlayerDiscard {
putOnStack: (card: ISCard) => void
}
export interface ISPlayerHand extends IPlayerHand {
putAllOnBoard: () => void
}
export interface ISPlayerBoard extends IPlayerBoard {
stunChampion: (card: ISCard) => void
}
+65
View File
@@ -0,0 +1,65 @@
import { ICard, IEffect, IGame, ILobby, IPlayer, ITeam, ITurn, IUser, ServerMessage } from "../generic/index.js"
import { WebSocket } from "ws"
export interface ISClientProvider {
socket: WebSocket
send: (message: ServerMessage) => void
}
export interface ISQuery {
provider: ISClientProvider
accept: (message: ServerMessage) => void
cancel: (message: ServerMessage) => void
error: (message: string) => void
}
export interface ISEffect extends IEffect {
use: () => void
}
export interface ISCard extends ICard {
}
export interface ISTurn extends ITurn {
lockCard: (card: ICard) => void
}
export interface ISPlayer extends IPlayer {
setReady: (ready: boolean) => void
}
export interface ISTeam extends ITeam {
damage: (amount: number) => void
addPlayer: (player: IPlayer) => void
removePlayer: (player: IPlayer) => void
startTurn: () => void
endTurn: () => void
die: () => void
}
export interface ISGame extends IGame {
addTeam: (team: ISTeam) => void
removeTeam: (team: ISTeam) => void
start: () => void
request_join: (query: ISQuery) => void
request_kick: (query: ISQuery) => void
request_leave: (query: ISQuery) => void
request_start: (query: ISQuery) => void
request_changeRules: (query: ISQuery) => void
request_gameEnd: (query: ISQuery) => void
}
export interface ISUser extends IUser {
}
export interface ISLobby extends ILobby {
createGame: () => void
request_createGame: (query: ISQuery) => void
request_login: (query: ISQuery) => void
subscribe: (query: ISQuery) => any
}