!roles properly displays roles that drop out, and can show roles for a specific player count
This commit is contained in:
parent
6e2cae8e6b
commit
e0d3476a2c
@ -5265,28 +5265,46 @@ def listroles(cli, nick, chan, rest):
|
|||||||
|
|
||||||
old = {}
|
old = {}
|
||||||
txt = ""
|
txt = ""
|
||||||
|
index = 0
|
||||||
|
|
||||||
for r in var.ROLE_GUIDE.keys():
|
for r in var.ROLE_GUIDE.keys():
|
||||||
old[r] = 0
|
old[r] = 0
|
||||||
|
rest = re.split(" +", rest.strip(), 1)[0]
|
||||||
|
if rest.isdigit():
|
||||||
|
index = int(rest)
|
||||||
|
for i in range(len(var.ROLE_INDEX)-1, -1, -1):
|
||||||
|
if var.ROLE_INDEX[i] <= index:
|
||||||
|
index = var.ROLE_INDEX[i]
|
||||||
|
break
|
||||||
|
else:
|
||||||
pl = len(var.list_players()) + len(var.DEAD)
|
pl = len(var.list_players()) + len(var.DEAD)
|
||||||
if pl > 0:
|
if pl > 0:
|
||||||
txt += ' {0}: There are \u0002{1}\u0002 playing.'.format(nick, pl)
|
txt += ' {0}: There are \u0002{1}\u0002 playing.'.format(nick, pl)
|
||||||
|
|
||||||
for i in range(0, len(var.ROLE_INDEX)):
|
for i in range(0, len(var.ROLE_INDEX)):
|
||||||
|
if index:
|
||||||
|
if var.ROLE_INDEX[i] < index:
|
||||||
|
continue
|
||||||
|
elif var.ROLE_INDEX[i] > index:
|
||||||
|
break
|
||||||
if (var.ROLE_INDEX[i] <= pl):
|
if (var.ROLE_INDEX[i] <= pl):
|
||||||
txt += BOLD
|
txt += BOLD
|
||||||
txt += " [" + str(var.ROLE_INDEX[i]) + "] "
|
txt += " [" + str(var.ROLE_INDEX[i]) + "] "
|
||||||
if (var.ROLE_INDEX[i] <= pl):
|
if (var.ROLE_INDEX[i] <= pl):
|
||||||
txt += BOLD
|
txt += BOLD
|
||||||
for r, l in var.ROLE_GUIDE.items():
|
roles = []
|
||||||
if l[i] - old[r] != 0:
|
for role, amount in var.ROLE_GUIDE.items():
|
||||||
if l[i] > 1:
|
direction = 1 if amount[i] > old[role] else -1
|
||||||
txt += "{0}({1}), ".format(r, l[i])
|
for j in range(old[role], amount[i], direction):
|
||||||
else:
|
temp = "{0}{1}".format("-" if direction == -1 else "", role)
|
||||||
txt += "{0}, ".format(r)
|
if direction == 1 and j+1 > 1:
|
||||||
old[r] = l[i]
|
temp += "({0})".format(j+1)
|
||||||
txt = txt[:-2] + " "
|
elif j > 1:
|
||||||
|
temp += "({0})".format(j)
|
||||||
|
roles.append(temp)
|
||||||
|
old[role] = amount[i]
|
||||||
|
txt += ", ".join(roles)
|
||||||
|
txt = txt[1:]
|
||||||
|
|
||||||
if chan == nick:
|
if chan == nick:
|
||||||
pm(cli, nick, txt)
|
pm(cli, nick, txt)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user