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,))
|
send_event((events.status,))
|
||||||
|
|
||||||
elif c == '!start':
|
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))
|
send_event((events.start, nick))
|
||||||
|
else:
|
||||||
|
send_event((events.start, nick, arg[0]))
|
||||||
|
|
||||||
elif c == '!ready':
|
elif c == '!ready':
|
||||||
if args(0) is not None:
|
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')
|
send('!status !start !ready !unready !kill !join !leave !players !deck !limit !card !cards')
|
||||||
|
|
||||||
elif len(arg) == 1:
|
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]))
|
send('Usage: !%s' % (arg[0]))
|
||||||
|
elif arg[0] == 'start':
|
||||||
|
send('Usage: !start [preset]')
|
||||||
elif arg[0] == 'card':
|
elif arg[0] == 'card':
|
||||||
send('Usage: [!card] <number> ...')
|
send('Usage: [!card] <number> ...')
|
||||||
elif arg[0] == 'deck':
|
elif arg[0] == 'deck':
|
||||||
|
|
60
gameloop.py
60
gameloop.py
|
@ -201,6 +201,25 @@ def game(send, notice, get_event):
|
||||||
responses
|
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):
|
def common_handler(event, args):
|
||||||
nonlocal players, decks, limit
|
nonlocal players, decks, limit
|
||||||
|
|
||||||
|
@ -237,19 +256,10 @@ def game(send, notice, get_event):
|
||||||
|
|
||||||
elif event == events.deck_add:
|
elif event == events.deck_add:
|
||||||
code, = args
|
code, = args
|
||||||
if code not in decks:
|
deck_add_handler(code)
|
||||||
errwrapper('Failure adding deck: %s (%%s)' % code, add_deck, code)
|
|
||||||
else:
|
|
||||||
send('Deck already added')
|
|
||||||
|
|
||||||
elif event == events.deck_add_random:
|
elif event == events.deck_add_random:
|
||||||
# Let's hope this never bites us in the butt
|
deck_add_random_handler()
|
||||||
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)
|
|
||||||
|
|
||||||
elif event == events.deck_remove:
|
elif event == events.deck_remove:
|
||||||
code, = args
|
code, = args
|
||||||
|
@ -300,11 +310,37 @@ def game(send, notice, get_event):
|
||||||
send('Idle')
|
send('Idle')
|
||||||
|
|
||||||
elif event == events.start:
|
elif event == events.start:
|
||||||
nick, = args
|
nick, *rest = args
|
||||||
|
|
||||||
add_player(nick)
|
add_player(nick)
|
||||||
|
|
||||||
send('%s started a game, !join to join!' % 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
|
return game_setup
|
||||||
|
|
||||||
elif event == events.quit:
|
elif event == events.quit:
|
||||||
|
|
Loading…
Reference in a new issue