修理を考える

ある程度有名どころの周回を想定するなら修理は必須の処理になります、どっかのゲームと違ってロストする訳ではないので多少は気楽ですが友好度下がるのは地味にイヤなので真面目に検討しましょう

ひとまずの想定は0-2なので損害受ける壁はM16姉に決め打ち、対象は一人としましょう
これまでの蓄積があれば修理必要な人形をすべて処理したり、複数設定したりも作れるはずです

procedure P_repair(target, target_selected)
//	修復メニュー、空きスロット選択後の処理
//	targetを高速修復する、指定は顔写真ファイル名(選択前、選択後)
//	targetをスクロールしてまでは探してない、注意
//	修復枠は空き家探すつもり
//	正常終了時falseを返す
	chkimgx(target, NOXid, 5, 130, 1090, 450, 1, 15, -1)	//Target検索、1列目のみ(将来はスクロールして探しにいく)
	Px = G_IMGX_X
	Py = G_IMGX_Y
	repeat
		P_adb_BTN(Px + delta_X ,Py + delta_Y , 100+randomx(100), "Set target")	//M16選択
		P_random_sleep(0.5,1)
	until chkimgx(target_selected, NOXid, 5, 130, 1090, 450, 1, 15, -1)	//Target選択済表示待ち
	tim = gettime() + 15	//タイムオーバー判定用
	ifb chkimgx("confirm.bmp", NOXid, 1165, 525, 1230, 600, 1, 10, -1) then
		Px = G_IMGX_X
		Py = G_IMGX_Y
		repeat
			P_adb_BTN(Px + delta_X , Py + delta_Y , 300+randomx(200), "Apply")	//確認
			sleep(1)
			ifb tim < gettime() then
print "Time over repair apply"
				exitexit
			endif
		until chkimgx("speedup.bmp", NOXid, 275, 585, 360, 700, 1, 10, -1)
		Px = G_IMGX_X
		Py = G_IMGX_Y
	else
print "Error repair apply"
		exitexit
	endif
	repeat
		P_adb_BTN(Px + delta_X , Py + delta_Y , 100+randomx(100), "Speed up")	//確認
		P_random_sleep(0.5,1)
	until chkimgx("speedup_set.bmp", NOXid, 275, 585, 360, 700, 1, 10, -1)
	ifb chkimgx("confirm.bmp", NOXid, 890, 595, 950, 700, 1, 10, -1) then
		Px = G_IMGX_X
		Py = G_IMGX_Y
	else
print "Error repair speed up confirm"
		exitexit
	endif
	repeat
		P_adb_BTN(Px + delta_X , Py + delta_Y , 100+randomx(100),"Apply")	//確認
		sleep(1.5)
	until chkimgx("repair_complete.bmp", NOXid, 630, 480, 720, 560, 1, 15, -1)	//修理完了表示待ち
	ifb chkimgx("repair_complete_close.bmp", NOXid, 550, 605, 620, 705, 1 ,10, -1) then
		Px = G_IMGX_X
		Py = G_IMGX_Y
	else
print "Error repair complete confirm"
		exitexit
	endif
	repeat
		P_adb_BTN(Px , Py , 200 + randomx(100), "Close")	//閉じる
		sleep(1)
	until chkimgx("back_home.bmp", NOXid, 0, 20, 140, 100, 1, 15, -1)	//完了表示消去待ち
	P_adb_BTN(G_IMGX_X + delta_X ,G_IMGX_Y + delta_Y ,100)	//戻るクリック
	repair = false	//完走したらフラグ降ろす
fend

修理対象選択しても画面上のボタン表示やメニューの変化に乏しいので顔写真の変化で検知する苦しい小技を使っています
例によって設定時間内に規定の動きになっていない場合は異常終了ということで強制停止させてます
失敗パターンが判ればリカバリ操作を書き加えてもいいと思います