From a1970d6077fba9a91d56dc8f75826c206cbc01f1 Mon Sep 17 00:00:00 2001 From: Sakimori Date: Sat, 26 Dec 2020 00:08:45 -0500 Subject: [PATCH] gave half-innings and start of game some room to breathe --- games.py | 51 +++++++++++++++++--------------- the_prestige.py | 78 +++++++++++++++++++++++++++++++------------------ 2 files changed, 77 insertions(+), 52 deletions(-) diff --git a/games.py b/games.py index b0c79b9..5fa7139 100644 --- a/games.py +++ b/games.py @@ -410,31 +410,34 @@ class game(object): return self.gamestate_display_full() def gamestate_display_full(self): - punc = "" - if self.last_update[0]["defender"] != "": - punc = "." - if not self.over: - if self.top_of_inning: - inningtext = "top" + try: + punc = "" + if self.last_update[0]["defender"] != "": + punc = "." + if not self.over: + if self.top_of_inning: + inningtext = "top" + else: + inningtext = "bottom" + + updatestring = f"{self.last_update[0]['batter']} {self.last_update[0]['text'].value} {self.last_update[0]['defender']}{punc}\n" + + if self.last_update[1] > 0: + updatestring += f"{self.last_update[1]} runs scored!" + + return f"""Last update: {updatestring} + + Score: {self.teams['away'].score} - {self.teams['home'].score}. + Current inning: {inningtext} of {self.inning}. {self.outs} outs. + Pitcher: {self.get_pitcher().name} + Batter: {self.get_batter().name} + Bases: 3: {str(self.bases[3])} 2: {str(self.bases[2])} 1: {str(self.bases[1])} + """ else: - inningtext = "bottom" - - updatestring = f"{self.last_update[0]['batter']} {self.last_update[0]['text'].value} {self.last_update[0]['defender']}{punc}\n" - - if self.last_update[1] > 0: - updatestring += f"{self.last_update[1]} runs scored!" - - return f"""Last update: {updatestring} - -Score: {self.teams['away'].score} - {self.teams['home'].score}. -Current inning: {inningtext} of {self.inning}. {self.outs} outs. -Pitcher: {self.get_pitcher().name} -Batter: {self.get_batter().name} -Bases: 3: {str(self.bases[3])} 2: {str(self.bases[2])} 1: {str(self.bases[1])} -""" - else: - return f"""Game over! Final score: **{self.teams['away'].score} - {self.teams['home'].score}** -Last update: {self.last_update[0]['batter']} {self.last_update[0]['text'].value} {self.last_update[0]['defender']}{punc}""" + return f"""Game over! Final score: **{self.teams['away'].score} - {self.teams['home'].score}** + Last update: {self.last_update[0]['batter']} {self.last_update[0]['text'].value} {self.last_update[0]['defender']}{punc}""" + except TypeError: + return "Game not started." diff --git a/the_prestige.py b/the_prestige.py index ccb2d1c..76333aa 100644 --- a/the_prestige.py +++ b/the_prestige.py @@ -314,29 +314,49 @@ async def watch_game(channel, game): if game[1]: use_emoji_names = False gamesarray.append((newgame,use_emoji_names)) - - - while not newgame.over: - state = newgame.gamestate_update_full() - punc = "" - if newgame.last_update[0]["defender"] != "": - punc = "." + pause = 0 + top_of_inning = True + + while not newgame.over or newgame.top_of_inning != top_of_inning: + state = newgame.gamestate_display_full() + new_embed = discord.Embed(color=discord.Color.purple(), title=f"{newgame.teams['away'].name} at {newgame.teams['home'].name}") new_embed.add_field(name=newgame.teams['away'].name, value=newgame.teams['away'].score, inline=True) new_embed.add_field(name=newgame.teams['home'].name, value=newgame.teams['home'].score, inline=True) - if newgame.top_of_inning: + if top_of_inning: new_embed.add_field(name="Inning:", value=f"🔼 {newgame.inning}", inline=True) else: new_embed.add_field(name="Inning:", value=f"🔽 {newgame.inning}", inline=True) - new_embed.add_field(name="Outs:", value=f"{str(out_emoji)*newgame.outs+str(in_emoji)*(2-newgame.outs)}", inline=True) + new_embed.add_field(name="Outs:", value=f"{str(out_emoji)*newgame.outs+str(in_emoji)*(2-newgame.outs)}", inline=False) new_embed.add_field(name="Pitcher:", value=newgame.get_pitcher(), inline=False) new_embed.add_field(name="Batter:", value=newgame.get_batter(), inline=False) - updatestring = f"{newgame.last_update[0]['batter']} {newgame.last_update[0]['text'].value} {newgame.last_update[0]['defender']}{punc} " - if newgame.last_update[1] > 0: - updatestring += f"{newgame.last_update[1]} runs scored!" + if state == "Game not started.": + new_embed.add_field(name="🍿", value="Play blall!", inline=False) + + elif newgame.top_of_inning != top_of_inning: + pause = 2 + new_embed.set_field_at(4, name="Pitcher:", value="-", inline=False) + new_embed.set_field_at(5, name="Batter:", value="-", inline=False) + if newgame.top_of_inning: + new_embed.set_field_at(2,name="Inning:",value=f"🔽 {newgame.inning-1}") - new_embed.add_field(name="🏏", value=updatestring, inline=False) + if pause == 1: + if newgame.top_of_inning: + new_embed.add_field(name="🍿", value=f"Top of {newgame.inning}. {newgame.teams['away'].name} batting!", inline=False) + else: + new_embed.add_field(name="🍿", value=f"Bottom of {newgame.inning}. {newgame.teams['home'].name} batting!", inline=False) + + if pause != 1 and state != "Game not started.": + punc = "" + if newgame.last_update[0]["defender"] != "": + punc = "." + + updatestring = f"{newgame.last_update[0]['batter']} {newgame.last_update[0]['text'].value} {newgame.last_update[0]['defender']}{punc}" + if newgame.last_update[1] > 0: + updatestring += f"{newgame.last_update[1]} runs scored!" + + new_embed.add_field(name="🏏", value=updatestring, inline=False) basemessage = str(blank_emoji) if newgame.bases[2] is not None: @@ -358,23 +378,25 @@ async def watch_game(channel, game): new_embed.add_field(name="Bases:", value=basemessage, inline = False) - await embed.edit(content=None, embed=new_embed) - await asyncio.sleep(.5) - await asyncio.sleep(5) - - punc = "" - if newgame.last_update[0]["defender"] != "": - punc = "." + await embed.edit(content=None, embed=new_embed) + top_of_inning = newgame.top_of_inning + if pause <= 1: + newgame.gamestate_update_full() + + pause -= 1 + await asyncio.sleep(6) + final_embed = discord.Embed(color=discord.Color.dark_purple(), title=f"{newgame.teams['away'].name} at {newgame.teams['home'].name}") - final_embed.add_field(name="Final score:", value=f"{newgame.teams['away'].score} to {newgame.teams['home'].score}") - final_embed.add_field(name="Last update:", value=f"{newgame.last_update[0]['batter']} {newgame.last_update[0]['text'].value} {newgame.last_update[0]['defender']}{punc}" ) - await embed.edit(content=None, embed=final_embed) - if newgame.teams['away'].score > newgame.teams['home'].score: - await msg_top.edit(content = f"Game over!\n{newgame.teams['away'].name} wins!") - else: - await msg_top.edit(content = f"Game over!\n{newgame.teams['home'].name} wins!") - await msg_bot.delete() + scorestring = f"{newgame.teams['away'].score} to {newgame.teams['home'].score}\n" + if newgame.teams['away'].score > newgame.teams['home'].score: + scorestring += f"{newgame.teams['away'].name} wins!" + else: + scorestring += f"{newgame.teams['home'].name} wins!" + + final_embed.add_field(name="Final score:", value=scorestring) + await embed.edit(content=None, embed=final_embed) + gamesarray.pop(gamesarray.index((newgame,use_emoji_names))) #cleanup is important! del newgame