diff --git a/assets/json/library.json b/assets/json/library.json index f981d0e..e863f69 100644 --- a/assets/json/library.json +++ b/assets/json/library.json @@ -527,6 +527,14 @@ "file": "pocs-r1-1364", "name": "Pick off + Caught stealing - P to 1B to SS to 2B (R1)" }, + { + "file": "pocse-r1", + "name": "Pick off + Caught stealing + throwing error by P (R1)" + }, + { + "file": "pocsen-r3", + "name": "Pick off + Caught stealing + throwing error by P, no advance (R1)" + }, { "file": "error-poa-r1", "name": "Pick off attempt - e1T (R1)" diff --git a/assets/lang/cs.json b/assets/lang/cs.json index 1096342..912c3b3 100644 --- a/assets/lang/cs.json +++ b/assets/lang/cs.json @@ -178,6 +178,8 @@ "CSNT" : "Caught stealing + throwing error (no advance)", "POE" : "Pick off attempt + (throwing) error", "POEN" : "Pick off attempt + (throwing) error (no advance)", + "POCSE" : "Pick off attempt + CS + (throwing) error", + "POCSEN" : "Pick off attempt + CS + (throwing) error (no advance)", "CSO" : "Caught stealing", "PO" : "Picked off", "POCS" : "Picked off + caught stealing" diff --git a/assets/lang/en.json b/assets/lang/en.json index 408e42f..70bf130 100644 --- a/assets/lang/en.json +++ b/assets/lang/en.json @@ -178,6 +178,8 @@ "CSNT" : "Caught stealing with throwing error (no advance)", "POE" : "Pick off attempt with (throwing) error", "POEN" : "Pick off attempt with (throwing) error (no advance)", + "POCSE" : "Pick off attempt + CS with (throwing) error", + "POCSEN" : "Pick off attempt + CS with (throwing) error (no advance)", "CSO" : "Caught stealing", "PO" : "Picked off", "POCS" : "Picked off + caught stealing" diff --git a/backstop_data/bitmaps_reference/action-pocse-r1_m.png b/backstop_data/bitmaps_reference/action-pocse-r1_m.png new file mode 100644 index 0000000..59a999b Binary files /dev/null and b/backstop_data/bitmaps_reference/action-pocse-r1_m.png differ diff --git a/backstop_data/bitmaps_reference/action-pocsen-r3_m.png b/backstop_data/bitmaps_reference/action-pocsen-r3_m.png new file mode 100644 index 0000000..2c78b0c Binary files /dev/null and b/backstop_data/bitmaps_reference/action-pocsen-r3_m.png differ diff --git a/public/json/pocse-r1.json b/public/json/pocse-r1.json new file mode 100644 index 0000000..6f4b9d6 --- /dev/null +++ b/public/json/pocse-r1.json @@ -0,0 +1 @@ +[{"group":"input-r1","baseAction":"ste","specAction":"POCSE","origBase":1,"base":2,"tie":false,"runtype":"e","pos":"1"}] \ No newline at end of file diff --git a/public/json/pocsen-r3.json b/public/json/pocsen-r3.json new file mode 100644 index 0000000..6cc9976 --- /dev/null +++ b/public/json/pocsen-r3.json @@ -0,0 +1 @@ +[{"group":"input-r3","baseAction":"ste","specAction":"POCSEN","origBase":3,"base":4,"tie":false,"runtype":"e","pos":"1"}] \ No newline at end of file diff --git a/utils/wbsc-eval.ts b/utils/wbsc-eval.ts index 314933b..27c85e9 100644 --- a/utils/wbsc-eval.ts +++ b/utils/wbsc-eval.ts @@ -272,6 +272,10 @@ function changeRunnerSpecificAction (group: string) { minPosItems = 1 targetPosItems = 2 break + case 'POCSE': + case 'POCSN': + minPosItems = targetPosItems = 1 + break case 'OBR_rol': case 'OBR_rin': case 'A': @@ -620,17 +624,22 @@ function processInput (input: WBSCInput, batter: number): WBSCOutput { possibleConcurrentPlay = true break case 'POEN': + case 'POCSEN': output.na = true // falls through case 'POE': + case 'POCSE': output.text1 = 'POA' + if (action.includes('CS')) { + output.text1 += 'CS' + } if (pos.length > 1) { output.text2 = pos?.substring(0, pos.length - 1) + 'E' + pos?.substring(pos.length - 1) } else { output.text2 = (action === 'POE' ? 'e' : 'E') + pos + 'T' } output.num = true - output.base = action === 'POE' ? output.origBase + 1 : input.origBase + output.base = !action.includes('N') ? output.origBase + 1 : input.origBase output.errorTarget = output.base possibleConcurrentPlay = true break diff --git a/utils/wbsc-html.ts b/utils/wbsc-html.ts index 2381778..1e323c8 100644 --- a/utils/wbsc-html.ts +++ b/utils/wbsc-html.ts @@ -359,6 +359,8 @@ function renderRunnerSpecificActionOptions (action: string, group: string) { options.push(``) options.push(``) options.push(``) + options.push(``) + options.push(``) options.push('') options.push(``) options.push(``) diff --git a/utils/wbsc-output.ts b/utils/wbsc-output.ts index e137cc2..be19072 100644 --- a/utils/wbsc-output.ts +++ b/utils/wbsc-output.ts @@ -488,6 +488,9 @@ function writeSituation (output: WBSCOutput) { } else if (text2) { row1font = FONT_BASE_MEDIUM row1offset = 8 + if (text1.length > 4) { + row1font = FONT_BASE_TINY + } row2font = FONT_BASE_MEDIUM row2offset = 30 if (text2.length > 4) { @@ -595,6 +598,9 @@ function writeSituation (output: WBSCOutput) { } else if (text2) { row1font = FONT_BASE_MEDIUM row1offset = 8 + if (text1.length > 4) { + row1font = FONT_BASE_TINY + } row2font = FONT_BASE_MEDIUM row2offset = 30 if (text2.length > 4) { @@ -649,6 +655,9 @@ function writeSituation (output: WBSCOutput) { ctx.font = FONT_BASE_SMALL } else { ctx.font = FONT_BASE_MEDIUM + if (text1.length > 4) { + ctx.font = FONT_BASE_TINY + } } ctx.fillText(text1, w2 * 0.5 + hOffset, h2 * 1.5 + vOffset) offset = 32