Add presets
This commit is contained in:
parent
55e27fd94e
commit
2f33f431e2
2 changed files with 57 additions and 15 deletions
10
botcmd.py
10
botcmd.py
|
@ -129,8 +129,12 @@ def parse_command(message, nick, irc):
|
|||
send_event((events.status,))
|
||||
|
||||
elif c == '!start':
|
||||
if args(0) is not None:
|
||||
arg = args([0, 1])
|
||||
if arg is not None:
|
||||
if len(arg) == 0:
|
||||
send_event((events.start, nick))
|
||||
else:
|
||||
send_event((events.start, nick, arg[0]))
|
||||
|
||||
elif c == '!ready':
|
||||
if args(0) is not None:
|
||||
|
@ -239,8 +243,10 @@ def parse_command(message, nick, irc):
|
|||
send('!status !start !ready !unready !kill !join !leave !players !deck !limit !card !cards')
|
||||
|
||||
elif len(arg) == 1:
|
||||
if arg[0] in ('status', 'start', 'ready', 'unready', 'kill', 'join', 'leave', 'players', 'cards'):
|
||||
if arg[0] in ('status', 'ready', 'unready', 'kill', 'join', 'leave', 'players', 'cards'):
|
||||
send('Usage: !%s' % (arg[0]))
|
||||
elif arg[0] == 'start':
|
||||
send('Usage: !start [preset]')
|
||||
elif arg[0] == 'card':
|
||||
send('Usage: [!card] <number> ...')
|
||||
elif arg[0] == 'deck':
|
||||
|
|
60
gameloop.py
60
gameloop.py
|
@ -201,6 +201,25 @@ def game(send, notice, get_event):
|
|||
responses
|
||||
))
|
||||
|
||||
def deck_add_handler(code):
|
||||
nonlocal decks
|
||||
|
||||
if code not in decks:
|
||||
errwrapper('Failure adding deck: %s (%%s)' % code, add_deck, code)
|
||||
else:
|
||||
send('Deck already added')
|
||||
|
||||
def deck_add_random_handler():
|
||||
nonlocal decks
|
||||
|
||||
# Let's hope this never bites us in the butt
|
||||
while True:
|
||||
code = errwrapper('Failure getting random code for a deck. (%s)', get_random_deck_code)
|
||||
if code is Error: return
|
||||
if code not in decks: break
|
||||
send('That was weird, got %s randomly but it was already added' % code)
|
||||
errwrapper('Failure adding deck: %s (%%s)' % code, add_deck, code)
|
||||
|
||||
def common_handler(event, args):
|
||||
nonlocal players, decks, limit
|
||||
|
||||
|
@ -237,19 +256,10 @@ def game(send, notice, get_event):
|
|||
|
||||
elif event == events.deck_add:
|
||||
code, = args
|
||||
if code not in decks:
|
||||
errwrapper('Failure adding deck: %s (%%s)' % code, add_deck, code)
|
||||
else:
|
||||
send('Deck already added')
|
||||
deck_add_handler(code)
|
||||
|
||||
elif event == events.deck_add_random:
|
||||
# Let's hope this never bites us in the butt
|
||||
while True:
|
||||
code = errwrapper('Failure getting random code for a deck. (%s)', get_random_deck_code)
|
||||
if code is Error: return
|
||||
if code not in decks: break
|
||||
send('That was weird, got %s randomly but it was already added' % code)
|
||||
errwrapper('Failure adding deck: %s (%%s)' % code, add_deck, code)
|
||||
deck_add_random_handler()
|
||||
|
||||
elif event == events.deck_remove:
|
||||
code, = args
|
||||
|
@ -300,11 +310,37 @@ def game(send, notice, get_event):
|
|||
send('Idle')
|
||||
|
||||
elif event == events.start:
|
||||
nick, = args
|
||||
nick, *rest = args
|
||||
|
||||
add_player(nick)
|
||||
|
||||
send('%s started a game, !join to join!' % nick)
|
||||
|
||||
expert = False
|
||||
if len(rest) == 0 or rest[0] == 'default':
|
||||
send('Adding the default CAH deck (A5DCM)')
|
||||
|
||||
deck_add_handler('A5DCM')
|
||||
|
||||
elif rest[0] == 'offtopia':
|
||||
send('Adding the default CAH deck (A5DCM), offtopia injoke deck (PXWKC), and three random decks')
|
||||
|
||||
deck_add_handler('A5DCM')
|
||||
deck_add_handler('PXWKC')
|
||||
|
||||
deck_add_random_handler()
|
||||
deck_add_random_handler()
|
||||
deck_add_random_handler()
|
||||
|
||||
elif rest[0] == 'expert':
|
||||
expert = True
|
||||
|
||||
else:
|
||||
send('Unknown preset %s' % rest[0])
|
||||
|
||||
if not expert:
|
||||
send('Once you are ready to start the game, everyone send !ready')
|
||||
|
||||
return game_setup
|
||||
|
||||
elif event == events.quit:
|
||||
|
|
Loading…
Reference in a new issue