finished implementing leaf eddies
This commit is contained in:
		
							parent
							
								
									1adb7e5b4e
								
							
						
					
					
						commit
						f1a9735cf6
					
				
							
								
								
									
										3
									
								
								games.py
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								games.py
									
									
									
									
									
								
							|  | @ -386,6 +386,8 @@ class game(object): | ||||||
| 
 | 
 | ||||||
|         self.voice.stealing(outcome, baserunner.name, base_string(start_base+1), defender.name, successful) |         self.voice.stealing(outcome, baserunner.name, base_string(start_base+1), defender.name, successful) | ||||||
| 
 | 
 | ||||||
|  |         self.weather.steal_post_activate(self, outcome) | ||||||
|  | 
 | ||||||
|         if self.outs >= 3: |         if self.outs >= 3: | ||||||
|             self.flip_inning() |             self.flip_inning() | ||||||
| 
 | 
 | ||||||
|  | @ -655,7 +657,6 @@ class game(object): | ||||||
|             self.voice.post_format = [] |             self.voice.post_format = [] | ||||||
|             result["displaytext"] = result["displaytext"].format(*format_list) |             result["displaytext"] = result["displaytext"].format(*format_list) | ||||||
| 
 | 
 | ||||||
|          |  | ||||||
|         if self.outs < 3: |         if self.outs < 3: | ||||||
|             result["offense_team"].score += scores_to_add #only add points if inning isn't over |             result["offense_team"].score += scores_to_add #only add points if inning isn't over | ||||||
|         else: |         else: | ||||||
|  |  | ||||||
|  | @ -256,4 +256,4 @@ def update_loop(): | ||||||
|         socket_thread = threading.Thread(target=socketio.emit, args=("states_update", game_states)) |         socket_thread = threading.Thread(target=socketio.emit, args=("states_update", game_states)) | ||||||
|         socket_thread.start() |         socket_thread.start() | ||||||
|         #socketio.emit("states_update", game_states) |         #socketio.emit("states_update", game_states) | ||||||
|         time.sleep(8) |         time.sleep(3) | ||||||
|  | @ -170,7 +170,7 @@ class StartGameCommand(Command): | ||||||
|         except ValueError: |         except ValueError: | ||||||
|             raise CommandError("That number of innings isn't even an integer, chief. We can't do fractional innings, nor do we want to.") |             raise CommandError("That number of innings isn't even an integer, chief. We can't do fractional innings, nor do we want to.") | ||||||
| 
 | 
 | ||||||
|         if innings is not None and innings < 2: |         if innings is not None and innings < 2 and msg.author.id not in config()["owners"]: | ||||||
|             raise CommandError("Anything less than 2 innings isn't even an outing. Try again.") |             raise CommandError("Anything less than 2 innings isn't even an outing. Try again.") | ||||||
|                                                      |                                                      | ||||||
|         elif innings is not None and innings > 200 and msg.author.id not in config()["owners"]: |         elif innings is not None and innings > 200 and msg.author.id not in config()["owners"]: | ||||||
|  | @ -2245,7 +2245,10 @@ async def game_watcher(): | ||||||
|         await asyncio.sleep(4) |         await asyncio.sleep(4) | ||||||
| 
 | 
 | ||||||
| def game_over_embed(game): | def game_over_embed(game): | ||||||
|     title_string = f"{game.teams['away'].name} at {game.teams['home'].name} ended after {game.inning-1} innings" |     if game.inning != 2: | ||||||
|  |         title_string = f"{game.teams['away'].name} at {game.teams['home'].name} ended after {game.inning-1} innings" | ||||||
|  |     else: | ||||||
|  |         title_string = f"{game.teams['away'].name} at {game.teams['home'].name} ended after 1 inning" | ||||||
|     if (game.inning - 1) > game.max_innings: #if extra innings |     if (game.inning - 1) > game.max_innings: #if extra innings | ||||||
|         title_string += f" with {game.inning - (game.max_innings+1)} extra innings.\n" |         title_string += f" with {game.inning - (game.max_innings+1)} extra innings.\n" | ||||||
|     else: |     else: | ||||||
|  |  | ||||||
							
								
								
									
										86
									
								
								weather.py
									
									
									
									
									
								
							
							
						
						
									
										86
									
								
								weather.py
									
									
									
									
									
								
							|  | @ -30,6 +30,12 @@ class Weather: | ||||||
|         # activates after the batter calculation. modify result, or just return another thing |         # activates after the batter calculation. modify result, or just return another thing | ||||||
|         pass |         pass | ||||||
|      |      | ||||||
|  |     def steal_activate(self, game, result): | ||||||
|  |         pass | ||||||
|  | 
 | ||||||
|  |     def steal_post_activate(self, game, result): | ||||||
|  |         pass | ||||||
|  | 
 | ||||||
|     def post_activate(self, game, result): |     def post_activate(self, game, result): | ||||||
|         pass |         pass | ||||||
| 
 | 
 | ||||||
|  | @ -476,38 +482,68 @@ class LeafEddies(Weather): | ||||||
|     sent = False |     sent = False | ||||||
|     first = True |     first = True | ||||||
|      |      | ||||||
|  | 
 | ||||||
|  |     def __init__(self, game): | ||||||
|  |         self.name = f"Leaf Eddies: {roman.roman_convert(str(game.max_innings*3))}" | ||||||
|  |         self.original_innings = game.max_innings | ||||||
|  |         game.max_innings = 1 | ||||||
|  |         self.inning_text = "The umpires have remembered their jobs. They shoo the defenders off the field!" | ||||||
|  | 
 | ||||||
|     def activate(self, game, result): |     def activate(self, game, result): | ||||||
|         if out_counter >= (game.max_innings * 3): |         if game.inning == 1: | ||||||
|             result["swap"] = True |             if self.out_counter % 3 == 0 and not self.out_counter == 0 and not self.sent: | ||||||
|         elif out_counter % 3 == 0 and not out_counter == 0 and not sent: |                 if self.first: | ||||||
|             if first: |                     self.first = False | ||||||
|                 first = False |                     updatetext = "The leaves have distracted the umpires, and they've been unable to keep track of outs!"                | ||||||
|                 updatetext = "The leaves have distracted the umpires, and they've been unable to keep track of outs!"                |                 else: | ||||||
|             else: |                     leaf = random.sample(self.leaves, 2) | ||||||
|                 leaf = random.choice(leaves) |                     eddy = random.choice(self.eddy_types) | ||||||
|                 eddy = random.choice(eddy_types) |                     updatetext = f"A{eddy} of {leaf[0]} and {leaf[1]} leaves blows through, and the umpires remain distracted!" | ||||||
|                 updatetext = f"A{eddy} of {leaf} blows through, and the umpires remain distracted!" |                 self.sent = True | ||||||
|             sent = True |                 result.clear() | ||||||
|             result.clear() |                 result.update({ | ||||||
|             result.update({ |                         "text": updatetext, | ||||||
|                     "text": updatetext, |                         "text_only": True, | ||||||
|                     "text_only": True, |                         "weather_message": True | ||||||
|                     "weather_message": True |                     }) | ||||||
|                 }) |         else: | ||||||
|  |             game.outs = 2 | ||||||
|  | 
 | ||||||
|  |     def steal_post_activate(self, game, result): | ||||||
|  |         self.post_activate(game, result) | ||||||
| 
 | 
 | ||||||
|     def post_activate(self, game, result): |     def post_activate(self, game, result): | ||||||
|         if game.outs > 0: |         if game.inning == 1: | ||||||
|             self.out_counter += game.outs |             if game.outs > 0: | ||||||
|             sent = False |                 self.out_counter += game.outs | ||||||
|             game.outs = 0 |                 game.outs = 0 | ||||||
| 
 |                 self.sent = False | ||||||
|         if "swap" in result and game.top_of_inning: |                 if self.out_counter < (self.original_innings * 3): | ||||||
|             self.out_counter = 0 |                     self.name = f"Leaf Eddies: {roman.roman_convert(str(self.original_innings*3-self.out_counter))}" | ||||||
|  |                 else: | ||||||
|  |                     self.name = "Leaf Eddies" | ||||||
|  |                     self.out_counter = 0 | ||||||
|  |                     game.outs = 3 | ||||||
|  |         elif game.teams["home"].score != game.teams["away"].score: | ||||||
|             game.outs = 3 |             game.outs = 3 | ||||||
|  |             if game.top_of_inning: | ||||||
|  |                 game.inning += 1 | ||||||
|  |                 game.top_of_inning = False | ||||||
| 
 | 
 | ||||||
|     def modify_top_of_inning_message(self, game, state): |     def modify_top_of_inning_message(self, game, state): | ||||||
|         state["update_emoji"] = self.emoji |         state["update_emoji"] = self.emoji | ||||||
|         state["update_text"] = "The umpires have remembered their jobs. They shoo the defenders off the field, and the sides finally switch!" |         if game.inning == 1: | ||||||
|  |             self.name = f"Leaf Eddies: {roman.roman_convert(str(self.original_innings*3-self.out_counter))}" | ||||||
|  |         else: | ||||||
|  |             self.name = "Leaf Eddies: Golden Run" | ||||||
|  |             state["update_emoji"] = "⚠" | ||||||
|  |             self.inning_text = "SUDDEN DEATH ⚠" | ||||||
|  |         state["update_text"] = self.inning_text | ||||||
|  |         state["weather_text"] = self.name | ||||||
|  | 
 | ||||||
|  |     def modify_atbat_message(self, game, state): | ||||||
|  |         if game.inning == 1: | ||||||
|  |             state["weather_text"] = self.name | ||||||
| 
 | 
 | ||||||
| def all_weathers(): | def all_weathers(): | ||||||
|     weathers_dic = { |     weathers_dic = { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Sakimori
						Sakimori