Add event for amnesiac turning (for the random game mode)

This commit is contained in:
Vgr E.Barry 2015-06-14 16:32:39 -04:00
parent 5c4dcec8e6
commit a8984b6a56
2 changed files with 38 additions and 20 deletions

View File

@ -788,6 +788,21 @@ class RandomMode(GameMode):
"misdirection": ( 6 , 1 ),
}
def startup(self):
events.add_listener("amnesiac_turn", self.amnesiac_turn, 1)
def teardown(self):
events.remove_listener("amnesiac_turn", self.amnesiac_turn, 1)
def amnesiac_turn(self, evt, var, amn, role):
var.ROLES["amnesiac"].remove(amn)
var.ROLES[role].append(amn)
var.ORIGINAL_ROLES["amnesiac"].remove(amn)
var.ORIGINAL_ROLES[role].append(amn)
del var.FINAL_ROLES[amn]
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)

View File

@ -5264,7 +5264,10 @@ def transition_night(cli):
# convert amnesiac
if var.NIGHT_COUNT == var.AMNESIAC_NIGHTS:
amns = copy.copy(var.ROLES["amnesiac"])
for amn in amns:
event = Event("amnesiac_turn", {})
if event.dispatch(var, amn, var.FINAL_ROLES[amn]):
amnrole = var.FINAL_ROLES[amn]
var.ROLES["amnesiac"].remove(amn)
var.ROLES[amnrole].append(amn)