def duelCountdown(count, map, mode): players = sbserver.players() if len(sbserver.players()) != 2 or players[0] not in duelers or players[1] not in duelers: cancelDuel() elif count == 0: currently_dueling[0] = True sbserver.message(green('Fight!')) sbserver.setMap(map, mode) sbserver.setPaused(False) else: sbserver.message(green('%i seconds' % count)) addTimer(1000, duelCountdown, (count-1, map, mode))
def duelCountdown(count, map, mode): players = sbserver.players() if len(sbserver.players() ) != 2 or players[0] not in duelers or players[1] not in duelers: cancelDuel() elif count == 0: currently_dueling[0] = True sbserver.message(green('Fight!')) sbserver.setMap(map, mode) sbserver.setPaused(False) else: sbserver.message(green('%i seconds' % count)) addTimer(1000, duelCountdown, (count - 1, map, mode))
def presetRotate(): try: map = getSuccessor(sbserver.gameMode(), sbserver.mapName()) except KeyError: logging.warning('No map list specified for current mode. Defaulting to user-specified rotation.') clientReloadRotate() except ValueError: logging.info('Maps list for current mode is empty. Defaulting to user-specified rotation.') clientReloadRotate() else: sbserver.setMap(map, sbserver.gameMode()) if sbserver.numClients() == 0: rotate_on_join[0] = True sbserver.setPaused(True)
def presetRotate(): try: map = getSuccessor(sbserver.gameMode(), sbserver.mapName()) except KeyError: logging.warning( 'No map list specified for current mode. Defaulting to user-specified rotation.' ) clientReloadRotate() except ValueError: logging.info( 'Maps list for current mode is empty. Defaulting to user-specified rotation.' ) clientReloadRotate() else: sbserver.setMap(map, sbserver.gameMode()) if sbserver.numClients() == 0: rotate_on_join[0] = True sbserver.setPaused(True)
def setPaused(val, cn=-1): '''Pause or unpause the game''' if isFrozen(): raise StateError('Server is currently frozen') if val == isPaused(): return if val: action = 'paused' else: action = 'unpaused' try: p = player(cn) except ValueError: name = 'Unknown' else: name = p.name() sbserver.message(notice(pause_message.substitute( colordict, action=action, name=name))) sbserver.setPaused(val)
def endDuel(): sbserver.setMasterMode(prev_mastermode) sbserver.setPaused(False) currently_dueling[0] = False currently_dueling[1] = False
def onConnect(cn): if rotate_on_join[0]: rotate_on_join[0] = False sbserver.setPaused(False)