paper-dynasty-discord/dice.py
2023-02-19 21:34:38 -06:00

918 lines
44 KiB
Python

import discord
import random
from helpers import INFIELD_X_CHART, OUTFIELD_X_CHART
def get_dice_embed(team: dict = None, embed_title: str = None):
if team:
embed = discord.Embed(
color=int(team["dice_color"], 16) if 'dice_color' in team else int(team["color"], 16)
)
else:
embed = discord.Embed(
color=int('0x000000', 16)
)
if embed_title:
embed.title = embed_title
return embed
def sa_fielding_roll(pos_code: str, team: dict) -> [discord.Embed]:
"""
Make a Super Advanced fielding check.
"""
d_twenty = random.randint(1, 20)
d_six_one = random.randint(1, 6)
d_six_two = random.randint(1, 6)
d_six_three = random.randint(1, 6)
error_dice = d_six_one + d_six_two + d_six_three
x_chart = None
error_chart = 'https://sombaseball.ddns.net/static/images/season04/error-'
symbol_link = None
range_note = None
error_note = None
error_note1 = None
error_note2 = None
if pos_code in ['1B', '2B', '3B', 'SS']:
x_chart = 'https://sombaseball.ddns.net/static/images/season04/range-infield.png'
symbol_link = 'https://docs.google.com/document/d/1p8Y2On0301C1yq4ktyPxE4lXxrIALYaF1vbW6RkRpII/edit' \
'#heading=h.qgqyxe5xb77m'
# Build range note
if d_twenty == 1:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'G3# SI1 ----SI2----\n' \
'```\n\n'
elif d_twenty == 2:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'G2# SI1 ----SI2----\n' \
'```\n\n'
elif d_twenty <= 4:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'G2# G3# SI1 --SI2--\n' \
'```\n\n'
elif d_twenty == 5:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'G1 --G3#-- SI1 SI2\n' \
'```\n\n'
elif d_twenty == 6:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'G1 G2# G3# SI1 SI2\n' \
'```\n\n'
elif d_twenty <= 8:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'G1 G2 --G3#-- SI1\n' \
'```\n\n'
elif d_twenty == 9:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'G1 G2 G3 --G3#--\n' \
'```\n\n'
elif d_twenty == 10:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--G1--- G2 --G3#--\n' \
'```\n\n'
elif d_twenty <= 12:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--G1--- G2 G3 G3#\n' \
'```\n\n'
elif d_twenty == 13:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--G1--- G2 --G3---\n' \
'```\n\n'
elif d_twenty == 14:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--G1--- --G2--- G3\n' \
'```\n\n'
elif d_twenty <= 16:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'----G1----- G2 G3\n' \
'```\n\n'
elif d_twenty == 17:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'------G1------- G3\n' \
'```\n\n'
elif d_twenty <= 19:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'------G1------- G2\n' \
'```\n\n'
elif d_twenty == 20:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--------G1---------\n' \
'```\n\n'
if pos_code == '1B':
error_chart += 'first-base.png'
if error_dice == 18:
error_note = '2-base error for e3 -> e12, e19 -> e28\n' \
'1-base error for e1, e2, e30'
elif error_dice == 17:
error_note = '2-base error for e13 -> e28\n' \
'1-base error for e1, e5, e8, e9, e29'
elif error_dice == 16:
error_note = '2-base error for e29, e30\n' \
'1-base error for e2, e8, e16, e19, e23'
elif error_dice == 15:
error_note = '1-base error for e3, e8, e10 -> e12, e20, e26, e30'
elif error_dice == 14:
error_note = '1-base error for e4, e5, e9, e15, e18, e22, e24 -> e28'
elif error_dice == 13:
error_note = '1-base error for e6, e13, e24, e26 -> e28, e30'
elif error_dice == 12:
error_note = '1-base error for e14 -> e18, e21 -> e26, e28 -> e30'
elif error_dice == 11:
error_note = '1-base error for e10, e13, e16 -> e20, e23 -> e25, e27 -> e30'
elif error_dice == 10:
error_note = '1-base error for e19 -> e21, e23, e29'
elif error_dice == 9:
error_note = '1-base error for e7, e12, e14, e21, e25, e26, e29'
elif error_dice == 8:
error_note = '1-base error for e11, e27'
elif error_dice == 7:
error_note = '1-base error for e9, e15, e22, e27, e28'
elif error_dice == 6:
error_note = '1-base error for e8, e11, e12, e17, e20'
elif error_dice == 5:
error_note = f'Rare play!\n\n' \
f'**G3**: {INFIELD_X_CHART["g3"]["rp"]}\n' \
f'**G2**: {INFIELD_X_CHART["g2"]["rp"]}\n' \
f'**G1**: {INFIELD_X_CHART["g1"]["rp"]}\n' \
f'**SI1**: {INFIELD_X_CHART["si1"]["rp"]}\n' \
f'**SI2**: {OUTFIELD_X_CHART["si2"]["rp"]}\n'
elif error_dice == 4:
error_note = 'No error'
elif error_dice == 3:
error_note = '2-base error for e8 -> e12, e24 -> e28\n' \
'1-base error for e2, e3, e6, e7, e14, e16, e17, e21'
if pos_code == '2B':
error_chart += 'second-base.png'
if error_dice == 18:
error_note = '2-base error for e4 -> e19, e28 -> e41, e53 -> e65\n' \
'1-base error for e22, e24, e25, e27, e44, e50'
elif error_dice == 17:
error_note = '2-base error for e20 -> e41, e68, e71\n' \
'1-base error for e3, e4, e8 -> e12, e15, e16, e19'
elif error_dice == 16:
error_note = '2-base error for e53 -> 71\n' \
'1-base error for e5 -> 10, e14, e16, e29, e37'
elif error_dice == 15:
error_note = '1-base error for e11, e12, e14, e16, e17, e19, e26 -> e28, e30, e32, e37, ' \
'e50 -> e62, e71'
elif error_dice == 14:
error_note = '1-base error for e13, e15, e34, e47, e65'
elif error_dice == 13:
error_note = '1-base error for e18, e20, e21, e26 -> e28, e39, e41, e50, e56, e59, e65, e71'
elif error_dice == 12:
error_note = '1-base error for e22, e30, e34, e39, e44, e47, e53, e56, e62, e68, e71'
elif error_dice == 11:
error_note = '1-base error for e23 -> e25, e29, e32, e37, e41, e50, e53, e59, e62, e68'
elif error_dice == 10:
error_note = '1-base error for e68'
elif error_dice == 9:
error_note = '1-base error for e44'
elif error_dice == 8:
error_note = 'No error'
elif error_dice == 7:
error_note = '1-base error for e47, e65'
elif error_dice == 6:
error_note = '1-base error for e17, e19, e56 -> 62'
elif error_dice == 5:
error_note = f'Rare play!\n\n' \
f'**G3**: {INFIELD_X_CHART["g3"]["rp"]}\n' \
f'**G2**: {INFIELD_X_CHART["g2"]["rp"]}\n' \
f'**G1**: {INFIELD_X_CHART["g1"]["rp"]}\n' \
f'**SI1**: {INFIELD_X_CHART["si1"]["rp"]}\n' \
f'**SI2**: {OUTFIELD_X_CHART["si2"]["rp"]}\n'
elif error_dice == 4:
error_note = '1-base error for e10, e21'
elif error_dice == 3:
error_note = '2-base error for e12 -> e19, e37 -> e41, e59 -> e65\n' \
'1-base error for e2 -> e4, e6, e20, e25, e28, e29'
if pos_code == '3B':
error_chart += 'third-base.png'
if error_dice == 18:
error_note = '2-base error for e1, e2, e8, e10, e13 -> e16, e21 -> e24, e27, e30 -> e33, e50, ' \
'e56, e62, e65\n' \
'1-base error for e39'
elif error_dice == 17:
error_note = '2-base error for e3 -> e10, e17, e18, e25 -> e27, e34 -> e37, e44, e47\n' \
'1-base error for e11, e19, e32, e56'
elif error_dice == 16:
error_note = '2-base error for e11 -> e18, e32, e33, e37, e53, e62, e65\n' \
'1-base error for e4, e8, e19, e21, e22, e27, e41'
elif error_dice == 15:
error_note = '2-base error for e19 -> 27, e32, e33, e37, e39, e44, e50, e59\n' \
'1-base error for e5 -> e8, e11, e14, e15, e17, e18, e28 -> e31, e34'
elif error_dice == 14:
error_note = '2-base error for e28 -> e31, e34, e35, e50\n' \
'1-base error for e14, e16, e19, e20, e22, e32, e39, e44, e56, e62'
elif error_dice == 13:
error_note = '2-base error for e41, e47, e53, e59\n' \
'1-base error for e10, e15, e23, e25, e28, e30, e32, e33, e35, e44, e65'
elif error_dice == 12:
error_note = '2-base error for e62\n' \
'1-base error for e12, e17, e22, e24, e27, e29, e34 -> e50, e56 -> e59, e65'
elif error_dice == 11:
error_note = '2-base error for e56, e65\n' \
'1-base error for e13, e18, e20, e21, e23, e26, e28, e31 -> e33, e35, e37, ' \
'e41 -> e53, e59, e65'
elif error_dice == 10:
error_note = '1-base error for e26, e31, e41, e53 -> 65'
elif error_dice == 9:
error_note = '1-base error for e24, e27, e29, e34, e37, e39, e47 -> e65'
elif error_dice == 8:
error_note = '1-base error for e25, e30, e33, e47, e53, e56, e62, e65'
elif error_dice == 7:
error_note = '1-base error for e16, e19, e39, e59 -> e65'
elif error_dice == 6:
error_note = '1-base error for e21, e25, e30, e34, e53'
elif error_dice == 5:
error_note = f'Rare play!\n\n' \
f'**G3**: {INFIELD_X_CHART["g3"]["rp"]}\n' \
f'**G2**: {INFIELD_X_CHART["g2"]["rp"]}\n' \
f'**G1**: {INFIELD_X_CHART["g1"]["rp"]}\n' \
f'**SI1**: {INFIELD_X_CHART["si1"]["rp"]}\n' \
f'**SI2**: {OUTFIELD_X_CHART["si2"]["rp"]}\n'
elif error_dice == 4:
error_note = '1-base error for e2, e3, e6, e14, e16, e44'
elif error_dice == 3:
error_note = '2-base error for e10, e15, e16, e23, e24, e56\n' \
'1-base error for e1 -> e4, e8, e14'
if pos_code == 'SS':
error_chart += 'shortstop.png'
if error_dice == 18:
error_note = '2-base error for e4 -> e12, e22 -> e32, e40 -> e48, e64, e68\n' \
'1-base error for e1, e18, e34, e52, e56'
elif error_dice == 17:
error_note = '2-base error for e14 -> 32, e52, e56, e72 -> e84\n' \
'1-base error for e3 -> e5, e8 ,e10, e36'
elif error_dice == 16:
error_note = '2-base error for e33 -> 56, e72\n' \
'1-base error for e6 -> e10, e17, e18, e20, e28, e31, e88'
elif error_dice == 15:
error_note = '2-base error for e60 -> e68, e76 -> 84\n' \
'1-base error for e12, e14, e17, e18, e20 -> e22, e24, e28, e31 -> 36, e40, ' \
'e48, e72'
elif error_dice == 14:
error_note = '1-base error for e16, e19, e38, e42, e60, e68'
elif error_dice == 13:
error_note = '1-base error for e23, e25, e32 -> 38, e44, e52, e72 -> 84'
elif error_dice == 12:
error_note = '1-base error for e26, e27, e30, e42, e48, e56, e64, e68, e76 -> e88'
elif error_dice == 11:
error_note = '1-base error for e29, e40, e52 -> e60, e72, e80 -> e88'
elif error_dice == 10:
error_note = '1-base error for e84'
elif error_dice == 9:
error_note = '1-base error for e64, e68, e76, e88'
elif error_dice == 8:
error_note = '1-base error for e44'
elif error_dice == 7:
error_note = '1-base error for e60'
elif error_dice == 6:
error_note = '1-base error for e21, e22, e24, e28, e31, e48, e64, e72'
elif error_dice == 5:
error_note = f'Rare play!\n\n' \
f'**G3**: {INFIELD_X_CHART["g3"]["rp"]}\n' \
f'**G2**: {INFIELD_X_CHART["g2"]["rp"]}\n' \
f'**G1**: {INFIELD_X_CHART["g1"]["rp"]}\n' \
f'**SI1**: {INFIELD_X_CHART["si1"]["rp"]}\n' \
f'**SI2**: {OUTFIELD_X_CHART["si2"]["rp"]}\n'
elif error_dice == 4:
error_note = '2-base error for e72\n' \
'1-base error for e14, e19, e20, e24, e25, e31, e80'
elif error_dice == 3:
error_note = '2-base error for e10, e12, e28 -> e32, e48, e84\n' \
'1-base error for e2, e5, e7, e23, e27'
elif pos_code in ['LF', 'CF', 'RF']:
x_chart = 'https://sombaseball.ddns.net/static/images/season04/range-outfield.png'
symbol_link = 'https://docs.google.com/document/d/1p8Y2On0301C1yq4ktyPxE4lXxrIALYaF1vbW6RkRpII/edit' \
'#heading=h.drrzdsvu0ij0'
# Build range note
if d_twenty == 1:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'F1 DO2 DO3 --TR3--\n' \
'```\n\n'
elif d_twenty == 2:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'F2 SI2 DO2 DO3 TR3\n' \
'```\n\n'
elif d_twenty == 3:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'F2 SI2 --DO2-- DO3\n' \
'```\n\n'
elif d_twenty == 4:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'F2 F1 SI2 DO2 DO3\n' \
'```\n\n'
elif d_twenty <= 6:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--F2--- --SI2-- DO2\n' \
'```\n\n'
elif d_twenty == 7:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--F2--- F1 SI2 DO2\n' \
'```\n\n'
elif d_twenty == 8:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--F2--- F1 --SI2--\n' \
'```\n\n'
elif d_twenty <= 11:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'----F2----- --SI2--\n' \
'```\n\n'
elif d_twenty <= 13:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'----F2----- F1 SI2\n' \
'```\n\n'
elif d_twenty <= 15:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'F3 ----F2----- SI2\n' \
'```\n\n'
elif d_twenty == 16:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--F3--- --F2--- F1\n' \
'```\n\n'
elif d_twenty <= 18:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'----F3----- F2 F1\n' \
'```\n\n'
elif d_twenty == 19:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'------F3------- F2\n' \
'```\n\n'
elif d_twenty == 20:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--------F3---------\n' \
'```\n\n'
if pos_code in ['LF', 'RF']:
error_chart += 'corner-outfield.png'
if error_dice == 18:
error_note = '3-base error for e4 -> e12, e19 -> e25\n' \
'2-base error for e18\n' \
'1-base error for e2, e3, e15'
elif error_dice == 17:
error_note = '3-base error for e13 -> e25\n' \
'2-base error for e1, e6, e8, e10'
elif error_dice == 16:
error_note = '2-base error for e2\n' \
'1-base error for e7 -> 12, e22, e24, e25'
elif error_dice == 15:
error_note = '2-base error for e3, e4, e7, e8, e10, e11, e13, e20, e21'
elif error_dice == 14:
error_note = '2-base error for e5, e6, e10, e12, e14, e15, e22, e23'
elif error_dice == 13:
error_note = '2-base error for e11, e12, e16, e20, e24, e25'
elif error_dice == 12:
error_note = '2-base error for e13 -> e18, e21 -> e23, e25'
elif error_dice == 11:
error_note = '2-base error for e9, e18 -> e21, e23 -> e25'
elif error_dice == 10:
error_note = '2-base error for e19'
elif error_dice == 9:
error_note = '2-base error for e22'
elif error_dice == 8:
error_note = '2-base error for e24'
elif error_dice == 7:
error_note = '1-base error for e19 -> e21, e23'
elif error_dice == 6:
error_note = '2-base error for e7, e8\n' \
'1-base error for e13 -> e18, e22, e24, e25'
elif error_dice == 5:
error_note = f'Rare play!'
error_note1 = f'**F1**: {OUTFIELD_X_CHART["f1"]["rp"]}\n' \
f'**F2**: {OUTFIELD_X_CHART["f2"]["rp"]}\n' \
f'**F3**: {OUTFIELD_X_CHART["f3"]["rp"]}\n'
error_note2 = f'**SI2**: {OUTFIELD_X_CHART["si2"]["rp"]}\n' \
f'**DO2**: {OUTFIELD_X_CHART["do2"]["rp"]}\n' \
f'**DO3**: {OUTFIELD_X_CHART["do3"]["rp"]}\n' \
f'**TR3**: {OUTFIELD_X_CHART["tr3"]["rp"]}\n'
elif error_dice == 4:
error_note = '2-base error for e13, e16, e20, e23 -> e25\n' \
'1-base error for e4 -> e6, e10 -> 12, e16 -> e18'
elif error_dice == 3:
error_note = '3-base error for e8 -> e12, e24, e25\n' \
'2-base error for e19\n' \
'1-base error for e1 -> e3, e6, e14, e15, e18, e20 -> e22'
else:
error_chart += 'center-field.png'
if error_dice == 18:
error_note = '3-base error for e4 -> 19\n' \
'2-base error for e2, e25\n' \
'1-base error for e3, e23'
elif error_dice == 17:
error_note = '3-base error for e20 -> e25\n' \
'2-base error for e1, e2, e5, e7, e9, e13 -> e15, e17'
elif error_dice == 16:
error_note = '2-base error for e3 -> e5, e8, e23\n' \
'1-base error for e10 -> e18'
elif error_dice == 15:
error_note = '2-base error for e6 -> e8, e12, e13, e19'
elif error_dice == 14:
error_note = '2-base error for e9, e10, e16 -> e18, e20 -> e23'
elif error_dice == 13:
error_note = '2-base error for e11, e18, e20, e23 -> e25'
elif error_dice == 12:
error_note = '2-base error for e14, e15, e21, e22, e24'
elif error_dice == 11:
error_note = '2-base error for e19, e25'
elif error_dice >= 8:
error_note = 'No error'
elif error_dice == 7:
error_note = '2-base error for e16, e17'
elif error_dice == 6:
error_note = '2-base error for e12, e13\n' \
'1-base error for e19 -> e25'
elif error_dice == 5:
error_note = f'Rare play!'
error_note1 = f'**F1**: {OUTFIELD_X_CHART["f1"]["rp"]}\n' \
f'**F2**: {OUTFIELD_X_CHART["f2"]["rp"]}\n' \
f'**F3**: {OUTFIELD_X_CHART["f3"]["rp"]}\n'
error_note2 = f'**SI2**: {OUTFIELD_X_CHART["si2"]["rp"]}\n' \
f'**DO2**: {OUTFIELD_X_CHART["do2"]["rp"]}\n' \
f'**DO3**: {OUTFIELD_X_CHART["do3"]["rp"]}\n' \
f'**TR3**: {OUTFIELD_X_CHART["tr3"]["rp"]}\n'
elif error_dice == 4:
error_note = '2-base error for e10, e12, e13, e20, e22, e23\n' \
'1-base error for e3 -> e9, e15 -> e18'
elif error_dice == 3:
error_note = '3-base error for e12 -> e19\n' \
'2-base error for e10, e11\n' \
'1-base error for e2, e3, e7 -> e9, e21 -> e23'
elif pos_code == 'C':
x_chart = 'https://sombaseball.ddns.net/static/images/season04/range-catcher.png'
error_chart += 'catcher.png'
symbol_link = 'https://docs.google.com/document/d/1a_g6apg74ixcwJapNrbOJZAx7gVxGjeNm79c5XLjSF0/' \
'edit#heading=h.mcf1vrt5gzr9'
# Build range note
range_note = '__If Bases Empty__\n'
if d_twenty == 1:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'G3 ------SI1------\n' \
'```\n'
elif d_twenty == 2:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--G3--- ----SI1----\n' \
'```\n'
elif d_twenty == 3:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'PO --G3--- --SI1--\n' \
'```\n'
elif d_twenty == 4:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--PO--- --G3--- SI1\n' \
'```\n'
elif d_twenty == 5:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'----PO----- --G3---\n' \
'```\n'
elif d_twenty == 6:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'------PO------- G3\n' \
'```\n'
elif d_twenty <= 10:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--------PO---------\n' \
'```\n'
elif d_twenty == 11:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'FO -------PO------\n' \
'```\n'
elif d_twenty == 12:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--FO--- -----PO----\n' \
'```\n'
elif d_twenty == 13:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'----FO----- --PO---\n' \
'```\n'
elif d_twenty == 14:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'------FO------- PO\n' \
'```\n'
elif d_twenty <= 16:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--------FO---------\n' \
'```\n'
elif d_twenty == 17:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--G2--- G3 --FO---\n' \
'```\n'
elif d_twenty == 18:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--G2--- --G3--- FO\n' \
'```\n'
elif d_twenty == 19:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--G1--- G2 --G3---\n' \
'```\n'
elif d_twenty == 20:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--G1--- --G2--- G3\n' \
'```\n'
range_note += '__If Runners on Base__\n'
if d_twenty <= 2:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--------WP---------\n' \
'```\n'
elif d_twenty == 3:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
' X -------WP------\n' \
'```\n'
elif d_twenty == 4:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'---X--- -----WP----\n' \
'```\n'
elif d_twenty == 5:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'-----X----- --WP---\n' \
'```\n'
elif d_twenty == 6:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'-------X------- WP\n' \
'```\n'
elif d_twenty <= 9:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'PO -------X-------\n' \
'```\n'
elif d_twenty <= 12:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--PO--- -----X-----\n' \
'```\n'
elif d_twenty == 13:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'FO PO -----X-----\n' \
'```\n'
elif d_twenty == 14:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--FO--- PO ---X---\n' \
'```\n'
elif d_twenty <= 16:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'----FO----- ---X---\n' \
'```\n'
elif d_twenty == 17:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--G2--- G3 PO X\n' \
'```\n'
elif d_twenty == 18:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--G2--- --G3--- X\n' \
'```\n'
elif d_twenty == 19:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'G1 --G2--- --G3---\n' \
'```\n'
elif d_twenty == 20:
range_note += '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--G1--- --G2--- G3\n' \
'```\n'
# Build error note
# error_dice = 5
if error_dice == 18:
error_note = '2-base error for e4 -> 16\n1-base error for e2, e3'
elif error_dice == 17:
error_note = '1-base error for e1, e2, e4, e5, e12 -> e14, e16'
elif error_dice == 16:
error_note = '1-base error for e3 -> e5, e7, e12 -> e14, e16'
elif error_dice == 15:
error_note = '1-base error for e7, e8, e12, e13, e15'
elif error_dice == 14:
error_note = '1-base error for e6'
elif error_dice == 13:
error_note = '1-base error for e9'
elif error_dice == 12:
error_note = '1-base error for e10, e14'
elif error_dice == 11:
error_note = '1-base error for e11, e15'
elif 8 <= error_dice <= 10:
error_note = 'No error'
elif error_dice == 7:
error_note = '1-base error for e16'
elif error_dice == 6:
error_note = '1-base error for e8, e12, e13'
elif error_dice == 5:
error_note = 'Rare play! Ignore range chart above and consult ranges below\n\n'
error_note1 = '__If Bases Empty__\n'
if d_twenty == 1:
error_note1 += f'**c-1**: {INFIELD_X_CHART["g3"]["rp"]}\n' \
f'**c-2 -> 5**: {INFIELD_X_CHART["si1"]["rp"]}\n\n'
elif d_twenty == 2:
error_note1 += f'**c-1 -> 2**: {INFIELD_X_CHART["g3"]["rp"]}\n' \
f'**c-3 -> 5**: {INFIELD_X_CHART["si1"]["rp"]}\n\n'
elif d_twenty == 3:
error_note1 += f'**c-1**: {INFIELD_X_CHART["po"]["rp"]}\n' \
f'**c-2 -> 3**: {INFIELD_X_CHART["g3"]["rp"]}\n' \
f'**c-4 -> 5**: {INFIELD_X_CHART["si1"]["rp"]}\n\n'
elif d_twenty == 4:
error_note1 += f'**c-1 -> 2**: {INFIELD_X_CHART["po"]["rp"]}\n' \
f'**c-3 -> 4**: {INFIELD_X_CHART["g3"]["rp"]}\n' \
f'**c-5**: {INFIELD_X_CHART["si1"]["rp"]}\n\n'
elif d_twenty == 5:
error_note1 += f'**c-1 -> 3**: {INFIELD_X_CHART["po"]["rp"]}\n' \
f'**c-4 -> 5**: {INFIELD_X_CHART["g3"]["rp"]}\n\n'
elif d_twenty == 6:
error_note1 += f'**c-1 -> 4**: {INFIELD_X_CHART["po"]["rp"]}\n' \
f'**c-5**: {INFIELD_X_CHART["g3"]["rp"]}\n\n'
elif d_twenty <= 10:
error_note1 += f'**c-1 -> 5**: {INFIELD_X_CHART["po"]["rp"]}\n\n'
elif d_twenty == 11:
error_note1 += f'**c-1**: {INFIELD_X_CHART["fo"]["rp"]}\n' \
f'**c-2 -> 5**: {INFIELD_X_CHART["po"]["rp"]}\n\n'
elif d_twenty == 12:
error_note1 += f'**c-1 -> 2**: {INFIELD_X_CHART["fo"]["rp"]}\n' \
f'**c-3 -> 5**: {INFIELD_X_CHART["po"]["rp"]}\n\n'
elif d_twenty == 13:
error_note1 += f'**c-1 -> 3**: {INFIELD_X_CHART["fo"]["rp"]}\n' \
f'**c-4 -> 5**: {INFIELD_X_CHART["po"]["rp"]}\n\n'
elif d_twenty == 14:
error_note1 += f'**c-1 -> 4**: {INFIELD_X_CHART["fo"]["rp"]}\n' \
f'**c-5**: {INFIELD_X_CHART["po"]["rp"]}\n\n'
elif d_twenty <= 16:
error_note1 += f'**c-1 -> 5**: {INFIELD_X_CHART["fo"]["rp"]}\n\n'
elif d_twenty == 17:
error_note1 += f'**c-1 -> 2**: {INFIELD_X_CHART["g2"]["rp"]}\n' \
f'**c-3**: {INFIELD_X_CHART["g3"]["rp"]}\n' \
f'**c-4 -> 5**: {INFIELD_X_CHART["fo"]["rp"]}\n\n'
elif d_twenty == 18:
error_note1 += f'**c-1 -> 2**: {INFIELD_X_CHART["g2"]["rp"]}\n' \
f'**c-3 -> 4**: {INFIELD_X_CHART["g3"]["rp"]}\n' \
f'**c-5**: {INFIELD_X_CHART["fo"]["rp"]}\n\n'
elif d_twenty == 19:
error_note1 += f'**c-1 -> 2**: {INFIELD_X_CHART["g1"]["rp"]}\n' \
f'**c-3**: {INFIELD_X_CHART["g2"]["rp"]}\n' \
f'**c-4 -> 5**: {INFIELD_X_CHART["g3"]["rp"]}\n\n'
elif d_twenty == 20:
error_note1 += f'**c-1 -> 2**: {INFIELD_X_CHART["g1"]["rp"]}\n' \
f'**c-3 -> 4**: {INFIELD_X_CHART["g2"]["rp"]}\n' \
f'**c-5**: {INFIELD_X_CHART["g3"]["rp"]}\n\n'
error_note2 = '__If Runners on Base__\n'
if d_twenty <= 2:
error_note2 += f'**c-1 -> 5**: {INFIELD_X_CHART["wp"]["rp"]}\n\n'
elif d_twenty == 3:
error_note2 += f'**c-1**: {INFIELD_X_CHART["x"]["rp"]}\n' \
f'**c-2 -> 5**: {INFIELD_X_CHART["wp"]["rp"]}\n\n'
elif d_twenty == 4:
error_note2 += f'**c-1 -> 2**: {INFIELD_X_CHART["x"]["rp"]}\n' \
f'**c-3 -> 5**: {INFIELD_X_CHART["wp"]["rp"]}\n\n'
elif d_twenty == 5:
error_note2 += f'**c-1 -> 3**: {INFIELD_X_CHART["x"]["rp"]}\n' \
f'**c-4 -> 5**: {INFIELD_X_CHART["wp"]["rp"]}\n\n'
elif d_twenty == 6:
error_note2 += f'**c-1 -> 4**: {INFIELD_X_CHART["x"]["rp"]}\n' \
f'**c-5**: {INFIELD_X_CHART["wp"]["rp"]}\n\n'
elif d_twenty <= 9:
error_note2 += f'**c-1**: {INFIELD_X_CHART["po"]["rp"]}\n' \
f'**c-2 -> 5**: {INFIELD_X_CHART["x"]["rp"]}\n\n'
elif d_twenty <= 12:
error_note2 += f'**c-1 -> 2**: {INFIELD_X_CHART["po"]["rp"]}\n' \
f'**c-3 -> 5**: {INFIELD_X_CHART["x"]["rp"]}\n\n'
elif d_twenty == 13:
error_note2 += f'**c-1**: {INFIELD_X_CHART["fo"]["rp"]}\n' \
f'**c-2**: {INFIELD_X_CHART["po"]["rp"]}\n' \
f'**c-3 -> 5**: {INFIELD_X_CHART["x"]["rp"]}\n\n'
elif d_twenty == 14:
error_note2 += f'**c-1 -> 2**: {INFIELD_X_CHART["fo"]["rp"]}\n' \
f'**c-3**: {INFIELD_X_CHART["po"]["rp"]}\n' \
f'**c-4 -> 5**: {INFIELD_X_CHART["x"]["rp"]}\n\n'
elif d_twenty <= 16:
error_note2 += f'**c-1 -> 3**: {INFIELD_X_CHART["fo"]["rp"]}\n' \
f'**c-4 -> 5**: {INFIELD_X_CHART["x"]["rp"]}\n\n'
elif d_twenty == 17:
error_note2 += f'**c-1 -> 2**: {INFIELD_X_CHART["g2"]["rp"]}\n' \
f'**c-3**: {INFIELD_X_CHART["g3"]["rp"]}\n' \
f'**c-4**: {INFIELD_X_CHART["po"]["rp"]}\n' \
f'**c-5**: {INFIELD_X_CHART["x"]["rp"]}\n\n'
elif d_twenty == 18:
error_note2 += f'**c-1 -> 2**: {INFIELD_X_CHART["g2"]["rp"]}\n' \
f'**c-3 -> 4**: {INFIELD_X_CHART["g3"]["rp"]}\n' \
f'**c-5**: {INFIELD_X_CHART["x"]["rp"]}\n\n'
elif d_twenty == 19:
error_note2 += f'**c-1**: {INFIELD_X_CHART["g1"]["rp"]}\n' \
f'**c-2 -> 3**: {INFIELD_X_CHART["g2"]["rp"]}\n' \
f'**c-4 -> 5**: {INFIELD_X_CHART["g3"]["rp"]}\n\n'
elif d_twenty == 20:
error_note2 += f'**c-1 -> 2**: {INFIELD_X_CHART["g1"]["rp"]}\n' \
f'**c-3 -> 4**: {INFIELD_X_CHART["g2"]["rp"]}\n' \
f'**c-5**: {INFIELD_X_CHART["g3"]["rp"]}\n\n'
elif error_dice == 4:
error_note = '1-base error for e5, e13'
else:
error_note = '2-base error for e12 -> e16\n1-base error for e2, e3, e7, e11'
elif pos_code == 'P':
x_chart = 'https://sombaseball.ddns.net/static/images/season04/range-pitcher.png'
error_chart += 'pitcher.png'
symbol_link = 'https://docs.google.com/document/d/1a_g6apg74ixcwJapNrbOJZAx7gVxGjeNm79c5XLjSF0/edit' \
'#heading=h.fpjqmiv10r8l'
# Build range note
if d_twenty <= 2:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'G3 ------SI1------\n' \
'```\n'
elif d_twenty == 3:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--G3--- ----SI1----\n' \
'```\n'
elif d_twenty == 4:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'----G3----- --SI1--\n' \
'```\n'
elif d_twenty <= 6:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'------G3------- SI1\n' \
'```\n'
elif d_twenty == 7:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--------G3---------\n' \
'```\n'
elif d_twenty <= 9:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'G2 ------G3-------\n' \
'```\n'
elif d_twenty <= 12:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'G1 G2 ----G3-----\n' \
'```\n'
elif d_twenty == 13:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--G1--- G2 --G3---\n' \
'```\n'
elif d_twenty == 14:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--G1--- --G2--- G3\n' \
'```\n'
elif d_twenty <= 16:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--G1--- ----G2-----\n' \
'```\n'
elif d_twenty <= 18:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'----G1----- --G2---\n' \
'```\n'
elif d_twenty == 19:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'------G1------- G2\n' \
'```\n'
elif d_twenty == 20:
range_note = '```\n' \
' 1 | 2 | 3 | 4 | 5\n' \
'--------G1---------\n' \
'```\n'
# Build error note
if error_dice == 18:
error_note = '2-base error for e4 -> e12, e19 -> e28, e34 -> e43, e46 -> e48'
elif error_dice == 17:
error_note = '2-base error for e13 -> e28, e44 -> e50'
elif error_dice == 16:
error_note = '2-base error for e34 -> e48, e50, e51\n' \
'1-base error for e8, e11, e16, e23'
elif error_dice == 15:
error_note = '2-base error for e50, e51\n' \
'1-base error for e10 -> e12, e19, e20, e24, e26, e30, e35, e38, e40, e46, e47'
elif error_dice == 14:
error_note = '1-base error for e4, e14, e18, e21, e22, e26, e31, e35, e42, e43, e48 -> e51'
elif error_dice == 13:
error_note = '1-base error for e6, e13, e14, e21, e22, e26, e27, e30 -> 34, e38 -> e51'
elif error_dice == 12:
error_note = '1-base error for e7, e11, e12, e15 -> e19, e22 -> e51'
elif error_dice == 11:
error_note = '1-base error for e10, e13, e15, e17, e18, e20, e21, e23, e24, e27 -> 38, e40, e42, ' \
'e44 -> e51'
elif error_dice == 10:
error_note = '1-base error for e20, e23, e24, e27 -> e51'
elif error_dice == 9:
error_note = '1-base error for e16, e19, e26, e28, e34 -> e36, e39 -> e51'
elif error_dice == 8:
error_note = '1-base error for e22, e33, e38, e39, e43 -> e51'
elif error_dice == 7:
error_note = '1-base error for e14, e21, e36, e39, e42 -> e44, e47 -> e51'
elif error_dice == 6:
error_note = '1-base error for e8, e22, e38, e39, e43 -> e51'
elif error_dice == 5:
error_note = f'Rare play!\n\n' \
f'**G3**: {INFIELD_X_CHART["g3"]["rp"]}\n' \
f'**G2**: {INFIELD_X_CHART["g2"]["rp"]}\n' \
f'**G1**: {INFIELD_X_CHART["g1"]["rp"]}\n' \
f'**SI1**: {INFIELD_X_CHART["si1"]["rp"]}\n'
elif error_dice == 4:
error_note = '1-base error for e15, e16, e40'
elif error_dice == 3:
error_note = '2-base error for e8 -> e12, e26 -> e28, e39 -> e43\n' \
'1-base error for e6, e7, e17, e30, e33, e44'
roll_message = f'```md\n' \
f'# {str(d_twenty)},{str(d_six_one + d_six_two + d_six_three)}\n' \
f'Details:[1d20;3d6 ({d_twenty} - {d_six_one} {d_six_two} {d_six_three})]```'
roll_embed = get_dice_embed(team)
roll_embed.add_field(name=f'SA Fielding roll for {team["gmname"]}', value=roll_message)
chart_embed = get_dice_embed(team, f'{pos_code} Fielding Check Summary')
chart_embed.add_field(name='Range Result', value=range_note, inline=False)
chart_embed.add_field(name='Error Result', value=error_note, inline=False)
chart_embed.add_field(name='Help Commands',
value=f'Run !<result> for full chart readout (e.g. `!g1` or `!do3`)')
chart_embed.add_field(name='Range Chart', value=x_chart, inline=False)
chart_embed.add_field(name='Error Chart', value=error_chart, inline=False)
chart_embed.add_field(name='Result Reference', value=symbol_link, inline=False)
error1_embed, error2_embed = None, None
if error_note1:
error1_embed = get_dice_embed(team)
error1_embed.add_field(name='Error Results', value=error_note1)
if error_note2:
error2_embed = get_dice_embed(team)
error2_embed.add_field(name='Error Results', value=error_note2)
return [roll_embed, chart_embed, error1_embed, error2_embed]