Suppory $0
This commit is contained in:
parent
23d681833c
commit
df7132725f
39
gameloop.py
39
gameloop.py
|
@ -5,7 +5,6 @@ from collections import namedtuple
|
||||||
import cardcast_api
|
import cardcast_api
|
||||||
|
|
||||||
# TODO: rando
|
# TODO: rando
|
||||||
# TODO: $0 support
|
|
||||||
# TODO: collapse several _ in a row into one
|
# TODO: collapse several _ in a row into one
|
||||||
# TODO: keep track of where cards come from purge from hand when deck remove
|
# TODO: keep track of where cards come from purge from hand when deck remove
|
||||||
|
|
||||||
|
@ -520,11 +519,45 @@ def game(send, notice, get_event):
|
||||||
notice(nick, cards)
|
notice(nick, cards)
|
||||||
|
|
||||||
def combine_cards(call, responses):
|
def combine_cards(call, responses):
|
||||||
combined = [sanitize(call[0])]
|
def handle_call_part(call_part):
|
||||||
|
nonlocal responses
|
||||||
|
|
||||||
|
r = []
|
||||||
|
after_dollar = False
|
||||||
|
for char in call_part:
|
||||||
|
if after_dollar and ord('0') <= ord(char) <= ord('9'):
|
||||||
|
# Handle $0 .. $9
|
||||||
|
# Hopefully we won't run into more backreferences
|
||||||
|
# in one card
|
||||||
|
index = int(char)
|
||||||
|
|
||||||
|
if 0 <= index < len(responses):
|
||||||
|
r.append(responses[index])
|
||||||
|
else:
|
||||||
|
# Not valid backreference, copy verbatim
|
||||||
|
r.append('$' + char)
|
||||||
|
|
||||||
|
after_dollar = False
|
||||||
|
|
||||||
|
elif after_dollar:
|
||||||
|
# Wasn't a backreference, copy verbatim
|
||||||
|
r.append('$' + char)
|
||||||
|
|
||||||
|
after_dollar = False
|
||||||
|
|
||||||
|
elif char == '$':
|
||||||
|
after_dollar = True
|
||||||
|
|
||||||
|
else:
|
||||||
|
r.append(char)
|
||||||
|
|
||||||
|
return sanitize(''.join(r))
|
||||||
|
|
||||||
|
combined = [handle_call_part(call[0])]
|
||||||
|
|
||||||
for i in range(len(call) - 1):
|
for i in range(len(call) - 1):
|
||||||
combined.append('[' + sanitize(responses[i]) + ']')
|
combined.append('[' + sanitize(responses[i]) + ']')
|
||||||
combined.append(sanitize(call[i + 1]))
|
combined.append(handle_call_part(call[i + 1]))
|
||||||
|
|
||||||
return ''.join(combined)
|
return ''.join(combined)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue