Add chk_traitor event (for the random game mode)
This commit is contained in:
parent
aaaf3df0f5
commit
5d8cd14db8
@ -788,10 +788,12 @@ class RandomMode(GameMode):
|
||||
def startup(self):
|
||||
events.add_listener("amnesiac_turn", self.amnesiac_turn, 1)
|
||||
events.add_listener("roles_check", self.roles_check, 1)
|
||||
events.add_listener("chk_traitor", self.chk_traitor, 1)
|
||||
|
||||
def teardown(self):
|
||||
events.remove_listener("amnesiac_turn", self.amnesiac_turn, 1)
|
||||
events.remove_listener("roles_check", self.roles_check, 1)
|
||||
events.remove_listener("chk_traitor", self.chk_traitor, 1)
|
||||
|
||||
def amnesiac_turn(self, evt, var, amn, role):
|
||||
var.ROLES["amnesiac"].remove(amn)
|
||||
@ -805,6 +807,25 @@ class RandomMode(GameMode):
|
||||
def roles_check(self, evt, var, addroles):
|
||||
evt.prevent_default = True
|
||||
|
||||
def chk_traitor(self, evt, cli, var, cubes, betrayers):
|
||||
if not var.FIRST_NIGHT:
|
||||
return # use normal chk_traitor
|
||||
|
||||
for cube in cubes:
|
||||
var.ROLES["wolf"].append(cube)
|
||||
var.ROLES["wolf cub"].remove(cube)
|
||||
var.ORIGINAL_ROLES["wolf"].append(cube)
|
||||
var.ORIGINAL_ROLES["wolf cub"].remove(cube)
|
||||
|
||||
if len(var.ROLES["wolf"]) == 0:
|
||||
for betrayer in betrayers:
|
||||
var.ROLES["wolf"].append(betrayer)
|
||||
var.ROLES["traitor"].remove(betrayer)
|
||||
var.ORIGINAL_ROLES["wolf"].append(betrayer)
|
||||
var.ORIGINAL_ROLES["traitor"].remove(betrayer)
|
||||
|
||||
evt.prevent_default = True
|
||||
|
||||
# Credits to Metacity for designing and current name
|
||||
# Blame arkiwitect for the original name of KrabbyPatty
|
||||
@game_mode("aleatoire", minp = 8, maxp = 24, likelihood = 4)
|
||||
|
@ -1632,8 +1632,16 @@ def show_votes(cli, nick, chan, rest):
|
||||
cli.msg(chan, the_message)
|
||||
|
||||
def chk_traitor(cli):
|
||||
realwolves = var.WOLF_ROLES[:]
|
||||
realwolves.remove("wolf cub")
|
||||
if len(var.list_players(realwolves)) > 0:
|
||||
return # actual wolves still alive
|
||||
|
||||
wcl = copy.copy(var.ROLES["wolf cub"])
|
||||
ttl = copy.copy(var.ROLES["traitor"])
|
||||
|
||||
event = Event("chk_traitor", {})
|
||||
if event.dispatch(cli, var, wcl, ttl):
|
||||
for wc in wcl:
|
||||
var.ROLES["wolf"].append(wc)
|
||||
var.ROLES["wolf cub"].remove(wc)
|
||||
|
Loading…
Reference in New Issue
Block a user