Skip to content

youssef-m-ibrahim/skribbl_bel_3arbi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

APIs

POST /api/rooms
    body: {}
    return: 200 room: Room

Events

⬆: Events to emit
⬇: Events to subscribe

⬇ connected => {me: Player, game:Game}
⬇ connect_error => error: Error
⬇ playerJoined => player: Player
⬇ playerLeft => player: Player
⬇ hostChanged => host: Player
⬇ roomDeleted => undefined
⬆ startGame => gameSettings : GameSettings Host Privileges => Ack(error){} # will send an ack error if something went wrong on server
⬇ gameStarted => gameSettings : GameSettings
⬇ newTurn => { turn: Number, availableRounds: Number, score: Score, wordChoices: [String] } Turn Privileges OR
                            { turn: Number, availableRounds: Number, score: Score }
⬆ chooseWord => word: string
⬇ wordChoosen => word: string # word is hidden for players with no turn priviledges
⬇ drawTimerStarted => undefined
⬇ drawTimerUpdated => timeLeft: number # in seconds
⬇ drawTimerEnded => undefined
⬇ gameover => score : Score
⬆ updateBoard => { action: String, ...params } Turn Privileges
⬇ boardUpdated => { action: String, ...params } # draw line or change any of the draw settings
⬆ updateProfile => { nickname: String, avatar: [Number] } # this event is limited to non running game states
⬇ profileUpdated => player: Player # this event is limited to non running game states
⬆ sendReact => { target: Number, reactId: Number }
⬇ reactSent => { source: Number, target: Number, reactId: Number }
⬆ guessWord => word: string => { correct: Bool, close: Bool }
⬇ wordGuessed => { name: String, correct: Bool, close?: Bool, word?: String } # word should be null in case of correct guess

Objects

Room {
    id: String,
    link: String,
    hostId: String
}

Player {
    id: String,
    nickname: String,
    isHost: Bool,
    gameData:{
        hintsLeft: number,
        score: number
    }
}

GameSettings {
    rounds: Number,
    drawTime: Number
}

Game {
    ...gameSettings,
    state: String, # created, running, ended
    turn: Number,
    availableRounds: Number,
    players: [Player]
}

Score {
    ...
    [playerId]: Number
    ...
}

TODOs:

Events

⬆: Events to emit
⬇: Events to listen on

⬆ requestWordHint => index: Number => { letter: char }

Objects

Room {
    id: String,
    link: String,
    hostId: String
}

Player {
    id: String,
    nickname: String,
    isHost: Bool,
    gameData:{
        hintsLeft: number,
        score: number
    }
}

GameSettings {
    rounds: Number,
    drawTime: Number
}

Game {
    ...gameSettings,
    state: String, # created, running, ended
    turn: Number,
    availableRounds: Number,
    players: [Player]
}

Score {
    ...
    [playerId]: Number
    ...
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published