Browse Source

started implementing G.Angel, and fixed a KICK bug

master
jcao219 14 years ago
parent
commit
439c48c52d
  1. 35
      var.py
  2. 18
      wolfgame.py

35
var.py

@ -17,14 +17,19 @@ MANSLAUGHTER_CHANCE = 1/5 @@ -17,14 +17,19 @@ MANSLAUGHTER_CHANCE = 1/5
GAME_MODES = {}
################################################################################################
# ROLE INDEX: PLAYERS SEER WOLF CURSED DRUNK HARLOT TRAITOR GUNNER CROW #
ROLES_GUIDE = { 4 : ( 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 ), #
6 : ( 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 ), #
8 : ( 1 , 2 , 1 , 1 , 1 , 0 , 0 , 0 ), #
10 : ( 1 , 2 , 1 , 1 , 1 , 1 , 1 , 0 ), #
None : ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 )} #
################################################################################################
######################################################################################################
# ROLE INDEX: PLAYERS SEER WOLF CURSED DRUNK HARLOT TRAITOR GUNNER CROW ANGEL ##
######################################################################################################
ROLES_GUIDE = { 4 : ( 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0), ##
6 : ( 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0), ##
8 : ( 1 , 2 , 1 , 1 , 1 , 0 , 0 , 0 , 0), ##
10 : ( 1 , 2 , 1 , 1 , 1 , 1 , 1 , 0 , 0), ##
11 : ( 1 , 2 , 1 , 1 , 1 , 1 , 1 , 0 , 1), ##
None : ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0)} ##
######################################################################################################
# Notes: ##
######################################################################################################
ROLE_INDICES = {0 : "seer",
1 : "wolf",
@ -33,7 +38,8 @@ ROLE_INDICES = {0 : "seer", @@ -33,7 +38,8 @@ ROLE_INDICES = {0 : "seer",
4 : "harlot",
5 : "traitor",
6 : "gunner",
7 : "werecrow"}
7 : "werecrow",
8 : "guardian angel"}
INDEX_OF_ROLE = dict((v,k) for k,v in ROLE_INDICES.items())
@ -90,10 +96,17 @@ CHANGEABLE_ROLES = { "seers" : INDEX_OF_ROLE["seer"], @@ -90,10 +96,17 @@ CHANGEABLE_ROLES = { "seers" : INDEX_OF_ROLE["seer"],
"harlots" : INDEX_OF_ROLE["harlot"],
"traitors" : INDEX_OF_ROLE["traitor"],
"gunners" : INDEX_OF_ROLE["gunner"],
"werecrows" : INDEX_OF_ROLE["werecrow"]}
"werecrows" : INDEX_OF_ROLE["werecrow"],
"angels" : INDEX_OF_ROLE["guardian angel"]}
# !game roles=wolves:1 seers:0, x=1
@game_mode("normal")
class Normal(object):
pass
# Example !game roles=wolves:1,seers:0
# TODO: implement game modes
@game_mode("roles")
class ChangedRolesMode(object):

18
wolfgame.py

@ -607,7 +607,7 @@ cmd("!quit")(lambda cli, nick, *rest: leave(cli, "!quit", nick)) @@ -607,7 +607,7 @@ cmd("!quit")(lambda cli, nick, *rest: leave(cli, "!quit", nick))
#Functions decorated with hook do not parse the nick by default
hook("part")(lambda cli, nick, *rest: leave(cli, "part", parse_nick(nick)[0]))
hook("quit")(lambda cli, nick, *rest: leave(cli, "quit", parse_nick(nick)[0]))
hook("kick")(lambda cli, nick, *rest: leave(cli, "kick", parse_nick(nick)[0]))
hook("kick")(lambda cli, nick, *rest: leave(cli, "kick", parse_nick(rest[1])[0]))
@ -616,6 +616,7 @@ def begin_day(cli): @@ -616,6 +616,7 @@ def begin_day(cli):
# Reset nighttime variables
var.VICTIM = "" # nickname of kill victim
var.GUARDED = ""
var.KILLER = "" # nickname of who chose the victim
var.SEEN = [] # list of seers that have had visions
var.OBSERVED = {} # those whom werecrows have observed
@ -635,6 +636,11 @@ def begin_day(cli): @@ -635,6 +636,11 @@ def begin_day(cli):
def transition_day(cli):
var.PHASE = "day"
chan = botconfig.CHANNEL
if var.DAY_TIME_LIMIT > 0: # Time limit enabled
t = threading.Timer(var.DAY_TIME_LIMIT, hurry_up, [cli])
var.TIMERS[1] = t
t.start()
# Reset daytime variables
var.VOTES = {}
@ -1040,6 +1046,7 @@ def transition_night(cli): @@ -1040,6 +1046,7 @@ def transition_night(cli):
# Reset nighttime variables
var.VICTIM = "" # nickname of kill victim
var.GUARDED = ""
var.KILLER = "" # nickname of who chose the victim
var.SEEN = [] # list of seers that have had visions
var.OBSERVED = {} # those whom werecrows have observed
@ -1109,6 +1116,15 @@ def transition_night(cli): @@ -1109,6 +1116,15 @@ def transition_night(cli):
'you will die. Use !visit to visit a player.'))
cli.msg(harlot, "Players: "+", ".join(pl))
for g_angel in var.ROLES["guardian angel"]:
pl = ps[:]
pl.remove(g_angel)
cli.msg(g_angel, ('You are a \u0002guardian angel\u0002. '+
'It is your job to protect the villagers. If you guard a'+
' wolf, there is a 50/50 chance of you dying, if you guard '+
'a victim, they will live. Use !guard to guard a player.'));
cli.msg(g_angel, "Players: ", ", ".join(pl))
for d in var.ROLES["village drunk"]:
cli.msg(d, 'You have been drinking too much! You are the \u0002village drunk\u0002.')

Loading…
Cancel
Save