Quickstart
This code snippet very briefly illustrates the 3 core concepts of Kalamba SDK:
// Create Kalamba SDK instance
const sdk = new KalambaSdk({ messagePort: window.parent })
// Initialize Game with Kalamba SDK
const myGame = new Game(sdk)
// Configure wrapper (must be awaited before openGame)
await sdk.configure({ gameName: myGame.name, gameVersion: myGame.version })
// React to Kalamba SDK legalBets event
sdk.on('legalBets', legalBets => myGame.setLegalBets(legalBets))
// React to Kalamba SDK bet event - in case there is a bet indicator in game
sdk.on('bet', bet => myGame.setBet(bet))
// React to Kalamba SDK balance event - in case there is a balance indicator in game
sdk.on('balance', balance => myGame.setBalance(balance))
// Open game
const openGameResponse = await sdk.openGame()
// sdk.config is available after openGame
console.log('config', sdk.config)
// Notify Kalamba SDK about initial game settings
sdk.send('settings', myGame.settings)
// React to Kalamba SDK paytable event
sdk.on('paytable', ({ show }: { show: boolean }) => {
myGame.togglePaytable(show)
})
// Notify Kalamba SDK that the game has started loading
sdk.send('loadStart')
await myGame.load()
// Notify Kalamba SDK that the game has finished loading
sdk.send('loadEnd')
// Notify Kalamba SDK that the game is ready to play
sdk.send('playReady')
// Play game
const playResponse = await sdk.play({ bet: { base: 10, multiplier: 2 } })
// Notify Kalamba SDK about bet change
sdk.send('bet', { base: 10, multiplier: 3 })
// Play game
const playResponse = await sdk.play({ bet: { base: 10, multiplier: 3 } })