Update gameplay_queries.py
Decision bug fixes
This commit is contained in:
parent
3debfd6e82
commit
c98c202224
@ -1002,15 +1002,11 @@ def get_db_ready_decisions(session: Session, this_game: Game, db_game_id: int) -
|
||||
logger.info(f'Game {this_game.id} | Appending {play.pitcher.player.name_with_desc} to blown saves on play #{play.play_num}')
|
||||
b_save.append(play.pitcher)
|
||||
|
||||
elif play.home_score > play.away_score and play.home_score - play.away_score <= 3 and home_pitcher != home_starter and play.inning_num + 2 >= final_inning:
|
||||
elif play.home_score > play.away_score and play.home_score - play.away_score <= 3 and home_pitcher != home_starter and play.inning_num >= final_inning - 2:
|
||||
logger.info(f'Game {this_game.id} | Setting {play.pitcher.player.name_with_desc} to save on play #{play.play_num}')
|
||||
save = home_pitcher
|
||||
|
||||
elif play.inning_half == 'bot':
|
||||
if away_starter is None:
|
||||
logger.info(f'Game {this_game.id} | Setting away starter to {play.pitcher.player.name_with_desc} on play #{play.play_num}')
|
||||
away_starter = play.pitcher
|
||||
|
||||
if away_finisher is None:
|
||||
logger.info(f'Game {this_game.id} | Setting away finisher to {play.pitcher.player.name_with_desc} on play #{play.play_num}')
|
||||
away_finisher = play.pitcher
|
||||
@ -1028,6 +1024,10 @@ def get_db_ready_decisions(session: Session, this_game: Game, db_game_id: int) -
|
||||
if play.pitcher not in b_save:
|
||||
logger.info(f'Game {this_game.id} | Appending {play.pitcher.player.name_with_desc} to blown saves on play #{play.play_num}')
|
||||
b_save.append(play.pitcher)
|
||||
|
||||
elif play.away_score > play.home_score and play.away_score - play.home_score <= 3 and away_pitcher != away_starter and play.inning_num >= final_inning - 2:
|
||||
logger.info(f'Game {this_game.id} | Setting {play.pitcher.player.name_with_desc} to save on play #{play.play_num}')
|
||||
save = away_pitcher
|
||||
|
||||
if play.is_go_ahead:
|
||||
run_diff = play.home_score - play.away_score
|
||||
@ -1090,20 +1090,36 @@ def get_db_ready_decisions(session: Session, this_game: Game, db_game_id: int) -
|
||||
pitcher_team_id=play.pitcher.team_id
|
||||
)
|
||||
|
||||
# After the play loop, determine winner/loser from final game state if still None
|
||||
final_play = session.exec(select(Play).where(Play.game == this_game).order_by(Play.play_num.desc())).first()
|
||||
if winner is None:
|
||||
logger.info(f'Setting winner to last_winner: {last_winner}')
|
||||
winner = last_winner
|
||||
if final_play.home_score > final_play.away_score:
|
||||
winner = home_finisher
|
||||
logger.info(f'Setting winner to home_finisher: {winner}')
|
||||
else:
|
||||
winner = away_finisher
|
||||
logger.info(f'Setting winner to away_finisher: {winner}')
|
||||
if loser is None:
|
||||
logger.info(f'Setting loser to last_loser: {last_loser}')
|
||||
loser = last_loser
|
||||
if final_play.home_score > final_play.away_score:
|
||||
loser = away_finisher
|
||||
logger.info(f'Setting loser to away_finisher: {loser}')
|
||||
else:
|
||||
loser = home_finisher
|
||||
logger.info(f'Setting loser to home_finisher: {loser}')
|
||||
|
||||
logger.info(f'winner: {winner} / loser: {loser}')
|
||||
decisions[winner.player_id].win = 1
|
||||
decisions[loser.player_id].loss = 1
|
||||
decisions[away_starter.player_id].is_start = True
|
||||
decisions[home_starter.player_id].is_start = True
|
||||
decisions[away_finisher.player_id].game_finished = 1
|
||||
decisions[home_finisher.player_id].game_finished = 1
|
||||
if winner is not None:
|
||||
decisions[winner.player_id].win = 1
|
||||
if loser is not None:
|
||||
decisions[loser.player_id].loss = 1
|
||||
if away_starter is not None:
|
||||
decisions[away_starter.player_id].is_start = True
|
||||
if home_starter is not None:
|
||||
decisions[home_starter.player_id].is_start = True
|
||||
if away_finisher is not None:
|
||||
decisions[away_finisher.player_id].game_finished = 1
|
||||
if home_finisher is not None:
|
||||
decisions[home_finisher.player_id].game_finished = 1
|
||||
|
||||
for lineup in holds:
|
||||
decisions[lineup.player_id].hold = 1
|
||||
|
||||
Loading…
Reference in New Issue
Block a user