npm i uno-game-engine
const { Game, events } = require('uno-game-engine')
let game = new Game(["player1", "player2", "player3", "player4"])
game.eventManager.addEvent(new events.PlayerChangeEvent((oldPlayer, newPlayer) => {
console.log(`It is now ${newPlayer.name}'s turn`)
}))
game.start()
let cardToPlay = game.currentPlayer.hand.getCard("RED", "FIVE")
let success = game.play(game.currentPlayer, cardToPlay)
game.draw(game.currentPlayer)
game.draw(game.getPlayerByName("player3"), 5)
game.draw(game.getPlayerById(2),3)
const { Game, Config } = require('uno-game-engine')
let config = new Config()
config.setDefaultRotation("CW")
.setInitialCards(7)
.setPlayersPerDeck(4)
let game = new Game(["player1", "player2", "player3", "player4"], config)
game = new Game(["player1", "player2", "..."], new Config().setInitialCards(7).setPlayersPerDeck(4))
const { Game, events } = require('uno-game-engine')
let game = new Game(["Player 1", "Player 2"])
game.eventManager.addEvent(new events.PlayerPlayEvent((player, card) => {
console.log(`${player} played ${card}`)
}))
game.eventManager.addEvent(new events.PlayerChangeEvent((oldPlayer, newPlayer) => {
console.log(`It is now ${newPlayer}'s turn`)
}))
game.eventManager.addEvent(new events.PlayerDrawEvent((player, cards) => {
console.log(`${player} drew ${cards.length} cards`)
}))
game.eventManager.fireEvent(events.PlayerChangeEvent.fire(game.currentPlayer, game.getNextPlayer()))
let Event = events.Event
class MyEvent extends Event {
constructor(callback, once = false) {
super(callback, "myEvent", once)
}
static fire(something, somethingElse) {
return new events.FireEvent("myEvent", something, somethingElse)
}
}
game.eventManager.addEvent(new MyEvent((something, somethingElse) => {
console.log(`something: ${something}, somethingElse: ${somethingElse}`)
}))
game.eventManager.fireEvent(MyEvent.fire(1, "hello"))