sim16/weather.py
2020-12-25 19:56:18 -05:00

94 lines
3.2 KiB
Python

import random
class Weather:
def __init__(self):
self.name = "None"
def activate(self, game, result):
pass
class Sun2(Weather):
def __init__(self):
self.name = "Sun 2"
def activate(self, game):
for teamtype in game.teams:
team = game.teams[teamtype]
if team.score >= 10:
team.score -= 10
# no win counting yet :(
result = {
"text": "The {} collect 10! Sun 2 smiles.".format(team.name)
}
return result
return None
class NameSwappyWeather(Weather):
def __init__(self):
self.name = "Literacy"
self.activation_chance = 0.01
def activate(self, game):
if random.random() < self.activation_chance:
teamtype = random.choice(["away","home"])
team = game.teams[teamtype]
player = random.choice(team.lineup)
old_player_name = player.name
if ' ' in player.name:
names = player.name.split(" ")
first_first_letter = names[0][0]
last_first_letter = names[-1][0]
names[0][0] = last_first_letter
names[-1][0] = first_first_letter
player.name = ' '.join(names)
else:
#name is one word, so turn 'bartholemew' into 'martholebew'
first_letter = player.name[0]
last_letter = player.name[-1]
player.name[0] = last_letter
player.name[-1] = first_letter
result = {
"text": "{} is Literate! {} is now {}!".format(old_player_name,old_player_name, player.name)
}
return result
return None
class Feedback(Weather):
def __init__(self):
self.name = "Feedback"
self.activation_chance = 0.01
self.swap_batter_vs_pitcher_chance = 0.8
def activate(self, game):
if random.random() < self.activation_chance:
# feedback time
result = {}
player1 = None
player2 = None
if random.random() < self.swap_batter_vs_pitcher_chance:
# swapping batters
# theoretically this could swap players already on base :(
homePlayerIndex = random.randint(len(teams["home"].lineup))
awayPlayerIndex = random.randint(len(teams["away"].lineup))
homePlayer = teams["home"].lineup[homePlayerIndex]
awayPlayer = teams["away"].lineup[awayPlayerIndex]
teams["home"].lineup[homePlayerIndex] = awayPlayer
teams["away"].lineup[awayPlayerIndex] = homePlayer
else:
# swapping pitchers
player1 = teams["home"].pitcher
player2 = teams["away"].pitcher
teams["home"].set_pitcher(player2)
teams["away"].set_pitcher(player1)
result = {
"text": "{} and {} switched teams in the feedback!".format(player1.name,player2.name),
}
return result
return None
all_weathers = [
Sun2,
Feedback,
# NameSwappyWeather,
]