EP, TITLE = 150, "7つのはずが28"
# 2026-11-14 カメラワーク：P1 白石さんの腰上・下から120cm、7つの箱を矢印でつないだホワイトボードを指す（自信）
# P2 白石さんの肩なめ140cm、奥でドロワーを拭く大城さんと、ドロワーを開けたハコブくん／P3 メモ帳の大写し（字にならない書き込みでびっしり）と、奥で青ざめる白石さん
# P4 斜め前150cm・3人の全身、長くなったメモ
import os
from importlib.machinery import SourceFileLoader as _L
C = _L("_c", os.path.expanduser("~/mnt/PixelstoMotors/ハコブくん/4コママンガ作成データ/縦長/_common_148_152.py")).load_module()
MEMO = "a plain small spiral memo pad"
PANELS = [
 dict(chars=["白石"], no_yline=True, prop=("WHITEBOARD", ["a plain whiteboard on the wall behind her with exactly SEVEN empty rectangles drawn in one row, joined by six arrows. NO letters, NO numbers, NO words anywhere on the board"]),
      hscale_text=["Shiraishi is at the LEFT-CENTRE, waist-up, three-quarter view turned 40° to camera-right toward the board: x 10–56%, her head at about 30% of the image height",
                   "the whiteboard fills the right and upper part behind her: x 40–96%, y 30–64%"],
      camera=["SHOT SIZE: waist-up of Shiraishi with the board", "CAMERA POSITION: front-left, three-quarter", "CAMERA HEIGHT: 120 cm, looking slightly up at her"],
      band="3% and 22%",
      comp=["Shiraishi confident, pointing at the board with a marker pen held in one hand, her other hand on her hip",
            "the bubble 「検体を運ぶ手順は、7つです」 at the upper left, its tail down to Shiraishi"],
      bubbles=[("Engineer Shiraishi", "検体を運ぶ手順は、7つです", ["検体を運ぶ手順は、", "7つです"])],
      scene="A meeting room. Shiraishi draws the steps of carrying a specimen: call, load, send, arrive, notify, receive, return. Seven steps, she says."),
 dict(chars=["白石", "大城", "ハコブ"], mouth="NORMAL", no_yline=True, drawer=True, prop=("MEMO PAD AND CLOTH", [MEMO + " and a pen in Shiraishi's hands", "a plain white cleaning cloth in Oshiro's hand"]),
      hscale_text=["Shiraishi is in the near foreground at the LEFT, seen from her right rear three-quarter, chest-up, cut by the left and bottom edges: x 0–40%, her head at about 30% of the image height, writing on the memo pad",
                   "beyond her at the right-centre, about 2 m away, Oshiro and Hakobukun stand side by side on the same floor: Hakobukun at x 42–64%, three-quarter view facing Oshiro, its drawer pulled OPEN; Oshiro at x 62–88%, full body, leaning slightly to wipe the inside of the drawer with the cloth",
                   "Oshiro's head at about 32% and her shoes at about 90% of the image height; Hakobukun's top at about 52% and wheels at about 90% — the top of the robot reaches only the pit of Oshiro's stomach"],
      camera=["SHOT SIZE: over-the-shoulder — Shiraishi in the foreground, Oshiro and Hakobukun full body beyond", "CAMERA POSITION: behind Shiraishi's right shoulder", "CAMERA HEIGHT: 140 cm"],
      band="3% and 20%",
      thought=["Engineer Shiraishi"],
      comp=["Oshiro working briskly, used to it; a strip of tape stuck on the back of her hand",
            "the thought balloon 「拭いて、貼って、押し直して…」 at the upper left, its tail of small bubbles down to Shiraishi"],
      bubbles=[("Engineer Shiraishi", "拭いて、貼って、押し直して…", ["拭いて、貼って、", "押し直して…"])],
      extra=[C.F("right", "Oshiro")],
      scene="The next day Shiraishi spends a whole day on the ward next to Hakobukun. Oshiro wipes the drawer, tapes the slip on, presses the destination again... Shiraishi notes every step."),
 dict(chars=["白石"], no_yline=True, prop=("MEMO PAD", [MEMO + " held up LARGE in the foreground, both its pages crammed edge to edge with dense rows of tiny scribble marks and tick marks — NO legible letters, NO numbers"]),
      hscale_text=["the open memo pad fills the near foreground at the bottom, x 6–80%, y 52–100%, held in Shiraishi's two hands",
                   "Shiraishi's face is just beyond it at the upper centre, chest-up, pale and stunned: her head at about 18–40% of the image height, x 30–70%"],
      camera=["SHOT SIZE: close-up of the crammed memo pad with Shiraishi's stunned face beyond", "CAMERA POSITION: low in front of the memo pad", "CAMERA HEIGHT: 110 cm, looking up past the pad"],
      band="3% and 16%",
      comp=["vertical gloom lines behind Shiraishi; her glasses blank white with shock",
            "two bubbles: 「28個あった…」 at the upper left, tail down to Shiraishi; 「そう？いつもやってるから、手順だと思ってなかった」 at the upper right, smaller, its tail pointing out of the RIGHT edge of the picture toward Oshiro off-screen"],
      bubbles=[("Engineer Shiraishi", "28個あった…", ["28個あった…"]), ("Nurse Oshiro (off-screen, right)", "そう？いつもやってるから、手順だと思ってなかった", ["そう？いつもやってるから、", "手順だと", "思ってなかった"])],
      tails={"そう？いつもやってるから、手順だと思ってなかった": "out of the right edge, toward the off-screen nurse"},
      extra=[("EFFECT:", ["vertical gloom lines behind Shiraishi's head. NO letters"])],
      scene="Evening. Shiraishi's memo pad is crammed with steps: there were 28. Oshiro, off-screen, shrugs: she never thought of them as steps."),
 dict(chars=["白石", "大城", "ハコブ"], mouth="HAPPY", full=["白石", "大城"], prop=("LONG MEMO", ["a long paper strip of steps that Shiraishi holds; it hangs down to the floor and curls, covered in tiny scribble marks with some circled. NO legible letters, NO numbers"]),
      camera=["SHOT SIZE: full-body three-shot", "CAMERA POSITION: front-right, three-quarter", "CAMERA HEIGHT: 150 cm"],
      band="3% and 20%",
      comp=["Shiraishi is centred at about 24% of the image width, body turned 40° to camera-right, circling items on the long paper strip with a pen",
            "Hakobukun is centred at about 52% of the image width, looking at the paper strip, pleased",
            "Oshiro is centred at about 78% of the image width, body turned 40° to camera-left, arms folded, smiling: finally",
            C.SIZE("Oshiro", C.PIT.format(n="Oshiro")),
            "two bubbles: 「ワタシノ仕事ハ、28個デシタ」 at the upper left, tail down to Hakobukun; 「やっと数えてくれた」 at the upper right, tail down to Oshiro"],
      bubbles=[("Hakobukun", "ワタシノ仕事ハ、28個デシタ", ["ワタシノ仕事ハ、", "28個デシタ"]), ("Nurse Oshiro", "やっと数えてくれた", ["やっと", "数えてくれた"])],
      extra=[C.F("left", "the paper strip in Shiraishi's hands"), C.CLOSED, ("KATAKANA CHECK:", ["in ワタシノ仕事ハ、28個デシタ the ワ, タ, シ, ノ, ハ, デ, シ, タ are KATAKANA"])],
      scene="Shiraishi goes through the 28 steps one by one and circles the ones Hakobukun's side could remove. Hakobukun: my job was 28 steps. Oshiro: finally someone counted."),
]

# 2026-11-14 チェック①：P1 の2枚とも NG（1枚目は台本にない『』、2枚目は「運ぶを手順」と字が違う・縦書き）→ 字を確かめる行を足して描き直す
PANELS[0]["extra"] = [("TEXT CHECK:", ["the bubble reads exactly 検体を運ぶ手順は、 on the first line and 7つです on the second — 13 characters in total, in this order: 検 体 を 運 ぶ 手 順 は 、 7 つ で す",
                                     "there is NO を between 運ぶ and 手順", "NO 『』 or 「」 marks anywhere in the bubble", "the text runs HORIZONTALLY"])]

# 2026-11-14 バッチの下書き（1コマ2枚）と描き直しから、チェック①で選んだ
PICK = {1: '第150話_P1_20261114_004950.jpg', 2: '第150話_P2_20261114_004803b1.jpg', 3: '第150話_P3_20261114_004803b1.jpg', 4: '第150話_P4_20261114_004803b2.jpg'}

# 2026-11-14 チェック①（別のエージェント）：P3 で誰の手か分からない大きな手が手帳を持ち、手帳に英字もどきと番号 → 白石さんが自分の両手で胸の前に掲げる形にし、書き込みは波線だけ
PANELS[2] = dict(chars=["白石"], no_yline=True, prop=("MEMO PAD", [MEMO + ", open, both pages crammed edge to edge with dense rows of short WAVY LINES and small tick marks — the marks are abstract lines ONLY: NO letters of any alphabet, NO numbers, NO words"]),
      hscale_text=["Shiraishi is at the centre, chest-up, facing camera at a slight three-quarter angle: x 14–86%, her head at about 22–46% of the image height",
                   "she holds the open memo pad up in front of her chest with HER OWN TWO HANDS, both hands clearly connected to her own two arms: the pad at x 24–76%, y 50–88%"],
      camera=["SHOT SIZE: chest-up of Shiraishi holding up the crammed memo pad", "CAMERA POSITION: front-right, three-quarter", "CAMERA HEIGHT: 140 cm"],
      band="3% and 18%",
      comp=["Shiraishi pale and stunned, her glasses blank white with shock; vertical gloom lines behind her",
            "two bubbles: 「28個あった…」 at the upper left, tail down to Shiraishi; 「そう？いつもやってるから、手順だと思ってなかった」 at the upper right, smaller, its tail pointing out of the RIGHT edge of the picture toward Oshiro off-screen",
            "the text in both bubbles runs HORIZONTALLY"],
      bubbles=PANELS[2]["bubbles"], tails=PANELS[2]["tails"],
      extra=[("ANATOMY NOTE:", ["only Shiraishi is in the picture, with exactly TWO hands, both her own. NO extra hand entering from the edge"]), ("EFFECT:", ["vertical gloom lines behind Shiraishi's head. NO letters"])],
      scene=PANELS[2]["scene"])
# P4 のハコブくんが読者を向く → 向きを書き足す
PANELS[3]["extra"] = [C.TURN("right", "Oshiro")] + PANELS[3]["extra"]

# 2026-11-14 描き直しから選び直した
PICK[3] = "第150話_P3_20261114_005448.jpg"; PICK[4] = "第150話_P4_20261114_005453.jpg"

# 2026-11-14 エイイチ「ハコブくん細すぎ。無理に入れ込まないで、人は多少脇にはみだしてもいい」→ P4 を描き直す
PANELS[3]["comp"] = ["Shiraishi is centred at about 14% of the image width, body turned 40° to camera-right, circling items on the long paper strip with a pen; her left shoulder and arm may be cut by the left edge",
    "Hakobukun is centred at about 49% of the image width, looking at the paper strip, pleased",
    "Oshiro is centred at about 86% of the image width, body turned 40° to camera-left, arms folded, smiling: finally; her right shoulder may be cut by the right edge",
    C.SIZE("Oshiro", C.PIT.format(n="Oshiro")),
    "two bubbles: 「ワタシノ仕事ハ、28個デシタ」 at the upper left, tail down to Hakobukun; 「やっと数えてくれた」 at the upper right, tail down to Oshiro", "the text in both bubbles runs HORIZONTALLY"]
PANELS[3]["extra"] = [C.WIDE(32, 66)] + PANELS[3]["extra"]

# 2026-11-14 ハコブくんを太く描き直した版を選んだ
PICK[4] = "第150話_P4_20261114_012716.jpg"
