Update ai_manager.py

This commit is contained in:
Cal Corum 2024-06-27 00:33:03 -05:00
parent 2a00e9d6da
commit cf92090fab

View File

@ -700,7 +700,7 @@ async def check_pitching_sub(this_play: StratPlay, ai_team: dict):
logging.info(f'ai_manager - check_pitching_sub: no stats recorded yet, returning None')
return False
ps = p_stats[0]
logging.info(f'ai_manager - check_pitching_sub: beyond point of weakness')
logging.info(f'ai_manager - check_pitching_sub: pitcher does have stats')
this_ai = get_manager(this_play.game)
this_pc = await data_cache.get_pd_pitchingcard(this_play.pitcher.player_id, variant=this_play.pitcher.variant)
@ -713,8 +713,14 @@ async def check_pitching_sub(this_play: StratPlay, ai_team: dict):
)
if (this_play.game.short_game or gtr or innof_work > pof_weakness + 3) and len(used_pitchers) < 8:
make_sub(await get_relief_pitcher(this_play, ai_team, this_play.game.game_type))
return await get_player(this_play.game, get_pitcher(this_play.game, this_play))
rp_lineup = make_sub(await get_relief_pitcher(this_play, ai_team, this_play.game.game_type))
try:
rp_pitcard = await data_cache.get_pd_pitchingcard(rp_lineup.player_id, rp_lineup.variant)
if rp_pitcard.card.relief_rating == 1:
patch_play(this_play.id, in_pow=True)
except Exception as e:
logging.info(f'ai_manager - check_pitching_sub - could not pull card for {rp_lineup.player_id}')
return await get_player(this_play.game, rp_lineup)
return None
@ -736,32 +742,38 @@ async def is_pitcher_fatigued(this_play: StratPlay) -> bool:
if this_play.game.short_game:
pof_weakness = 1
else:
this_pc = await data_cache.get_pd_pitchingcard(this_play.pitcher.player_id, variant=this_play.pitcher.variant)
try:
this_pc = await data_cache.get_pd_pitchingcard(this_play.pitcher.player_id, variant=this_play.pitcher.variant)
except:
logging.info(
f'ai_manager - is_pitcher_fatigued: could not pull pitching card for {this_play.pitcher.player_id}, '
f'returning False')
return False
pof_weakness = this_pc.card.starter_rating if len(used_pitchers) == 1 else this_pc.card.relief_rating
# Check starter fatigue
if len(p_stats) == 1:
if len(used_pitchers) == 1:
if ps['pl_eruns'] >= 7:
logging.info(f'ai_manager - is_pitcher_fatigued: starter allowed 7+, returning True')
return True
if ps['pl_eruns'] >= 6:
elif ps['pl_eruns'] >= 6:
logging.info(f'ai_manager - is_pitcher_fatigued: starter allowed 6+, checking for fatigue')
f_query = get_pitching_stats(
this_play.game.id,
lineup_id=this_play.pitcher.id,
in_innings=[this_play.inning_num, this_play.inning_num - 1]
)
if f_query[0]['pl_eruns'] >= 6:
if f_query[0]['pl_in_runs'] >= 6:
logging.info(f'ai_manager - is_pitcher_fatigued: starter allowed 6 in 2, returning True')
return True
if ps['pl_eruns'] >= 5:
elif ps['pl_eruns'] >= 5:
logging.info(f'ai_manager - is_pitcher_fatigued: starter allowed 5+, checking for fatigue')
f_query = get_pitching_stats(
this_play.game.id,
lineup_id=this_play.pitcher.id,
in_innings=[this_play.inning_num]
)
if f_query[0]['pl_eruns'] >= 5:
if f_query[0]['pl_in_runs'] >= 5:
logging.info(f'ai_manager - is_pitcher_fatigued: starter allowed 5 in 1, returning True')
return True
@ -781,6 +793,10 @@ async def is_pitcher_fatigued(this_play: StratPlay) -> bool:
logging.info(f'ai_manager - is_pitcher_fatigued: in point of weakness, not fatigued, returning False')
return False
elif innof_work > pof_weakness:
patch_play(this_play.id, in_pow=True)
return True
logging.info(f'ai_manager - is_pitcher_fatigued: beyond point of weakness, fatigued, returning True')
return True