Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.49 KB | None | 0 0
  1. from game import Game, games
  2. from role import Voter
  3. import random
  4.  
  5. class Assassin(Voter):
  6. def __init__(self, game, rolename):
  7. Voter.__init__(self, game, rolename)
  8. self.role = "Assassin"
  9.  
  10. def gameStart(self):
  11. Voter.gameStart(self)
  12. self.game.tell("Role: Assassin", self.game.names[self])
  13. self.game.commentary(self.game.names[self] + ": " + "Assassin")
  14.  
  15. def action(self, msg):
  16. args = msg.split(" ")
  17. if ((args[0] == "kill") and (self.game.phase == "night" or self.game.phase == "day")):
  18. if ((len(args) >= 2) and (args[1] in self.game.roles)):
  19. self.game.nk = args[1]
  20. self.game.tell(args[1] + " has been nightkilled.", self.game.names[self])
  21. self.game.mkDay()
  22. else:
  23. self.game.tell("You must pick a valid target.", self.game.names[self])
  24. else:
  25. Voter.action(self, msg)
  26. class King(Voter):
  27. def __init__(self, game, rolename):
  28. Voter.__init__(self, game, rolename)
  29. self.role = "King"
  30.  
  31. def gameStart(self):
  32. Voter.gameStart(self)
  33. self.game.tell("Role: King", self.game.names[self])
  34. self.game.commentary(self.game.names[self] + ": " + "King")
  35.  
  36.  
  37. class Guard1(Voter):
  38. def __init__(self, game, rolename):
  39. Voter.__init__(self, game, rolename)
  40. self.role = "Guard1"
  41. self.target = self.game.get_role("King")
  42.  
  43. def gameStart(self):
  44. Voter.gameStart(self)
  45. self.game.tell("Role: Guard for " + self.target, self.game.names[self])
  46. self.game.commentary(self.game.names[self] + ": " + "Guard")
  47.  
  48. class Guard2(Voter):
  49. def __init__(self, game, rolename):
  50. Voter.__init__(self, game, rolename)
  51. self.role = "Guard2"
  52. self.target = self.game.get_role("King")
  53.  
  54. def gameStart(self):
  55. Voter.gameStart(self)
  56. self.game.tell("Role: Guard for " + self.target, self.game.names[self])
  57. self.game.commentary(self.game.names[self] + ": " + "Guard")
  58.  
  59. class Guard3(Voter):
  60. def __init__(self, game, rolename):
  61. Voter.__init__(self, game, rolename)
  62. self.role = "Guard3"
  63. self.target = self.game.get_role("King")
  64.  
  65. def gameStart(self):
  66. Voter.gameStart(self)
  67. self.game.tell("Role: Guard for " + self.target, self.game.names[self])
  68. self.game.commentary(self.game.names[self] + ": " + "Guard")
  69.  
  70.  
  71. class Game_SINS5(Game):
  72. def __init__(self, players, announce, tell, commentary, gameover):
  73. self.roles = [Assassin, King, Guard1, Guard2, Guard3]
  74. rolenames = [("Assassin", "Assassin"), ("King", "King"), ("Guard1", "Guard"), ("Guard2", "Guard"), ("Guard3", "Guard")]
  75. Game.__init__(self, self.roles, players, rolenames, announce, tell, commentary)
  76. self.game_over = gameover
  77. self.announce("Game started. Get with the lynching!")
  78.  
  79. def mkNight(self):
  80. for votee in self.votees:
  81. if (len(self.votees[votee]) >= (len(self.voters) / 2 + 1)):
  82. deadp = votee
  83. if (deadp == "NL"):
  84. self.deadp = None
  85. self.announce("It is now night. Zzz...")
  86. Game.mkNight(self)
  87. return
  88. elif (deadp.role == "King"):
  89. self.announce("The Assassin, " + self.get_role("Assassin") + " has gotten his target lynched! Assassin win!")
  90. self.game_over()
  91. self.announce("The town has lynched the assassin! Town win!")
  92. if (self.get_role("King") != None):
  93. self.announce("King was " + self.get_role("King") + ".")
  94. else:
  95. self.deadp = deadp
  96. self.deadp_name = self.names[deadp]
  97. self.removePlayer(self.names[deadp])
  98. self.announce("It is now night. Zzz...")
  99. Game.mkNight(self)
  100. return
  101. self.game_over()
  102.  
  103. def mkDay(self):
  104. self.announce("Daytime! " + self.nk + " was killed during the night.")
  105. self.announce(self.nk + " was a " + self.roles[self.nk].role + ".")
  106. self.removePlayer(self.nk)
  107. if (self.deadp != None):
  108. self.announce("Yesterday's lynch, " + self.deadp_name + ", was a " + self.deadp.role + ".")
  109. Game.mkDay(self)
  110.  
  111. games["sins5"] = (Game_SINS5,5)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement