Get RP Fixes
This commit is contained in:
parent
d3ba2f0e96
commit
33e5e97726
@ -416,12 +416,15 @@ async def get_starting_pitcher(team_object: dict, game_id: int, is_home: bool, l
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
async def get_relief_pitcher(this_play: StratPlay, ai_team: dict, used_pitchers: list, league_name: str = None) -> dict:
|
async def get_relief_pitcher(this_play: StratPlay, ai_team: dict, league_name: str = None) -> dict:
|
||||||
used_codes = []
|
used_codes = []
|
||||||
for x in used_pitchers:
|
used_players = await get_team_lineups(
|
||||||
|
game_id=this_play.game.id, team_id=ai_team['id'], inc_inactive=True, as_string=False
|
||||||
|
)
|
||||||
|
for x in used_players:
|
||||||
c_query = await db_get('cards', object_id=x.card_id)
|
c_query = await db_get('cards', object_id=x.card_id)
|
||||||
used_codes.append(c_query["player"]["strat_code"])
|
used_codes.append(c_query["player"]["strat_code"])
|
||||||
logging.info(f'get_rp - used_pitchers: {used_codes}')
|
logging.info(f'get_rp - used_players: {used_codes}')
|
||||||
|
|
||||||
reliever = None
|
reliever = None
|
||||||
attempts = 0
|
attempts = 0
|
||||||
@ -441,17 +444,18 @@ async def get_relief_pitcher(this_play: StratPlay, ai_team: dict, used_pitchers:
|
|||||||
|
|
||||||
# Pull relievers sorted by current cost
|
# Pull relievers sorted by current cost
|
||||||
params = [
|
params = [
|
||||||
('mlbclub', ai_team['lname']), ('pos_include', 'RP'), ('inc_dex', False), ('sort_by', 'cost-desc')
|
('mlbclub', ai_team['lname']), ('pos_include', 'RP'), ('inc_dex', False), ('sort_by', 'cost-desc'),
|
||||||
|
('limit', 15)
|
||||||
]
|
]
|
||||||
params.extend(set_params)
|
params.extend(set_params)
|
||||||
|
|
||||||
alt_flag = False
|
use_best = False
|
||||||
if attempts == 1:
|
if attempts == 1:
|
||||||
# Try to get long man
|
# Try to get long man
|
||||||
if this_play.inning_num < 6:
|
if this_play.inning_num < 6:
|
||||||
logging.info(f'get_rp - game {this_play.game.id} try for long man')
|
logging.info(f'get_rp - game {this_play.game.id} try for long man')
|
||||||
params.append(('pos_include', 'SP'))
|
params.append(('pos_include', 'SP'))
|
||||||
alt_flag = True
|
# use_best = True
|
||||||
|
|
||||||
# Try to get closer
|
# Try to get closer
|
||||||
elif this_play.inning_num > 8:
|
elif this_play.inning_num > 8:
|
||||||
@ -459,7 +463,7 @@ async def get_relief_pitcher(this_play: StratPlay, ai_team: dict, used_pitchers:
|
|||||||
(this_play.inning_half == 'bot' and this_play.away_score >= this_play.home_score):
|
(this_play.inning_half == 'bot' and this_play.away_score >= this_play.home_score):
|
||||||
logging.info(f'get_rp - game {this_play.game.id} try for closer')
|
logging.info(f'get_rp - game {this_play.game.id} try for closer')
|
||||||
params.append(('pos_include', 'CP'))
|
params.append(('pos_include', 'CP'))
|
||||||
alt_flag = True
|
use_best = True
|
||||||
else:
|
else:
|
||||||
params.append(('pos_exclude', 'CP'))
|
params.append(('pos_exclude', 'CP'))
|
||||||
|
|
||||||
@ -479,7 +483,7 @@ async def get_relief_pitcher(this_play: StratPlay, ai_team: dict, used_pitchers:
|
|||||||
raise ConnectionError(f'Error pulling starting pitchers for the {ai_team["lname"]}. Cal help plz.')
|
raise ConnectionError(f'Error pulling starting pitchers for the {ai_team["lname"]}. Cal help plz.')
|
||||||
|
|
||||||
if pitchers['count'] > 0:
|
if pitchers['count'] > 0:
|
||||||
if alt_flag or this_play.inning_num > 9 or attempts > 2:
|
if use_best or this_play.inning_num > 9 or attempts > 2:
|
||||||
start = 0
|
start = 0
|
||||||
else:
|
else:
|
||||||
start = 9 - this_play.inning_num
|
start = 9 - this_play.inning_num
|
||||||
@ -500,9 +504,9 @@ async def get_relief_pitcher(this_play: StratPlay, ai_team: dict, used_pitchers:
|
|||||||
|
|
||||||
|
|
||||||
def get_pitcher(this_game: StratGame, this_play: StratPlay):
|
def get_pitcher(this_game: StratGame, this_play: StratPlay):
|
||||||
p_team_id = this_game.away_team_id
|
p_team_id = this_game.home_team_id
|
||||||
if this_play.inning_half == 'top':
|
if this_play.inning_half == 'top':
|
||||||
p_team_id = this_game.home_team_id
|
p_team_id = this_game.away_team_id
|
||||||
return get_one_lineup(this_game.id, team_id=p_team_id, position='P', active=True)
|
return get_one_lineup(this_game.id, team_id=p_team_id, position='P', active=True)
|
||||||
|
|
||||||
|
|
||||||
@ -526,6 +530,7 @@ async def pitching_ai_note(this_play: StratPlay, this_pitcher: dict):
|
|||||||
pitcher = this_pitcher
|
pitcher = this_pitcher
|
||||||
|
|
||||||
# Pitcher Substitutions
|
# Pitcher Substitutions
|
||||||
|
new_pitcher = None
|
||||||
if last_inning_ender and last_inning_ender.pitcher != this_play.pitcher:
|
if last_inning_ender and last_inning_ender.pitcher != this_play.pitcher:
|
||||||
logging.debug(f'{this_pitcher["team"]["sname"]} not making a change.')
|
logging.debug(f'{this_pitcher["team"]["sname"]} not making a change.')
|
||||||
|
|
||||||
@ -536,15 +541,16 @@ async def pitching_ai_note(this_play: StratPlay, this_pitcher: dict):
|
|||||||
|
|
||||||
if len(used_pitchers) < 8:
|
if len(used_pitchers) < 8:
|
||||||
make_sub(await get_relief_pitcher(
|
make_sub(await get_relief_pitcher(
|
||||||
this_play, this_pitcher['team'], used_pitchers, this_play.game.game_type
|
this_play, this_pitcher['team'], this_play.game.game_type
|
||||||
))
|
))
|
||||||
pitcher = await get_player(this_play.game, get_pitcher(this_play.game, this_play))
|
pitcher = await get_player(this_play.game, get_pitcher(this_play.game, this_play))
|
||||||
|
new_pitcher = pitcher
|
||||||
else:
|
else:
|
||||||
ai_note += f'- continue with auto-fatigued {this_pitcher["p_name"]}\n'
|
ai_note += f'- continue with auto-fatigued {this_pitcher["p_name"]}\n'
|
||||||
|
|
||||||
else:
|
else:
|
||||||
if len(used_pitchers) == 1:
|
if len(used_pitchers) == 1:
|
||||||
ai_note += f'- go to the pen if the pitcher fatigues **and has allowed 5+ baserunners** ' \
|
ai_note += f'- go to the pen if the pitcher fatigues __and has allowed 5+ baserunners__ ' \
|
||||||
f'(`/log ai-pitcher-sub`)\n'
|
f'(`/log ai-pitcher-sub`)\n'
|
||||||
elif len(used_pitchers) < 8:
|
elif len(used_pitchers) < 8:
|
||||||
ai_note += f'- go to the pen if the pitcher fatigues (`/log ai-pitcher-sub`)\n'
|
ai_note += f'- go to the pen if the pitcher fatigues (`/log ai-pitcher-sub`)\n'
|
||||||
@ -580,7 +586,8 @@ async def pitching_ai_note(this_play: StratPlay, this_pitcher: dict):
|
|||||||
return {
|
return {
|
||||||
'note': ai_note,
|
'note': ai_note,
|
||||||
'pitcher': pitcher,
|
'pitcher': pitcher,
|
||||||
'gm_name': gm_name
|
'gm_name': gm_name,
|
||||||
|
'sub': new_pitcher
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -443,10 +443,18 @@ class Gameplay(commands.Cog):
|
|||||||
# AI Team is pitching
|
# AI Team is pitching
|
||||||
if game_state['pitcher']['team']['is_ai']:
|
if game_state['pitcher']['team']['is_ai']:
|
||||||
ai_data = await ai_manager.pitching_ai_note(game_state['curr_play'], game_state['pitcher'])
|
ai_data = await ai_manager.pitching_ai_note(game_state['curr_play'], game_state['pitcher'])
|
||||||
|
logging.info(f'ai_data: {ai_data}')
|
||||||
ai_note = ai_data['note']
|
ai_note = ai_data['note']
|
||||||
gm_name = ai_data['gm_name']
|
gm_name = ai_data['gm_name']
|
||||||
embed.set_thumbnail(url=ai_data['pitcher']["image"])
|
embed.set_thumbnail(url=ai_data['pitcher']["image"])
|
||||||
|
|
||||||
|
if ai_data['sub'] is not None:
|
||||||
|
embed.add_field(
|
||||||
|
name='SUBSTITUTION',
|
||||||
|
value=f'The {game_state["pitcher"]["team"]["sname"]} have brought in '
|
||||||
|
f'{ai_data["sub"]["description"]} to pitch.'
|
||||||
|
)
|
||||||
|
|
||||||
# AI Team is batting
|
# AI Team is batting
|
||||||
elif game_state['batter']['team']['is_ai']:
|
elif game_state['batter']['team']['is_ai']:
|
||||||
embed.set_thumbnail(url=game_state["pitcher"]["image"])
|
embed.set_thumbnail(url=game_state["pitcher"]["image"])
|
||||||
@ -2331,9 +2339,9 @@ class Gameplay(commands.Cog):
|
|||||||
# make_sub(this_lineup)
|
# make_sub(this_lineup)
|
||||||
|
|
||||||
used_pitchers = await get_team_lineups(
|
used_pitchers = await get_team_lineups(
|
||||||
game_id=this_play.game.id, team_id=ai_team['id'], inc_inactive=True, pitchers_only=True, as_string=False
|
game_id=this_play.game.id, team_id=ai_team['id'], inc_inactive=True, as_string=False
|
||||||
)
|
)
|
||||||
make_sub(await ai_manager.get_relief_pitcher(this_play, ai_team, used_pitchers, this_game.game_type))
|
make_sub(await ai_manager.get_relief_pitcher(this_play, ai_team, this_game.game_type))
|
||||||
await interaction.edit_original_response(
|
await interaction.edit_original_response(
|
||||||
content=None,
|
content=None,
|
||||||
embed=await self.get_game_state_embed(this_game)
|
embed=await self.get_game_state_embed(this_game)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user