fight-fixes
Bobloy 7 years ago
parent e03c32926e
commit 6e87f41dcc

@ -101,7 +101,7 @@ class Game:
await self._at_game_start() # This will queue channels and votegroups to be made
print("Post at_game_start")
for channel_id in self.p_channels:
print("Channel id: "+channel_id)
print("Channel id: " + channel_id)
overwrite = {
self.guild.default_role: discord.PermissionOverwrite(read_messages=False),
self.guild.me: discord.PermissionOverwrite(read_messages=True)
@ -165,7 +165,7 @@ class Game:
return not self.can_vote or not self.day_time or self.game_over
self.day_count += 1
embed=discord.Embed(title=random.choice(self.morning_messages).format(self.day_count))
embed = discord.Embed(title=random.choice(self.morning_messages).format(self.day_count))
for result in self.night_results:
embed.add_field(name=result, value="________", inline=False)
@ -231,9 +231,9 @@ class Game:
down_votes = sum(p.emoji == "👎" and not p.me for p in reaction_list)
if len(down_votes) > len(up_votes):
embed=discord.Embed(title="Vote Results", color=0xff0000)
embed = discord.Embed(title="Vote Results", color=0xff0000)
else:
embed=discord.Embed(title="Vote Results", color=0x80ff80)
embed = discord.Embed(title="Vote Results", color=0x80ff80)
embed.add_field(name="👎", value="**{}**".format(len(up_votes)), inline=True)
embed.add_field(name="👍", value="**{}**".format(len(down_votes)), inline=True)
@ -316,14 +316,14 @@ class Game:
await self._notify(8, data)
async def _notify(self, event, data=None):
for i in range(1,7): # action guide 1-6 (0 is no action)
for i in range(1, 7): # action guide 1-6 (0 is no action)
tasks = []
# Role priorities
role_order = [role for role in self.roles if role.action_list[event][1]==i]
role_order = [role for role in self.roles if role.action_list[event][1] == i]
for role in role_order:
tasks.append(asyncio.ensure_future(role.on_event(event, data), loop=self.loop))
# VoteGroup priorities
vote_order = [vg for vg in self.vote_groups.values() if vg.action_list[event][1]==i]
vote_order = [vg for vg in self.vote_groups.values() if vg.action_list[event][1] == i]
for vote_group in vote_order:
tasks.append(asyncio.ensure_future(vote_group.on_event(event, data), loop=self.loop))
if tasks:
@ -333,7 +333,7 @@ class Game:
############END Notify structure############
async def generate_targets(self, channel):
embed=discord.Embed(title="Remaining Players")
embed = discord.Embed(title="Remaining Players")
for i in range(len(self.players)):
player = self.players[i]
if player.alive:
@ -517,7 +517,7 @@ class Game:
await self.dead_perms(self.village_channel, player.member)
# Add a punishment system for quitting games later
async def kill(self, target_id, source=None, method: str=None, novisit=False):
async def kill(self, target_id, source=None, method: str = None, novisit=False):
"""
Attempt to kill a target
Source allows admin override

@ -1,10 +1,23 @@
{
"author" : ["Bobloy"],
"bot_version" : [3,0,0],
"description" : "Customizable Werewolf Game",
"hidden" : false,
"install_msg" : "Thank you for installing Werewolf! Use [p]wwset to run inital setup",
"requirements" : [],
"short" : "Werewolf Game",
"tags" : ["mafia", "werewolf", "party", "fun", "game", "bobloy"]
"author": [
"Bobloy"
],
"bot_version": [
3,
0,
0
],
"description": "Customizable Werewolf Game",
"hidden": false,
"install_msg": "Thank you for installing Werewolf! Use [p]wwset to run inital setup",
"requirements": [],
"short": "Werewolf Game",
"tags": [
"mafia",
"werewolf",
"party",
"fun",
"game",
"bobloy"
]
}

@ -114,7 +114,7 @@ class Role:
if self.channel_id:
await self.game.register_channel(self.channel_id, self)
await self.player.send_dm(self.game_start_message) #Maybe embeds eventually
await self.player.send_dm(self.game_start_message) # Maybe embeds eventually
async def _at_day_start(self, data=None):
pass

@ -1,13 +1,13 @@
from werewolf.role import Role
class Seer(Role):
class Seer(Role):
rand_choice = False # Determines if it can be picked as a random role (False for unusually disruptive roles)
category = [1,2] # List of enrolled categories (listed above)
category = [1, 2] # List of enrolled categories (listed above)
alignment = 1 # 1: Town, 2: Werewolf, 3: Neutral
channel_id = "" # Empty for no private channel
unique = False # Only one of this role per game
game_start_message=(
game_start_message = (
"Your role is **Seer**\n"
"You win by lynching all evil in the town\n"
"Lynch players during the day with `[p]ww vote <ID>`\n"
@ -36,19 +36,19 @@ class Seer(Role):
# """
# See Game class for event guide
# """
#
# await self.action_list[event][0](data)
#
#
# async def assign_player(self, player):
# """
# Give this role a player
# Can be used after the game has started (Cult, Mason, other role swap)
# """
#
# player.role = self
# self.player = player
#
# async def get_alignment(self, source=None):
# """
# Interaction for power access of team (Village, Werewolf, Other)
@ -79,19 +79,19 @@ class Seer(Role):
# async def _at_game_start(self, data=None):
# pass
#
# async def _at_day_start(self, data=None):
# pass
#
# async def _at_voted(self, target=None):
# pass
#
# async def _at_kill(self, target=None):
# pass
#
# async def _at_hang(self, target=None):
# pass
#
# async def _at_day_end(self):
# pass
@ -99,7 +99,6 @@ class Seer(Role):
await self.game.generate_targets(self.player.member)
await self.player.send_dm("{}\n**Pick a target to see tonight**\n")
async def _at_night_end(self, data=None):
target = await self.game.visit(self.see_target)
@ -116,7 +115,7 @@ class Seer(Role):
# async def _at_visit(self, data=None):
# pass
#
# async def kill(self, source):
# """
# Called when someone is trying to kill you!
@ -124,7 +123,7 @@ class Seer(Role):
# self.alive is now set to False, set to True to stay alive
# """
# pass
#
# async def visit(self, source):
# """
# Called whenever a night action targets you

@ -4,7 +4,6 @@ from werewolf.votegroups.wolfvote import WolfVote
class VanillaWerewolf(Role):
rand_choice = True
category = [11, 15]
alignment = 2 # 1: Town, 2: Werewolf, 3: Neutral
@ -17,8 +16,6 @@ class VanillaWerewolf(Role):
"Vote to kill players at night with `[p]ww vote <ID>`"
)
def __init__(self, game):
super().__init__(game)
@ -80,12 +77,11 @@ class VanillaWerewolf(Role):
async def _at_game_start(self, data=None):
if self.channel_id:
print("Wolf has channel_id: "+self.channel_id)
print("Wolf has channel_id: " + self.channel_id)
await self.game.register_channel(self.channel_id, self, WolfVote) # Add VoteGroup WolfVote
await self.player.send_dm(self.game_start_message)
# async def _at_day_start(self, data=None):
# super()._at_day_start(data)

@ -1,13 +1,13 @@
from werewolf.role import Role
class Villager(Role):
class Villager(Role):
rand_choice = False # Determines if it can be picked as a random role (False for unusually disruptive roles)
category = [1] # List of enrolled categories (listed above)
alignment = 1 # 1: Town, 2: Werewolf, 3: Neutral
channel_id = "" # Empty for no private channel
unique = False # Only one of this role per game
game_start_message=(
game_start_message = (
"Your role is **Villager**\n"
"You win by lynching all evil in the town\n"
"Lynch players during the day with `[p]ww vote <ID>`"
@ -19,7 +19,7 @@ class Villager(Role):
# self.player = None
# self.blocked = False
# self.properties = {} # Extra data for other roles (i.e. arsonist)
#
# self.action_list = [
# (self._at_game_start, 0), # (Action, Priority)
# (self._at_day_start, 0),
@ -36,19 +36,19 @@ class Villager(Role):
# """
# See Game class for event guide
# """
#
# await self.action_list[event][0](data)
#
#
# async def assign_player(self, player):
# """
# Give this role a player
# Can be used after the game has started (Cult, Mason, other role swap)
# """
#
# player.role = self
# self.player = player
#
# async def get_alignment(self, source=None):
# """
# Interaction for power access of team (Village, Werewolf, Other)
@ -79,31 +79,31 @@ class Villager(Role):
# async def _at_game_start(self, data=None):
# pass
#
# async def _at_day_start(self, data=None):
# pass
#
# async def _at_voted(self, target=None):
# pass
#
# async def _at_kill(self, target=None):
# pass
#
# async def _at_hang(self, target=None):
# pass
#
# async def _at_day_end(self):
# pass
#
# async def _at_night_start(self):
# pass
#
# async def _at_night_end(self):
# pass
#
# async def _at_visit(self, data=None):
# pass
#
# async def kill(self, source):
# """
# Called when someone is trying to kill you!
@ -111,14 +111,14 @@ class Villager(Role):
# self.alive is now set to False, set to True to stay alive
# """
# pass
#
# async def visit(self, source):
# """
# Called whenever a night action targets you
# Source is the player who visited you
# """
# pass
#
# async def choose(self, ctx, data):
# """Handle night actions"""
# pass

@ -38,6 +38,7 @@ class WolfVote(VoteGroup):
]
# async def on_event(self, event, data):
# """
# See Game class for event guide
# """

Loading…
Cancel
Save