code:
;-------------------------------------------------
;「お気に入り」の名称
;-------------------------------------------------
@SHOP_LIFE_NAME64
RESULTS:0 '= "お気に入り"

;-------------------------------------------------
;「お気に入り」の選択可否
;-------------------------------------------------
@SHOP_LIFE_CHECK64
SIF CFLAG:MASTER:捕虜先
	RETURN 0
SIF FLAG:お気に入り指定キャラ
	RETURN 0
RETURN 1

;-------------------------------------------------
;「お気に入り」の選択可能キャラ存在判定
;-------------------------------------------------
@SHOP_LIFE_CHECKCHARA64(ARG:0)
;非主人公、捕虜でない
RETURN ARG:0 != MASTER && CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属 && CFLAG:(ARG:0):捕虜先 == 0 && !IS_ANIMAL(ARG:0)

;-------------------------------------------------
;「お気に入り」の左カラムメニューの入力処理
;-------------------------------------------------
@SHOP_LIFE_EVENTBUY64
FLAG:拠点フェイズページ = 1
FLAG:夜這い = 0
RETURN 0

;-------------------------------------------------
;「お気に入り」の右カラム表示処理
;-------------------------------------------------
@SHOP_LIFE_EVENTBUY_SHOW64
CALL COLUMN_RIGHT_TITLE("対象者選択", "0", "1", "0", "0")
;注釈をオレンジにして目立たせたいので分ける
CALL COLOR_PRINT("  1回限り", カラー_選択中)
CALL COLUMN_RIGHT_PRINTL
CALL COLUMN_RIGHT_LINE
CALL COLUMN_RIGHT_PRINTL

CALL COLOR_PRINT(" 能力値を再振りできます  ", カラー_注釈)
CALL COLOR_PRINT("一回限り", カラー_選択中)
CALL COLOR_PRINT("で", カラー_注釈)
CALL COLOR_PRINT("一人", カラー_選択中)
CALL COLOR_PRINT("しか選べないので注意してください", カラー_注釈)
CALL COLUMN_RIGHT_PRINTL
CALL COLUMN_RIGHT_LINE
CALL COLUMN_RIGHT_PRINTL

;標準的なキャラリストとページ移動
CALL COLUMN_RIGHT_CHARALIST
RETURN 0

;-------------------------------------------------
;「お気に入り」のリスト１入力処理
;-------------------------------------------------
@SHOP_LIFE_USERSHOP64(対象)
#DIM FIRST_LINE
#DIM 対象
#DIM 元の能力, 7
#DIM 選択項目,1
#DIM 選択詳細,1
#DIM 変化量,1
#DIM ポイント, 1
#DIM 振り分け後, 7
#DIM LOOPCOUNT, 1
#DIM LOOPMAX, 1
VARSET ポイント
VARSET 振り分け後
元の能力:0 = ABL:対象:身体
元の能力:1 = ABL:対象:器用
元の能力:2 = ABL:対象:知識
元の能力:3 = ABL:対象:社交
元の能力:4 = ABL:対象:魔術
元の能力:5 = ABL:対象:歌唱
元の能力:6 = ABL:対象:料理
ポイント = SUMARRAY(元の能力)

FLAG:能力表示モード = 0

FIRST_LINE = LINECOUNT
REDRAW 0
$SHOW_LOOP
CALL SINGLE_DRAWLINE
PRINTFORML %ANAME(対象)%をお気に入りにし、元の能力値の範囲内で、能力値を振り直すことができます
PRINTFORML お気に入りにはほかにもいろんな補正がかかったりします
PRINTFORML ただし、お気に入りは一度しか設定できません。よく考えましょう
PRINTFORML 残りポイント:{ポイント}
CALL SINGLE_DRAWLINE
CALL ICPRINT(@"<%ANAME(対象)%>を設定中", "L", カラー_注意)
CALL SINGLE_DRAWLINE
PRINTFORM 身体:{振り分け後:0, 3} 元:{元の能力:0, 3} --
CALL PRINTBUTTON_FAVORITE("[ +1]", 200, 振り分け後:0, ポイント,   1)
CALL PRINTBUTTON_FAVORITE("[ -1]", 201, 振り分け後:0, ポイント,  -1)
CALL PRINTBUTTON_FAVORITE("[+10]", 202, 振り分け後:0, ポイント,  10)
CALL PRINTBUTTON_FAVORITE("[-10]", 203, 振り分け後:0, ポイント, -10)
PRINTL
PRINTFORM 器用:{振り分け後:1, 3} 元:{元の能力:1, 3} --
CALL PRINTBUTTON_FAVORITE("[ +1]", 210, 振り分け後:1, ポイント,   1)
CALL PRINTBUTTON_FAVORITE("[ -1]", 211, 振り分け後:1, ポイント,  -1)
CALL PRINTBUTTON_FAVORITE("[+10]", 212, 振り分け後:1, ポイント,  10)
CALL PRINTBUTTON_FAVORITE("[-10]", 213, 振り分け後:1, ポイント, -10)
PRINTL
PRINTFORM 知識:{振り分け後:2, 3} 元:{元の能力:2, 3} --
CALL PRINTBUTTON_FAVORITE("[ +1]", 220, 振り分け後:2, ポイント,   1)
CALL PRINTBUTTON_FAVORITE("[ -1]", 221, 振り分け後:2, ポイント,  -1)
CALL PRINTBUTTON_FAVORITE("[+10]", 222, 振り分け後:2, ポイント,  10)
CALL PRINTBUTTON_FAVORITE("[-10]", 223, 振り分け後:2, ポイント, -10)
PRINTL
PRINTFORM 社交:{振り分け後:3, 3} 元:{元の能力:3, 3} --
CALL PRINTBUTTON_FAVORITE("[ +1]", 230, 振り分け後:3, ポイント,   1)
CALL PRINTBUTTON_FAVORITE("[ -1]", 231, 振り分け後:3, ポイント,  -1)
CALL PRINTBUTTON_FAVORITE("[+10]", 232, 振り分け後:3, ポイント,  10)
CALL PRINTBUTTON_FAVORITE("[-10]", 233, 振り分け後:3, ポイント, -10)
PRINTL
IF TALENT:対象:魔術師 || TALENT:対象:成長型 == 12 || TALENT:対象:神聖術師
	PRINTFORM 魔術:{振り分け後:4, 3} 元:{元の能力:4, 3} --
	CALL PRINTBUTTON_FAVORITE("[ +1]", 240, 振り分け後:4, ポイント,   1)
	CALL PRINTBUTTON_FAVORITE("[ -1]", 241, 振り分け後:4, ポイント,  -1)
	CALL PRINTBUTTON_FAVORITE("[+10]", 242, 振り分け後:4, ポイント,  10)
	CALL PRINTBUTTON_FAVORITE("[-10]", 243, 振り分け後:4, ポイント, -10)
	PRINTL
ENDIF
PRINTFORM 歌唱:{振り分け後:5, 3} 元:{元の能力:5, 3} --
CALL PRINTBUTTON_FAVORITE("[ +1]", 250, 振り分け後:5, ポイント,   1)
CALL PRINTBUTTON_FAVORITE("[ -1]", 251, 振り分け後:5, ポイント,  -1)
CALL PRINTBUTTON_FAVORITE("[+10]", 252, 振り分け後:5, ポイント,  10)
CALL PRINTBUTTON_FAVORITE("[-10]", 253, 振り分け後:5, ポイント, -10)
PRINTL
PRINTFORM 料理:{振り分け後:6, 3} 元:{元の能力:6, 3} --
CALL PRINTBUTTON_FAVORITE("[ +1]", 260, 振り分け後:6, ポイント,   1)
CALL PRINTBUTTON_FAVORITE("[ -1]", 261, 振り分け後:6, ポイント,  -1)
CALL PRINTBUTTON_FAVORITE("[+10]", 262, 振り分け後:6, ポイント,  10)
CALL PRINTBUTTON_FAVORITE("[-10]", 263, 振り分け後:6, ポイント, -10)
PRINTL
CALL SINGLE_DRAWLINE
PRINTFORML [0] 決定
PRINTFORML [999] 戻る
$INPUT_LOOP_1
INPUT 999
IF RESULT == 999
	REDRAW 1
	RETURN 0
ELSEIF RESULT == 0
	REDRAW 1
	PRINTFORML 以上でお気に入り設定を終えますか？
	SIF ポイント > 0
		CALL COLOR_PRINTL("ポイントが残ってますよ？　残しててもマジで何もいいことないですよ？", カラー_注意)
	CALL ASK_YN("終える", "もうちょっといじる")
	IF RESULT == 0
		ABL:対象:身体 = 振り分け後:0
		ABL:対象:器用 = 振り分け後:1
		ABL:対象:知識 = 振り分け後:2
		ABL:対象:社交 = 振り分け後:3
		ABL:対象:魔術 = 振り分け後:4
		ABL:対象:歌唱 = 振り分け後:5
		ABL:対象:料理 = 振り分け後:6
		PRINTFORMW %ANAME(対象)%をお気に入りにしました！
		FLAG:拠点フェイズ選択コマンド = DEFAULT_MENU_NUM
		FLAG:お気に入り指定キャラ = GET_ID(対象)
		RETURN 1
	ELSEIF RESULT == 1
		CLEARLINE LINECOUNT - FIRST_LINE
		GOTO SHOW_LOOP
	ENDIF
ELSE
	選択項目 = (RESULT - 200) / 10
	選択詳細 = (RESULT - 200) % 10
	SELECTCASE 選択詳細
		CASE 0
			選択詳細 = 1
		CASE 1
			選択詳細 = -1
		CASE 2
			選択詳細 = 10
		CASE 3
			選択詳細 = -10
		CASEELSE
			CLEARLINE LINECOUNT - FIRST_LINE
			GOTO SHOW_LOOP
	ENDSELECT
	IF !INRANGE(選択項目, 0, 6) || 選択項目 == 4 && !TALENT:対象:魔術師 && TALENT:対象:成長型 != 12 && !TALENT:対象:神聖術師 || !FAVORITE_CAN_CHOOSE(振り分け後:選択項目, ポイント, 選択詳細)
		CLEARLINE LINECOUNT - FIRST_LINE
		GOTO SHOW_LOOP
	ENDIF
	振り分け後:選択項目 += 選択詳細
	ポイント -= 選択詳細
ENDIF

CLEARLINE LINECOUNT - FIRST_LINE
GOTO SHOW_LOOP

;-------------------------------------------------
;「お気に入り」の処理用ボタン
;-------------------------------------------------
@PRINTBUTTON_FAVORITE(文字列, 番号, 現在値, ポイント, 変化量)
#DIMS 文字列
#DIM 番号
#DIM 現在値
#DIM ポイント
#DIM 変化量
IF FAVORITE_CAN_CHOOSE(現在値, ポイント, 変化量)
	PRINTBUTTON 文字列, 番号
ELSE
	SETCOLOR カラー_選択不可
	PRINTPLAINFORM %文字列%
	RESETCOLOR
ENDIF

;-------------------------------------------------
;「お気に入り」の処理の選択可否
;-------------------------------------------------
@FAVORITE_CAN_CHOOSE(現在値, ポイント, 変化量)
#FUNCTION
#DIM 現在値
#DIM ポイント
#DIM 変化量
SIF 変化量 > ポイント
	RETURNF 0
SIF 変化量 + 現在値 > 300
	RETURNF 0
SIF 変化量 + 現在値 < 0
	RETURNF 0

RETURNF 1


code:
;-------------------------------------------------
;「婚姻の儀」の名称
;-------------------------------------------------
@SHOP_LIFE_NAME65
RESULTS:0 '= "婚姻"

;-------------------------------------------------
;「婚姻の儀」の選択可否
;-------------------------------------------------
@SHOP_LIFE_CHECK65
SIF MONEY < 100000
	RETURN 0
SIF CFLAG:MASTER:捕虜先
	RETURN 0
SIF !CFLAG:MASTER:所属
	RETURN 0
;既に婚姻している場合婚姻は不可能
;HAS_WIFE = 0
;FOR LOCAL:0, 0, CHARANUM
;	IF TALENT:(LOCAL:0):正妻
;		HAS_WIFE ++
;		BREAK
;	ENDIF
;NEXT
;SIF HAS_WIFE
;	RETURN 0
RETURN 1

;-------------------------------------------------
;「婚姻の儀」の選択可能キャラ存在判定
;-------------------------------------------------
@SHOP_LIFE_CHECKCHARA65(ARG:0)
;非主人公、同一勢力、捕虜でない、好感度10000以上、[恋人]or[烙印]、特殊状態が立っていない
RETURN ARG:0 != MASTER && CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属 && CFLAG:(ARG:0):捕虜先 == 0 && CFLAG:(ARG:0):好感度 >= 10000 && (TALENT:(ARG:0):恋人 || TALENT:(ARG:0):烙印) && CFLAG:(ARG:0):特殊状態 == 0 && !IS_ANIMAL(ARG:0) && !TALENT:(ARG:0):正妻 && !TALENT:(ARG:0):妾

;-------------------------------------------------
;「婚姻の儀」の左カラムメニューの入力処理
;-------------------------------------------------
@SHOP_LIFE_EVENTBUY65
FLAG:拠点フェイズページ = 1
FLAG:夜這い = 0
RETURN 0

;-------------------------------------------------
;「婚姻の儀」の右カラム表示処理
;-------------------------------------------------
@SHOP_LIFE_EVENTBUY_SHOW65
CALL COLUMN_RIGHT_TITLE("配偶者選択", "0", "1", "0", "100,000")
CALL COLUMN_RIGHT_PRINTL
CALL COLUMN_RIGHT_LINE
CALL COLUMN_RIGHT_PRINTL
IF HAS_WIFE()
	CALL COLOR_PRINT(" 高好感度で恋人か烙印所持の仲間を妾(夫)にできます", カラー_注釈)
ELSE
	CALL COLOR_PRINT(" 高好感度で恋人か烙印所持の仲間を正妻（夫）にできます", カラー_注釈)
ENDIF
CALL COLUMN_RIGHT_PRINTL
CALL COLUMN_RIGHT_LINE
CALL COLUMN_RIGHT_PRINTL
;標準的なキャラリストとページ移動
CALL COLUMN_RIGHT_CHARALIST
RETURN 0

;-------------------------------------------------
;「婚姻の儀」のリスト１入力処理
;-------------------------------------------------
@SHOP_LIFE_USERSHOP65(ARG:0)
REDRAW 1

IF MONEY < 100000
	PRINTFORMW 所持金が不足しています
	RETURN
ENDIF

IF IS_HUSBAND(ARG:0)
	LOCALS:0 = 夫
ELSE
	IF HAS_WIFE()
		LOCALS:0 = 妾
	ELSE
		LOCALS:0 = 正妻
	ENDIF
ENDIF

PRINTFORML %ANAME(ARG:0)%を%LOCALS:0%として迎えます
PRINTL よろしいですか？
CALL ASK_YN
IF RESULT == 1
	RETURN 0
ENDIF

MONEY -= 100000

;口上の表示
CALL KOJO_EVENT(ARG:0, 90)

PRINTL
CUSTOMDRAWLINE *-
PRINTL 婚姻
CUSTOMDRAWLINE *-
WAIT
PRINTFORMW 式の当日、多くの観衆に祝福されながら、%ANAME(MASTER)%は%ANAME(ARG:0)%を%LOCALS:0%として迎えることを宣言した

IF !HAS_WIFE()
	;口上の表示
	CALL KOJO_EVENT(ARG:0, 91)
ENDIF

IF HAS_WIFE()
	TALENT:(ARG:0):妾 = 1
ELSE
	TALENT:(ARG:0):正妻 = 1
ENDIF

PRINTL
SETCOLOR カラー_注意
PRINTFORMW %ANAME(ARG:0)%が%ANAME(MASTER)%の%LOCALS:0%となりました
RESETCOLOR
PRINTL
PRINTL
RETURN 1

;-------------------------------------------------
;キャラARG:0について、素質<正妻>が<夫>と表示される条件を満たしているかどうか判定
;-------------------------------------------------
@IS_HUSBAND(ARG:0)
#FUNCTION
IF GROUPMATCH(TALENT:MASTER:性別, 1, 2) && GROUPMATCH(TALENT:(ARG:0):性別, 0, 3, 4, 5)
	RETURNF 1
ELSEIF GROUPMATCH(TALENT:MASTER:性別, 4, 5) && GROUPMATCH(TALENT:(ARG:0):性別, 0, 3)
	RETURNF 1
ENDIF
RETURNF 0

;-------------------------------------------------
;desc  :正妻が存在するか
;return:戻り値:正妻が存在するか
;-------------------------------------------------
@HAS_WIFE()
#FUNCTION
FOR LOCAL:0, 0, CHARANUM
	IF TALENT:(LOCAL:0):正妻
		RETURNF 1
	ENDIF
NEXT
RETURNF 0

repo_name: napo/erafl

license: unknown


code:
;-------------------------------------------------
;「…………」の名称
;-------------------------------------------------
@SHOP_LIFE_NAME69
RESULTS:0 '= "…………"

;-------------------------------------------------
;「…………」の選択可否
;-------------------------------------------------
@SHOP_LIFE_CHECK69
;主人公が捕虜でなければ戻る
SIF !CFLAG:(MASTER):捕虜先
	RETURN 0
RETURN 1

;-------------------------------------------------
;「…………」の左カラムメニューの入力処理
;-------------------------------------------------
@SHOP_LIFE_EVENTBUY69
CALL TRAIN_IN_PRISON
IF RESULT == 0
	RESULT = 1
	BEGIN TURNEND
ENDIF
RETURN 1

;-------------------------------------------------
;「…………」の右カラムオフ判定
;-------------------------------------------------
@SHOP_LIFE_EVENTBUY_COLUMN_RIGHT_OFF_CHECK69

;-------------------------------------------------
;主人公が投獄中のときの逆調教イベント
;0を返すと調教開始せずにターンエンド
;-------------------------------------------------
@TRAIN_IN_PRISON
#DIM CHARA_LIST, MAX_CHARA_NUM

IF IS_SP_COUNTRY(CFLAG:MASTER:捕虜先)
	CALL SP_COUNTRY_REV_TRAIN()
	IF RESULT
		CALL START_TRAIN_COMMON()
		RETURN 1
	ELSE
		RETURN 0
	ENDIF
ENDIF

;特殊勢力以外の捕虜の場合
;全員の調教参加フラグを解除
CVARSET CFLAG, 6, 0

LOCAL:10 = -1
LOCAL:11 = 0
CALL SELECT_REV_TRAINER()
LOCAL:10 = RESULT:0
LOCAL:11 = RESULT:1

;FLAG:逆調教メイン調教者に記録されたIDからメイン調教者のキャラ番号を取得
LOCAL:12 = ID_TO_CHARA(FLAG:逆調教メイン調教者)
IF LOCAL:12 >= 0 && CFLAG:(LOCAL:12):所属 == CFLAG:MASTER:捕虜先 && CFLAG:(LOCAL:12):捕虜先 == 0 && GROUPMATCH(CFLAG:(LOCAL:12):行動不能状態, 0, 2)
	;メイン調教者を調教に参加させる
	CFLAG:(LOCAL:12):調教参加フラグ = 1
	CFLAG:(LOCAL:12):強制友好化 = 1
	LOCAL:10 = LOCAL:12
	LOCAL:11 ++
;メイン調教者がいないようならここで設定しとけしとけ～～～
ELSEIF LOCAL:12 < 0
	FLAG:逆調教メイン調教者 = GET_ID(LOCAL:10)
	LOCAL:12 = LOCAL:10
ENDIF

IF CFLAG:MASTER:行動不能状態 == 行動不能_臨月
	IF LOCAL:10 >= 0
		LOCALS:0 =
		IF LOCAL:11 >= 2
			LOCALS:0 = たち
		ENDIF
		CALL SINGLE_DRAWLINE
		PRINTFORML %ANAME(LOCAL:10)%%LOCALS:0%はすっかり大きくなった%ANAME(MASTER)%のお腹を見て、
		PRINTFORMW 子供が産まれるまで調教を見送ることに決めたようだ
		PRINTFORMW %ANAME(LOCAL:10)%%LOCALS:0%は%ANAME(MASTER)%に、元気な子を産むように言い聞かせて帰っていった…

	ELSE
		CALL SINGLE_DRAWLINE
		PRINTFORMW %ANAME(MASTER)%は牢屋の中で日々を過ごした…
	ENDIF
	;解放カウンタをリセット
	CFLAG:MASTER:解放カウンタ = 0

;参加者が一人以上いれば逆調教を開始
ELSEIF LOCAL:11 > 0
	IF FLAG:逆調教回数 == 0
		LOCALS:0 =
		IF LOCAL:11 >= 2
			LOCALS:0 = たち
		ENDIF
		CALL SINGLE_DRAWLINE
		PRINTFORMW %ANAME(MASTER)%の牢屋の前に、%ANAME(LOCAL:10)%%LOCALS:0%がやって来た
		PRINTFORMW %ANAME(LOCAL:10)%%LOCALS:0%は%ANAME(MASTER)%に対し、%ANAME(MASTER)%が仕官する気になるまで調教すると宣言してきた…
		;説得してからの期間を0にする
		FLAG:勧誘経過期間 = 0
	ENDIF
	;念のため
	FLAG:夜這い = 0
	;捕虜逆調教モード
	FLAG:調教モード = 5
	;ウフフモード
	FLAG:ウフフフラグ = 1
	;回数をカウント
	FLAG:逆調教回数 ++
	;説得してからの期間を増加
	FLAG:勧誘経過期間 ++
	;解放カウンタをリセット
	CFLAG:MASTER:解放カウンタ = 0
	;アイテムを一通り追加
	ITEM:A_ローター = 1
	ITEM:A_バイブ = 1
	ITEM:A_アナルバイブ = 1
	ITEM:A_ペニスバンド = 1
	ITEM:A_オナホール = 1
	ITEM:A_クリキャップ = 1
	ITEM:A_ニプルキャップ = 1
	ITEM:A_鞭 = 1
	ITEM:A_ローション = 99
	;行動開始時の共通処理
	CALL START_TRAIN_COMMON
	RETURN 1

ELSE
	IF RAND:3 == 0
		;恋慕または服従のキャラがいれば時々やってくる
		LOCAL:11 = 0
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER && CFLAG:(LOCAL:0):所属 == CFLAG:MASTER:捕虜先 && CFLAG:(LOCAL:0):捕虜先 == 0 && GROUPMATCH(CFLAG:(LOCAL:0):行動不能状態, 0, 2) && (TALENT:(LOCAL:0):恋慕 || TALENT:(LOCAL:0):服従)
				CHARA_LIST:(LOCAL:11) = LOCAL:0
				LOCAL:11 ++
			ENDIF
		NEXT
		IF LOCAL:11 >= 1
			LOCAL:12 = CHARA_LIST:(RAND:(LOCAL:11))
			CFLAG:(LOCAL:12):調教参加フラグ = 1
			CFLAG:(LOCAL:12):強制友好化 = 1
			LOCAL:10 = 1

			CALL SINGLE_DRAWLINE
			PRINTFORMW %ANAME(MASTER)%の牢屋の前に、%ANAME(LOCAL:12)%がやって来た
			PRINTFORMW %ANAME(LOCAL:12)%は%ANAME(MASTER)%の牢を空け中に入ると、少し話がしたいと言ってきた…

			;捕虜会話モード
			FLAG:調教モード = 6
			;非ウフフモード
			FLAG:ウフフフラグ = 0
			;行動開始時の共通処理
			CALL START_TRAIN_COMMON
			RETURN 1
		ENDIF
	ENDIF
	CALL SINGLE_DRAWLINE
	PRINTFORMW %ANAME(MASTER)%は牢屋の中で日々を過ごした…
ENDIF
SHOP_TIME = CALC_SHOP_TIME()
RETURN 0


code:
;-------------------------------------------------
;「アイテム」の名称
;-------------------------------------------------
@SHOP_LIFE_NAME71
RESULTS:0 '= "アイテム"

;-------------------------------------------------
;「アイテム」の選択可否
;-------------------------------------------------
@SHOP_LIFE_CHECK71
SIF CFLAG:MASTER:捕虜先
	RETURN 0
RETURN 1

;-------------------------------------------------
;「アイテム」の左カラムメニューの入力処理
;-------------------------------------------------
@SHOP_LIFE_EVENTBUY71
CALL SHOP_ITEM
RETURN 1

;-------------------------------------------------
;「アイテム」の右カラムオフ判定
;-------------------------------------------------
@SHOP_LIFE_EVENTBUY_COLUMN_RIGHT_OFF_CHECK71

;-------------------------------------------------
;「アイテム」の処理
;-------------------------------------------------
@SHOP_ITEM
#DIM FIRST_LINE_ITEM_MAIN
#DIM IS_GISHI
#DIM ITEM_NUM_DISPFLAG

REDRAW 0
FIRST_LINE_ITEM_MAIN = LINECOUNT

;[技師]持ちが主人公勢力に存在するかどうかを判定
SIF TALENT:MASTER:技師
	IS_GISHI = 1

;タイトル
CALL SINGLE_DRAWLINE
PRINTPLAIN
CALL COLUMN_RIGHT_TITLE("購入/開発/売却するアイテムを選択", "", "", "0", "200～全")
PRINTL
CALL SINGLE_DRAWLINE

;所持アイテム表示
CALL COLOR_PRINT(" 所持 ", カラー_注釈, "金:", カラー_選択不可, @"%NUM_FORMAT(MONEY)%", カラー_選択中)

LOCAL:1 = 999
FOR LOCAL:0, 100, 305
	IF ITEM:(LOCAL:0) >= 1
		IF LOCAL:1 > 70
			LOCAL:1 = 0
			PRINTL
			PRINTFORM %TOSTR_SPACE(6)%
		ENDIF
		LOCALS:0 = %ITEMNAME:(LOCAL:0)%
		IF ITEM:(LOCAL:0) >= 2
			LOCALS:0 = %LOCALS:0%×{ITEM:(LOCAL:0)}
		ENDIF
		LOCAL:1 += STRLENS(LOCALS:0) + 2
		PRINTFORM %LOCALS:0%
	ENDIF
NEXT
IF LOCAL:1 == 999
	PRINTL
	PRINTFORM %TOSTR_SPACE(6)%
	CALL COLOR_PRINT("所持アイテムなし", カラー_選択不可)
ENDIF
PRINTL

SETCOLOR カラー_灰色
CALL SINGLE_DRAWLINE
RESETCOLOR

CALL COLOR_PRINT(" 購入 ", カラー_注釈, "選択後に説明表示", カラー_選択不可)
PRINTL
PRINTFORM %TOSTR_SPACE(6)%
LOCAL:1 = 0
FOR LOCAL:0, 100, 305
	IF ITEMNAME:(LOCAL:0) != "" && ITEMSALES:(LOCAL:0)
		IF LOCAL:1 > 0 && LOCAL:1 % 3 == 0
			PRINTL
			PRINTFORM %TOSTR_SPACE(6)%
		ELSEIF LOCAL:1 > 0
			PRINTFORM %TOSTR_SPACE(9)%
		ENDIF
		LOCAL:1 ++
		CALL GET_PRICE(LOCAL:0)
		;所持金不足 or 所持数オーバーで購入できない時は色を変える（がクリックはできる）
		IF MONEY < RESULT || ITEM:(LOCAL:0) >= 99
			SETCOLOR カラー_選択不可
			PRINTBUTTON @"[%ITEMNAME:(LOCAL:0), MAX_CHARANAME_LENGTH, LEFT%]%NUM_FORMAT(RESULT), 8%", LOCAL:0
			RESETCOLOR
		ELSE
			PRINTBUTTON @"[%ITEMNAME:(LOCAL:0), MAX_CHARANAME_LENGTH, LEFT%]%NUM_FORMAT(RESULT), 8%", LOCAL:0
		ENDIF
	ENDIF
NEXT
PRINTL

SETCOLOR カラー_灰色
CALL SINGLE_DRAWLINE
RESETCOLOR
CALL COLOR_PRINT(@" 開発 ", カラー_注釈)

IF IS_GISHI
	CALL COLOR_PRINT(@"素質", カラー_選択不可, "<技師>割引", カラー_緑, "あり", カラー_選択不可, @"%"開発費", 24%%TOSTR_SPACE(2)%%"期間", 6%%TOSTR_SPACE(7)%%"開発費", MAX_CHARANAME_LENGTH + 21%%TOSTR_SPACE(3)%%"期間", 5%", カラー_注釈)
ELSE
	CALL COLOR_PRINT("素質<技師>割引なし", カラー_選択不可, @"%"開発費", 12%%TOSTR_SPACE(2)%%"期間", 4%%TOSTR_SPACE(11)%%"開発費", MAX_CHARANAME_LENGTH + 11%%TOSTR_SPACE(2)%%"期間", 4%", カラー_注釈)
ENDIF
PRINTL

LOCAL:1 = 0
FOR LOCAL:0, 200, 305
	IF ITEMNAME:(LOCAL:0) != "" && !ITEMSALES:(LOCAL:0) && ITEMTIME:(LOCAL:0) == 0 && (!INRANGE(LOCAL:0, 200, 249) || ITEM:LOCAL == 0)
		RESULT = 1
		TRYCALLFORM ITEM_ABLE{LOCAL:0}
		IF RESULT
			IF LOCAL:1 == 0
				PRINTFORM %TOSTR_SPACE(6)%
				;２列で改行
			ELSEIF LOCAL:1 > 0 && LOCAL:1 % 2 == 0
				PRINTL
				PRINTFORM %TOSTR_SPACE(6)%
				;技師ありだと横幅を広くとるので合間のスペースは狭めにとる
			ELSEIF LOCAL:1 > 0 && IS_GISHI
				PRINTFORM %TOSTR_SPACE(3)%
				;技師なしだと横幅が狭いので合間のスペースは広めにとる
			ELSEIF LOCAL:1 > 0
				PRINTFORM %TOSTR_SPACE(9)%
			ENDIF
			LOCAL:1 ++
			IF IS_GISHI
				IF MONEY < ITEMPRICE:(LOCAL:0) * 75 / 100
					SETCOLOR カラー_選択不可
					PRINTBUTTON @"[%ITEMNAME:(LOCAL:0), MAX_CHARANAME_LENGTH, LEFT%]", LOCAL:0
					PRINTPLAIN
					PRINTPLAINFORM %NUM_FORMAT(ITEMPRICE:(LOCAL:0)), 10%
					PRINTPLAINFORM →%NUM_FORMAT((ITEMPRICE:(LOCAL:0) * 75 / 100)), 10%
					PRINTPLAINFORM %TOSTR_SPACE(1)%
					PRINTPLAINFORM {ITEMTERM:(LOCAL:0), 3}
					PRINTPLAINFORM →{MAX(ITEMTERM:(LOCAL:0) / 2, 1), 2}
					RESETCOLOR
				ELSE
					PRINTBUTTON @"[%ITEMNAME:(LOCAL:0), MAX_CHARANAME_LENGTH, LEFT%]", LOCAL:0
					PRINTPLAIN
					PRINTFORM %NUM_FORMAT(ITEMPRICE:(LOCAL:0)), 10%
					SETCOLOR カラー_緑
					PRINTFORM →%NUM_FORMAT((ITEMPRICE:(LOCAL:0) * 75 / 100)), 10%
					RESETCOLOR
					PRINTPLAINFORM %TOSTR_SPACE(1)%
					PRINTFORM {ITEMTERM:(LOCAL:0), 3}
					SETCOLOR カラー_緑
					PRINTFORM →{MAX(ITEMTERM:(LOCAL:0) / 2, 1), 2}
					RESETCOLOR
				ENDIF
			ELSE
				IF MONEY < ITEMPRICE:(LOCAL:0)
					SETCOLOR カラー_選択不可
					PRINTBUTTON @"[%ITEMNAME:(LOCAL:0), MAX_CHARANAME_LENGTH, LEFT%]", LOCAL:0
					PRINTPLAIN
					PRINTFORM %NUM_FORMAT(ITEMPRICE:(LOCAL:0)), 10%
					PRINTPLAINFORM %TOSTR_SPACE(2)%
					PRINTFORM {ITEMTERM:(LOCAL:0), 4}
					RESETCOLOR
				ELSE
					PRINTBUTTON @"[%ITEMNAME:(LOCAL:0), MAX_CHARANAME_LENGTH, LEFT%]", LOCAL:0
					PRINTPLAIN
					PRINTFORM %NUM_FORMAT(ITEMPRICE:(LOCAL:0)), 10%
					PRINTPLAINFORM %TOSTR_SPACE(2)%
					PRINTFORM {ITEMTERM:(LOCAL:0), 4}
				ENDIF
			ENDIF
		ENDIF
	ENDIF
NEXT
IF LOCAL:1 != 0
	PRINTL
ENDIF

CALL SINGLE_DRAWLINE("-", カラー_灰色)
CALL COLOR_PRINTL(" 開発中のアイテム ", カラー_注釈)
CALL SINGLE_DRAWLINE("-", カラー_灰色)

LOCAL:1 = 0
FOR LOCAL, 0, VARSIZE("ITEMTIME")
	SIF ITEMTIME:LOCAL == 0
		CONTINUE
	IF LOCAL:1 == 0
		PRINTFORM %TOSTR_SPACE(6)%
		;3列で改行
	ELSEIF LOCAL:1 > 0 && LOCAL:1 % 4 == 0
		PRINTL
		PRINTFORM %TOSTR_SPACE(6)%
	ENDIF
	PRINTFORM %ITEMNAME:(LOCAL:0), MAX_CHARANAME_LENGTH, LEFT%
	PRINTPLAINFORM %TOSTR_SPACE(2)%
	SETCOLOR カラー_緑
	PRINTPLAINFORM {ITEMTERM:(LOCAL:0) + 1 - ITEMTIME:(LOCAL:0), 2}
	PRINTFORM %TOSTR_SPACE(3)%
	RESETCOLOR
	LOCAL:1 ++
NEXT
IF LOCAL:1 != 0
	PRINTL
ENDIF

SETCOLOR カラー_灰色
CALL SINGLE_DRAWLINE
RESETCOLOR
CALL COLOR_PRINTL(" 破棄 ", カラー_注釈, "購入値で売却可能", カラー_選択不可)
PRINTFORM %TOSTR_SPACE(6)%
LOCAL:1 = 0
FOR LOCAL:0, 500, 900
	LOCAL:2 = LOCAL:0 - 500
	IF ITEMNAME:(LOCAL:2) != "" && ITEM:(LOCAL:2) > 0
		LOCALS:0 = %ITEMNAME:(LOCAL:2)%
		IF ITEM:(LOCAL:2) >= 2
			LOCALS:0 = %LOCALS:0%×{ITEM:(LOCAL:2)}
		ENDIF
		IF LOCAL:1 > 0 && LOCAL:1 % 3 == 0
			PRINTL
			PRINTFORM %TOSTR_SPACE(6)%
		ELSEIF LOCAL:1 > 0
			PRINTFORM %TOSTR_SPACE(9)%
		ENDIF
		LOCAL:1 ++
		CALL GET_PRICE(LOCAL:2)
		PRINTBUTTON @"[%LOCALS:0, MAX_CHARANAME_LENGTH, LEFT%]%NUM_FORMAT(RESULT), 8%", LOCAL:0
	ENDIF
NEXT
PRINTL

FOR LOCAL:0, LINECOUNT - FIRST_LINE_ITEM_MAIN, LINES_SHOP_DRAW + 1
	PRINTL
NEXT

SETCOLOR カラー_灰色
CALL SINGLE_DRAWLINE
RESETCOLOR
PRINTPLAIN
PRINTBUTTON @"[%"戻る", MAX_CHARANAME_LENGTH, LEFT%]", 999
PRINTL

REDRAW 0

$INPUT_LOOP
INPUT 999

IF RESULT == 999
	REDRAW 1
	RETURN

	;購入あるいは開発
ELSEIF RESULT >= 100 && RESULT < 305 && ITEMNAME:RESULT != ""
	LOCAL:2 = RESULT

	;購入アイテム
	IF ITEMSALES:(LOCAL:2)
		CALL GET_PRICE(LOCAL:2)
		LOCAL:3 = RESULT

		;アイテムの種別を判定
		IF (LOCAL:2 >= 150 && LOCAL:2 < 200) || (LOCAL:2 >= 250 && LOCAL:2 < 280)
			LOCAL:5 = 1
		ELSE
			LOCAL:5 = 0
		ENDIF

		;アイテムの説明を表示し、購入の入力処理を行う
		CALL ITEM_EXPLANATION(LOCAL:2, LOCAL:3, LOCAL:5)
		LOCAL:4 = RESULT

		;購入個数が0なら戻る
		IF LOCAL:4 == 0
			CLEARLINE LINECOUNT - FIRST_LINE_ITEM_MAIN
			RESTART
		ENDIF

		CLEARLINE 2
		;購入アイテム
		IF LOCAL:2 < 150
			IF ITEMNAME:(LOCAL:2) == "太平要術の書"
				CALL SELECT_ITEM_USER(LOCAL:2)
				IF !RESULT
					RESTART
				ENDIF
			ELSEIF ITEMNAME:(LOCAL:2) == "淫技大全"
				CALL SELECT_ITEM_USER(LOCAL:2)
				IF !RESULT
					RESTART
				ENDIF
			ELSE
				PRINTFORMW %TOSTR_SPACE(6)%%ITEMNAME:(LOCAL:2)%を購入しました
				ITEM:(LOCAL:2) ++
				ITEMSALES:(LOCAL:2) = 0
			ENDIF
			MONEY -= LOCAL:3
			RESTART
			;購入アイテム(消耗品)
		ELSEIF LOCAL:2 < 200 || (LOCAL:2 >= 250 && LOCAL:2 < 280)
			PRINTFORMW %TOSTR_SPACE(6)%%ITEMNAME:(LOCAL:2)%を{LOCAL:4}個購入しました
			MONEY -= LOCAL:3 * LOCAL:4
			ITEM:(LOCAL:2) += LOCAL:4
			RESTART
			;購入アイテム(その場使用)
		ELSEIF LOCAL:2 >= 280 && LOCAL:2 < 305
			IF GROUPMATCH(LOCAL:2, GETNUM(ITEM, "犬"), GETNUM(ITEM, "豚"), GETNUM(ITEM, "馬"), GETNUM(ITEM, "猿"))
				PRINTFORMW %TOSTR_SPACE(6)%%ITEMNAME:(LOCAL:2)%を購入しました
				MONEY -= LOCAL:3
				SELECTCASE LOCAL:2
					CASE GETNUM(ITEM, "犬")
						CALL ADD_ANIMAL(CFLAG:MASTER:所属, 動物_犬)
					CASE GETNUM(ITEM, "豚")
						CALL ADD_ANIMAL(CFLAG:MASTER:所属, 動物_豚)
					CASE GETNUM(ITEM, "馬")
						CALL ADD_ANIMAL(CFLAG:MASTER:所属, 動物_馬)
					CASE GETNUM(ITEM, "猿")
						CALL ADD_ANIMAL(CFLAG:MASTER:所属, 動物_猿)
				ENDSELECT
				RESTART
			ELSEIF GROUPMATCH(LOCAL:2, GETNUM(ITEM, "念導ビット"), GETNUM(ITEM, "旧式思考戦車"), GETNUM(ITEM, "Ｄ・ドロイド"), GETNUM(ITEM, "サーベラスii型"), GETNUM(ITEM, "ターロスiv型"))
				PRINTFORMW %TOSTR_SPACE(6)%%ITEMNAME:(LOCAL:2)%の製造が完了しました
				PRINTFORMW %TOSTR_SPACE(6)%複数必要な場合はアイテム画面で再度開発を行って下さい
				MONEY -= LOCAL:3
				SELECTCASE LOCAL:2
					CASE GETNUM(ITEM, "念導ビット")
						CALL ADD_MECH(CFLAG:MASTER:所属, 機械_球)
						ITEMSALES:念導ビット = 0
					CASE GETNUM(ITEM, "旧式思考戦車")
						CALL ADD_MECH(CFLAG:MASTER:所属, 機械_車)
						ITEMSALES:旧式思考戦車 = 0
					CASE GETNUM(ITEM, "Ｄ・ドロイド")
						CALL ADD_MECH(CFLAG:MASTER:所属, 機械_人)
						ITEMSALES:Ｄ・ドロイド = 0
					CASE GETNUM(ITEM, "サーベラスii型")
						CALL ADD_MECH(CFLAG:MASTER:所属, 機械_狼)
						ITEMSALES:サーベラスii型 = 0
					CASE GETNUM(ITEM, "ターロスiv型")
						CALL ADD_MECH(CFLAG:MASTER:所属, 機械_巨)
						ITEMSALES:ターロスiv型 = 0
				ENDSELECT
				RESTART
			ELSE
				CALL SELECT_ITEM_USER(LOCAL:2)
				IF RESULT
					MONEY -= LOCAL:3
				ENDIF
				RESTART
			ENDIF
		ENDIF

		;開発アイテム
	ELSEIF ITEMTIME:(LOCAL:2) == 0 && !ITEMSALES:(LOCAL:2)
		RESULT = 1
		TRYCALLFORM ITEM_ABLE{LOCAL:2}
		IF RESULT
			LOCAL:3 = ITEMPRICE:(LOCAL:2)
			IF IS_GISHI
				TIMES LOCAL:3, 0.75
			ENDIF

			;アイテムの説明を表示し、購入の入力処理を行う
			CALL ITEM_EXPLANATION(LOCAL:2, LOCAL:3, 2)
			LOCAL:4 = RESULT

			;購入個数が0なら戻る
			IF LOCAL:4 == 0
				CLEARLINE LINECOUNT - FIRST_LINE_ITEM_MAIN
				RESTART
			ENDIF

			CLEARLINE 2
			PRINTFORMW %TOSTR_SPACE(6)%%ITEMNAME:(LOCAL:2)%の開発を開始しました
			IF IS_GISHI
				ITEMTIME:(LOCAL:2) = ITEMTERM:(LOCAL:2) + 1 - MAX(ITEMTERM:(LOCAL:2) / 2, 1)
			ELSE
				ITEMTIME:(LOCAL:2) = 1
			ENDIF
			MONEY -= LOCAL:3
			RESTART
		ENDIF
	ENDIF

	;破棄
ELSEIF 500 <= RESULT && RESULT <= 900 && ITEMNAME:(RESULT - 500) != ""
	CLEARLINE 1
	LOCAL:1 = RESULT - 500
	IF ITEM:(LOCAL:1) > 0
		CALL GET_PRICE(LOCAL:1)
		LOCAL:2 = RESULT
		SETCOLOR カラー_灰色
		CALL SINGLE_DRAWLINE
		RESETCOLOR
		PRINTFORM  ★ %ITEMNAME:(LOCAL:1)%
		CALL COLOR_PRINT(@"  価格:", カラー_注釈)
		CALL COLOR_PRINT(@"%NUM_FORMAT(LOCAL:2)%", カラー_選択中)
		PRINTL

		SETCOLOR カラー_灰色
		CALL SINGLE_DRAWLINE
		RESETCOLOR
		PRINTPLAINFORM %TOSTR_SPACE(6)%
		CALL COLOR_PRINT(@"現在{ITEM:(LOCAL:1)}個所持している%ITEMNAME:(LOCAL:1)%を売却します", カラー_注釈)
		PRINTL

		SETCOLOR カラー_灰色
		CALL SINGLE_DRAWLINE
		RESETCOLOR
		PRINTPLAINFORM %TOSTR_SPACE(6)%
		CALL COLOR_PRINT("売却する数を選択して下さい", ,"戻るでキャンセル", カラー_注釈)
		PRINTL

		SETCOLOR カラー_灰色
		CALL SINGLE_DRAWLINE
		RESETCOLOR
		CALL PROMPTLY_BUTTONS(0, ITEM:(LOCAL:1), 0)
		LOCAL:3 = RESULT
		;購入個数が0なら戻る
		IF LOCAL:3 == 0 || LOCAL:3 > ITEM:(LOCAL:1)
			RESTART
		ENDIF
		CLEARLINE 2
		MONEY += RESULT * LOCAL:2
		PRINTFORMW %TOSTR_SPACE(6)%%ITEMNAME:(LOCAL:1)%を{RESULT}個売却し、金%MONEY_FORMAT(RESULT * LOCAL:2)%を得ました
		ITEM:(LOCAL:1) -= RESULT
		IF LOCAL:1 < 150
			ITEMSALES:(LOCAL:1) = 1
		ELSEIF ITEMTERM:(LOCAL:1) > 0
			ITEMTIME:(LOCAL:1) = 0
		ENDIF
		RESTART
	ENDIF
ENDIF

CLEARLINE 1
REUSELASTLINE
REDRAW 2
GOTO INPUT_LOOP

;-------------------------------------------------
;アイテムの説明を表示し、購入の入力処理を行う
;ARG:0=アイテム番号
;ARG:1=アイテムの値段
;ARG:2=アイテムのタイプ(0=単品 1=消耗品 2=開発)
;戻り値として購入個数を返す
;-------------------------------------------------
@ITEM_EXPLANATION(ARG:0, ARG:1, ARG:2)
#DIM RETURN_NUM
#DIM MAXITEM_NUM

RETURN_NUM = 0
MAXITEM_NUM = 0

CLEARLINE 1

SETCOLOR カラー_灰色
CALL SINGLE_DRAWLINE
RESETCOLOR
PRINTFORM  ★ %ITEMNAME:(ARG:0)%
IF ARG:2 == 2
	CALL COLOR_PRINT(@"開発費:", カラー_注釈)
	CALL COLOR_PRINT(@"%NUM_FORMAT(ARG:1)%", カラー_選択中)
ELSE
	CALL COLOR_PRINT(@"価格:", カラー_注釈)
	CALL COLOR_PRINT(@"%NUM_FORMAT(ARG:1)%", カラー_選択中)
ENDIF
PRINTL
SETCOLOR カラー_灰色
CALL SINGLE_DRAWLINE
RESETCOLOR
SETCOLOR カラー_注釈
TRYCALLFORM ITEM_EXPLANATION{ARG:0}
RESETCOLOR

SELECTCASE ARG:2
	CASE 0
		PRINTL
		PRINTPLAINFORM %TOSTR_SPACE(6)%
		IF MONEY >= ARG:1
			PRINTBUTTON @"[%"これを購入する", MAX_CHARANAME_LENGTH, LEFT%]", 0
		ELSE
			SETCOLOR カラー_選択不可
			PRINTPLAINFORM [%"これを購入する", MAX_CHARANAME_LENGTH, LEFT%]
			RESETCOLOR
		ENDIF
		PRINTL
		SETCOLOR カラー_灰色
		CALL SINGLE_DRAWLINE
		RESETCOLOR
		PRINTPLAIN
		PRINTBUTTON @"[%"戻る", MAX_CHARANAME_LENGTH, LEFT%]", 1
		PRINTL
		INPUT 1
		RETURN_NUM = (RESULT == 0)

	CASE 1
		SETCOLOR カラー_灰色
		CALL SINGLE_DRAWLINE
		RESETCOLOR
		IF ITEM:(ARG:0) >= 99
			SETCOLOR カラー_選択不可
			PRINTW  所持数限界により購入不可
			RESETCOLOR
			RETURN_NUM = 0
		ELSEIF MONEY < ARG:1
			SETCOLOR カラー_選択不可
			PRINTW  所持金不足により購入不可
			RESETCOLOR
			RETURN_NUM = 0
		ELSE
			PRINTPLAINFORM %TOSTR_SPACE(6)%購入する数を選択してください
			CALL COLOR_PRINT("戻るでキャンセル", カラー_注釈)
			PRINTL
			SETCOLOR カラー_灰色
			CALL SINGLE_DRAWLINE
			RESETCOLOR
			$INPUT_LOOP_NUM
			MAXITEM_NUM = MONEY / ARG:1
			IF ITEM:(ARG:0) + MAXITEM_NUM > 99
				MAXITEM_NUM = MAXITEM_NUM - ( MAXITEM_NUM + ITEM:(ARG:0) - 99 )
			ENDIF
			SETCOLOR カラー_灰色
			CALL SINGLE_DRAWLINE
			RESETCOLOR
			;ARG:0=最小値 ARG:1=最大値 ARG:2=戻るボタンの番号
			CALL PROMPTLY_BUTTONS(0, MAXITEM_NUM, 0)
			IF ITEM:(ARG:0) + RESULT > 99
				CLEARLINE 1
				PRINTW アイテムの数が99個を超えています
				GOTO INPUT_LOOP_NUM
			ELSEIF RESULT * ARG:1 > MONEY
				CLEARLINE 1
				PRINTW 所持金が不足しています
				GOTO INPUT_LOOP_NUM
			ENDIF
			RETURN_NUM = MAX(RESULT, 0)
		ENDIF

	CASE 2
		PRINTL
		PRINTPLAINFORM %TOSTR_SPACE(6)%
		IF MONEY >= ARG:1
			PRINTBUTTON @"[%"これを開発する", MAX_CHARANAME_LENGTH, LEFT%]", 0
		ELSE
			SETCOLOR カラー_選択不可
			PRINTPLAINFORM [%"これを開発する", MAX_CHARANAME_LENGTH, LEFT%]
			RESETCOLOR
		ENDIF
		PRINTL
		SETCOLOR カラー_灰色
		CALL SINGLE_DRAWLINE
		RESETCOLOR
		PRINTPLAIN
		PRINTBUTTON @"[%"戻る", MAX_CHARANAME_LENGTH, LEFT%]", 1
		PRINTL
		INPUT 1
		RETURN_NUM = (RESULT == 0)
ENDSELECT

RETURN RETURN_NUM

;-------------------------------------------------
;即決ボタン
;
;PROMPTLY_MIN		最小入力値
;PROMPTLY_MAX		最大入力値
;PROMPTLY_BACK		戻るボタンに割り当てる番号
;
;DUM_DISPFLAG		ボタン表示フラグ
;PROMPTLY_NUM		ボタンに表示する数値
;PROMPTLY_POWER_NUM	ボタンに累乗する数値
;
;CALL PROMPTLY_BUTTONS(0, 100, 0)
;-------------------------------------------------
@PROMPTLY_BUTTONS(PROMPTLY_MIN, PROMPTLY_MAX, PROMPTLY_BACK)
#DIM PROMPTLY_MIN
#DIM PROMPTLY_MAX
#DIM PROMPTLY_BACK
#DIM PROMPTLY_DISP
#DIM PROMPTLY_NUM
#DIM PROMPTLY_POWER_NUM
#DIM FIRST_LINE
#DIM SAVE_REDRAW

CURRENTREDRAW
SAVE_REDRAW = RESULT:0
REDRAW 0

FIRST_LINE = LINECOUNT
$SHOP_LOOP

PROMPTLY_NUM = 0
PROMPTLY_POWER_NUM = 0
PRINTPLAINFORM %TOSTR_SPACE(5)%
FOR LOCAL:1, 0, 2
	POWER PROMPTLY_POWER_NUM, 10, LOCAL:1
	PROMPTLY_DISP = 0
	FOR LOCAL:0, 1, 10
		PROMPTLY_NUM = LOCAL:0 * PROMPTLY_POWER_NUM
		IF PROMPTLY_NUM <= PROMPTLY_MAX
			PRINTPLAIN
			PRINTBUTTON @"[%NUM_FORMAT(PROMPTLY_NUM), 2%]", PROMPTLY_NUM
			PROMPTLY_DISP ++
		ENDIF
	NEXT
	IF PROMPTLY_DISP
		PRINTL
		PRINTPLAINFORM %TOSTR_SPACE(5)%
	ENDIF
NEXT
PRINTL
PRINTPLAINFORM %TOSTR_SPACE(6)%
PRINTBUTTON @"[%"最大数で決定", MAX_CHARANAME_LENGTH - 2, LEFT%{PROMPTLY_MAX, 2}]", PROMPTLY_MAX
PRINTL
SETCOLOR カラー_灰色
CALL SINGLE_DRAWLINE
RESETCOLOR
PRINTPLAIN
PRINTBUTTON @"[%"戻る", MAX_CHARANAME_LENGTH, LEFT%]", PROMPTLY_BACK
PRINTL

INPUT 0
IF RESULT == PROMPTLY_BACK
	CLEARLINE 1
	RETURN PROMPTLY_BACK
ELSE
	CLEARLINE 1
	IF PROMPTLY_MIN > RESULT:0 || PROMPTLY_MAX < RESULT:0
		CLEARLINE LINECOUNT - FIRST_LINE
		GOTO SHOP_LOOP
	ENDIF
	PRINTL
	REDRAW SAVE_REDRAW
	RETURN RESULT:0
ENDIF

;-------------------------------------------------
;動物を追加する
;-------------------------------------------------
@ADD_ANIMAL(ARG:0, ARG:1)
CALL ADD_VOID_CHARA()
LOCAL = RESULT
SELECTCASE ARG:1
	CASE 動物_犬
		NAME:LOCAL     = 犬
		CALLNAME:LOCAL = 犬
	CASE 動物_豚
		NAME:LOCAL     = 豚
		CALLNAME:LOCAL = 豚
	CASE 動物_馬
		NAME:LOCAL     = 馬
		CALLNAME:LOCAL = 馬
	CASE 動物_猿
		NAME:LOCAL     = 猿
		CALLNAME:LOCAL = 猿
ENDSELECT
MAXBASE:LOCAL:体力 = 3000
MAXBASE:LOCAL:気力 = 3000
MAXBASE:LOCAL:精神力 = 1500

BASE:LOCAL:体力 = MAXBASE:LOCAL:体力
BASE:LOCAL:気力 = MAXBASE:LOCAL:気力
BASE:LOCAL:精神力 = MAXBASE:LOCAL:精神力

ABL:LOCAL:Ｃ感 = 5
ABL:LOCAL:欲望 = 5
ABL:LOCAL:性技 = 5
ABL:LOCAL:性知識 = 5
ABL:LOCAL:奉仕 = 3
ABL:LOCAL:性交 = 10
ABL:LOCAL:射精 = 5

EXP:LOCAL:絶頂経験 = 300

ABL:LOCAL:身体 = 5
ABL:LOCAL:器用 = 5
ABL:LOCAL:知識 = 5
ABL:LOCAL:社交 = 1
ABL:LOCAL:歌唱 = 1
ABL:LOCAL:料理 = 1
TALENT:LOCAL:貞操無頓着 = 1
TALENT:LOCAL:動物耳 = 1
TALENT:LOCAL:しっぽ = 1
TALENT:LOCAL:服従 = 1
TALENT:LOCAL:隷属 = 1
TALENT:LOCAL:絶倫 = 1
TALENT:(LOCAL:0):合意 = 1
TALENT:LOCAL:陰毛現在値 = 陰毛_標準
TALENT:LOCAL:陰毛目標値 = 陰毛_標準
TALENT:LOCAL:Ｖ締まり = GET_DEFAULT_TIGHTNESS("普通")
TALENT:LOCAL:Ａ締まり = GET_DEFAULT_TIGHTNESS("普通")
CFLAG:(LOCAL):好感度 = 3000
CFLAG:(LOCAL):従属度 = 10000
CFLAG:(LOCAL):依存度 = 5000
CFLAG:(LOCAL):支配度 = 3000

CFLAG:(LOCAL:0):面識 = 1
CALL CHANGE_COUNTRY(LOCAL, ARG:0)

TALENT:LOCAL:動物 = ARG:1

;-------------------------------------------------
;思考戦車を追加する
;-------------------------------------------------
@ADD_MECH(ARG:0, ARG:1)
CALL ADD_VOID_CHARA()
LOCAL = RESULT
SELECTCASE ARG:1
	CASE 機械_球
		NAME:LOCAL     = 念導ビット
		CALLNAME:LOCAL = 念導ビット
		MAXBASE:LOCAL:体力 = 1500
		MAXBASE:LOCAL:気力 = 1500
		ABL:LOCAL:身体 = 30
		ABL:LOCAL:魔術 = 10
		ABL:LOCAL:知識 = 20
		ABL:LOCAL:観察 = 50
		TALENT:LOCAL:魔術師 = 1
		TALENT:LOCAL:体格 = -2
	CASE 機械_車
		NAME:LOCAL     = 旧式思考戦車
		CALLNAME:LOCAL = 旧式思考戦車
		MAXBASE:LOCAL:体力 = 2200
		MAXBASE:LOCAL:気力 = 1800
		ABL:LOCAL:身体 = 55
		ABL:LOCAL:知識 = 20
		ABL:LOCAL:観察 = 10
		TALENT:LOCAL:体格 = 2
	CASE 機械_人
		NAME:LOCAL     = デュエル・ドロイド
		CALLNAME:LOCAL = Ｄ・ドロイド
		MAXBASE:LOCAL:体力 = 1800
		MAXBASE:LOCAL:気力 = 2000
		ABL:LOCAL:身体 = 60
		ABL:LOCAL:知識 = 30
		ABL:LOCAL:観察 = 30
		TALENT:LOCAL:体格 = 1
	CASE 機械_狼
		NAME:LOCAL     = サーベラスii型
		CALLNAME:LOCAL = サーベラスii型
		MAXBASE:LOCAL:体力 = 1500
		MAXBASE:LOCAL:気力 = 1200
		ABL:LOCAL:身体 = 75
		ABL:LOCAL:知識 = 30
		ABL:LOCAL:観察 = 40
		TALENT:LOCAL:体格 = 1
	CASE 機械_巨
		NAME:LOCAL     = ターロスiv型
		CALLNAME:LOCAL = ターロスiv型
		MAXBASE:LOCAL:体力 = 4500
		MAXBASE:LOCAL:気力 = 3000
		ABL:LOCAL:身体 = 110
		ABL:LOCAL:知識 = 50
		ABL:LOCAL:観察 = 50
		TALENT:LOCAL:体格 = 3
ENDSELECT

MAXBASE:LOCAL:精神力 = 0
BASE:LOCAL:体力 = MAXBASE:LOCAL:体力
BASE:LOCAL:気力 = MAXBASE:LOCAL:気力
BASE:LOCAL:精神力 = MAXBASE:LOCAL:精神力

ABL:LOCAL:器用 = 0
ABL:LOCAL:社交 = 1
ABL:LOCAL:歌唱 = 1
ABL:LOCAL:料理 = 1
TALENT:LOCAL:服従 = 1
TALENT:LOCAL:隷属 = 1
CFLAG:(LOCAL):従属度 = 10000

CFLAG:(LOCAL:0):面識 = 1
CALL CHANGE_COUNTRY(LOCAL, ARG:0)

TALENT:LOCAL:戦闘機械 = ARG:1


code:
;-------------------------------------------------
;対象キャラを選択するアイテムの使用条件
;-------------------------------------------------
;●ふたなり薬
@IS_ITEM_USE280(ARG:0)
SIF IS_ANIMAL(ARG:0)
	RETURN 0
IF ((CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属 || GROUPMATCH(TMP_COUNTRY_RELATION:(CFLAG:(ARG:0):所属):(CFLAG:(MASTER):所属), 3, 4)) && CFLAG:(ARG:0):捕虜先 == 0) || CFLAG:(ARG:0):捕虜先 == CFLAG:MASTER:所属
	RETURN 1
ENDIF
RETURN 0

;●性転換薬
@IS_ITEM_USE281(ARG:0)
IF !IS_ANIMAL(ARG:0) && (((CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属 || GROUPMATCH(TMP_COUNTRY_RELATION:(CFLAG:(ARG:0):所属):(CFLAG:(MASTER):所属), 3, 4)) && CFLAG:(ARG:0):捕虜先 == 0) || CFLAG:(ARG:0):捕虜先 == CFLAG:MASTER:所属)
	RETURN 1
ENDIF
RETURN 0
;●獣変化の秘薬
@IS_ITEM_USE283(ARG:0)
SIF ((CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属 || GROUPMATCH(TMP_COUNTRY_RELATION:(CFLAG:(ARG:0):所属):(CFLAG:(MASTER):所属), 3, 4)) && CFLAG:(ARG:0):捕虜先 == 0) || CFLAG:(ARG:0):捕虜先 == CFLAG:MASTER:所属
	RETURN 1
RETURN 0

;●再生の秘薬
@IS_ITEM_USE284(ARG:0)
IF (((CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属 || GROUPMATCH(TMP_COUNTRY_RELATION:(CFLAG:(ARG:0):所属):(CFLAG:(MASTER):所属), 3, 4)) && CFLAG:(ARG:0):捕虜先 == 0) || CFLAG:(ARG:0):捕虜先 == CFLAG:MASTER:所属) && ARG:0 != NAME_TO_CHARA("あなた")
	RETURN 1
ENDIF
RETURN 0

;●太平要術の書
@IS_ITEM_USE141(ARG:0)
IF ((CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属 || GROUPMATCH(TMP_COUNTRY_RELATION:(CFLAG:(ARG:0):所属):(CFLAG:(MASTER):所属), 3, 4)) && CFLAG:(ARG:0):捕虜先 == 0) || CFLAG:(ARG:0):捕虜先 == CFLAG:MASTER:所属
	IF !TALENT:(ARG:0):魔術師
		RETURN 1
	ENDIF
ENDIF
RETURN 0

;●淫技大全
@IS_ITEM_USE142(ARG:0)
IF ((CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属 || GROUPMATCH(TMP_COUNTRY_RELATION:(CFLAG:(ARG:0):所属):(CFLAG:(MASTER):所属), 3, 4)) && CFLAG:(ARG:0):捕虜先 == 0) || CFLAG:(ARG:0):捕虜先 == CFLAG:MASTER:所属
	IF ABL:(ARG:0):性知識 == 4 && ABL:(ARG:0):性技 >= 6
		RETURN 1
	ENDIF
ENDIF
RETURN 0

;●永久脱毛剤
@IS_ITEM_USE287(ARG:0)
SIF TALENT:(ARG:0):陰毛現在値 != 陰毛_パイパン
	RETURN ((CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属 || GROUPMATCH(TMP_COUNTRY_RELATION:(CFLAG:(ARG:0):所属):(CFLAG:(MASTER):所属), 3, 4)) && CFLAG:(ARG:0):捕虜先 == 0) || CFLAG:(ARG:0):捕虜先 == CFLAG:MASTER:所属
RETURN 0

;●入れ墨除去手術
@IS_ITEM_USE288(ARG:0)
FOR LOCAL, 0, VARSIZE("TATTOO")
	SIF TATTOO:(ARG:0):LOCAL != ""
		RETURN ((CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属 || GROUPMATCH(TMP_COUNTRY_RELATION:(CFLAG:(ARG:0):所属):(CFLAG:(MASTER):所属), 3, 4)) && CFLAG:(ARG:0):捕虜先 == 0) || CFLAG:(ARG:0):捕虜先 == CFLAG:MASTER:所属
NEXT
RETURN 0

;●穴トレ
@IS_ITEM_USE289(ARG:0)
RETURN ((CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属 || GROUPMATCH(TMP_COUNTRY_RELATION:(CFLAG:(ARG:0):所属):(CFLAG:(MASTER):所属), 3, 4)) && CFLAG:(ARG:0):捕虜先 == 0) || CFLAG:(ARG:0):捕虜先 == CFLAG:MASTER:所属

;●美容
@IS_ITEM_USE290(ARG:0)
RETURN (((CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属 || GROUPMATCH(TMP_COUNTRY_RELATION:(CFLAG:(ARG:0):所属):(CFLAG:(MASTER):所属), 3, 4)) && CFLAG:(ARG:0):捕虜先 == 0) || CFLAG:(ARG:0):捕虜先 == CFLAG:MASTER:所属)

;●危険日ずらし
@IS_ITEM_USE291(ARG:0)
RETURN (((CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属 || GROUPMATCH(TMP_COUNTRY_RELATION:(CFLAG:(ARG:0):所属):(CFLAG:(MASTER):所属), 3, 4)) && CFLAG:(ARG:0):捕虜先 == 0) || CFLAG:(ARG:0):捕虜先 == CFLAG:MASTER:所属) && HAS_VAGINA(ARG:0)

;避妊薬
@IS_ITEM_USE292(ARG:0)
RETURN !CFLAG:(ARG:0):妊娠期間 && IS_FEMALE(ARG:0) && CFLAG:(ARG:0):避妊薬残ターン == 0 && (((CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属 || GROUPMATCH(TMP_COUNTRY_RELATION:(CFLAG:(ARG:0):所属):(CFLAG:(MASTER):所属), 3, 4)) && CFLAG:(ARG:0):捕虜先 == 0) || CFLAG:(ARG:0):捕虜先 == CFLAG:MASTER:所属)

;堕胎薬
@IS_ITEM_USE293(ARG:0)
RETURN TALENT:(ARG:0):妊娠  && IS_FEMALE(ARG:0) && (((CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属 || GROUPMATCH(TMP_COUNTRY_RELATION:(CFLAG:(ARG:0):所属):(CFLAG:(MASTER):所属), 3, 4)) && CFLAG:(ARG:0):捕虜先 == 0) || CFLAG:(ARG:0):捕虜先 == CFLAG:MASTER:所属)

;●能動受動
@IS_ITEM_USE294(ARG:0)
RETURN ((CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属 || GROUPMATCH(TMP_COUNTRY_RELATION:(CFLAG:(ARG:0):所属):(CFLAG:(MASTER):所属), 3, 4)) && CFLAG:(ARG:0):捕虜先 == 0) || CFLAG:(ARG:0):捕虜先 == CFLAG:MASTER:所属

;-------------------------------------------------
;アイテムの対象キャラを選択してその場で使用
;ARG:0=アイテム番号
;-------------------------------------------------
@SELECT_ITEM_USER(ARG:0)
#DIM FIRST_LINE

CLEARLINE 3

;全員の調教参加フラグをクリア
CVARSET CFLAG, 6, 0

;アイテムを使用可能なキャラの数を数える
LOCAL:5 = 0
FOR LOCAL:0, 0, CHARANUM
	RESULT = 0
	TRYCALLFORM IS_ITEM_USE{ARG:0}(LOCAL:0)
	IF RESULT
		LOCAL:5 ++
	ENDIF
NEXT

;ページ数の計算
LOCAL:10 = (LOCAL:5 - 1) / 44 + 1
LOCAL:11 = 1
SETCOLOR カラー_灰色
CALL SINGLE_DRAWLINE
RESETCOLOR
PRINTFORM %TOSTR_SPACE(6)%
PRINTFORML %ITEMNAME:(ARG:0)%を誰に使用しますか？
SETCOLOR カラー_灰色
CALL SINGLE_DRAWLINE
RESETCOLOR
FIRST_LINE = LINECOUNT

$SHOW_LOOP

;キャラリストの表示
LOCAL:12 = (LOCAL:11 - 1) * 44
LOCAL:13 = LOCAL:11* 44
LOCAL:14 = 0
LOCAL:15 = 0
LOCAL:16 = 4
PRINTFORM %TOSTR_SPACE(6)%
FOR LOCAL:0, 0, CHARANUM
	RESULT = 0
	TRYCALLFORM IS_ITEM_USE{ARG:0}(LOCAL:0)
	IF RESULT
		IF LOCAL:14 >= LOCAL:12 && LOCAL:14 < LOCAL:13
			IF LOCAL:15 % 2 != 0
				PRINTPLAINFORM %TOSTR_SPACE(2)%
			ELSEIF LOCAL:15 >= 1
				PRINTL
				PRINTFORM %TOSTR_SPACE(6)%
				LOCAL:16 ++
			ENDIF
			;CALL PRINT_PARTNER_DATA(LOCAL:0)
			CALL COLUMN_RIGHT_CHARALIST_BUTTON(LOCAL:0, 0, , , 1)
			LOCAL:15 ++
		ENDIF
		LOCAL:14 ++
	ENDIF
NEXT
PRINTL
SETCOLOR カラー_灰色
CALL SINGLE_DRAWLINE
RESETCOLOR

IF LOCAL:10 >= 2
	LOCAL:16 += 2
	IF LOCAL:11 > 1
		PRINTBUTTON @"[%"前のページ", MAX_CHARANAME_LENGTH, LEFT%]", SHOP_LIFE_LIST1_PAGE_BACK
	ELSE
		SETCOLOR カラー_選択不可
		PRINTPLAINFORM [%"前のページ", MAX_CHARANAME_LENGTH, LEFT%]
		RESETCOLOR
	ENDIF
	LOCALS:0 = page{LOCAL:11}/{LOCAL:10}
	PRINTPLAINFORM %TOSTR_SPACE(10)%
	PRINTPLAINFORM %LOCALS:0, 16, LEFT%
	IF LOCAL:11 < LOCAL:10
		PRINTBUTTON @"[%"次のページ", MAX_CHARANAME_LENGTH, LEFT%]", SHOP_LIFE_LIST1_PAGE_NEXT
	ELSE
		SETCOLOR カラー_選択不可
		PRINTPLAINFORM [%"次のページ", MAX_CHARANAME_LENGTH, LEFT%]
		RESETCOLOR
	ENDIF
	PRINTL
	SETCOLOR カラー_灰色
	CALL SINGLE_DRAWLINE
	RESETCOLOR
ENDIF

PRINTPLAIN
PRINTBUTTON @"[%"戻る", MAX_CHARANAME_LENGTH, LEFT%]", 0
PRINTFORML

REDRAW 0

$INPUT_LOOP
INPUT 0

CLEARLINE 2

IF RESULT == 0
	REDRAW 1
	RETURN 0
ELSEIF RESULT == SHOP_LIFE_LIST1_PAGE_BACK
	LOCAL:11 --
	IF LOCAL:11 < 0
		LOCAL:11 = LOCAL:10
	ENDIF
	CLEARLINE LINECOUNT - FIRST_LINE
	GOTO SHOW_LOOP
ELSEIF RESULT == SHOP_LIFE_LIST1_PAGE_NEXT
	LOCAL:11 ++
	IF LOCAL:11 > LOCAL:10
		LOCAL:11 = 0
	ENDIF
	CLEARLINE LINECOUNT - FIRST_LINE
	GOTO SHOW_LOOP
ELSE
	LOCAL:20 = RESULT - 100
	LOCAL:21 = NO_TO_CHARA(LOCAL:20)
	IF LOCAL:21 >= 0
		RESULT = 0
		TRYCALLFORM IS_ITEM_USE{ARG:0}(LOCAL:21)
		IF RESULT
			CALLFORM ITEM_EFFECT{ARG:0}(LOCAL:21)
			REDRAW 1
			RETURN 1
		ENDIF
	ENDIF
	CLEARLINE 1
	GOTO INPUT_LOOP
ENDIF

;-------------------------------------------------
;対象キャラを選択してその場で使用するアイテムの効果
;-------------------------------------------------
;●ふたなり薬
@ITEM_EFFECT280(ARG:0)
SELECTCASE TALENT:(ARG:0):性別
	CASE 0
		TALENT:(ARG:0):性別 = 3
		PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%をふたなりにしました
	CASE 1
		TALENT:(ARG:0):性別 = 2
		PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%をふたなりにしました
	CASE 2
		TALENT:(ARG:0):性別 = 1
		PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%を女性にしました
	CASE 3
		TALENT:(ARG:0):性別 = 0
		PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%を男性にしました
	CASE 4
		TALENT:(ARG:0):性別 = 5
		PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%をふたなりにしました
	CASE 5
		TALENT:(ARG:0):性別 = 4
		PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%を男の娘にしました
ENDSELECT
;ピアス穴を塞ぐ
CALL CLEAR_PIERCE_HOLE_SEX_CHANGE(ARG:0)

;女ふたなりになった場合(あたらしくチンポがついた場合)
IF TALENT:(ARG:0):性別 == 2
	PRINTFORML %TOSTR_SPACE(6)%ペニスのサイズは……
	CALL ASK_MULTI("超短小", "短小", "普通", "巨根", "超巨根")
	CALL SET_PENISSIZE(ARG:0, RESULT -2)
ENDIF

IF GROUPMATCH(TALENT:(ARG:0):性別, 2, 3, 5)
	PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%を童貞に戻しておきますか？
	CALL ASK_YN
	IF RESULT == 0
		PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%を童貞に戻しました
		CALL VIRGINIZE(ARG:0, 初体験_童貞)
	ENDIF
ENDIF

;●性転換薬
@ITEM_EFFECT281(ARG:0)
SELECTCASE TALENT:(ARG:0):性別
	CASE 0
		TALENT:(ARG:0):性別 = 1
		PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%を女性にしました
	CASE 1
		IF CFLAG:(ARG:0):元男の娘フラグ
			TALENT:(ARG:0):性別 = 4
			PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%を男の娘にしました
			CFLAG:(ARG:0):元男の娘フラグ = 0
		ELSE
			TALENT:(ARG:0):性別 = 0
			PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%を男性にしました
		ENDIF
	CASE 2
		IF CFLAG:(ARG:0):元男の娘フラグ
			TALENT:(ARG:0):性別 = 5
			PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%を男の娘ふたなりにしました
			CFLAG:(ARG:0):元男の娘フラグ = 0
		ELSE
			TALENT:(ARG:0):性別 = 3
			PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%を男ふたなりにしました
		ENDIF
	CASE 3
		TALENT:(ARG:0):性別 = 2
		PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%を女ふたなりにしました
	CASE 4
		TALENT:(ARG:0):性別 = 1
		PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%を女性にしました
		;元男の娘フラグ
		CFLAG:(ARG:0):元男の娘フラグ = 1
	CASE 5
		TALENT:(ARG:0):性別 = 2
		PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%を女ふたなりにしました
		;元男の娘フラグ
		CFLAG:(ARG:0):元男の娘フラグ = 1
ENDSELECT
;ピアス穴を塞ぐ
CALL CLEAR_PIERCE_HOLE_SEX_CHANGE(ARG:0)
CALL SET_BODYSIZE(ARG:0)

;●獣変化の秘薬
@ITEM_EFFECT283(ARG:0)
#DIM FIRST_LINE
FIRST_LINE = LINECOUNT

CALL PRINT_TOGGLE_BUTTON("[動物耳]", 0, TALENT:(ARG:0):動物耳)
CALL PRINT_TOGGLE_BUTTON("[しっぽ]", 1, TALENT:(ARG:0):しっぽ)
PRINTL
PRINTBUTTON "[決定]", 100

INPUT

IF RESULT == 100
	RETURN 0
ELSEIF RESULT == 0
	TALENT:(ARG:0):動物耳 = !TALENT:(ARG:0):動物耳
ELSEIF RESULT == 1
	TALENT:(ARG:0):しっぽ = !TALENT:(ARG:0):しっぽ
ENDIF

CLEARLINE LINECOUNT - FIRST_LINE
RESTART

;●再生の秘薬
@ITEM_EFFECT284(ARG:0)
#DIM FIRST_LINE
IF !EXISTCSV(NO:(ARG:0))
	CALL OLD_ITEM_EFFECT_284(ARG:0)
	RETURN
ENDIF
PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%が再生の秘薬を飲むが……
PRINTFORML
FIRST_LINE = LINECOUNT
$SHOW_LOOP_SET
LOCAL:1 = CFLAG:(ARG:0):所属
LOCAL:2 = CFLAG:(ARG:0):捕虜先
CALL CLEAR_ALL_PASS_SETTINGS()
CALL PASS_CHARA_UI(ARG)
CALL PASS_CHARA(ARG)
CFLAG:(ARG:0):所属 = LOCAL:1
CFLAG:(ARG:0):捕虜先 = LOCAL:2

;デフォルトで処女でないキャラは、再生させるか確認する
IF !CSVTALENT(NO:(ARG:0), GETNUM(TALENT, "処女"))
	PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%はデフォルトで処女でないので、先ほどの選択で処女を初期化しても非処女のままです
	PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%の処女を再生しますか？
	CALL ASK_YN
	IF RESULT == 0
		PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%の処女を再生しました
		CALL VIRGINIZE(ARG:0, 初体験_処女)
	ENDIF
ENDIF
IF !CSVTALENT(NO:(ARG:0), GETNUM(TALENT, "アナル処女"))
	PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%はデフォルトでアナル処女でないので、先ほどの選択でアナル処女を初期化しても非処女のままです
	PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%のアナル処女を再生しますか？
	CALL ASK_YN
	IF RESULT == 0
		PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%のアナル処女を再生しました
		CALL VIRGINIZE(ARG:0, 初体験_アナル処女)
	ENDIF
ENDIF
IF !CSVTALENT(NO:(ARG:0), GETNUM(TALENT, "童貞"))
	PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%はデフォルトで童貞でないので、先ほどの選択で童貞を初期化しても童貞のままです
	PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%の童貞を再生しますか？
	CALL ASK_YN
	IF RESULT == 0
		PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%の童貞を再生しました
		CALL VIRGINIZE(ARG:0, 初体験_童貞)
	ENDIF
ENDIF
IF !CSVTALENT(NO:(ARG:0), GETNUM(TALENT, "キス未経験"))
	PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%はデフォルトでキス未経験でないので、先ほどの選択でキス未経験を初期化してもキス経験済みのままです
	PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%のキス未経験を再生しますか？
	CALL ASK_YN
	IF RESULT == 0
		PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%のキス未経験を再生しました
		CALL VIRGINIZE(ARG:0, 初体験_キス)
	ENDIF
ENDIF

PRINTFORML %TOSTR_SPACE(6)%デイリーイベントで得る素質を残しますか？
CALL ASK_YN("残す", "消去")
SIF RESULT == 1
	TALENT:(ARG:0):デイリー系 = 0

PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%の肉体が再生されました
WAIT
RETURN

;東方キャラ以外に再生の秘薬を飲ませた場合
@OLD_ITEM_EFFECT_284(ARG:0)
PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%の肉体が再生されました
FOR LOCAL:0, 0, 5
	ABL:(ARG:0):(LOCAL:0) = 0
	EXP:(ARG:0):(LOCAL:0) = 0
NEXT
IF TALENT:(ARG:0):処女 != 1
	CALL VIRGINIZE(ARG:0, 初体験_処女)
	PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%の<処女>が再生されました
ENDIF
IF TALENT:(ARG:0):キス未経験 != 1
	CALL VIRGINIZE(ARG:0, 初体験_キス)
	PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%の<キス未経験>が再生されました
ENDIF
IF TALENT:(ARG:0):童貞 != 1
	CALL VIRGINIZE(ARG:0, 初体験_童貞)
	PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%の<童貞>が再生されました
ENDIF
IF TALENT:(ARG:0):アナル処女 != 1
	CALL VIRGINIZE(ARG:0, 初体験_アナル処女)
	PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%の<アナル処女>が再生されました
ENDIF

IF TALENT:(ARG:0):烙印
	TALENT:(ARG:0):烙印 = 0
	PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%の体から<烙印>が消えました
ENDIF
TALENT:(ARG:0):特殊勢力陥落系 = 0
TALENT:(ARG:0):デイリー系 = 0
WAIT

;●永久脱毛剤
@ITEM_EFFECT287(ARG:0)
PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%の股間に永久脱毛剤を塗り込んだ
PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%は<パイパン>になった
TALENT:(ARG:0):陰毛目標値 = 陰毛_パイパン
TALENT:(ARG:0):陰毛現在値 = 陰毛_パイパン

;●入れ墨除去手術
@ITEM_EFFECT288(ARG:0)
PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%のどの入れ墨を除去しますか？
FOR LOCAL, 0, VARSIZE("TATTOO")
	SIF TATTOO:(ARG:0):(LOCAL) != ""
		PRINTFORML %TOSTR_SPACE(6)%[{LOCAL}] %GET_TATTOO_NAME(LOCAL)% - 「%TATTOO:(ARG:0):(LOCAL)%」
NEXT
SETCOLOR カラー_灰色
CALL SINGLE_DRAWLINE
RESETCOLOR
PRINTPLAIN
PRINTBUTTON @"[%"戻る", MAX_CHARANAME_LENGTH, LEFT%]", 99
PRINTL
$INPUT_LOOP
INPUT 99
IF RESULT == 99
	CALL GET_PRICE288
	MONEY += RESULT
	RETURN
ELSEIF 0 <= RESULT && RESULT < VARSIZE("TATTOO") && TATTOO:(ARG:0):RESULT != ""
	PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%の%GET_TATTOO_NAME(RESULT)%のタトゥーを除去しました……
	TATTOO:(ARG:0):RESULT =
ELSE
	GOTO INPUT_LOOP
ENDIF

;●穴トレ
@ITEM_EFFECT289(ARG:0)
#DIMS 変化前
#DIMS 変化後
PRINTFORML %TOSTR_SPACE(6)%%ANAME(ARG:0)%のどちらの穴を鍛えますか？
CALL ASK_MULTI_JUDGE("膣", HAS_VAGINA(ARG:0), "尻", 1, @"%"戻る", MAX_CHARANAME_LENGTH, LEFT%", 1)
SELECTCASE RESULT
	CASE 0
		変化前 = %TOSTR_TIGHTNESS(TALENT:(ARG:0):Ｖ締まり)%
		TALENT:(ARG:0):Ｖ締まり = LIMIT(TALENT:(ARG:0):Ｖ締まり + 100, 締まり_最低値, 締まり_最高値)
		変化後 = %TOSTR_TIGHTNESS(TALENT:(ARG:0):Ｖ締まり)%
		CALL COLOR_PRINTW(@"%TOSTR_SPACE(6)%%ANAME(ARG:0)%の膣穴をトレーニングしました！", カラー_注意)
		CALL COLOR_PRINTW(@"変化前:%変化前%　→　変化後:%変化後%", カラー_注意)
	CASE 1
		変化前 = %TOSTR_TIGHTNESS(TALENT:(ARG:0):Ａ締まり)%
		TALENT:(ARG:0):Ａ締まり = LIMIT(TALENT:(ARG:0):Ａ締まり + 100, 締まり_最低値, 締まり_最高値)
		変化後 = %TOSTR_TIGHTNESS(TALENT:(ARG:0):Ａ締まり)%
		CALL COLOR_PRINTW(@"%TOSTR_SPACE(6)%%ANAME(ARG:0)%の尻穴をトレーニングしました！", カラー_注意)
		CALL COLOR_PRINTW(@"変化前:%変化前%　→　変化後:%変化後%", カラー_注意)
	CASE 2
		CALL GET_PRICE289
		MONEY += RESULT
		RETURN
ENDSELECT
RETURN

;●美容手術
@ITEM_EFFECT290(ARG:0)
CALL BEAUTIFY(ARG:0)
CALL COLOR_PRINTW(@"%ANAME(ARG:0)%の美容手術が終了した！", カラー_注意)

@BEAUTIFY(ARG:0)
#DIM FIRST_LINE
#DIM L_CNT
FIRST_LINE = LINECOUNT
CALL DRAW_LINE()
PRINTFORML ◇　%ANAME(ARG:0)%の外見的特徴を変更します
CALL SHOW_BODYSIZE(ARG:0)
CALL DRAW_LINE()

CALL DRAW_PORTRAIT(ARG:0, "[POS_X:6400]")
; CALL INIT_FACE_SPRITE(ARG:0)
; CALL HO_SET_PORTRAIT_SPRITE(ARG:0, "ステータス画面")
; CALL 画像表示_P(CSTR:(ARG:0):キャラ顔グラ, "RIGHT", 0, 100, 200, 200)
; CALL 画像描画終了

;ポートレイト・口上の編集
PRINTFORML <ポートレイト・口上>
PRINTL
CALLF TAG_PRINT(@"@B:2000@[ポートレイトを編集する]@/B@", 5)
CALLF TAG_PRINT(@"@B:2001@[口上を編集する]@/B@", 5)
PRINTL
PRINTFORML <身体の特徴>
PRINTL
IF HAS_PENIS(ARG:0)
	PRINTFORM 竿:
	CALL PRINT_SELECT_BUTTON("{超短小}", 0, GET_PENISSIZE(ARG:0) == -2)
	CALL PRINT_SELECT_BUTTON("{短小}",   1, GET_PENISSIZE(ARG:0) == -1)
	CALL PRINT_SELECT_BUTTON("{並根}",   2, GET_PENISSIZE(ARG:0) ==  0)
	CALL PRINT_SELECT_BUTTON("{巨根}",   3, GET_PENISSIZE(ARG:0) ==  1)
	CALL PRINT_SELECT_BUTTON("{超巨根}", 4, GET_PENISSIZE(ARG:0) ==  2)
	PRINTL
ENDIF
IF IS_FEMALE(ARG:0)
	PRINTFORM 胸:
	CALL PRINT_SELECT_BUTTON("{絶壁}", 10, GET_BUSTSIZE(ARG:0) == -2)
	CALL PRINT_SELECT_BUTTON("{貧乳}", 11, GET_BUSTSIZE(ARG:0) == -1)
	CALL PRINT_SELECT_BUTTON("{並乳}", 12, GET_BUSTSIZE(ARG:0) == 0)
	CALL PRINT_SELECT_BUTTON("{巨乳}", 13, GET_BUSTSIZE(ARG:0) == 1)
	CALL PRINT_SELECT_BUTTON("{爆乳}", 14, GET_BUSTSIZE(ARG:0) == 2)
	CALL PRINT_SELECT_BUTTON("{超乳}", 15, GET_BUSTSIZE(ARG:0) == 3)
	CALL PRINT_SELECT_BUTTON("{奇乳}", 16, GET_BUSTSIZE(ARG:0) == 4)
	PRINTL
ENDIF

PRINTFORM 尻:
CALL PRINT_SELECT_BUTTON("{壁尻}", 100, GET_HIPSIZE(ARG:0) == -2)
CALL PRINT_SELECT_BUTTON("{薄尻}", 101, GET_HIPSIZE(ARG:0) == -1)
CALL PRINT_SELECT_BUTTON("{普尻}", 102, GET_HIPSIZE(ARG:0) == 0)
CALL PRINT_SELECT_BUTTON("{巨尻}", 103, GET_HIPSIZE(ARG:0) == 1)
CALL PRINT_SELECT_BUTTON("{爆尻}", 104, GET_HIPSIZE(ARG:0) == 2)
PRINTL

IF HAS_VAGINA(ARG:0)
	PRINTFORM Ｖ:
	LOCALS = %TOSTR_TIGHTNESS(TALENT:(ARG:0):Ｖ締まり)%
	CALL PRINT_SELECT_BUTTON("{崩壊}",     40, LOCALS == TOSTR_TIGHTNESS(締まり_崩壊))
	CALL PRINT_SELECT_BUTTON("{がばがば}", 41, LOCALS == TOSTR_TIGHTNESS(締まり_がばがば))
	CALL PRINT_SELECT_BUTTON("{ぽっかり}", 42, LOCALS == TOSTR_TIGHTNESS(締まり_ぽっかり))
	CALL PRINT_SELECT_BUTTON("{ゆるゆる}", 43, LOCALS == TOSTR_TIGHTNESS(締まり_ゆるゆる))
	CALL PRINT_SELECT_BUTTON("{ゆるめ}",   44, LOCALS == TOSTR_TIGHTNESS(締まり_ゆるめ))
	CALL PRINT_SELECT_BUTTON("{普通}",     45, LOCALS == TOSTR_TIGHTNESS(締まり_普通))
	CALL PRINT_SELECT_BUTTON("{名器}",     46, LOCALS == TOSTR_TIGHTNESS(締まり_名器))
	CALL PRINT_SELECT_BUTTON("{きゅっきゅっ}", 47, LOCALS == TOSTR_TIGHTNESS(締まり_きゅっきゅっ))
	CALL PRINT_SELECT_BUTTON("{きつきつ}", 48, LOCALS == TOSTR_TIGHTNESS(締まり_きつきつ))
	CALL PRINT_SELECT_BUTTON("{ぎちぎち}", 49, LOCALS == TOSTR_TIGHTNESS(締まり_ぎちぎち))
	PRINTL
ENDIF

LOCALS =  %TOSTR_TIGHTNESS(TALENT:(ARG:0):Ａ締まり)%
PRINTFORM Ａ:
CALL PRINT_SELECT_BUTTON("{崩壊}",     50, LOCALS == TOSTR_TIGHTNESS(締まり_崩壊))
CALL PRINT_SELECT_BUTTON("{がばがば}", 51, LOCALS == TOSTR_TIGHTNESS(締まり_がばがば))
CALL PRINT_SELECT_BUTTON("{ぽっかり}", 52, LOCALS == TOSTR_TIGHTNESS(締まり_ぽっかり))
CALL PRINT_SELECT_BUTTON("{ゆるゆる}", 53, LOCALS == TOSTR_TIGHTNESS(締まり_ゆるゆる))
CALL PRINT_SELECT_BUTTON("{ゆるめ}",   54, LOCALS == TOSTR_TIGHTNESS(締まり_ゆるめ))
CALL PRINT_SELECT_BUTTON("{普通}",     55, LOCALS == TOSTR_TIGHTNESS(締まり_普通))
CALL PRINT_SELECT_BUTTON("{名器}",     56, LOCALS == TOSTR_TIGHTNESS(締まり_名器))
CALL PRINT_SELECT_BUTTON("{きゅっきゅっ}", 57, LOCALS == TOSTR_TIGHTNESS(締まり_きゅっきゅっ))
CALL PRINT_SELECT_BUTTON("{きつきつ}", 58, LOCALS == TOSTR_TIGHTNESS(締まり_きつきつ))
CALL PRINT_SELECT_BUTTON("{ぎちぎち}", 59, LOCALS == TOSTR_TIGHTNESS(締まり_ぎちぎち))
PRINTL
PRINTL

PRINT 体格:
CALL PRINT_SELECT_BUTTON("{子供}", 70, TALENT:(ARG:0):体格 == 体格_子供)
CALL PRINT_SELECT_BUTTON("{小柄}", 71, TALENT:(ARG:0):体格 == 体格_小柄)
CALL PRINT_SELECT_BUTTON("{普通}", 72, TALENT:(ARG:0):体格 == 体格_普通)
CALL PRINT_SELECT_BUTTON("{長身}", 73, TALENT:(ARG:0):体格 == 体格_長身)
CALL PRINT_SELECT_BUTTON("{大柄}", 74, TALENT:(ARG:0):体格 == 体格_大柄)
CALL PRINT_SELECT_BUTTON("{巨大}", 75, TALENT:(ARG:0):体格 == 体格_巨大)
PRINTL
PRINT 体型:
CALL PRINT_SELECT_BUTTON("{痩せすぎ}", 80, TALENT:(ARG:0):体型 == 体型_痩せすぎ)
CALL PRINT_SELECT_BUTTON("{細身}", 81, TALENT:(ARG:0):体型 == 体型_細身)
CALL PRINT_SELECT_BUTTON("{スレンダー}", 82, TALENT:(ARG:0):体型 == 体型_スレンダー)
CALL PRINT_SELECT_BUTTON("{普通}", 83, TALENT:(ARG:0):体型 == 体型_普通)
CALL PRINT_SELECT_BUTTON("{グラマー}", 84, TALENT:(ARG:0):体型 == 体型_グラマー)
CALL PRINT_SELECT_BUTTON("{豊満}", 85, TALENT:(ARG:0):体型 == 体型_豊満)
CALL PRINT_SELECT_BUTTON("{肥満}", 86, TALENT:(ARG:0):体型 == 体型_肥満)
PRINTL
PRINTBUTTON "[スリーサイズ再生成]", 90
PRINTL
PRINTBUTTON "[スリーサイズ手動入力]", 91
PRINTL

PRINTL
PRINTL
PRINT 陰毛:
FOR L_CNT, -1, 陰毛_種類数
	CALL PRINT_SELECT_BUTTON(@"\{%GET_INMOU_NAME(L_CNT)%\}", 151 + L_CNT, TALENT:(ARG:0):陰毛目標値 == L_CNT)
NEXT
PRINTL
PRINT 腋毛:
FOR L_CNT, -1, 腋毛_種類数
	CALL PRINT_SELECT_BUTTON(@"\{%GET_ARMPIT_NAME(L_CNT)%\}", 171 + L_CNT, TALENT:(ARG:0):腋毛目標値 == L_CNT)
NEXT
PRINTL
PRINTL
CALL PRINT_TOGGLE_BUTTON("{美脚}", 20, TALENT:(ARG:0):美脚)
CALL PRINT_TOGGLE_BUTTON("{美尻}", 31, TALENT:(ARG:0):美尻)
PRINTL
PRINTL
PRINTBUTTON "[99] 完了", 99

REDRAW 1
INPUT
IF INRANGE(RESULT, 0, 4) && HAS_PENIS(ARG:0)
	CALL SET_PENISSIZE(ARG:0, RESULT - 2)
	CALL SET_BODYSIZE(ARG:0)
ELSEIF INRANGE(RESULT, 10, 16) && IS_FEMALE(ARG:0)
	CALL SET_BUSTSIZE(ARG:0, RESULT - 12)
	CFLAG:(ARG:0):妊娠時バストサイズ増加 = 0
ELSEIF INRANGE(RESULT, 100, 104)
	CALL SET_HIPSIZE(ARG:0, RESULT - 100 - 2)
	CALL SET_BODYSIZE(ARG:0)
ELSEIF RESULT == 20
	TALENT:(ARG:0):美脚 = !TALENT:(ARG:0):美脚
	CALL SET_BODYSIZE(ARG:0)
ELSEIF RESULT == 30
	TALENT:(ARG:0):美尻 = 0
	TALENT:(ARG:0):美脚 = 0
	CALL SET_BODYSIZE(ARG:0)
ELSEIF RESULT == 31
	TALENT:(ARG:0):美尻 = !TALENT:(ARG:0):美尻
	CALL SET_BODYSIZE(ARG:0)
ELSEIF INRANGE(RESULT, 40, 49) && HAS_VAGINA(ARG:0)
	TALENT:(ARG:0):Ｖ締まり = (RESULT - 40) * 100 + 50
ELSEIF INRANGE(RESULT, 50, 59)
	TALENT:(ARG:0):Ａ締まり = (RESULT - 50) * 100 + 50
ELSEIF RESULT == 65
	TALENT:(ARG:0):Ｖ締まり = 締まり_最低値
ELSEIF RESULT == 66
	TALENT:(ARG:0):Ａ締まり = 締まり_最低値
ELSEIF INRANGE(RESULT, 70, 75)
	TALENT:(ARG:0):体格 = RESULT - 70 - 2
	CALL SET_BODYSIZE(ARG:0)
ELSEIF INRANGE(RESULT, 80, 86)
	TALENT:(ARG:0):体型 = RESULT - 80 - 3
	CALL SET_BODYSIZE(ARG:0)
ELSEIF RESULT == 90
	CALL SET_BODYSIZE(ARG:0)
ELSEIF RESULT == 91
	CALL CHANGE_BODYSIZE(ARG:0)
ELSEIF INRANGE(RESULT, 150, 150 + 陰毛_種類数)
	TALENT:(ARG:0):陰毛現在値 = RESULT - 150 - 1
	TALENT:(ARG:0):陰毛目標値 = RESULT - 150 - 1
ELSEIF INRANGE(RESULT, 170, 170 + 腋毛_種類数)
	TALENT:(ARG:0):腋毛現在値 = RESULT - 170 - 1
	TALENT:(ARG:0):腋毛目標値 = RESULT - 170 - 1
ELSEIF RESULT == 99
	RETURN
ELSEIF RESULT == 2000
	CALL SHOW_CHARACTER_PORTRAIT_EDIT_MENU(ARG:0)
ELSEIF RESULT == 2001
	CALL SHOW_CHARACTER_KOJO_EDIT_MENU(ARG:0)
ENDIF

REDRAW 0
CLEARLINE LINECOUNT - FIRST_LINE
RESTART

;●危険日ずらし
@ITEM_EFFECT291(ARG:0)
PRINTFORML %ANAME(ARG:0)%の危険日をいつにしようか……
PRINTFORML 現在の危険日:{TALENT:(ARG:0):危険日}
PRINTFORML （0-4で入力、5期ごとに来ます）
$INPUT_LOOP
INPUT

IF !INRANGE(RESULT, 0, 4)
	CLEARLINE 1
	GOTO INPUT_LOOP
ENDIF

LOCAL = RESULT
TALENT:(ARG:0):危険日 = LOCAL

CALL COLOR_PRINTW(@"%ANAME(ARG:0)%の危険日が{LOCAL}になった！", カラー_注意)

;●避妊薬
@ITEM_EFFECT292(ARG:0)
PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%はしばらく妊娠しなくなった……
CFLAG:(ARG:0):避妊薬残ターン += 5
CALL CLEAR_CREAMPIE_HISTORY(LOCAL:0)

;●堕胎手術
@ITEM_EFFECT293(ARG:0)
IF IS_LOVER(ARG:0) && CFLAG:(ARG:0):子の父親 == GET_ID(MASTER)
	PRINTFORML %ANAME(ARG:0)%は%ANAME(MASTER)%との子を堕ろすことに抵抗を覚えているようだ……
	PRINTFORML 本当に手術を受けさせますか？
	CALL ASK_YN()
	IF RESULT == 1
		CALL GET_PRICE293
		MONEY += RESULT
		RETURN 0
	ENDIF
ENDIF

PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%に堕胎手術を受けさせた……
PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%は＜妊娠＞ではなくなった
;状況に応じて崩壊値が増えたりする処理をいれたい

;妊娠関係のフラグをクリア
SIF CFLAG:(ARG:0):行動不能状態 == 行動不能_臨月
	CFLAG:(ARG:0):行動不能状態 = 0
CFLAG:(ARG:0):妊娠期間 = 0
CFLAG:(ARG:0):子の父親 = 0
TALENT:(ARG:0):妊娠 = 0

;中出し履歴をクリア
CALL CLEAR_CREAMPIE_HISTORY(ARG:0)
IF CFLAG:(ARG:0):育児期間 == 0
	CALL RESET_MOTHER_STATE(ARG:0, 0)
ENDIF

IF IS_LOVER(ARG:0)
	PRINTFORML %ANAME(ARG:0)%はショックを受けているようだ……
	CFLAG:(ARG:0):好感度 -= CFLAG:(ARG:0):好感度 / 10
	CFLAG:(ARG:0):依存度 -= CFLAG:(ARG:0):依存度 / 10
ENDIF

;●主導操作の法
@ITEM_EFFECT294(ARG:0)
#DIM FIRST_LINE
#DIM 操作項目
#DIM 操作後値
FIRST_LINE = LINECOUNT
PRINTFORML %ANAME(ARG:0)%に主導操作を行う……
PRINTFORML [0] 昼主導度
PRINTFORML [1] 夜倒錯度
PRINTFORML [2] 夜主導度

INPUT

IF !INRANGE(RESULT, 0, 2)
	CLEARLINE LINECOUNT - FIRST_LINE
	RESTART
ENDIF

操作項目 = RESULT

PRINTFORML いくらにしようか……

IF GROUPMATCH(操作項目, 0, 2)
	PRINTFORML (-1000 ～ 1000で入力、範囲外でキャンセル)
ELSE
	PRINTFORML (0 ～ 1000で入力、範囲外でキャンセル)
ENDIF

INPUT

IF (GROUPMATCH(操作項目, 0, 2) && !INRANGE(RESULT, -1000, 1000)) || (操作項目 == 1 && !INRANGE(RESULT, 0, 1000))
	CLEARLINE LINECOUNT - FIRST_LINE
	RESTART
ENDIF

操作後値 = RESULT

SELECTCASE 操作項目
	CASE 0
		PRINTFORMW %ANAME(ARG:0)%の昼主導度が{操作後値}になりました
		ABL:(ARG:0):主導度Ｎ = 操作後値
	CASE 1
		PRINTFORMW %ANAME(ARG:0)%の夜倒錯度が{操作後値}になりました
		ABL:(ARG:0):倒錯度 = 操作後値
	CASE 2
		PRINTFORMW %ANAME(ARG:0)%の夜主導度が{操作後値}になりました
		ABL:(ARG:0):主導度Ｕ = 操作後値
ENDSELECT

;●太平要術の書
@ITEM_EFFECT141(ARG:0)
TALENT:(ARG:0):魔術師 = 1
PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%が<魔術知識>を身につけました

;●淫技大全
@ITEM_EFFECT142(ARG:0)
ABL:(ARG:0):性知識 = 5
PRINTFORMW %TOSTR_SPACE(6)%%ANAME(ARG:0)%の性知識が上昇しました(Lv5)


code:
;-------------------------------------------------
;アイテムに関する説明
;-------------------------------------------------
;櫛
@ITEM_EXPLANATION100
PRINTFORML %TOSTR_SPACE(6)%コマンド「櫛で梳かす」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%「髪を梳く」に比べて反発が少なく、好感度が少しだけ上がりやすい。

;鞭
@ITEM_EXPLANATION110
PRINTFORML %TOSTR_SPACE(6)%コマンド「鞭」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%「スパンキング」よりも多くの苦痛を与えられる。

;針
@ITEM_EXPLANATION111
PRINTFORML %TOSTR_SPACE(6)%コマンド「針」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%「鞭」よりもさらに多くの苦痛を与えられる。

;縄
@ITEM_EXPLANATION112
PRINTFORML %TOSTR_SPACE(6)%コマンド「縄」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%拘束プレイなどに使用する。

;浣腸
@ITEM_EXPLANATION113
PRINTFORML %TOSTR_SPACE(6)%コマンド「浣腸」「浣腸＆プラグ」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%※デフォルトではスカ関係のコマンドにフィルタが掛かっている
PRINTFORML %TOSTR_SPACE(6)%　使用する場合は「設定」の「コマンドフィルタ」からフィルタ設定を解除する必要がある

;口枷
@ITEM_EXPLANATION114
PRINTFORML %TOSTR_SPACE(6)%コマンド「口枷」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%拘束プレイなどに使用する。

;目隠し
@ITEM_EXPLANATION115
PRINTFORML %TOSTR_SPACE(6)%コマンド「目隠し」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%拘束プレイに使用する。

;鼻フック
@ITEM_EXPLANATION117
PRINTFORML %TOSTR_SPACE(6)%コマンド「鼻フック」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%拘束プレイに使用する。

;剃刀
@ITEM_EXPLANATION116
PRINTFORML %TOSTR_SPACE(6)%コマンド「体毛管理」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%好きなあの子の恥ずかしい毛を、思うがままにしてしまおう！

;淫具目録
@ITEM_EXPLANATION140
PRINTFORML %TOSTR_SPACE(6)%持っていると、非常に高度で淫らなアイテムが開発可能になる。

;太平要術の書
@ITEM_EXPLANATION141
PRINTFORML %TOSTR_SPACE(6)%古代文明の秘儀…という触れ込みのESP開発マニュアル。
PRINTFORML %TOSTR_SPACE(6)%使用した対象のキャラが、素質<魔術知識>を得る。
PRINTFORML %TOSTR_SPACE(6)%戦闘に魔術の能力が加味される他、触手を扱うことも可能になる。
PRINTFORML %TOSTR_SPACE(6)%ただし、触手を扱うにはそれ相応に高い性知識も必要。

;淫技大全
@ITEM_EXPLANATION142
PRINTFORML %TOSTR_SPACE(6)%使用した対象のキャラの性知識がLv5になる。
PRINTFORML %TOSTR_SPACE(6)%使用するにはそのキャラの性知識がLv4かつ性技がLv6以上必要。

;濁り酒→粗製ビール
@ITEM_EXPLANATION150
PRINTFORML %TOSTR_SPACE(6)%フードプリンター製の安価な合成酒。
PRINTFORML %TOSTR_SPACE(6)%その色と微妙な味から宇宙海賊の「下品なジョーク」の定番ネタになっている。
PRINTFORML %TOSTR_SPACE(6)%アルコール度数が低いため、十分に酔わせるにはそれなりの量が必要。
PRINTFORML %TOSTR_SPACE(6)%消耗品。

;清酒→粗製ワイン
@ITEM_EXPLANATION151
PRINTFORML %TOSTR_SPACE(6)%フードプリンター製の合成酒。
PRINTFORML %TOSTR_SPACE(6)%地球時代からの伝統に則り、多くの船乗りが水代わりに嗜んでいる。
PRINTFORML %TOSTR_SPACE(6)%粗製ビールに比べてアルコール度数が高い。
PRINTFORML %TOSTR_SPACE(6)%消耗品。

;葡萄酒→アストロ・フィズ
@ITEM_EXPLANATION152
PRINTFORML %TOSTR_SPACE(6)%広く流通しているインスタント・カクテルのシリーズ。
PRINTFORML %TOSTR_SPACE(6)%固形状態でパッケージされており、開封し衝撃を与えることで瞬時に液化する。
PRINTFORML %TOSTR_SPACE(6)%アルコール度数は低いものの、お酒に弱い人にも喜んでもらえる。
PRINTFORML %TOSTR_SPACE(6)%消耗品。

;麦酒→ピルスナー
@ITEM_EXPLANATION153
PRINTFORML %TOSTR_SPACE(6)%麦芽とホップから作られる本物の発酵ビール。
PRINTFORML %TOSTR_SPACE(6)%アルコール度数はやや低めだが、お酒好きにも満足してもらえる品。
PRINTFORML %TOSTR_SPACE(6)%消耗品。

;エインズの露
@ITEM_EXPLANATION154
PRINTFORML %TOSTR_SPACE(6)%高等級のエインズの実から作られた貴重な飲み物。
PRINTFORML %TOSTR_SPACE(6)%誰にプレゼントしても喜んでもらえるが、子供や幼い性格の相手には特に効果が高い。
PRINTFORML %TOSTR_SPACE(6)%消耗品。

;ローション
@ITEM_EXPLANATION160
PRINTFORML %TOSTR_SPACE(6)%コマンド「ローション」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%使用すると大幅に潤滑が上がるため、挿入前に使用するとお互い気持ち良くなれるかも。
PRINTFORML %TOSTR_SPACE(6)%消耗品。

;利尿剤
@ITEM_EXPLANATION161
PRINTFORML %TOSTR_SPACE(6)%コマンド「利尿剤」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%使用すると尿意が溜まっていき、放尿プレイなどを複数回行うことが出来るようになる。
PRINTFORML %TOSTR_SPACE(6)%消耗品。
PRINTFORML %TOSTR_SPACE(6)%※デフォルトでは放尿関係のコマンドにフィルタが掛かっている
PRINTFORML %TOSTR_SPACE(6)%　使用する場合は「設定」の「コマンドフィルタ」からフィルタ設定を解除する必要がある

;コンドーム
@ITEM_EXPLANATION162
PRINTFORML %TOSTR_SPACE(6)%コマンド「コンドーム」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%言わずと知れた避妊具。計画的な子作りをしよう。
PRINTFORML %TOSTR_SPACE(6)%消耗品。一度付けると（自分で外さない限り）交流終了までずっと保つ親切設計。

;身代わり人形
@ITEM_EXPLANATION170
PRINTFORML %TOSTR_SPACE(6)%主人公にクールタイムがつくとき、砕け散って肩代わりする。
PRINTFORML %TOSTR_SPACE(6)%持っておくと安心だが、既についているクールタイムは無効化できない。
PRINTFORML %TOSTR_SPACE(6)%消耗品。

;ローター
@ITEM_EXPLANATION200
PRINTFORML %TOSTR_SPACE(6)%コマンド「ローター」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%使用すると、クリトリスに大きな快感を与えることができる。

;バイブ
@ITEM_EXPLANATION201
PRINTFORML %TOSTR_SPACE(6)%コマンド「バイブ」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%使用すると、ヴァギナに継続的に快感を与えることができる。

;アナルバイブ
@ITEM_EXPLANATION202
PRINTFORML %TOSTR_SPACE(6)%コマンド「アナルバイブ」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%使用すると、アナルに継続的に快感を与えることができる。

;ペニスバンド
@ITEM_EXPLANATION203
PRINTFORML %TOSTR_SPACE(6)%コマンド「ペニバン装着」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%装着後は女性であっても他の相手のヴァギナやアナルに挿入が可能になる。

;オナホール
@ITEM_EXPLANATION204
PRINTFORML %TOSTR_SPACE(6)%コマンド「オナホコキ」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%使用すると、ペニスに大きな快感を与えることができる。

;クリキャップ
@ITEM_EXPLANATION206
PRINTFORML %TOSTR_SPACE(6)%コマンド「クリキャップ」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%使用すると、クリトリスに継続的に快感を与えることができる。

;ニプルキャップ
@ITEM_EXPLANATION207
PRINTFORML %TOSTR_SPACE(6)%コマンド「ニプルキャップ」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%使用すると、バストに継続的に快感を与えることができる。

;双頭バイブ
@ITEM_EXPLANATION208
PRINTFORML %TOSTR_SPACE(6)%コマンド「双頭バイブ」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%使用すると、女性同士で結合し互いにヴァギナへの快感を得ることができる。

;拡張バルーン
@ITEM_EXPLANATION209
PRINTFORML %TOSTR_SPACE(6)%コマンド「Ｖ拡張バルーン」「Ａ拡張バルーン」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%使用すると、ヴァギナやアナルへの拡張経験を得ることができる。
PRINTFORML %TOSTR_SPACE(6)%感度Lvや潤滑が不十分な場合、苦痛が大きいため注意。

;触手部屋
@ITEM_EXPLANATION210
PRINTFORML %TOSTR_SPACE(6)%拠点コマンドのメニューに「触手部屋」が追加される。
PRINTFORML %TOSTR_SPACE(6)%管理者を設定することで、捕虜の「触手調教」および「触手処刑」が可能になる。

;スキマ
@ITEM_EXPLANATION211
PRINTFORML %TOSTR_SPACE(6)%ボーダー社製の個人用超小型簡易ワームホール。
PRINTFORML %TOSTR_SPACE(6)%本来は荷物を手軽に保管するためのものであるが、
PRINTFORML %TOSTR_SPACE(6)%開発製造元の度重なる注意喚起にもかかわらず
PRINTFORML %TOSTR_SPACE(6)%目的外使用に伴うトラブルの報告が絶えない。
PRINTFORML %TOSTR_SPACE(6)%コマンド「セルフ挿入」「セルフＡ挿入」「遠隔調教」が実行可能になる。

;首輪
@ITEM_EXPLANATION212
PRINTFORML %TOSTR_SPACE(6)%ペット用の首輪。リードつき。
PRINTFORML %TOSTR_SPACE(6)%コマンド「露出プレイ」が実行可能になる。

;ニードルアンドインク
@ITEM_EXPLANATION213
PRINTFORML %TOSTR_SPACE(6)%刺青用の細い針。インクつき。
PRINTFORML %TOSTR_SPACE(6)%コマンド「タトゥー」が実行可能になる。

;マジック
@ITEM_EXPLANATION214
PRINTFORML %TOSTR_SPACE(6)%いわゆる油性ペン。数色セット。極太。
PRINTFORML %TOSTR_SPACE(6)%コマンド「身体に落書き」が実行可能になる。

;ビデオカメラ
@ITEM_EXPLANATION215
PRINTFORML %TOSTR_SPACE(6)%ビデオカメラ。
PRINTFORML %TOSTR_SPACE(6)%コマンド「ビデオ撮影」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%ただしテープが別途必要。

;搾乳機
@ITEM_EXPLANATION216
PRINTFORML %TOSTR_SPACE(6)%コマンド「搾乳機」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%使用すると、バストに継続的に快感を与えることができる。
PRINTFORML %TOSTR_SPACE(6)%大体「ニプルキャップ」と同じ。

;催眠術
@ITEM_EXPLANATION217
PRINTFORML %TOSTR_SPACE(6)%あらゆる者を従えうる催眠術を習得する。
PRINTFORML %TOSTR_SPACE(6)%コマンド「催眠術」などが実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%ただし対象に何度も術を行使し、慣らしていく必要がある。

;おもちゃの注射器
@ITEM_EXPLANATION218
PRINTFORML %TOSTR_SPACE(6)%おもちゃの注射器。おもちゃなので医療行為には使えない。
PRINTFORML %TOSTR_SPACE(6)%コマンド「自家受精」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%実行には対象が調教中にゴムに射精している必要がある。

;ペニスリボン
@ITEM_EXPLANATION219
PRINTFORML %TOSTR_SPACE(6)%フリルのついた紐状リボン。
PRINTFORML %TOSTR_SPACE(6)%コマンド「ペニスリボン」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%装着中、対象は射精できなくなる。

;尿道ブジー
@ITEM_EXPLANATION220
PRINTFORML  %TOSTR_SPACE(6)%尿道に挿入する医療機器。
PRINTFORML  %TOSTR_SPACE(6)%コマンド「尿道ブジー」が実行可能になる。
PRINTFORML  %TOSTR_SPACE(6)%使用するにはそのキャラの性知識がLv5必要。

;醸造酒→ライスワイン
@ITEM_EXPLANATION250
PRINTFORML %TOSTR_SPACE(6)%東洋で広く作られていた歴史の長い穀物醸造酒。地球産の高級品。
PRINTFORML %TOSTR_SPACE(6)%アルコール度数は高めだが口あたりが良く、料理用途の需要も多い。
PRINTFORML %TOSTR_SPACE(6)%消耗品。

;果実酒→ブランデー
@ITEM_EXPLANATION251
PRINTFORML %TOSTR_SPACE(6)%果実酒を蒸留・熟成させた香り高い酒。地球産の高級品。
PRINTFORML %TOSTR_SPACE(6)%蒸留酒だが、アルコール度数はそれなりに調整されている。
PRINTFORML %TOSTR_SPACE(6)%菓子類の材料にもなり、酒好きにもそれ以外にも幅広く楽しんでもらえる。
PRINTFORML %TOSTR_SPACE(6)%消耗品。

;日本酒→ラム酒
@ITEM_EXPLANATION252
PRINTFORML %TOSTR_SPACE(6)%帆船時代の船乗りたちが愛したサトウキビ由来の蒸留酒。地球産の高級品。
PRINTFORML %TOSTR_SPACE(6)%海軍や海賊にまつわる多くの伝説に登場するため、あやかって愛飲する宇宙船乗りも多い。
PRINTFORML %TOSTR_SPACE(6)%アルコール度数が非常に高く、酒好きにはたまらない逸品。
PRINTFORML %TOSTR_SPACE(6)%消耗品。
PRINTFORML %TOSTR_SPACE(6)%※このアイテムの購入ルートを確立する（開発する）ことが、
PRINTFORML %TOSTR_SPACE(6)%　いくつかの酒類の開発条件となっている。

;蒸留酒→ウォッカ
@ITEM_EXPLANATION253
PRINTFORML %TOSTR_SPACE(6)%蒸留酒の中でも非常に高いアルコール度数を持つ酒。地球産の高級品。
PRINTFORML %TOSTR_SPACE(6)%濾過と蒸留を繰り返すことでほぼ無味無臭のエタノールとなっており、
PRINTFORML %TOSTR_SPACE(6)%安酒では酔えない酒豪でも酩酊することができる。
PRINTFORML %TOSTR_SPACE(6)%消耗品。

;媚薬
@ITEM_EXPLANATION260
PRINTFORML %TOSTR_SPACE(6)%飲むとたちまち発情してしまう薬。
PRINTFORML %TOSTR_SPACE(6)%使用すると欲情と感度が上昇する。
PRINTFORML %TOSTR_SPACE(6)%ただし、よほど懇意の関係でないと反感を持たれてしまうため注意が必要。
PRINTFORML %TOSTR_SPACE(6)%消耗品。

;排卵誘発剤
@ITEM_EXPLANATION261
PRINTFORML %TOSTR_SPACE(6)%女性の排卵を促し、妊娠確率を上げる薬。
PRINTFORML %TOSTR_SPACE(6)%十分な信頼関係にある相手以外に使用すると反感を持たれてしまうため注意が必要。
PRINTFORML %TOSTR_SPACE(6)%消耗品。

;メイガスの夜
@ITEM_EXPLANATION262
PRINTFORML %TOSTR_SPACE(6)%一時的に性欲と体力を増強する薬。
PRINTFORML %TOSTR_SPACE(6)%使用すると、素質<絶倫>と同等の効果を得ることができる。
PRINTFORML %TOSTR_SPACE(6)%消耗品。

;麻薬
@ITEM_EXPLANATION263
PRINTFORML %TOSTR_SPACE(6)%違法ドラッグの中でも特に向精神性が強いもの。服用者の理性を破壊し、己の意のままにするために用いる。
PRINTFORML %TOSTR_SPACE(6)%重篤な中毒症状を引き起こし、服用者を廃人にしてしまう可能性があるので注意が必要。
PRINTFORML %TOSTR_SPACE(6)%消耗品。

;ピアス
@ITEM_EXPLANATION264
PRINTFORML %TOSTR_SPACE(6)%シンプルなスタッドからリングやチェーンまで。
PRINTFORML %TOSTR_SPACE(6)%どの部位にも飾れるピアスのセット。

;桃源香
@ITEM_EXPLANATION265
PRINTFORML %TOSTR_SPACE(6)%使うと周囲に催淫作用のある桃色の薄い霧が立ち込める御香。
PRINTFORML %TOSTR_SPACE(6)%媚薬とほぼ同様の効果をその場に居る全員に与えるが、効果自体は媚薬より低い。
PRINTFORML %TOSTR_SPACE(6)%懇意の関係でないと反感を持たれてしまう。ちなみに、屋外でも問題なく使用可能。
PRINTFORML %TOSTR_SPACE(6)%消耗品。

;ビデオテープ
@ITEM_EXPLANATION266
PRINTFORML %TOSTR_SPACE(6)%コマンド「ビデオ撮影」が実行可能になる。
PRINTFORML %TOSTR_SPACE(6)%もちろんカメラが別途必要。
PRINTFORML %TOSTR_SPACE(6)%消耗品。

;不思議な懐中時計
@ITEM_EXPLANATION267
PRINTFORML %TOSTR_SPACE(6)%ごく狭い範囲の時間の流れを加速させる懐中時計型デバイス。
PRINTFORML %TOSTR_SPACE(6)%「会いに行く」や「捕虜の調教」、育児中に使え、調教時間が長くなる。
PRINTFORML %TOSTR_SPACE(6)%虚静止質量を持つ封入物質が極めて不安定であるため、使い捨て。

;ふたなり薬
@ITEM_EXPLANATION280
PRINTFORML %TOSTR_SPACE(6)%対象となるキャラを選んで使用する。
PRINTFORML %TOSTR_SPACE(6)%ふたなりと非ふたなりを切り替える効果があり、それぞれ、
PRINTFORML %TOSTR_SPACE(6)%「女性」の場合は「女ふたなり」に、「女ふたなり」の場合は「女性」に、
PRINTFORML %TOSTR_SPACE(6)%「男性」の場合は「男ふたなり」に、「男ふたなり」の場合は「男性」になる。

;性転換薬
@ITEM_EXPLANATION281
PRINTFORML %TOSTR_SPACE(6)%対象となるキャラを選んで使用する。
PRINTFORML %TOSTR_SPACE(6)%対象が「女性」の場合は「男性」に、「男性」の場合は「女性」になる。

;獣変化の秘薬
@ITEM_EXPLANATION283
PRINTFORML %TOSTR_SPACE(6)%対象となるキャラを選んで使用する。
PRINTFORML %TOSTR_SPACE(6)%使用すると「動物耳」「しっぽ」が生え、快Ｖのソース・快Ｐのソース・中出しの効果が増大する。
PRINTFORML %TOSTR_SPACE(6)%再度使用すると元に戻る。
PRINTFORML %TOSTR_SPACE(6)%元から「動物耳」または「しっぽ」があるキャラには使用できない。

;再生の秘薬
@ITEM_EXPLANATION284
PRINTFORML %TOSTR_SPACE(6)%対象となるキャラを選んで使用する。
PRINTFORML %TOSTR_SPACE(6)%東方キャラに使用すると、体力や素質などを選択して初期化できる。
PRINTFORML %TOSTR_SPACE(6)%デフォルトで処女や童貞でないキャラの場合、別途処女や童貞にすることができる。
PRINTFORML %TOSTR_SPACE(6)%子供やランダムキャラに使用すると、デイリーイベントや特殊勢力による調教で得た素質、および烙印が消える。
PRINTFORML %TOSTR_SPACE(6)%また、Ｃ感、Ｖ感、Ａ感、Ｂ感、Ｍ感、およびそれに付随する経験値が0になる。

;犬
@ITEM_EXPLANATION285
PRINTFORML %TOSTR_SPACE(6)%%ANAME(MASTER)%のために特別に訓練された犬。
PRINTFORML %TOSTR_SPACE(6)%軍用犬ではないので戦いは不得手だが、代わりに「特別なこと」に非常に長けている。
PRINTFORML %TOSTR_SPACE(6)%……そのせいか、どことなく目つきがぎらついているのはご愛敬。

;豚
@ITEM_EXPLANATION286
PRINTFORML %TOSTR_SPACE(6)%%ANAME(MASTER)%のために特別に訓練された豚。
PRINTFORML %TOSTR_SPACE(6)%食用ではないので食えないが、代わりに「特別なこと」に非常に長けている。
PRINTFORML %TOSTR_SPACE(6)%……そのせいか、どことなく目つきがぎらついているのはご愛敬。

;永久脱毛剤
@ITEM_EXPLANATION287
PRINTFORML %TOSTR_SPACE(6)%陰毛用。効果は読んで字のごとく。
PRINTFORML %TOSTR_SPACE(6)%「永久」という文字が示すとおり、二度と生えてこなくなるのでよく考えて使用のこと。

;入墨除去手術
@ITEM_EXPLANATION288
PRINTFORML %TOSTR_SPACE(6)%読んで字のごとくの手術。
PRINTFORML %TOSTR_SPACE(6)%本来取れないものを取ってしまう処置なのもあり、高額。

;穴トレ
@ITEM_EXPLANATION289
PRINTFORML %TOSTR_SPACE(6)%穴を鍛えるトレーニング。緩んでしまった穴に締まりを取り戻させる。
PRINTFORML %TOSTR_SPACE(6)%拡張されすぎて戻らなくなった穴でも一定の効果をあげられるのが特徴。

;美容手術
@ITEM_EXPLANATION290
PRINTFORML %TOSTR_SPACE(6)%体を作り替える手術。染髪や散髪もできる。
PRINTFORML %TOSTR_SPACE(6)%望むままのあなたに。

;危険日ずらし
@ITEM_EXPLANATION291
PRINTFORML %TOSTR_SPACE(6)%服用者の危険日をずらす薬。
PRINTFORML %TOSTR_SPACE(6)%皆まとめて孕ませたいあなたに。

;避妊薬
@ITEM_EXPLANATION292
PRINTFORML %TOSTR_SPACE(6)%5期のあいだ、中出しされても妊娠しなくなる。

;堕胎手術
@ITEM_EXPLANATION293
PRINTFORML %TOSTR_SPACE(6)%お腹の中の子供を堕ろす。
PRINTFORML %TOSTR_SPACE(6)%本当にそれでいいのか？

;主導操作の法
@ITEM_EXPLANATION294
PRINTFORML %TOSTR_SPACE(6)%主導度・倒錯度を操作する。
PRINTFORML %TOSTR_SPACE(6)%高く/低くなりすぎて戻せなくなったときに。

;馬
@ITEM_EXPLANATION295
PRINTFORML %TOSTR_SPACE(6)%%ANAME(MASTER)%のために特別に訓練された馬。
PRINTFORML %TOSTR_SPACE(6)%軍馬としては全く使えないが、代わりに「特別なこと」に非常に長けている。
PRINTFORML %TOSTR_SPACE(6)%……そのせいか、どことなく目つきがぎらついているのはご愛敬。

;猿
@ITEM_EXPLANATION296
PRINTFORML %TOSTR_SPACE(6)%%ANAME(MASTER)%のために特別に訓練された猿。
PRINTFORML %TOSTR_SPACE(6)%戦力にはならないし芸もできないが、「特別なこと」に非常に長けている。
PRINTFORML %TOSTR_SPACE(6)%……そのせいか、どことなく目つきがぎらついているのはご愛敬。

;念導ビット
@ITEM_EXPLANATION300
PRINTFORML %TOSTR_SPACE(6)%微弱な念導波で浮遊・護衛を務める小型思考戦機。
PRINTFORML %TOSTR_SPACE(6)%その丸いデザインから若い女子にもペットロボットとしての人気がある。
PRINTFORML %TOSTR_SPACE(6)%……戦闘能力は護身用の域を出ないが。

;思考戦車
@ITEM_EXPLANATION301
PRINTFORML %TOSTR_SPACE(6)%各国で使用されていた型落ちの思考戦車。
PRINTFORML %TOSTR_SPACE(6)%とはいえ、個人が所有する戦力としては申し分のない性能を持つ。
PRINTFORML %TOSTR_SPACE(6)%

;Ｄ・ドロイド
@ITEM_EXPLANATION302
PRINTFORML %TOSTR_SPACE(6)%ぱっと見、人間と大差ない見た目をした身体戦用の思考戦機。
PRINTFORML %TOSTR_SPACE(6)%個体によっては人間種と変わらない市民権を持つものもいる為、扱いには注意したい。
PRINTFORML %TOSTR_SPACE(6)%開発できるものはそうではないが。

;サーベラス
@ITEM_EXPLANATION303
PRINTFORML %TOSTR_SPACE(6)%旧時代の冥府の番犬の名を冠する護衛用思考戦機。
PRINTFORML %TOSTR_SPACE(6)%優れた戦闘能力は不埒者の接近を許さず、下手な思考戦車すら返り討ちにする。
PRINTFORML %TOSTR_SPACE(6)%エグゼクティブの中にはセクサロイドモジュールを組み込む者もいるとかいないとか。

;ターロス
@ITEM_EXPLANATION304
PRINTFORML %TOSTR_SPACE(6)%バスティオン・コロッサスxiv思考戦機の簡易量産型、とも言える最強の思考戦機。
PRINTFORML %TOSTR_SPACE(6)%不要な機能・モジュールを取り除いた結果、傑作機と呼ぶにふさわしい評価を得るに至った。
PRINTFORML %TOSTR_SPACE(6)%ただし、最大の問題であったお値段だけはどうにもならなかった。


code:
;-------------------------------------------------
;アイテム開発イベント
;-------------------------------------------------
@ITEM_DEVELOPMENT
CALL SINGLE_DRAWLINE
PRINTFORML アイテム開発報告
CALL COLOR_LINE
FOR LOCAL:0, 200, 305
	IF ITEMTIME:(LOCAL:0) >= 1
		IF ITEMTIME:(LOCAL:0) >= ITEMTERM:(LOCAL:0)
			ITEMTIME:(LOCAL:0) = 0
			IF LOCAL:0 < 280
				ITEM:(LOCAL:0) ++
			ENDIF
			IF LOCAL:0 >= 250
				ITEMSALES:(LOCAL:0) = 1
			ENDIF
			SETCOLOR カラー_注意
			PRINTFORMW 『%ITEMNAME:(LOCAL:0)%』が完成しました！
			RESETCOLOR
		ELSE
			ITEMTIME:(LOCAL:0) ++
		ENDIF
	ENDIF
NEXT

;-------------------------------------------------
;アイテムの開発期間を設定(ニューゲーム・ロード時に呼び出される)
;-------------------------------------------------
@SET_ITEMTERM
ITEMTERM:200 = 1
ITEMTERM:201 = 2
ITEMTERM:202 = 3
ITEMTERM:203 = 1
ITEMTERM:204 = 2
ITEMTERM:206 = 2
ITEMTERM:207 = 2
ITEMTERM:208 = 1
ITEMTERM:209 = 2
ITEMTERM:210 = 3
ITEMTERM:211 = 4
ITEMTERM:212 = 1
ITEMTERM:213 = 2
ITEMTERM:214 = 2
ITEMTERM:215 = 2
ITEMTERM:216 = 2
ITEMTERM:217 = 5
ITEMTERM:218 = 2
ITEMTERM:219 = 3
ITEMTERM:218 = 3
ITEMTERM:219 = 10
ITEMTERM:220 = 5
ITEMTERM:240 = 2
ITEMTERM:241 = 2
ITEMTERM:242 = 2
ITEMTERM:243 = 1
ITEMTERM:244 = 1
ITEMTERM:245 = 1
ITEMTERM:250 = 3
ITEMTERM:251 = 2
ITEMTERM:252 = 8
ITEMTERM:253 = 12
ITEMTERM:260 = 1
ITEMTERM:261 = 1
ITEMTERM:262 = 2
ITEMTERM:263 = 2
ITEMTERM:264 = 2
ITEMTERM:265 = 2
ITEMTERM:266 = 2
ITEMTERM:267 = 2
ITEMTERM:280 = 2
ITEMTERM:281 = 2
ITEMTERM:282 = 2
ITEMTERM:283 = 2
ITEMTERM:284 = 4
ITEMTERM:285 = 3
ITEMTERM:286 = 3
ITEMTERM:287 = 3
ITEMTERM:288 = 5
ITEMTERM:289 = 2
ITEMTERM:290 = 2
ITEMTERM:291 = 2
ITEMTERM:292 = 2
ITEMTERM:293 = 5
ITEMTERM:294 = 3
ITEMTERM:295 = 3
ITEMTERM:296 = 3

ITEMTERM:300 = 50
ITEMTERM:301 = 100
ITEMTERM:302 = 50
ITEMTERM:303 = 150
ITEMTERM:304 = 180

;-------------------------------------------------
;開発アイテムARG:0の真の購入価格を取得
;-------------------------------------------------
@GET_PRICE(ARG:0)
RESULT = ITEMPRICE:(ARG:0)
TRYCALLFORM GET_PRICE{ARG:0}
RETURN RESULT

;-------------------------------------------------
;開発アイテムの購入価格
;-------------------------------------------------
;●ライスワイン
@GET_PRICE250
RETURN 3000

;●ブランデー
@GET_PRICE251
RETURN 2000

;●ラム酒
@GET_PRICE252
RETURN 4000

;●ウォッカ
@GET_PRICE253
RETURN 5000

;●媚薬
@GET_PRICE260
RETURN 2000

;●排卵誘発剤
@GET_PRICE261
RETURN 3000

;●メイガスの夜
@GET_PRICE262
RETURN 3000

;●麻薬
@GET_PRICE263
RETURN 10000

;●ピアス
@GET_PRICE264
RETURN 7000

;●桃源香
@GET_PRICE265
RETURN 3500

;●ビデオテープ
@GET_PRICE266
RETURN 1000

;●不思議な懐中時計
@GET_PRICE267
RETURN 5000

;●ふたなり薬
@GET_PRICE280
RETURN 30000

;●性転換薬
@GET_PRICE281
RETURN 30000

;●獣変化の秘薬
@GET_PRICE283
RETURN 40000

;●再生の秘薬
@GET_PRICE284
RETURN 100000

;●犬
@GET_PRICE285
RETURN 30000

;●豚
@GET_PRICE286
RETURN 30000

;永久脱毛剤
@GET_PRICE287
RETURN 50000

;タトゥー除去手術
@GET_PRICE288
RETURN 100000

;穴トレ
@GET_PRICE289
RETURN 50000

;美容手術
@GET_PRICE290
RETURN 50000

;危険日ずらし
@GET_PRICE291
RETURN 20000

;避妊薬
@GET_PRICE292
RETURN 20000

;堕胎薬
@GET_PRICE293
RETURN 50000

;主導半減法
@GET_PRICE294
RETURN 20000

;馬
@GET_PRICE295
RETURN 50000

;猿
@GET_PRICE296
RETURN 50000

;念導ビット
@GET_PRICE300
RETURN 100000

;旧式思考戦車
@GET_PRICE301
RETURN 100000

;デュエル・ドロイド
@GET_PRICE302
RETURN 100000

;サーベラス
@GET_PRICE303
RETURN 100000

;ターロス
@GET_PRICE304
RETURN 100000
;-------------------------------------------------
;開発アイテムの開発条件
;-------------------------------------------------
;●アナルバイブ
@ITEM_ABLE202
;バイブを開発済み
IF ITEM:バイブ >= 1
	RETURN 1
ENDIF
RETURN 0

;●クリキャップ
@ITEM_ABLE206
;ローターを開発済み
IF ITEM:ローター >= 1
	RETURN 1
ENDIF
RETURN 0

;●ニプルキャップ
@ITEM_ABLE207
;ローターを開発済み
IF ITEM:ローター >= 1
	RETURN 1
ENDIF
RETURN 0

;●双頭バイブ
@ITEM_ABLE208
;ペニスバンドを開発済み
IF ITEM:ペニスバンド >= 1
	RETURN 1
ENDIF
RETURN 0

;●触手部屋
@ITEM_ABLE210
;触手部屋の管理が可能なキャラが必要
FOR LOCAL:0, 0, CHARANUM
	IF CFLAG:(LOCAL:0):所属 == CFLAG:MASTER:所属 && CFLAG:(LOCAL:0):捕虜先 == 0 && TALENT:(LOCAL:0):魔術師 && (ABL:(LOCAL:0):触手 >= 3 || LOCAL:0 == MASTER)
		RETURN 1
	ENDIF
NEXT
RETURN 0

;●遠隔通信用スキマ
@ITEM_ABLE211
;淫具目録を持っている
IF ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

;●首輪
@ITEM_ABLE212
;淫具目録を持っている
IF ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

;●ニードルアンドインク
@ITEM_ABLE213
;淫具目録を持っている
IF ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

;搾乳機
@ITEM_ABLE216
;ニプルキャップを開発済み
IF ITEM:ニプルキャップ >= 1
	RETURN 1
ENDIF
RETURN 0

;●催眠術
@ITEM_ABLE217
;淫具目録を持っており、主人公が魔術知識もち
IF ITEM:淫具目録 && TALENT:MASTER:魔術師
	RETURN 1
ENDIF
RETURN 0

;●おもちゃの注射器
@ITEM_ABLE218
;淫具目録を持っている
IF ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

;●ペニスリボン
@ITEM_ABLE219
;淫具目録を持っている&ふたなり薬開発済み
IF ITEM:淫具目録 && ITEMSALES:ふたなり薬
	RETURN 1
ENDIF
RETURN 0

;●尿道カテーテル
@ITEM_ABLE220
;淫具目録を持っている
IF ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

;●ブランデー
@ITEM_ABLE251
;ラム酒を開発済み
IF ITEMSALES:ラム酒
	RETURN 1
ENDIF
RETURN 0

;●ウォッカ
@ITEM_ABLE253
;ラム酒を開発済み
IF ITEMSALES:ラム酒
	RETURN 1
ENDIF
RETURN 0

;●メイガスの夜
@ITEM_ABLE262
;媚薬を開発済み
IF ITEMSALES:媚薬
	RETURN 1
ENDIF
RETURN 0

;●麻薬
@ITEM_ABLE263
;淫具目録を持っている
IF ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

;●ピアス
@ITEM_ABLE264
;淫具目録を持っている
IF ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

;●桃源香
@ITEM_ABLE265
;媚薬を開発済み、且つ淫具目録を持っている
IF ITEMSALES:媚薬 && ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

;●懐中時計
@ITEM_ABLE267
;淫具目録を持っており、主人公が魔術知識もち
IF ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

;●ふたなり薬
@ITEM_ABLE280
;淫具目録を持っている
IF ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

;●性転換薬
@ITEM_ABLE281
;淫具目録を持っている
IF ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

;●獣変化の秘薬
@ITEM_ABLE283
;淫具目録を持っている
IF ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

;●再生の秘薬
@ITEM_ABLE284
;ふたなり、性転換、獣変化のうち２つ以上を開発済み
IF (ITEMSALES:ふたなり薬 != 0) + (ITEMSALES:性転換薬 != 0) + (ITEMSALES:獣変化の秘薬 != 0) >= 2
	RETURN 1
ENDIF

;犬と豚
@ITEM_ABLE285
;淫具目録を持っている
IF ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

@ITEM_ABLE286
;淫具目録を持っている
IF ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

;永久脱毛剤
@ITEM_ABLE287
;ふたなり、性転換、獣変化のうち２つ以上を開発済み
IF (ITEMSALES:ふたなり薬 != 0) + (ITEMSALES:性転換薬 != 0) + (ITEMSALES:獣変化の秘薬 != 0) >= 2
	RETURN 1
ENDIF
RETURN 0

;タトゥー除去手術
@ITEM_ABLE288
;ニードル＆インクを所持
IF ITEM:刺青針
	RETURN 1
ENDIF
RETURN 0

;穴トレ
@ITEM_ABLE289
;淫具目録を持っている
IF ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

;美容
@ITEM_ABLE290
;淫具目録を持っている
RETURN 1

;危険日ずらし
@ITEM_ABLE291
;淫具目録を持っていて、排卵誘発剤開発済み
IF ITEM:淫具目録 && ITEMSALES:排卵誘発剤
	RETURN 1
ENDIF
RETURN 0

;避妊薬
@ITEM_ABLE292
RETURN 1

;堕胎薬
@ITEM_ABLE293
IF ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

;能動受動
@ITEM_ABLE294
IF ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

;馬
@ITEM_ABLE295
;淫具目録を持っている
IF ITEM:淫具目録
	RETURN 1
ENDIF
RETURN 0

;猿
@ITEM_ABLE296
;淫具目録を持っており、犬と豚開発済み
IF ITEM:淫具目録 && ITEMSALES:犬 && ITEMSALES:豚
	RETURN 1
ENDIF
RETURN 0


code:
;※休憩は特殊なメニューでメニューボタンの表示位置を固定している
;　番号を変える場合は@COLUMN_LEFT_MENU_SHOWを確認する必要あり
;-------------------------------------------------
;「休憩」の名称
;-------------------------------------------------
@SHOP_LIFE_NAME81
RESULTS:0 '= "休憩"

;-------------------------------------------------
;「休憩」の選択可否
;-------------------------------------------------
@SHOP_LIFE_CHECK81
SIF CFLAG:MASTER:捕虜先
	RETURN 0
RETURN 1

;-------------------------------------------------
;「休憩」の左カラムメニューの入力処理
;-------------------------------------------------
@SHOP_LIFE_EVENTBUY81
RESULT = 1
LINES_SHOP = LINECOUNT
CALL SHOP_REST
SHOP_TIME = CALC_SHOP_TIME()
JUMP FL_TURNEND

;-------------------------------------------------
;「休憩」の右カラムオフ判定
;-------------------------------------------------
@SHOP_LIFE_EVENTBUY_COLUMN_RIGHT_OFF_CHECK81

;-------------------------------------------------
;「休憩」の処理
;-------------------------------------------------
;休憩を選択したときの余剰行動回数消費
@SHOP_REST
#DIM 余剰

FLAG:夜這い = 0

;クリアフラグ立ってたらなし
SIF FLAG:クリアフラグ
	RETURN 0

余剰 = CALC_SHOP_TIME() - SHOP_TIME
CALL SINGLE_DRAWLINE
SELECTCASE RAND:100
	CASE IS < 40
		PRINTFORMW 余った行動回数で訓練を行った……
		SELECTCASE RAND:6
			CASE 0
				LOCAL = GETNUM(EXP, "身体経験値")
			CASE 1
				LOCAL = GETNUM(EXP, "知識経験値")
			CASE 2
				LOCAL = GETNUM(EXP, "器用経験値")
			CASE 3
				LOCAL = GETNUM(EXP, "社交経験値")
			CASE 4
				LOCAL = GETNUM(EXP, "歌唱経験値")
			CASE 5
				LOCAL = GETNUM(EXP, "料理経験値")
		ENDSELECT

		CALL PRINT_ADD_EXP(MASTER, EXPNAME:LOCAL, LIMIT(余剰, 1, 5), 1)

		CALL TRAIN_AUTO_ABLUP(MASTER)
		WAIT
	CASE IS < 70
		PRINTFORMW 余った行動回数で仲間と交友を深めた……
		FOR LOCAL, 1, CHARANUM
			IF CFLAG:LOCAL:所属 == CFLAG:MASTER:所属 && !CFLAG:LOCAL:捕虜先
				CALL CHANGE_RELATION_O_TO_O(LOCAL, MASTER, MIN(余剰, 5), MAX(-余剰, -5))
				CALL CHANGE_RELATION_O_TO_O(MASTER, LOCAL, MIN(余剰, 5), MAX(-余剰, -5))
			ENDIF
		NEXT
	CASEELSE
		LOCAL = LIMIT(余剰 / 2, 1, 5) * 500
		PRINTFORMW 余った行動回数で小遣いを稼いだ……
		PRINTFORM 金
		CALL COLOR_PRINT(@"{LOCAL}", カラー_注意)
		PRINTFORMW を手に入れた
		MONEY += LOCAL
ENDSELECT

LINES_SHOP = LINECOUNT


code: ;使用中のボタン番号を忘れないようにするためのダミーファイル


code:
;-------------------------------------------------
;「様子を見る」の名称
;-------------------------------------------------
;@SHOP_LIFE_NAME68
;RESULTS:0 '= "様子を見る"

;-------------------------------------------------
;「様子を見る」の選択可否
;-------------------------------------------------
;@SHOP_LIFE_CHECK68
;主人公が捕虜でなければ戻る
;SIF !CFLAG:(MASTER):捕虜先
;	RETURN 0
;RETURN 1

;-------------------------------------------------
;「様子を見る」の選択可能キャラ存在判定
;-------------------------------------------------
;@SHOP_LIFE_CHECKCHARA68(ARG:0)

;-------------------------------------------------
;「様子を見る」の左カラムメニューの入力処理
;-------------------------------------------------
;@SHOP_LIFE_EVENTBUY68
;CALL SHOP_WATCH_OTHERS
;	FLAG:拠点フェイズページ = 1
;	RETURN 0
;RETURN 1

;-------------------------------------------------
;「様子を見る」の右カラム表示処理
;-------------------------------------------------
;@SHOP_LIFE_EVENTBUY_SHOW68
;CALL COLUMN_RIGHT_TITLE("対象者選択, "", "", "", "", "")
;CALL COLUMN_RIGHT_PRINTL
;CALL COLUMN_RIGHT_LINE
;CALL COLUMN_RIGHT_PRINTL
;CALL COLUMN_RIGHT_CHARALIST
;RETURN

;-------------------------------------------------
;様子を見る ARG:0=対象のキャラ番号
;-------------------------------------------------
;@SHOP_WATCH_OTHERS(ARG:0)
;SHOW_INFOの初期画面を基本情報にする
;FLAG:能力表示モード = 0
;
;$SHOW_LOOP_INFO_A
;
;対象キャラの情報を表示
;CALL SINGLE_DRAWLINE
;CALL SHOW_INFO(ARG:0)
;CALL SINGLE_DRAWLINE
;
;PRINTFORML %ANAME(ARG:0)%の様子を見ますか？
;CALL ASK_YN
;IF RESULT == 0
;	CALL GAIRAI_TRAIN_MSG(ARG:0)
;	WAIT
	;IF CFLAG:(ARG:0):捕虜先 == 0
	;	SELECTCASE RAND:2
	;		CASE 0
	;			PRINTFORML %ANAME(ARG:0)%は外来人たちに前と後ろの穴を次から次へと犯され、
	;			PRINTFORMW 大量の子種を注ぎ込まれている…
	;			PRINTFORML %ANAME(ARG:0)%は蕩けた表情で快感に身を委ねながら、
	;			PRINTFORMW 待っている外来人のペニスを自ら手でシゴいて奉仕している…
	;	ENDSELECT
	;ELSEIF CFLAG:(ARG:0):依存度 <= -200
	;	SELECTCASE RAND:2
	;		CASE 0
	;			PRINTFORML %ANAME(ARG:0)%は外来人たちに前と後ろの穴を次から次へと犯され、
	;			PRINTFORMW 容赦なく子種を注ぎ込まれている…
	;			PRINTFORML %ANAME(ARG:0)%は必死に陵辱を耐えているが、
	;			PRINTFORMW その声には快感の色が混じっている…
	;	ENDSELECT
	;ELSEIF CFLAG:(ARG:0):依存度 < 1500 || TALENT:(ARG:0):2 < 1500
	;	SELECTCASE RAND:2
	;		CASE 0
	;			PRINTFORML %ANAME(ARG:0)%は外来人たちに前と後ろの穴を次から次へと犯され、
	;			PRINTFORMW 容赦なく子種を注ぎ込まれている…
	;			PRINTFORML %ANAME(ARG:0)%はひたすら屈辱に耐えながら
	;			PRINTFORMW 延々と陵辱を受け続けている…
	;	ENDSELECT
	;ELSE
	;	SELECTCASE RAND:2
	;		CASE 0
	;			PRINTFORML %ANAME(ARG:0)%は外来人たちに前と後ろの穴を次から次へと犯され、
	;			PRINTFORMW 容赦なく子種を注ぎ込まれている…
	;			PRINTFORML %ANAME(ARG:0)%は%ANAME(MASTER)%の名を呼びながら、
	;			PRINTFORMW 延々と続く陵辱に耐え忍んでいる…
	;		CASE 1
	;			PRINTFORML %ANAME(ARG:0)%は外来人たちに前と後ろの穴を次から次へと犯され、
	;			PRINTFORMW 容赦なく子種を注ぎ込まれている…
	;			PRINTFORML %ANAME(ARG:0)%は%ANAME(MASTER)%の名を呼びながら、
	;			PRINTFORMW 延々と続く陵辱に耐え忍んでいる…
	;	ENDSELECT
	;ENDIF
;
;	;逆調教の開始
;	CALL TRAIN_IN_PRISON
;ENDIF
;
;RETURN 1


code:
;共有しているボタンやボタンに追尾させる情報

;-------------------------------------------------
;右カラムキャラリスト用のキャラボタン
;
;ボタン表示対象キャラ=キャラ番号
;選択中色表示フラグ=0:通常カラー 1:選択中色で表示
;ボタン番号加算値=NO + ボタン番号加算値（100～）
;キャラ表示可否判定結果
;	@SHOP_LIFE_CHECKCHARA～系の返り値を代入
;	メニューファイル内のボタン指定である
;	@SHOP_LIFE_LIST1_BUTTON{メニュー番号}(ARG:0, ARG:1)や
;	@SHOP_LIFE_LIST1_BUTTON{メニュー番号}(ARG:0, ARG:1)から指定するときは
;	リスト関数内で既に判定され、結果（PRINTOPTION）がARG:1に保存されている
;	ので、そのままARG:1を返すだけでいい
;行動済表示フラグ=0:行動済みマークをつける 1:行動済みマークをつけない
;上下=今上のリストか下のリストかを指定する
;	メニューファイルでボタンの追尾情報を上下のリストで分けたいときに操作
;
;メニューファイルでの使用例）
;	CALL COLUMN_RIGHT_CHARALIST_BUTTON(ARG:0, CFLAG:(ARG:0):閨に呼ぶで選択中, SHOP_LIFE_LIST2_ADD_INPUT, ARG:1, "BOTTOM")
;リスト内での使用例）
;	CALL COLUMN_RIGHT_CHARALIST_BUTTON(NOW_CHECK_CHARA, 0, SHOP_LIFE_LIST1_ADD_INPUT, PRINTOPTION)
;-------------------------------------------------
@COLUMN_RIGHT_CHARALIST_BUTTON(ボタン表示対象キャラ, 選択中色表示フラグ = 0, ボタン番号加算値 = SHOP_LIFE_LIST1_ADD_INPUT, キャラ表示可否判定結果 = 1, 行動済表示フラグ = 0, 上下 = "")
#DIM ボタン表示対象キャラ
#DIM 選択中色表示フラグ
#DIM ボタン番号加算値
#DIM キャラ表示可否判定結果
#DIM 行動済表示フラグ
#DIMS 上下
#DIMS 名前

;CHECKCHARAの戻り値が０なら表示しない
SIF キャラ表示可否判定結果 <= 0
	RETURN 0

PRINT

SIF 選択中色表示フラグ
	SETCOLOR カラー_選択中

IF STRLENS(ANAME(ボタン表示対象キャラ)) >= MAX_CHARANAME_LENGTH
	名前 = %SNAME(ボタン表示対象キャラ)%
ELSE
	名前 = %ANAME(ボタン表示対象キャラ)%
ENDIF

;通常表示
IF キャラ表示可否判定結果 == 1
	CALL PRINTBUTTON_CENTER(@"[%名前, MAX_CHARANAME_LENGTH, LEFT%]", NO:(ボタン表示対象キャラ) + ボタン番号加算値, 0)
	;グレー表示
ELSEIF キャラ表示可否判定結果 == 2
	CALL PRINTBUTTON_CENTER(@"[%名前, MAX_CHARANAME_LENGTH, LEFT%]", NO:(ボタン表示対象キャラ) + ボタン番号加算値, 0, 0)
ENDIF

SIF 選択中色表示フラグ
	RESETCOLOR

; ;行動済みマーク表示
; IF !行動済表示フラグ
; 	CALL PRINT_RESTMARK(ボタン表示対象キャラ)
; 	PRINT
; ENDIF

;ボタンに追加の情報を表示する指定があれば
RESULT = 0
IF 上下 == "TOP"
	TRYCCALLFORM SHOP_LIFE_BUTTON_ADD_TOP{FLAG:拠点フェイズ選択コマンド}(ボタン表示対象キャラ)
	CATCH
		TRYCALLFORM SHOP_LIFE_BUTTON_ADD{FLAG:拠点フェイズ選択コマンド}(ボタン表示対象キャラ)
	ENDCATCH
ELSEIF 上下 == "BOTTOM"
	TRYCCALLFORM SHOP_LIFE_BUTTON_ADD_BOTTOM{FLAG:拠点フェイズ選択コマンド}(ボタン表示対象キャラ)
	CATCH
		TRYCALLFORM SHOP_LIFE_BUTTON_ADD{FLAG:拠点フェイズ選択コマンド}(ボタン表示対象キャラ)
	ENDCATCH
ELSE
	TRYCALLFORM SHOP_LIFE_BUTTON_ADD{FLAG:拠点フェイズ選択コマンド}(ボタン表示対象キャラ)
ENDIF
;戻り値が１なら他の情報は表示しない
SIF RESULT
	RETURN 0

; CALL IS_KOJO(NO:(ボタン表示対象キャラ))
; IF RESULT
; 	PRINT *
; ELSE
; 	PRINT
; ENDIF
PRINT

CALL PRINT_SEX(ボタン表示対象キャラ, 1, 0, 2)

IF ボタン表示対象キャラ == MASTER
	PRINT
ELSEIF CFLAG:(ボタン表示対象キャラ):所属 == CFLAG:MASTER:所属
	SETCOLOR 0x97f8e8
	PRINT 自
ELSEIF CFLAG:(ボタン表示対象キャラ):所属 != 0
	SETCOLOR 0x28cc28
	PRINT 他
ELSEIF CFLAG:(ボタン表示対象キャラ):特殊状態 == 特殊状態_放浪
	SETCOLOR 0x874b4e
	PRINT 浪
ELSE
	SETCOLOR 0x808080
	PRINT 無
ENDIF
RESETCOLOR
PRINT

; CALL TMP_PRINT_CHARA_STARS_NUM(ボタン表示対象キャラ)
; PRINT

IF TALENT:(ボタン表示対象キャラ):崩壊
	SETCOLOR カラー_警告
	PRINT 崩
ELSEIF TALENT:(ボタン表示対象キャラ):虚ろ
	SETCOLOR カラー_警告
	PRINT 虚
ELSEIF ID_TO_CHARA(FLAG:お気に入り指定キャラ) == ボタン表示対象キャラ
	SETCOLOR カラー_注意
	PRINT 推
ELSEIF TALENT:(ボタン表示対象キャラ):特殊勢力陥落系
	SETCOLOR カラー_警告
	PRINT 堕
ELSEIF TALENT:(ボタン表示対象キャラ):親愛
	SETCOLOR 0xF5CE13
	PRINT 愛
ELSEIF TALENT:(ボタン表示対象キャラ):恋慕
	SETCOLOR 0xFF4080
	PRINT 慕
ELSEIF TALENT:(ボタン表示対象キャラ):親友
	SETCOLOR 0xFF8000
	PRINT 友
ELSEIF TALENT:(ボタン表示対象キャラ):隷属
	SETCOLOR 0x00FFFF
	PRINT 隷
ELSEIF TALENT:(ボタン表示対象キャラ):服従
	SETCOLOR 0x00D0D0
	PRINT 服
ELSEIF TALENT:(ボタン表示対象キャラ):所有者
	SETCOLOR 0xc40055
	PRINT 所
ELSEIF TALENT:(ボタン表示対象キャラ):主人
	SETCOLOR 0xc40055
	PRINT 主

ELSE
	PRINT
ENDIF
RESETCOLOR

IF TALENT:(ボタン表示対象キャラ):正妻
	SETCOLOR 0xF5CE13
	PRINT 妻
ELSEIF TALENT:(ボタン表示対象キャラ):妾
	SETCOLOR 0xF56000
	PRINT 妾
ELSEIF TALENT:(ボタン表示対象キャラ):恋人
	SETCOLOR 0xFF80C0
	PRINT 恋
ELSEIF TALENT:(ボタン表示対象キャラ):烙印
	SETCOLOR 0x00FF80
	PRINT 印
ELSE
	PRINT
ENDIF
RESETCOLOR
PRINT

IF CFLAG:(ボタン表示対象キャラ):行動不能状態 == 行動不能_子供
	SETCOLOR カラー_緑
	PRINTPLAIN 幼
ELSEIF CFLAG:(ボタン表示対象キャラ):行動不能状態 == 行動不能_臨月
	SETCOLOR カラー_妊娠
	PRINTPLAIN 臨
ELSEIF TALENT:(ボタン表示対象キャラ):妊娠
	SETCOLOR カラー_妊娠
	PRINTPLAIN 妊
ELSEIF CFLAG:(ボタン表示対象キャラ):避妊薬残ターン
	SETCOLOR カラー_妊娠
	PRINTPLAIN 避
ELSEIF IS_OVULATION(ボタン表示対象キャラ)
	SETCOLOR カラー_ピンク
	PRINTPLAIN 危
ELSEIF CFLAG:(ボタン表示対象キャラ):行動不能状態 == 行動不能_育児
	SETCOLOR 0xFFC0C0
	PRINTPLAIN 育
ELSEIF CFLAG:(ボタン表示対象キャラ):行動不能状態 == 3
	SETCOLOR カラー_警告
	PRINTPLAIN 傷
ELSEIF COOLTIME:(ボタン表示対象キャラ):0
	SETCOLOR カラー_警告
	PRINTFORM %TOFULL(TOSTR(COOLTIME:(ボタン表示対象キャラ):0))%
ELSE
	PRINTPLAIN
ENDIF
RESETCOLOR
PRINT

IF ボタン表示対象キャラ == MASTER
	PRINT
ELSEIF CFLAG:(ボタン表示対象キャラ):捕虜先
	IF CFLAG:(ボタン表示対象キャラ):捕虜先 == CFLAG:MASTER:所属
		IF CFLAG:(ボタン表示対象キャラ):軟禁中 == 0
			SETCOLOR 0x4434E5
			PRINT 監
		ELSE
			SETCOLOR 0xA39ED7
			PRINT 軟
		ENDIF
	ELSE
		SETCOLOR 0xdf0000
		PRINT 囚
	ENDIF
ELSEIF CFLAG:(ボタン表示対象キャラ):外交調教中
	IF CFLAG:(ボタン表示対象キャラ):外交要求成功フラグ == 2
		SETCOLOR カラー_女
		PRINT 虜
	ELSE
		SETCOLOR 0x489200
		PRINT 脅
	ENDIF
	; ELSEIF CFLAG:(ボタン表示対象キャラ):面識
	; 	SETCOLOR 0xD0D0D0
	; 	PRINT 会
ELSE
	PRINT
ENDIF
RESETCOLOR

;-------------------------------------------------
;「捕虜の調教」の右カラムキャラリストボタン（上）表示に追尾させる情報
;　デフォルトの情報を表示しない場合はRETURN 1
;-------------------------------------------------
@SHOP_LIFE_BUTTON_ADD_TOP_PRISONER(ARG:0)
PRINTPLAIN
IF ARG:0 == MASTER
	PRINT
ELSEIF CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属
	SETCOLOR 0x97f8e8
	PRINT 自
ELSEIF CFLAG:(ARG:0):所属 != 0
	SETCOLOR 0x28cc28
	PRINT 他
ELSE
	SETCOLOR 0x808080
	PRINT 無
ENDIF
IF TALENT:(ARG:0):崩壊
	SETCOLOR カラー_警告
	PRINT 崩
ELSEIF TALENT:(ARG:0):虚ろ
	SETCOLOR カラー_警告
	PRINT 虚
ELSEIF TALENT:(ARG:0):隷属
	SETCOLOR 0x00FFFF
	PRINT 隷
ELSEIF TALENT:(ARG:0):服従
	SETCOLOR 0x00D0D0
	PRINT 服
ELSEIF TALENT:(ARG:0):所有者
	SETCOLOR 0xc40055
	PRINT 所
ELSEIF TALENT:(ARG:0):主人
	SETCOLOR 0xc40055
	PRINT 主
ELSE
	PRINT
ENDIF
IF TALENT:(ARG:0):正妻
	SETCOLOR 0xF5CE13
	PRINT 妻
ELSEIF TALENT:(ARG:0):妾
	SETCOLOR 0xF56000
	PRINT 妾
ELSEIF TALENT:(ARG:0):恋人
	SETCOLOR 0xFF80C0
	PRINT 恋
ELSEIF TALENT:(ARG:0):烙印
	SETCOLOR 0x00FF80
	PRINT 印
ELSE
	PRINT
ENDIF
RESETCOLOR

IF CFLAG:(ARG:0):行動不能状態 == 行動不能_子供
	SETCOLOR カラー_緑
	PRINTPLAIN 幼
ELSEIF CFLAG:(ARG:0):行動不能状態 == 行動不能_臨月
	SETCOLOR カラー_妊娠
	PRINTPLAIN 臨
ELSEIF TALENT:(ARG:0):妊娠
	SETCOLOR カラー_妊娠
	PRINTPLAIN 妊
ELSEIF CFLAG:(ARG:0):避妊薬残ターン
	SETCOLOR カラー_妊娠
	PRINTPLAIN 避
ELSEIF IS_OVULATION(ARG:0)
	SETCOLOR カラー_ピンク
	PRINTPLAIN 危
ELSEIF CFLAG:(ARG:0):行動不能状態 == 行動不能_育児
	SETCOLOR 0xFFC0C0
	PRINTPLAIN 育
ELSEIF CFLAG:(ARG:0):行動不能状態 == 3
	SETCOLOR カラー_警告
	PRINTPLAIN 傷
ELSEIF COOLTIME:(ARG:0):0
	SETCOLOR カラー_警告
	PRINTFORM %TOFULL(TOSTR(COOLTIME:(ARG:0):0))%
ELSE
	PRINTPLAIN
ENDIF
RESETCOLOR

PRINTFORM  精:
CALL PRINT_GRADATIONBAR(BASE:(ARG:0):精神力, MAXBASE:(ARG:0):精神力, 10, 0x5E9AFF)
PRINTFORM 好:
IF CFLAG:(ARG:0):好感度 > 99999
	PRINTFORM %"多", 6, RIGHT%
ELSE
	PRINTFORM {CFLAG:(ARG:0):好感度, 6, RIGHT}
ENDIF
PRINTFORM 依:
IF CFLAG:(ARG:0):依存度 > 99999
	PRINTFORM %"多い", 6, RIGHT%
ELSE
	PRINTFORM {CFLAG:(ARG:0):依存度, 6, RIGHT}
ENDIF
PRINTFORM 従:
IF CFLAG:(ARG:0):従属度 > 99999
	PRINTFORM %"多い", 6, RIGHT%
ELSE
	PRINTFORM {CFLAG:(ARG:0):従属度, 6, RIGHT}
ENDIF

PRINTFORM 支:
IF CFLAG:(ARG:0):支配度 > 99999
	PRINTFORM %"多い", 6, RIGHT%
ELSE
	PRINTFORM {CFLAG:(ARG:0):支配度, 6, RIGHT}
ENDIF

RETURN 1

;-------------------------------------------------
;「捕虜の調教」の右カラムキャラリストボタン（下）表示に追尾させる情報
;　デフォルトの情報を表示しない場合はRETURN 1
;-------------------------------------------------
@SHOP_LIFE_BUTTON_ADD_BOTTOM_PRISONER(ARG:0)
PRINTPLAIN
CALL PRINT_SEX(ARG:0, 1, 0, 2)
PRINTPLAIN
CALL SHOP_LIFE_BUTTON_ADD_ABL_INFO(ARG:0, GETNUM(ABL, "Ｃ感"), GETNUM(ABL, "Ｖ感"), GETNUM(ABL, "Ａ感"), GETNUM(ABL, "Ｂ感"), GETNUM(ABL, "Ｍ感"))
PRINTPLAIN
IF TALENT:(ARG:0):処女 && IS_FEMALE(ARG:0)
	PRINT 処
ELSE
	PRINT
ENDIF
IF TALENT:(ARG:0):アナル処女
	PRINT Ａ
ELSE
	PRINT
ENDIF
IF TALENT:(ARG:0):キス未経験
	PRINT 唇
ELSE
	PRINT
ENDIF
IF TALENT:(ARG:0):童貞 && HAS_PENIS(ARG:0)
	PRINT 童
ELSE
	PRINT
ENDIF
IF IS_OVULATION(ARG:0)
	SETCOLOR カラー_ピンク
	PRINTPLAIN 危
	RESETCOLOR
ELSEIF CFLAG:(ARG:0):行動不能状態 == 行動不能_臨月
	SETCOLOR カラー_妊娠
	PRINTPLAIN 臨
ELSEIF TALENT:(ARG:0):妊娠
	SETCOLOR カラー_妊娠
	PRINTPLAIN 妊
ELSEIF CFLAG:(ARG:0):避妊薬残ターン
	SETCOLOR カラー_妊娠
	PRINTPLAIN 避
ELSEIF IS_OVULATION(ARG:0)
	SETCOLOR カラー_ピンク
	PRINTPLAIN 危
ELSE
	PRINT
ENDIF

RESETCOLOR
RETURN 1

@SHOP_LIFE_BUTTON_ADD_ABL_INFO(ARG:0, ARG:1 = -1, ARG:2 = -1, ARG:3 = -1, ARG:4 = -1, ARG:5 = -1, ARG:6 = -1, ARG:7 = -1)
PRINTPLAIN
FOR LOCAL, 1, 8
	SIF ARG:LOCAL == -1
		BREAK
	PRINTFORM %SUBSTRINGU(ABLNAME:(ARG:LOCAL), 0, 1)%:
	SELECTCASE ARG:LOCAL
		CASE GETNUM(ABL, "身体"), GETNUM(ABL, "器用"), GETNUM(ABL, "知識"), GETNUM(ABL, "社交"), GETNUM(ABL, "魔術"), GETNUM(ABL, "料理"), GETNUM(ABL, "歌唱")
			LOCAL:1 = ランク_ＳＬＧ
		CASE GETNUM(ABL, "性知識")
			LOCAL:1 = ランク_性知識
		CASEELSE
			LOCAL:1 = ランク_その他
	ENDSELECT
	CALL PRINT_ALPHABET_RANK(LOCAL:1, ABL:(ARG:0):(ARG:LOCAL))
	PRINTFORM {ABL:(ARG:0):(ARG:LOCAL), 3}
	PRINT
NEXT


code:
;共有されている選択可否判定と選択可能キャラ存在判定
;-------------------------------------------------
;メニューの選択可否とメニューの選択可能キャラ存在判定を
;SHOP_AVAILに保存する
;-------------------------------------------------
@CHECK_CHECKCHARA_SAVE
#DIM CHECK_SAVE_COUNTER
#DIM CHECKCHARA_SAVE_COUNTER

VARSET SHOP_AVAIL, 0

FOR CHECK_SAVE_COUNTER, 0, 99
	IF CHECK_SAVE_COUNTER <= 10 || CHECK_SAVE_COUNTER >= 90
		SHOP_AVAIL:(CHECK_SAVE_COUNTER) = 1
	ELSE
		RESULTS:0 '= ""
		TRYCALLFORM SHOP_LIFE_NAME{CHECK_SAVE_COUNTER}
		;メニュー名称が存在するなら
		IF RESULTS:0 != ""
			;選択可能キャラ存在判定
			FOR CHECKCHARA_SAVE_COUNTER, 0, CHARANUM
				RESULT = 0
				TRYCCALLFORM SHOP_LIFE_CHECKCHARA{CHECK_SAVE_COUNTER}(CHECKCHARA_SAVE_COUNTER)
					;このキャラは0:選択不可で非表示 1:選択可 2:選択不可色で表示のどれかが戻る
					SHOP_AVAIL:(CHECK_SAVE_COUNTER) = RESULT
				CATCH
					SHOP_AVAIL:(CHECK_SAVE_COUNTER) = 1
				ENDCATCH
				;存在判定がなかった、または、1選択可のキャラがいたらループを抜ける
				IF SHOP_AVAIL:(CHECK_SAVE_COUNTER) == 1
					BREAK
				ENDIF
			NEXT
			;メニューの選択可否判定
			RESULT = 0
			TRYCCALLFORM SHOP_LIFE_CHECK{CHECK_SAVE_COUNTER}
				;選択可否判定が存在し、不可の場合のみ上書きする
				IF RESULT == 0
					SHOP_AVAIL:(CHECK_SAVE_COUNTER) = 0
				ENDIF
				;選択可否判定が存在し、可だが選択可能キャラ判定は不可だったとき最終チェック
				;夜這いや手引きのような特殊な判定で使用
				IF RESULT == 1 && SHOP_AVAIL:(CHECK_SAVE_COUNTER) == 0
					TRYCCALLFORM SHOP_LIFE_CHECK_ADDITIONAL_CHECK{CHECK_SAVE_COUNTER}()
						SIF RESULT == 1
							SHOP_AVAIL:(CHECK_SAVE_COUNTER) = 1
					CATCH
					ENDCATCH
				ENDIF
			CATCH
			ENDCATCH
		ENDIF
	ENDIF
NEXT

;-------------------------------------------------
;行動済みチェック
;ARG:0　対象キャラ
;ARG:1　ARG:2が真だった時に返す値
;ARG:2　行動済み以外の条件式
;-------------------------------------------------
@CHECK91(ARG:0, ARG:1, ARG:2)
#FUNCTION
SIF ARG:2 <= 0
	RETURNF ARG:2
IF !CFLAG:(ARG:0):行動済み
	RETURNF ARG:2
ELSE
	IF CONFIG:13 == 1
		RETURNF 0
	ELSEIF ARG:2 == 1
		RETURNF ARG:1
	ELSE
		RETURNF ARG:2
	ENDIF
ENDIF

;-------------------------------------------------
;「閨に呼ぶ」の選択可能キャラ存在判定リスト１
;-------------------------------------------------
@SHOP_LIFE_CHECKCHARA_NEYA(ARG:0)
;捕虜として捕まっている場合
IF CFLAG:(ARG:0):捕虜先
	;非主人公、通常状態または育児中、合意、主人公勢力の捕虜かつ軟禁中
	;思考戦車も弾く
	RETURN CHECK91(ARG:0, 2, ARG:0 != MASTER && GROUPMATCH(CFLAG:(ARG:0):行動不能状態, 0, 2) && (TALENT:(ARG:0):合意 || TALENT:(ARG:0):親友) && CFLAG:(ARG:0):捕虜先 == CFLAG:MASTER:所属 && CFLAG:(ARG:0):軟禁中 == 1)
ELSE
	;捕虜でない、非主人公、通常状態または育児中、合意か親友ないし所属が特殊勢力なら対応する特殊勢力陥落素質持ち、同一勢力or共闘勢力or放浪リストにいる
	;思考戦車も弾く
	RETURN CHECK91(ARG:0, 2, ARG:0 != MASTER && GROUPMATCH(CFLAG:(ARG:0):行動不能状態, 0, 2) && (TALENT:(ARG:0):合意 || TALENT:(ARG:0):親友 || (IS_SP_COUNTRY(CFLAG:(ARG:0):所属) && GETBIT(TALENT:(ARG:0):特殊勢力陥落系, SP_COUNTRY_TO_CONST(CFLAG:(ARG:0):所属)))) && (CFLAG:(ARG:0):所属 == CFLAG:MASTER:所属 || FINDELEMENT(MEET_CANDIDATES, GET_ID(ARG:0)) != -1))
ENDIF

;-------------------------------------------------
;「能力表示」の選択可能キャラ存在判定リスト１
;-------------------------------------------------
@SHOP_LIFE_CHECKCHARA_NOURYOKU(ARG:0)
;同一勢力or共闘勢力or自国の捕虜
;最後に&& CFLAG:(ARG:0):捕虜先としてるのは、マスターが未所属捕虜で能力表示を開いた場合、「どこの勢力の捕虜にもなっていない」キャラが引っかかるから
SIF ARG:0 == MASTER
	RETURN 1
SELECTCASE FLAG:能力表示フィルタ
		;従来
	CASE 0
		;RETURN TMP_COUNTRY_RELATION:(CFLAG:MASTER:所属):(CFLAG:(ARG:0):所属) >= 2 || (CFLAG:(ARG:0):捕虜先 == CFLAG:MASTER:所属 && CFLAG:(ARG:0):捕虜先)
		RETURN CFLAG:MASTER:所属 && (CFLAG:MASTER:所属 == CFLAG:(ARG:0):所属 || CFLAG:MASTER:所属 == CFLAG:(ARG:0):捕虜先)
		;自国のみ
	CASE 1
		RETURN CFLAG:MASTER:所属 && CFLAG:MASTER:所属 == CFLAG:(ARG:0):所属
		;捕虜も
	CASE 2
		RETURN CFLAG:MASTER:所属 && (CFLAG:MASTER:所属 == CFLAG:(ARG:0):所属 || CFLAG:MASTER:所属 == CFLAG:(ARG:0):捕虜先)
		;ぜんぶ
	CASE 3
		;デバッグモード中は全部(無条件)
		[IF_DEBUG]
		RETURN 1
		[ENDIF]
		;非デバッグモード中は他勢力のステータスは非表示(同一勢力+共闘勢力+捕虜と同じ)
		[IF_NDEBUG]
		RETURN CFLAG:MASTER:所属 && (CFLAG:MASTER:所属 == CFLAG:(ARG:0):所属 || CFLAG:MASTER:所属 == CFLAG:(ARG:0):捕虜先)
		[ENDIF]
ENDSELECT
RETURN 1

;-------------------------------------------------
;「手引させる」選択可能キャラ存在判定リスト２
;-------------------------------------------------
@SHOP_LIFE_CHECKCHARA_SUB_NAITSUU(ARG:0)
;捕虜でない、非主人公、通常状態または育児中、烙印、別勢力
SIF TMP_COUNTRY_IS_NEIBORING:(CFLAG:MASTER:所属):(CFLAG:(ARG:0):所属)
	RETURN CHECK91(ARG:0, 2, ARG:0 != MASTER && !CFLAG:(ARG:0):捕虜先 && GROUPMATCH(CFLAG:(ARG:0):行動不能状態, 0, 2) && TALENT:(ARG:0):烙印 && CFLAG:MASTER:所属 != CFLAG:(ARG:0):所属  && CFLAG:(ARG:0):行動不能状態 != 行動不能_子供)
RETURN 0


code:
;-------------------------------------------------
;左カラムカテゴリ名称設定
;-------------------------------------------------
@COLUMN_LEFT_CATEGORY_NAME
COLUMN_LEFT_CATEGORY_NAME:1 '= "活動"
COLUMN_LEFT_CATEGORY_NAME:2 '= "謀略"
COLUMN_LEFT_CATEGORY_NAME:3 '= "捕虜"
COLUMN_LEFT_CATEGORY_NAME:4 '= "管理"
COLUMN_LEFT_CATEGORY_NAME:5 '= "情報"
COLUMN_LEFT_CATEGORY_NAME:6 '= "特殊"
COLUMN_LEFT_CATEGORY_NAME:7 '= "売買"
COLUMN_LEFT_CATEGORY_NAME:8 '= "進行"
COLUMN_LEFT_CATEGORY_NAME:9 '= "設定"

;-------------------------------------------------
;左カラムカテゴリ表示
;ARGS:0=表示するテキスト（全角２文字まで）
; 　　　空指定（""）なら同幅のスペース表示
;-------------------------------------------------
@COLUMN_LEFT_CATEGORY_NAME_SHOW(ARGS:0)
;空指定なら同幅のスペース
IF ARGS:0 == ""
	LOCALS:0 '= TOSTR_SPACE(6)
	PRINTFORM %LOCALS:0%
	;指定があれば色付けして表示
ELSE
	SETCOLOR カラー_注釈
	PRINTFORM %TOSTR_SPACE(1)%
	PRINTFORM %ARGS:0, 4, LEFT%
	PRINTFORM %TOSTR_SPACE(1)%
	RESETCOLOR
ENDIF
RETURN

;-------------------------------------------------
;左カラムメニューボタン
;ARG:0=SHOP_AVAIL番号（メニュー番号）
;ARGS:0=表示テキスト　空指定なら同幅のスペース表示
;ARG:1=1で選択中カラーに着色（ARG:1=FLAG:拠点フェイズ選択コマンド番号を代入する想定）
;-------------------------------------------------
@COLUMN_LEFT_PRINTBUTTON(ARG:0, ARGS:0, ARG:1)
#DIM EXTERNAL_LINK

SIF ARG:0 < 0 || 99 < ARG:0
	THROW COLUMN_LEFT_PRINTBUTTONの項番が0～99の範囲にありません

;空指定なら同幅のスペース
IF ARGS:0 == ""
	PRINTPLAINFORM %TOSTR_SPACE(12)%
	;選択不可（表示が制限されていない場合）
ELSEIF !SHOP_AVAIL:(ARG:0)
	SETCOLOR カラー_選択不可
	PRINTPLAINFORM [%ARGS:0, 10%]
	RESETCOLOR
	;現在選択中（右カラムのないメニューも着色するように変更したためボタンに）
ELSEIF ARG:1
	SETCOLOR カラー_選択中
	PRINTBUTTON @"[%ARGS:0, 10%]", ARG:0
	RESETCOLOR
	;通常のボタン
ELSE
	PRINTBUTTON @"[%ARGS:0, 10%]", ARG:0
ENDIF

;-------------------------------------------------
;左カラムの配列：行番号にカテゴリとメニューを保存
;※SHOP_AVAILを参照して選択不可のメニューを非表示にしている
;　参照をやめればこれまで通り選択不可のメニューは
;　ボタン側で表示制限されているのでグレー表示される
;-------------------------------------------------
@COLUMN_LEFT_MENULINE_SAVE
#DIM COLUMN_LEFT_CATEGORY_SAVEFLAG, 10

;リセット 各行のカテゴリ番号とメニュー番号を保存する配列（配列番号＝行番号）
;セーブするほどではないが一時的に保存して@COLUMN_LEFT_MENU_SHOWで使用するので
;SHOP_LIFE_VARIABLE.ERHで宣言している
VARSET COLUMN_LEFT_CATEGORY_NUM, 0
VARSET COLUMN_LEFT_MENU_NUM, 0

;リセット カテゴリの保存済みフラグ
VARSET COLUMN_LEFT_CATEGORY_SAVEFLAG, 0

;カテゴリ名称の読み込み
CALL COLUMN_LEFT_CATEGORY_NAME

;行番号
LOCAL:0 = 1
;何らかのカテゴリを保存したフラグ
LOCAL:4 = 0
;カテゴリ番号1～7
FOR LOCAL:1, 1, 8
	;LOCAL:1番のカテゴリが存在
	IF COLUMN_LEFT_CATEGORY_NAME:(LOCAL:1) != ""
		;メニュー番号1～9
		FOR LOCAL:2, 1, 10
			;カテゴリ番号を10の位として計算
			LOCAL:3 = LOCAL:1 * 10 + LOCAL:2
			;メニュー名称で存在チェック
			RESULTS:0 '= ""
			TRYCALLFORM SHOP_LIFE_NAME{LOCAL:3}
			;選択不可のメニューもグレー表示したい場合は && SHOP_AVAIL:(LOCAL:3)を削る
			IF RESULTS:0 != "" && SHOP_AVAIL:(LOCAL:3)
				;カテゴリ保存済みでない場合
				IF COLUMN_LEFT_CATEGORY_SAVEFLAG:(LOCAL:1) != 1
					;ふたつめ以降のカテゴリなら空行を挟む
					IF LOCAL:4 == 1
						LOCAL:0 ++
					ENDIF
					LOCAL:4 = 1
					;配列番号=行番号にカテゴリ番号を保存
					COLUMN_LEFT_CATEGORY_NUM:(LOCAL:0) = LOCAL:1
					;現在のカテゴリ保存済みフラグを立てる
					COLUMN_LEFT_CATEGORY_SAVEFLAG:(LOCAL:1) = 1
					;何らかのカテゴリ保存済みフラグを立てる
				ENDIF
				;配列番号=行番号にメニュー番号を保存
				COLUMN_LEFT_MENU_NUM:(LOCAL:0) = LOCAL:3
				LOCAL:0 ++
			ENDIF
		NEXT
	ENDIF
NEXT

;-------------------------------------------------
;左カラムメニュー表示ボタン呼び出し ARG:0は行数
;
;  0～9番）右カラムのボタンに自由に使えるように使用しない
;11～79番）メニュー番号
;　　　　　10の位をカテゴリ番号に、1～9をメニュー番号にすると
;　　　　　COMFのように自動的に読み込まれるが
;　　　　　行数があふれた場合の処理はしていないので要確認
;　　81番）固定行・休憩　80番台を独占していてもったいない
;　　　　　とりあえずページ番号はわかりやすい90番代にしたが
;　　　　　90番台が不足するなら96～99は80番台に変更するとよさげ
;  91～番）固定行・設定系
;　　　　　91 設定・92 セーブ・93 ロード・94 QSAVE・95 QLOAD
;　　　　　96 右カラムリスト２前ページ・97 右カラムリスト２次ページ
;　　　　　98 右カラムリスト１前ページ・99 右カラムリスト１次ページ
;-------------------------------------------------
@COLUMN_LEFT_MENU_SHOW(ARG:0)
;配列の最大値を超える行番号が指定された場合
IF ARG:0 >= 40
	RETURN
ENDIF

SELECTCASE ARG:0
		;固定行・残り行動回数
	CASE 0
		;捕虜時は表示しない
		; IF CFLAG:MASTER:捕虜先 == 0
		; 	PRINT  残行動回数:
		; 	CALL COLOR_PRINT(@"{CALC_SHOP_TIME() - SHOP_TIME, 6}", 0xC0CAA0)
		; ELSE
		; 	CALL COLOR_PRINT("            投獄中", 0xB0BA90)
		; ENDIF
		PRINTFORM %TOSTR_SPACE(18)%
		;固定行・休憩
	CASE 33
		;捕虜でない
		IF CFLAG:MASTER:捕虜先 == 0
			CALL COLUMN_LEFT_CATEGORY_NAME_SHOW(COLUMN_LEFT_CATEGORY_NAME:8)
			TRYCALLFORM SHOP_LIFE_NAME81
			CALL COLUMN_LEFT_PRINTBUTTON( 81, RESULTS:0, FLAG:拠点フェイズ選択コマンド == 81)
			;捕虜
		ELSE
			CALL COLUMN_LEFT_CATEGORY_NAME_SHOW("")
			CALL COLUMN_LEFT_PRINTBUTTON( 0, "", 0)
		ENDIF
		;固定行・設定
	CASE 36
		CALL COLUMN_LEFT_CATEGORY_NAME_SHOW(COLUMN_LEFT_CATEGORY_NAME:9)
		CALL COLUMN_LEFT_PRINTBUTTON( 91, "設定", FLAG:拠点フェイズ選択コマンド == 91)
		;固定行・セーブ
	CASE 37
		CALL COLUMN_LEFT_CATEGORY_NAME_SHOW("")
		CALL COLUMN_LEFT_PRINTBUTTON( 92, "セーブ", FLAG:拠点フェイズ選択コマンド == 92)
		;固定行・ロード
	CASE 38
		CALL COLUMN_LEFT_CATEGORY_NAME_SHOW("")
		CALL COLUMN_LEFT_PRINTBUTTON( 93, "ロード", FLAG:拠点フェイズ選択コマンド == 93)
		;可変行・他カテゴリ名とメニューボタン
	CASEELSE
		;カテゴリ
		IF COLUMN_LEFT_CATEGORY_NUM:(ARG:0) != 0
			CALL COLUMN_LEFT_CATEGORY_NAME_SHOW(COLUMN_LEFT_CATEGORY_NAME:(COLUMN_LEFT_CATEGORY_NUM:(ARG:0)))
		ELSE
			CALL COLUMN_LEFT_CATEGORY_NAME_SHOW("")
		ENDIF
		;メニューボタン
		IF COLUMN_LEFT_MENU_NUM:(ARG:0) != 0
			TRYCALLFORM SHOP_LIFE_NAME{COLUMN_LEFT_MENU_NUM:(ARG:0)}
			CALL COLUMN_LEFT_PRINTBUTTON( COLUMN_LEFT_MENU_NUM:(ARG:0), RESULTS:0, FLAG:拠点フェイズ選択コマンド == COLUMN_LEFT_MENU_NUM:(ARG:0))
		ELSE
			CALL COLUMN_LEFT_PRINTBUTTON( 0, "", 0)
		ENDIF
ENDSELECT

RESETCOLOR
PRINT


code:
;-------------------------------------------------
;右カラムに何も表示しない場合
;左カラムメニューのボタンを呼び出すための空行埋め
;-------------------------------------------------
@COLUMN_RIGHT_CLEAR
FOR LOCAL:0, LINECOUNT - FIRST_COLUMN_RIGHT_LINE, LINES_SHOP_DRAW
	CALL COLUMN_RIGHT_PRINTL
NEXT
RETURN 0

;-------------------------------------------------
;右カラムでPRINTL の代わりに使用する
;使用）CALL COLUMN_RIGHT_PRINTL
;目的）左カラムのボタン表示指定（行番号指定）をなくす
;-------------------------------------------------
@COLUMN_RIGHT_PRINTL
;改行に伴う処理であるため改行を行う
PRINTL
;カラムの行番号を計算して返す
LOCAL:0 = LINECOUNT - FIRST_COLUMN_RIGHT_LINE
;最大行数に到達していなければメニューを表示する
IF LOCAL:0 < LINES_SHOP_DRAW
	CALL COLUMN_LEFT_MENU_SHOW(LOCAL:0)
ENDIF

;-------------------------------------------------
;右カラム用タイトル
;注釈をなるべく柔軟に表示するため全て文字列で渡す
;引数の指定が多くコピペして持っていかないと憶えきれない感
;主人公の場合は行動回数を消費、他のキャラの場合は行動済みになるなど
;主語や結果の別れるもの、CTについてをどう短く表現したものか
;リスト下段用のもあると楽そう
;使用）
;CALL COLUMN_RIGHT_TITLE("対象者選択", TOSTER(選択人数), "8", "1", "30,000", "文字数足りれば")
;CALL COLUMN_RIGHT_TITLE("選択対象注釈", "選択人数", "最大人数", "消費行動回数", "消費金額", "追加の注釈")
;-------------------------------------------------
@COLUMN_RIGHT_TITLE(選択対象, 選択人数, 最大人数, 消費行動回数, 消費金額, 追加の注釈)
#DIMS 選択対象
#DIMS 選択人数
#DIMS 最大人数
#DIMS 消費行動回数
#DIMS 消費金額
#DIMS 追加の注釈
PRINT ★
TRYCALLFORM SHOP_LIFE_NAME{FLAG:拠点フェイズ選択コマンド}
PRINTFORM %RESULTS:0%

IF 選択対象 != ""
	PRINTPLAIN
	CALL COLORPRINT(選択対象, カラー_注釈)
ENDIF

;選択人数も最大人数も指定されている
IF 選択人数 != "" && 最大人数 != ""
	PRINTPLAIN
	;最大人数が1人なら選択人数を無視する
	IF TOINT(最大人数) == 1
		CALL COLOR_PRINT("選択人数:", カラー_注釈)
		CALL COLOR_PRINT("1", カラー_選択中)
		CALL COLOR_PRINT("人", カラー_注釈)
	;選択人数が最大人数以上なら選択中色で表示
	ELSEIF TOINT(選択人数) >= TOINT(最大人数)
		CALL COLOR_PRINT("選択人数:", カラー_注釈)
		CALL COLORPRINT(選択人数, カラー_選択中)
		CALL COLOR_PRINT("/", カラー_注釈)
		CALL COLORPRINT(最大人数, カラー_選択中)
		CALL COLOR_PRINT("人", カラー_注釈)
	;それ以外なら選択人数は注釈色、最大人数は選択中色で表示
	ELSE
		CALL COLOR_PRINT("選択人数:", カラー_注釈)
		CALL COLORPRINT(選択人数, カラー_注釈)
		CALL COLOR_PRINT("/", カラー_注釈)
		CALL COLORPRINT(最大人数, カラー_選択中)
		CALL COLOR_PRINT("人", カラー_注釈)
	ENDIF
;最大人数のみ指定されている
ELSEIF 最大人数 != ""
	;最大人数が1人ならそのまま表示し他は無視する
	IF TOINT(最大人数) == 1
		PRINTPLAIN
		CALL COLOR_PRINT("選択人数:", カラー_注釈)
		CALL COLOR_PRINT("1", カラー_選択中)
		CALL COLOR_PRINT("人", カラー_注釈)
	ENDIF
ENDIF

IF 消費行動回数 != ""
	PRINTPLAIN
	CALL COLOR_PRINT("行動消費:", カラー_注釈)
	CALL COLORPRINT(消費行動回数, カラー_選択中)
ENDIF

IF 消費金額 != ""
	PRINTPLAIN
	CALL COLOR_PRINT("消費金額:", カラー_注釈)
	CALL COLORPRINT(消費金額, カラー_選択中)
ENDIF

IF 追加の注釈 != ""
	PRINTPLAIN
	CALL COLORPRINT(追加の注釈, カラー_注釈)
ENDIF
RETURN

;-------------------------------------------------
;右カラム用ライン
;使用）CALL COLUMN_RIGHT_LINE
;想定）右カラムの幅を調整したい時はここで-の数を調整
;　　　線を改行するときは上記の右カラム用改行で行う
;備考）REPEAT_DASH(0)の互換
;-------------------------------------------------
@COLUMN_RIGHT_LINE
LOCAL:0 = 92
;区切りとして多用されているため
;ボタンやテキストを目立たせるために暗めにする
SETCOLOR カラー_灰色
PRINTFORM %TOSTR_REPEAT("-", LOCAL:0)%
RESETCOLOR

;-------------------------------------------------
;数字を文字列化し３桁カンマをつける式中関数
;使用）%NUM_FORMAT(MONEY)%
;-------------------------------------------------
@NUM_FORMAT(ARG:0)
#FUNCTIONS
;0だと表示されないので退避
IF ARG:0 == 0
	LOCALS:0 '= "0"
ELSE
	LOCALS:0 '= TOSTR(ARG:0, "#,###")
ENDIF
RETURNF LOCALS:0

;-------------------------------------------------
;数字を文字列化し３桁カンマと$をつける式中関数
;使用）%NUM_FORMAT(MONEY)%
;-------------------------------------------------
@MONEY_FORMAT(ARG:0)
#FUNCTIONS
;0だと表示されないので退避
IF ARG:0 == 0
	LOCALS:0 '= "$0"
ELSE
	LOCALS:0 '= TOSTR(ARG:0, "$#,###")
ENDIF
RETURNF LOCALS:0