53 lines
1.6 KiB
CoffeeScript
53 lines
1.6 KiB
CoffeeScript
# Send primus event when leaving battles.
|
|
PokeBattle.battles.on 'remove', (battle) ->
|
|
PokeBattle.primus.send('leaveChatroom', battle.id)
|
|
|
|
# Event listeners
|
|
PokeBattle.primus.on 'updateBattle', (id, queue) ->
|
|
battle = PokeBattle.battles.get(id)
|
|
if !battle
|
|
console.log "Received events for #{id}, but no longer in battle!"
|
|
return
|
|
battle.update(queue)
|
|
|
|
# Create a BattleView when spectating a battle
|
|
PokeBattle.primus.on 'spectateBattle', (id, format, numActive, index, playerIds, log) ->
|
|
if PokeBattle.battles.get(id)
|
|
console.log "Already spectating battle #{id}!"
|
|
return
|
|
battle = new Battle({id, format, numActive, index, playerIds})
|
|
|
|
# Create BattleView
|
|
$battle = $(JST['battle_window']({battle, window}))
|
|
$('#main-section').append($battle)
|
|
battle.view = new BattleView(el: $battle, model: battle)
|
|
battle.view.skip = 0
|
|
battle.view.$('.battle_pane').hide()
|
|
|
|
# Add to collection
|
|
PokeBattle.battles.add(battle)
|
|
|
|
# Update log
|
|
battle.update(log)
|
|
|
|
PokeBattle.primus.on 'updateTimers', (id, timers) ->
|
|
battle = PokeBattle.battles.get(id)
|
|
if !battle
|
|
console.log "Received events for #{id}, but no longer in battle!"
|
|
return
|
|
battle.view.updateTimers(timers)
|
|
|
|
PokeBattle.primus.on 'resumeTimer', (id, player) ->
|
|
battle = PokeBattle.battles.get(id)
|
|
if !battle
|
|
console.log "Received events for #{id}, but no longer in battle!"
|
|
return
|
|
battle.view.resumeTimer(player)
|
|
|
|
PokeBattle.primus.on 'pauseTimer', (id, player, timeSinceLastAction) ->
|
|
battle = PokeBattle.battles.get(id)
|
|
if !battle
|
|
console.log "Received events for #{id}, but no longer in battle!"
|
|
return
|
|
battle.view.pauseTimer(player, timeSinceLastAction)
|