implemented meteor shower
This commit is contained in:
		
							parent
							
								
									fe774411a0
								
							
						
					
					
						commit
						bd0a1af03e
					
				
							
								
								
									
										7
									
								
								games.py
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								games.py
									
									
									
									
									
								
							| 
						 | 
					@ -225,6 +225,13 @@ class game(object):
 | 
				
			||||||
        self.weather = weather.Weather(self)
 | 
					        self.weather = weather.Weather(self)
 | 
				
			||||||
        self.current_batter = None
 | 
					        self.current_batter = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def occupied_bases(self):
 | 
				
			||||||
 | 
					        occ_dic = {}
 | 
				
			||||||
 | 
					        for base in self.bases.keys():
 | 
				
			||||||
 | 
					            if self.bases[base] is not None:
 | 
				
			||||||
 | 
					                occ_dic[base] = self.bases[base]
 | 
				
			||||||
 | 
					        return occ_dic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def choose_next_batter(self):
 | 
					    def choose_next_batter(self):
 | 
				
			||||||
        if self.top_of_inning:
 | 
					        if self.top_of_inning:
 | 
				
			||||||
            bat_team = self.teams["away"]
 | 
					            bat_team = self.teams["away"]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										30
									
								
								weather.py
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								weather.py
									
									
									
									
									
								
							| 
						 | 
					@ -293,6 +293,33 @@ class Breezy(Weather):
 | 
				
			||||||
                "weather_message": True
 | 
					                "weather_message": True
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class MeteorShower(Weather):
 | 
				
			||||||
 | 
					    def __init__(self, game):
 | 
				
			||||||
 | 
					        self.name = "Meteor Shower"
 | 
				
			||||||
 | 
					        self.emoji = "🌠"
 | 
				
			||||||
 | 
					        self.activation_chance = 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def activate(self, game, result):
 | 
				
			||||||
 | 
					        if random.random() < self.activation_chance and game.occupied_bases() != {}:
 | 
				
			||||||
 | 
					            base, runner = random.choice(list(game.occupied_bases().items()))
 | 
				
			||||||
 | 
					            runner = game.bases[base]
 | 
				
			||||||
 | 
					            game.bases[base] = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if game.top_of_inning:
 | 
				
			||||||
 | 
					                bat_team = game.teams["away"]
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                bat_team = game.teams["home"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            bat_team.score += 1
 | 
				
			||||||
 | 
					            result.clear()
 | 
				
			||||||
 | 
					            result.update({
 | 
				
			||||||
 | 
					                    "text": f"{runner.name} wished upon one of the shooting stars, and was warped to None base!! 1 runs score!",
 | 
				
			||||||
 | 
					                    "text_only": True,
 | 
				
			||||||
 | 
					                    "weather_message": True
 | 
				
			||||||
 | 
					                })
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def all_weathers():
 | 
					def all_weathers():
 | 
				
			||||||
    weathers_dic = {
 | 
					    weathers_dic = {
 | 
				
			||||||
            "Supernova" : Supernova,
 | 
					            "Supernova" : Supernova,
 | 
				
			||||||
| 
						 | 
					@ -304,7 +331,8 @@ def all_weathers():
 | 
				
			||||||
            "Heat Wave" : HeatWave,
 | 
					            "Heat Wave" : HeatWave,
 | 
				
			||||||
            "Drizzle" : Drizzle,
 | 
					            "Drizzle" : Drizzle,
 | 
				
			||||||
            "Breezy": Breezy,
 | 
					            "Breezy": Breezy,
 | 
				
			||||||
            "Starlight" : Starlight
 | 
					            "Starlight" : Starlight,
 | 
				
			||||||
 | 
					            "Meteor Shower" : MeteorShower
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    return weathers_dic
 | 
					    return weathers_dic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue