diff --git a/Bot/.env.template b/My Bot/Bot/.env.template similarity index 97% rename from Bot/.env.template rename to My Bot/Bot/.env.template index e184287..3de351a 100644 --- a/Bot/.env.template +++ b/My Bot/Bot/.env.template @@ -1,2 +1,2 @@ -DISCORD_TOKEN=111118 +DISCORD_TOKEN=111118 GUILD_ID=111118 \ No newline at end of file diff --git a/Bot/bot.py b/My Bot/Bot/bot.py similarity index 95% rename from Bot/bot.py rename to My Bot/Bot/bot.py index 0e5e1ff..1545634 100644 --- a/Bot/bot.py +++ b/My Bot/Bot/bot.py @@ -1,70 +1,70 @@ -# bot.py -import os - -import interactions -from dotenv import load_dotenv -from pprint import pprint - -from game import Game - -load_dotenv() -TOKEN = os.getenv('DISCORD_TOKEN') -GUILD = int(os.getenv('GUILD_ID')) - -client = interactions.Client(token=TOKEN) - -game = Game() - - -@client.event -async def on_ready(): - print(f'Client has connected to Discord!') - - -@client.command( - name="getstats", - description="Get your player stats", - scope=GUILD, -) -async def get_stats(ctx: interactions.CommandContext): - player = game.get_player(str(ctx.member.id)) - await ctx.send(f"""{ctx.member.user.username}, here are your player stats! - - Id: {player.id} - Attack: {player.attack} - HP: {player.current_hp} - XP: {player.xp} - """) - - -@client.command( - name="encounter", - description="Create a new encounter", - scope=GUILD, -) -async def create_encounter(ctx: interactions.CommandContext): - result = game.create_encounter(str(ctx.member.id)) - await ctx.send(result) - - -@client.command( - name="attack", - description="Attack!!!!!!", - scope=GUILD, -) -async def player_action(ctx: interactions.CommandContext): - result = game.player_action(str(ctx.member.id)) - await ctx.send(result) - - -@client.command( - name="run", - description="Run away", - scope=GUILD, -) -async def complete_encounter(ctx: interactions.CommandContext): - result = game.complete_encounter(str(ctx.member.id)) - await ctx.send(result) - - -client.start() +# bot.py +import os + +import interactions +from dotenv import load_dotenv +from pprint import pprint + +from game import Game + +load_dotenv() +TOKEN = os.getenv('DISCORD_TOKEN') +GUILD = int(os.getenv('GUILD_ID')) + +client = interactions.Client(token=TOKEN) + +game = Game() + + +@client.event +async def on_ready(): + print(f'Client has connected to Discord!') + + +@client.command( + name="getstats", + description="Get your player stats", + scope=GUILD, +) +async def get_stats(ctx: interactions.CommandContext): + player = game.get_player(str(ctx.member.id)) + await ctx.send(f"""{ctx.member.user.username}, here are your player stats! + + Id: {player.id} + Attack: {player.attack} + HP: {player.current_hp} + XP: {player.xp} + """) + + +@client.command( + name="encounter", + description="Create a new encounter", + scope=GUILD, +) +async def create_encounter(ctx: interactions.CommandContext): + result = game.create_encounter(str(ctx.member.id)) + await ctx.send(result) + + +@client.command( + name="attack", + description="Attack!!!!!!", + scope=GUILD, +) +async def player_action(ctx: interactions.CommandContext): + result = game.player_action(str(ctx.member.id)) + await ctx.send(result) + + +@client.command( + name="run", + description="Run away", + scope=GUILD, +) +async def complete_encounter(ctx: interactions.CommandContext): + result = game.complete_encounter(str(ctx.member.id)) + await ctx.send(result) + + +client.start() diff --git a/Bot/encounter.py b/My Bot/Bot/encounter.py similarity index 100% rename from Bot/encounter.py rename to My Bot/Bot/encounter.py diff --git a/Bot/game.py b/My Bot/Bot/game.py similarity index 97% rename from Bot/game.py rename to My Bot/Bot/game.py index 4800339..de67ae0 100644 --- a/Bot/game.py +++ b/My Bot/Bot/game.py @@ -1,57 +1,57 @@ -from player import Player -from encounter import Encounter, Result -from random import randrange - - -class Game(object): - def __init__(self): - self.players = dict() - self.encounters = dict() - - def get_player(self, player_id): - player = self.players.get(player_id) - if player is not None: - return player - else: - self.players[player_id] = Player(player_id, 0, 1, 10) - return self.players[player_id] - - def create_encounter(self, player_id): - encounter = self.encounters.get(player_id) - if encounter: - return f"""Current Status: - Player HP: {self.players[player_id].current_hp} - Mob HP: {encounter.mob.current_hp}""" - else: - player = self.players[player_id] - if player.is_alive(): - self.encounters[player_id] = Encounter(player) - return "Encounter created!" - else: - return "Can't start a fight with no health!" - - def player_action(self, player_id): - encounter = self.encounters.get(player_id) - if encounter is None: - new_encounter = self.create_encounter(player_id) - encounter = self.encounters[player_id] - if encounter is None: - return new_encounter - - result = encounter.player_action() - self.players[player_id] = encounter.player - - if result.result == Result.CONTINUE: - self.encounters[player_id] = encounter - else: - self.complete_encounter(player_id) - - return result.text - - def complete_encounter(self, player_id): - encounter = self.encounters.get(player_id) - if encounter: - del self.encounters[player_id] - return "Player ran away" - else: - return "Encounter not found" +from player import Player +from encounter import Encounter, Result +from random import randrange + + +class Game(object): + def __init__(self): + self.players = dict() + self.encounters = dict() + + def get_player(self, player_id): + player = self.players.get(player_id) + if player is not None: + return player + else: + self.players[player_id] = Player(player_id, 0, 1, 10) + return self.players[player_id] + + def create_encounter(self, player_id): + encounter = self.encounters.get(player_id) + if encounter: + return f"""Current Status: + Player HP: {self.players[player_id].current_hp} + Mob HP: {encounter.mob.current_hp}""" + else: + player = self.players[player_id] + if player.is_alive(): + self.encounters[player_id] = Encounter(player) + return "Encounter created!" + else: + return "Can't start a fight with no health!" + + def player_action(self, player_id): + encounter = self.encounters.get(player_id) + if encounter is None: + new_encounter = self.create_encounter(player_id) + encounter = self.encounters[player_id] + if encounter is None: + return new_encounter + + result = encounter.player_action() + self.players[player_id] = encounter.player + + if result.result == Result.CONTINUE: + self.encounters[player_id] = encounter + else: + self.complete_encounter(player_id) + + return result.text + + def complete_encounter(self, player_id): + encounter = self.encounters.get(player_id) + if encounter: + del self.encounters[player_id] + return "Player ran away" + else: + return "Encounter not found" diff --git a/Bot/mob.py b/My Bot/Bot/mob.py similarity index 95% rename from Bot/mob.py rename to My Bot/Bot/mob.py index 62fb92e..2bcb504 100644 --- a/Bot/mob.py +++ b/My Bot/Bot/mob.py @@ -1,18 +1,18 @@ -from random import randrange - - -class Mob: - def __init__(self): - self.current_hp = 10 - self.attack = 1 - self.xp = 2 - - def do_attack(self): - return self.attack + randrange(2) - - def take_damage(self, damage): - self.current_hp -= damage - return self.is_alive() - - def is_alive(self): - return self.current_hp > 0 +from random import randrange + + +class Mob: + def __init__(self): + self.current_hp = 10 + self.attack = 1 + self.xp = 2 + + def do_attack(self): + return self.attack + randrange(2) + + def take_damage(self, damage): + self.current_hp -= damage + return self.is_alive() + + def is_alive(self): + return self.current_hp > 0 diff --git a/Bot/player.py b/My Bot/Bot/player.py similarity index 100% rename from Bot/player.py rename to My Bot/Bot/player.py diff --git a/My Bot/bot.py b/My Bot/bot.py new file mode 100644 index 0000000..e9fff14 --- /dev/null +++ b/My Bot/bot.py @@ -0,0 +1,31 @@ +#bot.py +import os +import dotenv + +import interactions +from dotenv import load_dotenv + +from game import Game + +load_dotenv() +TOKEN = os.getenv('DISCORD_TOKEN') +GUILD = int(os.getenv('GUILD_ID')) + +client = interactions.Client(token=TOKEN) + +game = Game() + +@client.event +async def on_ready(): + print(f'Client has connected to Discord!') +@interactions.slash_command(name="getstats", description="Get your player stats",scopes=[GUILD]) +async def get_stats(ctx:interactions.SlashContext): + player = game.getPlayer(ctx.member.id) + await ctx.send(f"""Here are your player stats!{ctx.member.user.username}, here are your player stats! + Id: {player.id} + Attack: {player.attack} + HP: {player.current_hp} + XP: {player.xp} + """) + +client.start() \ No newline at end of file diff --git a/My Bot/game.py b/My Bot/game.py new file mode 100644 index 0000000..90721ed --- /dev/null +++ b/My Bot/game.py @@ -0,0 +1,14 @@ +#game.py +from player import Player + +class Game: + def __init__(self): + self.players = {} +def getPlayer(self, player_id): + none_var = None + player = self.players.get(player_id) + if player is not none_var: + return player + else: + self.players[player_id] = Player(player_id, 0, 2, 10) + return self.players[player_id] \ No newline at end of file diff --git a/My Bot/player.py b/My Bot/player.py new file mode 100644 index 0000000..7381f56 --- /dev/null +++ b/My Bot/player.py @@ -0,0 +1,9 @@ +#player.py +class Player: + def __init__(self, id, xp=0, attack=0, hp=0): + self.id = id + self.xp = xp + self.attack = attack + self.max_hp = hp + self.current_hp = hp + \ No newline at end of file