code:
;交流終了時のイベント、特に素質関連

;-------------------------------------------------
;恋慕等の取得
;-------------------------------------------------
@TALENT_CHECK(ARG:0)

SIF IS_ANIMAL(ARG:0) || TALENT:(ARG:0):慰安モブ
	RETURN 0

CALL TALENT_CHECK_LOSE_MIND(ARG:0)

SIF !(TALENT:(ARG:0):虚ろ || TALENT:(ARG:0):崩壊)
	CALL TALENT_CHECK_FALLEN(ARG:0)

CALL GET_FALLEN_BONUS(ARG:0)

CALL TALENT_CHECK_OTHERS(ARG:0)

CALL TALENT_CHECK_EROS(ARG:0)

SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫乱)
	CALL TALENT_CHECK_PART(ARG:0)

;-------------------------------------------------
;プライド高いを所有するキャラクターが主人した場合の処理
;ARG:1は色変更を行わないフラグ	ARG:2は先頭の改行を行わないフラグ
;-------------------------------------------------
@TALENT_LOSE_PRIDE(ARG:0, ARG:1, ARG:2)
SIF !ARG:1
	SETCOLOR カラー_注意
IF TALENT:(ARG:0):プライド高い
	SIF !ARG:2
		PRINTL
	PRINTFORML 自尊心を失った%ANAME(ARG:0)%はすっかり弱気になったようだ……
	PRINTFORMW %ANAME(ARG:0)%は<プライド高い>を失った
	TALENT:(ARG:0):プライド高い = 0
	IF TALENT:(ARG:0):孤高 || TALENT:(ARG:0):気丈 || !TALENT:(ARG:0):臆病 || TALENT:(ARG:0):生意気 || TALENT:(ARG:0):ツンデレ || TALENT:(ARG:0):反抗的
		ABL:(ARG:0):主導度Ｎ -= (ABL:(ARG:0):主導度Ｎ + 1000) / 5 * (TALENT:(ARG:0):気丈 + 1)
		ABL:(ARG:0):主導度Ｕ -= (ABL:(ARG:0):主導度Ｕ + 1000) / 5 * (TALENT:(ARG:0):気丈 + 1)
		ABL:(ARG:0):主導度Ｎ = LIMIT(ABL:(ARG:0):主導度Ｎ, -1000, 1000)
		ABL:(ARG:0):主導度Ｕ = LIMIT(ABL:(ARG:0):主導度Ｕ, -1000, 1000)
		IF TALENT:(ARG:0):孤高
			PRINTFORMW %ANAME(ARG:0)%は<孤高>を失った
			TALENT:(ARG:0):孤高 = 0
		ENDIF
		IF TALENT:(ARG:0):気丈
			PRINTFORMW %ANAME(ARG:0)%は<気丈>を失った
			TALENT:(ARG:0):気丈 = 0
		ELSEIF !TALENT:(ARG:0):臆病
			PRINTFORMW %ANAME(ARG:0)%は<臆病>を得た
			TALENT:(ARG:0):臆病 = 1
		ENDIF
		;反発系の素質から一つだけ失う
		IF TALENT:(ARG:0):反抗的
			PRINTFORMW %ANAME(ARG:0)%は<反抗的>を失った
			TALENT:(ARG:0):反抗的 = 0
		ELSEIF TALENT:(ARG:0):生意気
			PRINTFORMW %ANAME(ARG:0)%は<生意気>を失った
			TALENT:(ARG:0):生意気 = 0
		ELSEIF TALENT:(ARG:0):ツンデレ
			PRINTFORMW %ANAME(ARG:0)%は<ツンデレ>を失った
			TALENT:(ARG:0):ツンデレ = 0
		ENDIF
	ENDIF
ENDIF
SIF !ARG:1
	RESETCOLOR

;-------------------------------------------------
;特殊勢力による淫乱取得時などの貞操観念喪失・貞操無頓着入手時の処理
;ARG:1は色変更を行わないフラグ
;-------------------------------------------------
@TALENT_LOSE_TEISOU(ARG:0, ARG:1)
SIF !ARG:1
	SETCOLOR カラー_注意
IF TALENT:(ARG:0):貞操観念
	PRINTFORMW %ANAME(ARG:0)%は<貞操観念>を失い、<貞操無頓着>を得た
	TALENT:(ARG:0):貞操観念 = 0
	TALENT:(ARG:0):貞操無頓着 = 1
ELSEIF !TALENT:(ARG:0):貞操無頓着
	PRINTFORMW %ANAME(ARG:0)%は<貞操無頓着>を得た
	TALENT:(ARG:0):貞操無頓着 = 1
ENDIF
SIF !ARG:1
	RESETCOLOR

;-------------------------------------------------
;虚ろの喪失・回復処理
;-------------------------------------------------
@TALENT_CHECK_LOSE_MIND(ARG:0)

SIF TALENT:(ARG:0):崩壊
	RETURN 0

IF !TALENT:(ARG:0):虚ろ && CFLAG:(ARG:0):崩壊 >= 1000 + MAX(MAXBASE:(ARG:0):精神力, 1000)
	CALL SINGLE_EMPTY_LINE()
	CALL KOJO_EVENT(ARG:0, 78)
	SETCOLOR カラー_注意
	PRINTFORMW %ANAME(ARG:0)%は<虚ろ>を得た
	CALL QST_CHANGE_ITEM("淫堕点,10,")
	RESETCOLOR
	TALENT:(ARG:0):虚ろ = 1

	;[虚ろ]の回復
ELSEIF TALENT:(ARG:0):虚ろ && CFLAG:(ARG:0):崩壊 < -500 + MAX(MAXBASE:(ARG:0):精神力, 1000)
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子が変わった…
	PRINTFORML 疲弊していた%ANAME(ARG:0)%の心はどうにか平常に戻ったようだ
	SETCOLOR カラー_注意
	PRINTFORMW %ANAME(ARG:0)%は<虚ろ>を失った
	RESETCOLOR
	TALENT:(ARG:0):虚ろ = 0
ENDIF

;[崩壊]の取得
IF !TALENT:(ARG:0):崩壊 && CFLAG:(ARG:0):崩壊 >= 3500 + MAX(MAXBASE:(ARG:0):精神力, 1000)
	CALL SINGLE_EMPTY_LINE()
	CALL KOJO_EVENT(ARG:0, 79)
	SETCOLOR カラー_注意
	PRINTFORMW %ANAME(ARG:0)%は<崩壊>を得た
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,20,")
	TALENT:(ARG:0):崩壊 = 1
ENDIF

;[崩壊]の回復
IF TALENT:(ARG:0):崩壊 && CFLAG:(ARG:0):崩壊 < 500 + MAX(MAXBASE:(ARG:0):精神力, 1000)
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子が変わった…
	PRINTFORML 壊れた%ANAME(ARG:0)%の心は微かに光を取り戻したようだ
	SETCOLOR カラー_注意
	PRINTFORMW %ANAME(ARG:0)%は<崩壊>を失い<虚ろ>を得た
	RESETCOLOR
	TALENT:(ARG:0):崩壊 = 0
	TALENT:(ARG:0):虚ろ = 1
ENDIF

;---------------------------------------------------------------------
;可能な初級陥落ルート（恋慕・服従・淫乱）が複数存在する場合、一つを
;選択する。
;---------------------------------------------------------------------
@FALLEN_SELECTION(ARG:0, ARG:1)
#DIMS CANDIDATE, 3
#DIM CANDIDATE_RESULT, 3

LOCAL = 0
VARSET CANDIDATE
VARSET CANDIDATE_RESULT

IF GETBIT(ARG:1, 1)
	CANDIDATE:LOCAL '= "募る恋心"
	CANDIDATE_RESULT:LOCAL = 1
	LOCAL++
ENDIF
IF GETBIT(ARG:1, 2)
	CANDIDATE:LOCAL '= "深い依存"
	CANDIDATE_RESULT:LOCAL = 2
	LOCAL++
ENDIF
IF GETBIT(ARG:1, 3)
	CANDIDATE:LOCAL '= @"支配と独占"
	CANDIDATE_RESULT:LOCAL = 3
	LOCAL++
ENDIF

SIF LOCAL < 2 ;一つだけならそれを返す
	RETURN CANDIDATE_RESULT

SETCOLOR カラー_注意
PRINTFORMW %ANAME(ARG:0)%の心は複雑に揺れ動いている…。%ANAME(MASTER)%に対して抱く感情が傾倒しつつあるのは……
RESETCOLOR
{
	CALL ASK_MULTI_ANNOTATION_P(
		@"%CANDIDATE:0%", "<恋慕>を獲得"
		,@"%CANDIDATE:1%", "<服従>を獲得"
		,@"%CANDIDATE:2%", @"%ANAME(ARG:0)%が%ANAME(MASTER)%の<主人>になる"
		)
}
RETURN CANDIDATE_RESULT:RESULT

;-------------------------------------------------
;恋慕・服従・淫乱
;-------------------------------------------------
@TALENT_CHECK_FALLEN(ARG:0)

#DIM 陥落ルート選択

陥落ルート選択 = 0
LOCAL:1 = 0
{
	IF (!IS_SLAVE(ARG:0) && !IS_LOVER(ARG:0) && !IS_SLAVED_BY(ARG:0) && !TALENT:(ARG:0):親友)
		&& ((IS_SAMESEX(MASTER, ARG:0) && !TALENT:(ARG:0):両刀) || (CFLAG:(ARG:0):陥落するな))
		&& CFLAG:(ARG:0):好感度 >= 1500
}
	CALL SINGLE_EMPTY_LINE()
	CALL KOJO_EVENT(ARG:0, 61)
	SETCOLOR カラー_注意
	PRINTFORMW %ANAME(ARG:0)%は<親友>を得た
	RESETCOLOR
	TALENT:(ARG:0):親友 = 1
ENDIF

SIF CFLAG:(ARG:0):陥落するな
	GOTO LEWDNESS_CHECK

; 陥落ルート：恋慕／親愛
IF !IS_SLAVE(ARG:0) && !IS_SLAVED_BY(ARG:0)
	SIF !TALENT:(ARG:0):恋慕 && CFLAG:(ARG:0):好感度 > CFLAG:(ARG:0):従属度 && CFLAG:(ARG:0):好感度 >= 1500  && CFLAG:(ARG:0):依存度 >= 300 && (!IS_SAMESEX(MASTER, ARG:0) || TALENT:(ARG:0):両刀 || TALENT:(ARG:0):恋人)
		SETBIT 陥落ルート選択, 1
ENDIF
IF !IS_LOVER(ARG:0) && !IS_SLAVED_BY(ARG:0)
	SIF !TALENT:(ARG:0):服従 && CFLAG:(ARG:0):従属度 >= 1500 && CFLAG:(ARG:0):依存度 >= 300
		SETBIT 陥落ルート選択, 2
ENDIF
IF !IS_LOVER(ARG:0) && !IS_SLAVE(ARG:0)
	SIF !TALENT:(ARG:0):主人 && CFLAG:(ARG:0):支配度 >= 1500 && CFLAG:(ARG:0):依存度 >= 300
		SETBIT 陥落ルート選択, 3
ENDIF

IF 陥落ルート選択 > 0
	CALL DRAW_PORTRAIT(ARG:0, "[目:閉じ(緩)][眉:リラックス][OVL_表情:赤面][サイズ:180px][POS_X:50]",,1)
	CALL FALLEN_SELECTION(ARG:0, 陥落ルート選択)
	SELECTCASE RESULT
		CASE 1 ;恋慕
			;浮気チェック
			VARI TARGET_ID
			VARI LEWD_POINT
			CALLF REL_COUNT_LOVER(ARG:0, 0)
			TARGET_ID = RESULT:1
			IF TARGET_ID
				PRINTL
				PRINTFORML %ANAME(ARG:0)%は%ANAME(MASTER)%に対して恋心を抱きつつあるのを自覚した
				PRINTFORML ……だが%ANAME(ARG:0)%は既に%ANAME(TARGET_ID)%と深い関係を築いている
				PRINTFORMW このうえさらに%ANAME(MASTER)%との関係性を進めてもよいものだろうか？
				PRINTL
				{
					CALL ASK_MULTI_ANNOTATION_P(
						"欲望に従う", "浮気経験+1,淫堕点+25"
						,"頭から振り払う", @"%ANAME(ARG:0)%に陥落不可をセット(親友設定から変更可)"
						)
				}
				SELECTCASE RESULT
					CASE 0
						PRINTFORMW %ANAME(ARG:0)%は欲望に身を委ね%ANAME(MASTER)%との関係性を深めることにした……
						EXP:(ARG:0):浮気経験 += 1
						LEWD_POINT += 25
					CASE 1
						PRINTFORMW %ANAME(ARG:0)%は%ANAME(MASTER)%との関係性を頭から振り払った……
						CFLAG:(ARG:0):陥落するな = 1
						GOTO LEWDNESS_CHECK
				ENDSELECT
			ENDIF

			CALL KOJO_EVENT(ARG:0, 60)
			SETCOLOR カラー_注意
			IF TALENT:(ARG:0):親友
				PRINTFORMW %ANAME(ARG:0)%は<親友>を失い<恋慕>を得た
			ELSE
				PRINTFORMW %ANAME(ARG:0)%は<恋慕>を得た
			ENDIF
			LEWD_POINT += 30
			RESETCOLOR
			CALL QST_CHANGE_ITEM(@"淫堕点,{LEWD_POINT},")
			TALENT:(ARG:0):恋慕 = 1
			TALENT:(ARG:0):親友 = 0
			;堕とした人数＋１
			FLAG:陥落人数 += !(CFLAG:(ARG:0):陥落済み)
			CFLAG:(ARG:0):陥落済み = 1
			LOCAL:1 = 1
		CASE 2 ;服従
			;浮気チェック
			VARI TARGET_ID
			VARI LEWD_POINT
			CALLF REL_COUNT_SUBORDINATE(ARG:0, 0)
			TARGET_ID = RESULT:1
			IF TARGET_ID
				PRINTL
				PRINTFORML %ANAME(ARG:0)%の心は%ANAME(MASTER)%に深く依存しつつつあるようだ
				PRINTFORML ……だが%ANAME(ARG:0)%は既に%ANAME(TARGET_ID)%を自身の主人と認めている
				PRINTFORMW このうえさらに%ANAME(MASTER)%との関係性を進めてもよいものだろうか？
				PRINTL
				{
					CALL ASK_MULTI_ANNOTATION_P(
						"意のままになる", "浮気経験+1,淫堕点+25"
						,"懸命に抗う", @"%ANAME(ARG:0)%に陥落不可をセット(親友設定から変更可)"
						)
				}
				SELECTCASE RESULT
					CASE 0
						PRINTFORMW %ANAME(ARG:0)%は欲望に身を委ね%ANAME(MASTER)%にも身を委ねることにした……
						EXP:(ARG:0):浮気経験 += 1
						LEWD_POINT += 25
					CASE 1
						PRINTFORMW %ANAME(ARG:0)%はなけなしの気力を振り絞って%ANAME(MASTER)%との関係を拒んだ……
						CFLAG:(ARG:0):陥落するな = 1
						GOTO LEWDNESS_CHECK
				ENDSELECT
			ENDIF
			CALL KOJO_EVENT(ARG:0, 63)
			SETCOLOR カラー_注意
			IF TALENT:(ARG:0):親友
				PRINTFORMW %ANAME(ARG:0)%は<親友>を失い<服従>を得た
			ELSE
				PRINTFORMW %ANAME(ARG:0)%は<服従>を得た
			ENDIF
			RESETCOLOR
			CALL QST_CHANGE_ITEM("淫堕点,30,")
			SIF TALENT:(ARG:0):プライド高い
				CALL TALENT_LOSE_PRIDE(ARG:0)
			TALENT:(ARG:0):親友 = 0
			TALENT:(ARG:0):服従 = 1
			;堕とした人数＋１
			FLAG:陥落人数 += !(CFLAG:(ARG:0):陥落済み)
			CFLAG:(ARG:0):陥落済み = 1
			LOCAL:1 = 3
		CASE 3 ;主人
			;MEMO:キャラがが複数の所有物を持つ場合は浮気判定は不要だろう
			CALL KOJO_EVENT(ARG:0, 80)
			SETCOLOR カラー_注意
			IF TALENT:(ARG:0):親友
				PRINTFORMW %ANAME(ARG:0)%は<親友>を失い、%ANAME(MASTER)%の<主人>になった
			ELSE
				PRINTFORMW %ANAME(ARG:0)%は%ANAME(MASTER)%の<主人>になった
			ENDIF
			RESETCOLOR
			CALL QST_CHANGE_ITEM("淫堕点,30,")
			TALENT:(ARG:0):親友 = 0
			TALENT:(ARG:0):主人 = 1
			;堕とした人数＋１
			FLAG:陥落人数 += !(CFLAG:(ARG:0):陥落済み)
			CFLAG:(ARG:0):陥落済み = 1
			LOCAL:1 = 6
	ENDSELECT
ENDIF

IF !IS_SLAVE(ARG:0) && !IS_SLAVED_BY(ARG:0)
	IF !TALENT:(ARG:0):親愛 && CFLAG:(ARG:0):好感度 >= 10000 && CFLAG:(ARG:0):依存度 >= 3000 && ABL:(ARG:0):奉仕 >= ランク閾値:ランク_その他:ランク_C && TALENT:(ARG:0):恋慕
		CALL KOJO_EVENT(ARG:0, 62)
		SETCOLOR カラー_注意
		PRINTFORMW %ANAME(ARG:0)%は<親愛>を得た
		RESETCOLOR
		CALL QST_CHANGE_ITEM("淫堕点,50,")
		TALENT:(ARG:0):親愛 = 1
		LOCAL:1 = 2
	ENDIF
ENDIF

IF !IS_LOVER(ARG:0) && !IS_SLAVED_BY(ARG:0)
	IF !TALENT:(ARG:0):隷属 && CFLAG:(ARG:0):従属度 >= 10000 && CFLAG:(ARG:0):依存度 >= 3000 && ABL:(ARG:0):奉仕 >= ランク閾値:ランク_その他:ランク_C && TALENT:(ARG:0):服従
		CALL KOJO_EVENT(ARG:0, 64)
		SETCOLOR カラー_注意
		PRINTFORMW %ANAME(ARG:0)%は<隷属>を得た
		RESETCOLOR
		CALL QST_CHANGE_ITEM("淫堕点,50,")
		TALENT:(ARG:0):隷属 = 1
		LOCAL:1 = 4
	ENDIF
ENDIF

IF !IS_LOVER(ARG:0) && !IS_SLAVE(ARG:0)
	IF !TALENT:(ARG:0):所有者 && CFLAG:(ARG:0):支配度 >= 10000 && CFLAG:(ARG:0):依存度 >= 3000 && ABL:(ARG:0):欲望 >= ランク閾値:ランク_その他:ランク_A && TALENT:(ARG:0):主人
		CALL KOJO_EVENT(ARG:0, 81)
		SETCOLOR カラー_注意
		PRINTFORMW %ANAME(ARG:0)%は%ANAME(MASTER)%の<所有者>になった
		RESETCOLOR
		CALL QST_CHANGE_ITEM("淫堕点,50,")
		TALENT:(ARG:0):所有者 = 1
		LOCAL:1 = 7
	ENDIF
ENDIF

$LEWDNESS_CHECK

LOCAL:0 = ABL:(ARG:0):Ｃ感 + ABL:(ARG:0):Ｖ感 + ABL:(ARG:0):Ａ感 + ABL:(ARG:0):Ｂ感 + ABL:(ARG:0):Ｍ感 + ABL:(ARG:0):射精
{
	IF !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫乱) && ABL:(ARG:0):欲望 >= ランク閾値:ランク_その他:ランク_B && MAX(ABL:(ARG:0):精愛, ABL:(ARG:0):奉仕) >= ランク閾値:ランク_その他:ランク_C &&
		MAX(ABL:(ARG:0):性交, ABL:(ARG:0):レズ, ABL:(ARG:0):自慰) >= ランク閾値:ランク_その他:ランク_D && LOCAL:0 >= 20 && EXP:(ARG:0):絶頂経験 >= 500
}
	CALL KOJO_EVENT(ARG:0, 65)
	SETCOLOR カラー_注意
	PRINTFORMW %ANAME(ARG:0)%は<淫乱>を得た
	CALL QST_CHANGE_ITEM("淫堕点,50,")
	RESETCOLOR
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_淫乱
	LOCAL:1 = 5
ENDIF
SELECTCASE LOCAL:1
		;恋慕
	CASE 1
		IF TALENT:(ARG:0):一線越えない
			CALL COLOR_PRINTW(@"%ANAME(ARG:0)%は<一線越えない>を失った", カラー_注意)
			TALENT:(ARG:0):一線越えない = 0
		ENDIF
		IF TALENT:(ARG:0):無関心
			CALL COLOR_PRINTW(@"%ANAME(ARG:0)%は<無関心>を失った", カラー_注意)
			TALENT:(ARG:0):無関心 = 0
		ENDIF
		IF TALENT:(ARG:0):憎悪
			CALL COLOR_PRINTW(@"%ANAME(ARG:0)%は<憎悪>を失った", カラー_注意)
			TALENT:(ARG:0):憎悪 = 0
		ENDIF
		;親愛
	CASE 2
		IF TALENT:(ARG:0):孤高
			CALL COLOR_PRINTW(@"%ANAME(ARG:0)%は<孤高>を失った", カラー_注意)
			TALENT:(ARG:0):孤高 = 0
		ENDIF
		;従属
	CASE 3
		IF TALENT:(ARG:0):一線越えない
			CALL COLOR_PRINTW(@"%ANAME(ARG:0)%は<一線越えない>を失った", カラー_注意)
			TALENT:(ARG:0):一線越えない = 0
		ENDIF
		IF TALENT:(ARG:0):反抗的
			CALL COLOR_PRINTW(@"%ANAME(ARG:0)%は<反抗的>を失った", カラー_注意)
			TALENT:(ARG:0):反抗的 = 0
		ENDIF
		IF TALENT:(ARG:0):憎悪
			CALL COLOR_PRINTW(@"%ANAME(ARG:0)%は<憎悪>を失った", カラー_注意)
			TALENT:(ARG:0):憎悪 = 0
		ENDIF
		;隷属
	CASE 4
		IF TALENT:(ARG:0):抑圧
			CALL COLOR_PRINTW(@"%ANAME(ARG:0)%は<抑圧>を失った", カラー_注意)
			TALENT:(ARG:0):抑圧 = 0
		ENDIF
	CASE 6
		IF TALENT:(ARG:0):自制心
			CALL COLOR_PRINTW(@"%ANAME(ARG:0)%は<自制心>を失った", カラー_注意)
			TALENT:(ARG:0):自制心 = 0
		ENDIF
	CASE 7
		IF !TALENT:(ARG:0):解放
			CALL COLOR_PRINTW(@"%ANAME(ARG:0)%は<解放>を得た", カラー_注意)
			TALENT:(ARG:0):解放 = 1
		ENDIF
		;淫乱
	CASE 5
		;対象が特殊勢力の陥落系か雌犬か肉便器か苗床を所持しているか、遠隔調教のターゲット実行回数が20回以上なら貞操観念を喪失
		IF TALENT:(ARG:0):貞操観念 && (IS_FALLEN_TO_SP_COUNTRY(ARG:0) || GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_雌犬) || GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_精液便女) || GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_苗床) || COM_EXP:(ARG:0):398 >= 200)
			CALL COLOR_PRINTW(@"%ANAME(ARG:0)%は<貞操観念>を失った", カラー_注意)
			TALENT:(ARG:0):貞操観念 = 0
		ENDIF
		IF TALENT:(ARG:0):快感の否定
			CALL COLOR_PRINTW(@"%ANAME(ARG:0)%は<快感の否定>を失った", カラー_注意)
			TALENT:(ARG:0):快感の否定 = 0
		ENDIF
ENDSELECT

;-------------------------------------------------
;陥落ボーナス取得
;-------------------------------------------------
@GET_FALLEN_BONUS(ARG:0)
;ARG:0 : 陥落したキャラのID(未使用)
;ボーナス関連定数
#DIM CONST BONUS_REQUIRED_NUM    = 5
#DIM CONST BONUS_GOLD_VALUE      = 50000
#DIM CONST BONUS_SP_EXTEND_VALUE = 3
#DIM CONST BONUS_SP_EXTEND_LIMIT = 18
#DIM CONST SIZE_LIST_BONUS       = 8
;ボーナス情報配列
#DIMS DYNAMIC LIST_BONUS_NAME       , 8
#DIMS DYNAMIC LIST_BONUS_ANNOTATIONE, 8
#DIM  DYNAMIC LIST_BONUS_SELECTABLE , 8

#DIMS DYNAMIC BONUS_NAME
#DIM  DYNAMIC EXIST_SELECTABL_BONUS
#DIM  DYNAMIC BONUS_GOLD_NO
#DIM  DYNAMIC SELECTED_BONUS

SIF FLAG:陥落人数 < (FLAG:陥落ボーナス受領数 + 1) * BONUS_REQUIRED_NUM
	RETURN 0

CALL SINGLE_EMPTY_LINE()
CALL COLOR_PRINTL("今まで他人を陥落させてきた経験で、何か得られる気がする……", カラー_注意)

;----------------------------
;-- 陥落ボーナス情報を設定
;----------------------------
;謎の魅力
LOCAL = 0
LIST_BONUS_NAME:LOCAL        = 謎の魅力
LIST_BONUS_ANNOTATIONE:LOCAL = The likelihood, dependence, and subordinate are likely to increase. The command is easier to execute.
LIST_BONUS_SELECTABLE:LOCAL  = !TALENT:MASTER:謎の魅力
; 天の御遣い
LOCAL = 1
LIST_BONUS_NAME:LOCAL        = 天の御遣い
LIST_BONUS_ANNOTATIONE:LOCAL = The liking is easier to increase.
LIST_BONUS_SELECTABLE:LOCAL  = !TALENT:MASTER:天の御遣い
;君主の器
LOCAL = 2
LIST_BONUS_NAME:LOCAL        = 君主の器
LIST_BONUS_ANNOTATIONE:LOCAL = The subordinate is easier to increase.
LIST_BONUS_SELECTABLE:LOCAL  = !TALENT:MASTER:君主の器
;求心力
LOCAL = 3
LIST_BONUS_NAME:LOCAL        = 求心力
LIST_BONUS_ANNOTATIONE:LOCAL = The dependence is easier to increase.
LIST_BONUS_SELECTABLE:LOCAL  = !TALENT:MASTER:求心力
;絶倫
LOCAL = 4
LIST_BONUS_NAME:LOCAL        = 絶倫
LIST_BONUS_ANNOTATIONE:LOCAL = During training, physical strength and energy are extremely difficult to decrease, and ejaculation increases.
LIST_BONUS_SELECTABLE:LOCAL  = !TALENT:MASTER:絶倫
;冒険SP上限拡張
LOCAL = 5
LIST_BONUS_NAME:LOCAL        = 冒険SP上限拡張
LIST_BONUS_ANNOTATIONE:LOCAL = The extension of adventure skills increases. (Current expansion limit:{CFLAG:MASTER:冒険スキル拡張上限, 2}/{BONUS_SP_EXTEND_LIMIT})
LIST_BONUS_SELECTABLE:LOCAL  = CFLAG:MASTER:冒険スキル拡張上限 < BONUS_SP_EXTEND_LIMIT
;性技SP上限拡張
LOCAL = 6
LIST_BONUS_NAME:LOCAL        = 性技SP上限拡張
LIST_BONUS_ANNOTATIONE:LOCAL = The extension of sexual skills increases. (Current expansion limit:{CFLAG:MASTER:性技スキル拡張上限, 2}/{BONUS_SP_EXTEND_LIMIT})
LIST_BONUS_SELECTABLE:LOCAL  = CFLAG:MASTER:性技スキル拡張上限 < BONUS_SP_EXTEND_LIMIT
;富
LOCAL = 7
LIST_BONUS_NAME:LOCAL        = 富
LIST_BONUS_ANNOTATIONE:LOCAL = You can get money.
LIST_BONUS_SELECTABLE:LOCAL  = 1
;お金の情報が何番に格納されているか記憶
BONUS_GOLD_NO = LOCAL

;----------------------------
;-- ボーナスの選択可否判定
;----------------------------
EXIST_SELECTABL_BONUS = 0
;ボーナス選択可否をチェック
FOR LOCAL, 0, SIZE_LIST_BONUS
	;お金は必ず選択可能なので判定から除外
	SIF LOCAL == BONUS_GOLD_NO
		CONTINUE
	;選択可能な項目があることを記憶
	IF LIST_BONUS_SELECTABLE:LOCAL
		EXIST_SELECTABL_BONUS = 1
		BREAK
	ENDIF
NEXT

;--------------
;-- 選択処理
;--------------
;富以外に選択可能な墜落ボーナスがある場合は選択肢を表示
IF EXIST_SELECTABL_BONUS
	;注釈＆条件付選択処理を実行
	{
		CALL ASK_MULTI_JUDGE_ANNOTATION_P(
			LIST_BONUS_NAME:0, LIST_BONUS_ANNOTATIONE:0, LIST_BONUS_SELECTABLE:0,
			LIST_BONUS_NAME:1, LIST_BONUS_ANNOTATIONE:1, LIST_BONUS_SELECTABLE:1,
			LIST_BONUS_NAME:2, LIST_BONUS_ANNOTATIONE:2, LIST_BONUS_SELECTABLE:2,
			LIST_BONUS_NAME:3, LIST_BONUS_ANNOTATIONE:3, LIST_BONUS_SELECTABLE:3,
			LIST_BONUS_NAME:4, LIST_BONUS_ANNOTATIONE:4, LIST_BONUS_SELECTABLE:4,
			LIST_BONUS_NAME:5, LIST_BONUS_ANNOTATIONE:5, LIST_BONUS_SELECTABLE:5,
			LIST_BONUS_NAME:6, LIST_BONUS_ANNOTATIONE:6, LIST_BONUS_SELECTABLE:6,
			LIST_BONUS_NAME:7, LIST_BONUS_ANNOTATIONE:7, LIST_BONUS_SELECTABLE:7,
			)
	}
	SELECTED_BONUS = RESULT
	;お金以外選択できない場合は選択処理を飛ばしてお金に決定
ELSE
	SELECTED_BONUS = BONUS_GOLD_NO
ENDIF

;--------------------
;-- ボーナスを取得
;--------------------
BONUS_NAME '= LIST_BONUS_NAME:SELECTED_BONUS
SELECTCASE BONUS_NAME
		;TALENT類
	CASE "謎の魅力", "天の御遣い", "絶倫", "君主の器", "求心力"
		CALL COLOR_PRINTW(@"%ANAME(MASTER)%は<%BONUS_NAME%>を身につけた", カラー_注意)
		TALENT:MASTER:GETNUM(TALENT, BONUS_NAME) = 1
		;スキル上限拡張
	CASE "冒険SP上限拡張"
		CFLAG:MASTER:冒険スキル拡張上限 += BONUS_SP_EXTEND_VALUE
		CALL COLOR_PRINTW(@"%ANAME(MASTER)%の冒険スキルの拡張限界が{BONUS_SP_EXTEND_VALUE}点上昇した({CFLAG:MASTER:冒険スキル拡張上限, 2}/{BONUS_SP_EXTEND_LIMIT})", カラー_注意)
	CASE "性技SP上限拡張"
		CFLAG:MASTER:性技スキル拡張上限 += BONUS_SP_EXTEND_VALUE
		CALL COLOR_PRINTW(@"%ANAME(MASTER)%の性技スキルの拡張限界が{BONUS_SP_EXTEND_VALUE}点上昇した({CFLAG:MASTER:性技スキル拡張上限, 2}/{BONUS_SP_EXTEND_LIMIT})", カラー_注意)
		;お金
	CASE "富"
		CALL COLOR_PRINTW(@"%TOSTR(BONUS_GOLD_VALUE, "#,##0")%ディナリを手に入れた", カラー_注意)
		MONEY += BONUS_GOLD_VALUE
ENDSELECT
FLAG:陥落ボーナス受領数 ++

RETURN 1

;-------------------------------------------------
;その他素質取得
;-------------------------------------------------
@TALENT_CHECK_OTHERS(ARG:0)
;酔い累積値が150000以上で酒豪が付く	下戸の場合は下戸を失う
IF !TALENT:(ARG:0):酒豪 && CFLAG:(ARG:0):酔い累積値 >= 150000
	CFLAG:(ARG:0):酔い累積値 = 0
	CALL SINGLE_EMPTY_LINE()
	CALL KOJO_EVENT(ARG:0, 74)
	SETCOLOR カラー_注意
	IF TALENT:(ARG:0):下戸
		PRINTFORMW %ANAME(ARG:0)%は<下戸>を失った
		TALENT:(ARG:0):下戸 = 0
	ELSE
		PRINTFORMW %ANAME(ARG:0)%は<酒豪>を得た
		TALENT:(ARG:0):酒豪 = 1
	ENDIF
	RESETCOLOR
ENDIF

;おもらし経験30以上でおもらし癖
IF !TALENT:(ARG:0):おもらし癖 && EXP:(ARG:0):おもらし経験 >= 30
	CALL SINGLE_EMPTY_LINE()
	CALL KOJO_EVENT(ARG:0, 76)
	SETCOLOR カラー_注意
	PRINTFORMW %ANAME(ARG:0)%は<おもらし癖>を得た
	RESETCOLOR
	TALENT:(ARG:0):おもらし癖 = 1
ENDIF

;-------------------------------------------------
;淫乱の取得を前提としないエロ系陥落素質
;-------------------------------------------------
@TALENT_CHECK_EROS(ARG:0)
;輪姦経験200以上、欲望B以上、性交C以上で肉便器
IF !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_精液便女) && EXP:(ARG:0):輪姦経験 >= 200 && ABL:(ARG:0):欲望 >= ランク閾値:ランク_その他:ランク_B && ABL:(ARG:0):性交 >= ランク閾値:ランク_その他:ランク_C
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい……
	IF TALENT:(ARG:0):プライド高い
		PRINTFORMW %ANAME(ARG:0)%は犯される快感に負け、自分が性処理用の便器であることを受け入れてしまった
	ELSE
		PRINTFORMW %ANAME(ARG:0)%は犯される快感を覚え、便器として使われる悦びに身を捧げることにしたようだ
	ENDIF
	CALL KOJO_EVENT(ARG:0,  82)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<精液便女>になった
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_精液便女
	SIF TALENT:(ARG:0):プライド高い
		CALL TALENT_LOSE_PRIDE(ARG:0)
	CALL TALENT_LOSE_TEISOU(ARG:0)
ENDIF

;薬物依存が300を越えると薬物依存を取得
IF !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_薬物中毒) && CFLAG:(ARG:0):薬物依存 > 300
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい……
	PRINTFORMW %ANAME(ARG:0)%は、度重なる薬物の使用により、それから離れられなくなった
	CALL KOJO_EVENT(ARG:0, 85)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<薬物中毒>を得た
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_薬物中毒
ENDIF

;被催眠経験300以上, 催眠絶頂経験500以上、催眠S
IF !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_傀儡) && EXP:(ARG:0):被催眠経験 > 300 && EXP:(ARG:0):催眠絶頂経験 >= 500 && ABL:(ARG:0):催眠 >= ランク閾値:ランク_その他:ランク_S
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい……
	PRINTFORMW %ANAME(ARG:0)%は、何度も深い催眠をかけられたことにより、指を鳴らすだけで股を開く玩具に成り果てたようだ
	CALL KOJO_EVENT(ARG:0, 95)
	CALL COLOR_PRINTW(@"%ANAME(ARG:0)%は<傀儡>を得た", カラー_ピンク)
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_傀儡
ENDIF

;浮気経験5
IF !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖) && EXP:(ARG:0):浮気経験 >= 5
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい……
	PRINTFORMW %ANAME(ARG:0)%は、何度も寝取られたことにより、すぐ他人に股を開くようになってしまった
	CALL KOJO_EVENT(ARG:0, 96)
	CALL COLOR_PRINTW(@"%ANAME(ARG:0)%は<浮気癖>を得た", カラー_ピンク)
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖
ENDIF

;-------------------------------------------------
;部位特化素質＆サドマゾの取得処理
;一回の調教で取得できる素質は１つのみ
;-------------------------------------------------
@TALENT_CHECK_PART(ARG:0)
;[サド] 奉仕A以上、性技B以上、ウフフ主導度1000以上、倒錯度800以上で、嗜虐経験値300以上、サドB以上
IF !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_サド) && ABL:(ARG:0):奉仕 >= ランク閾値:ランク_その他:ランク_A && ABL:(ARG:0):性技 >= ランク閾値:ランク_その他:ランク_B && ABL:(ARG:0):主導度Ｕ >= 1000 && ABL:(ARG:0):倒錯度 >= 800 && EXP:(ARG:0):嗜虐経験値 >= 300 && ABL:(ARG:0):サド >= ランク閾値:ランク_その他:ランク_B
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい…
	PRINTFORML %ANAME(ARG:0)%は他者を性的に虐めることに強い快感を覚えるようになった…
	CALL KOJO_EVENT(ARG:0, 71)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<サド>を得た
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_サド
ENDIF

;[マゾ] ウフフ主導度-1000以下、倒錯度800以上、苦痛快楽経験400以上、今回の絶頂回数が100以上、マゾB以上
IF  !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_マゾ) && ABL:(ARG:0):主導度Ｕ <= -1000 && ABL:(ARG:0):倒錯度 >= 800 && EXP:(ARG:0):苦痛快楽経験 >= 400 && SUM_EX(ARG:0) >= 100 && ABL:(ARG:0):マゾ >= ランク閾値:ランク_その他:ランク_B
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい…
	PRINTFORML %ANAME(ARG:0)%はすっかり虐められる快感の虜になってしまったようだ…
	CALL KOJO_EVENT(ARG:0, 72)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<マゾ>を得た
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_マゾ
ENDIF

;[淫核] 竿なし、Ｃ感覚Ｓランク以上、倒錯度100以上、今回のＣ絶頂回数が50以上
IF  !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫核) && !HAS_PENIS(ARG:0) && ABL:(ARG:0):Ｃ感 >= ランク閾値:ランク_その他:ランク_S && ABL:(ARG:0):倒錯度 >= 100 && EX:(ARG:0):Ｃ絶頂 >= 50
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい…
	PRINTFORML %ANAME(ARG:0)%はクリトリスのもたらす雌の快楽にすっかり溺れてしまったようだ…
	CALL KOJO_EVENT(ARG:0, 66)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<淫核>を得た
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_淫核
ENDIF

;[淫壷] 「Ｖ感覚Ａランク以上且つ、性交Dランク以上且つ、Ｖ拡張経験30以上」もしくは「Ｖ感覚Ｓランク以上且つ、性交Ｃランク以上」で、今回のＶ絶頂回数が50以上
IF  !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫壷) && ((ABL:(ARG:0):Ｖ感 >= ランク閾値:ランク_その他:ランク_A && ABL:(ARG:0):性交 >= ランク閾値:ランク_その他:ランク_D && EXP:(ARG:0):Ｖ拡張経験 >= 30) || (ABL:(ARG:0):Ｖ感 >= ランク閾値:ランク_その他:ランク_S && ABL:(ARG:0):性交 >= ランク閾値:ランク_その他:ランク_C)) && EX:(ARG:0):Ｖ絶頂 >= 50
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい…
	PRINTFORML %ANAME(ARG:0)%の淫らな蜜壷は、常に男のモノを求めて疼くようになってしまった…
	CALL KOJO_EVENT(ARG:0, 67)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<淫壷>を得た
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_淫壷
ENDIF

;[尻穴狂い] 「Ａ感覚Ａランク以上且つ、Ａ拡張経験50以上」もしくは「Ａ感覚Ｓランク以上、倒錯度800以上」で、今回のＡ絶頂回数が50以上
IF  !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_尻穴狂い) && ((ABL:(ARG:0):Ａ感 >= ランク閾値:ランク_その他:ランク_A && EXP:(ARG:0):Ａ拡張経験 >= 50) || (ABL:(ARG:0):Ａ感 >= ランク閾値:ランク_その他:ランク_S && ABL:(ARG:0):倒錯度 >= 800)) && EX:(ARG:0):Ａ絶頂 >= 50
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい…
	PRINTFORML %ANAME(ARG:0)%の尻穴はすっかり快楽を得るための淫らな器官に変わってしまった…
	CALL KOJO_EVENT(ARG:0, 68)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<尻穴狂い>を得た
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_尻穴狂い
ENDIF

;[淫乳] Ｂ感覚Ｓランク以上、倒錯度100以上、今回のＢ絶頂回数が50以上
IF  !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫乳) && ABL:(ARG:0):Ｂ感 >= ランク閾値:ランク_その他:ランク_S && ABL:(ARG:0):倒錯度 >= 100 && EX:(ARG:0):Ｂ絶頂 >= 50
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい…
	PRINTFORML %ANAME(ARG:0)%の胸はわずかの刺激でも声を上げてしまうほど淫らに開発され尽くしてしまった…
	CALL KOJO_EVENT(ARG:0, 69)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<淫乳>を得た
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_淫乳
ENDIF

;[蕩唇] Ｍ感覚Ａランク以上、キス経験200以上、口淫経験100以上、今回のＭ絶頂回数が50以上
IF  !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_蕩唇) && ABL:(ARG:0):Ｍ感 >= ランク閾値:ランク_その他:ランク_A && EXP:(ARG:0):キス経験 >= 200 && EXP:(ARG:0):口淫経験 >= 100 && EX:(ARG:0):Ｍ絶頂 >= 50
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい…
	PRINTFORML %ANAME(ARG:0)%の口は下の口と同様の、性的快楽を感じるための雌の性器へと変わってしまった…
	CALL KOJO_EVENT(ARG:0, 70)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<蕩唇>を得た
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_蕩唇
ENDIF

;[尿道狂い] 「Ｕ感覚Ａランク以上、Ｕ挿入経験100以上」もしくは「Ｕ感覚Ｓランク以上、倒錯度800以上」で、今回のＡ絶頂回数が50以上
IF  !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_尿道狂い) && ((ABL:(ARG:0):Ｕ感 >= ランク閾値:ランク_その他:ランク_A && EXP:(ARG:0):Ｕ開発経験 >= 100) || (ABL:(ARG:0):Ｕ感 >= ランク閾値:ランク_その他:ランク_S && ABL:(ARG:0):倒錯度 >= 800)) && EX:(ARG:0):Ｕ絶頂 >= 50
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW  %ANAME(ARG:0)%の様子がおかしい…
	PRINTFORML  %ANAME(ARG:0)%の尿道はすっかり性的快楽を感じるための淫らな器官に変わってしまった…
	CALL KOJO_EVENT(ARG:0, 68)
	SETCOLOR カラー_ピンク
	PRINTFORMW  %ANAME(ARG:0)%は<尿道狂い>を得た
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_尿道狂い
ENDIF

;[射精狂い] 竿あり、Ｃ感覚Ｃランク以上、射精Ａランク以上、今回の射精回数が30以上
IF  !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_射精狂い) && HAS_PENIS(ARG:0) && ABL:(ARG:0):Ｃ感 >= ランク閾値:ランク_その他:ランク_C && ABL:(ARG:0):射精 >= ランク閾値:ランク_その他:ランク_A && EX:(ARG:0):射精 >= 30
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい…
	PRINTFORML %ANAME(ARG:0)%の肉竿は何度精を放っても次の射精を待ちわびて疼くようになってしまった…
	CALL KOJO_EVENT(ARG:0, 73)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<射精狂い>を得た
	RESETCOLOR

	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_射精狂い
ENDIF

;[苗床] 触手Ｃランク以上、触手出産経験100以上
IF  !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_苗床) && ABL:(ARG:0):触手 >= ランク閾値:ランク_その他:ランク_C && EXP:(ARG:0):触手出産経験 >= 100
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい…
	PRINTFORML %ANAME(ARG:0)%は触手に依存し、触手の苗床にされることに悦びを覚えるようになったようだ
	CALL KOJO_EVENT(ARG:0, 86)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<苗床>になった
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_苗床
ENDIF

;[生ハメ依存] Ｖ(Ａ）感Ａランク以上、Ｖ（Ａ）性交経験200以上、今回の絶頂回数100以上
IF !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_生ハメ依存) && ((ABL:(ARG:0):Ｖ感 >= ランク閾値:ランク_その他:ランク_A && EXP:(ARG:0):Ｖ性交経験 >= 200 && EXP:(ARG:0):膣内射精経験 >= 150) || (ABL:(ARG:0):Ａ感 >= ランク閾値:ランク_その他:ランク_A && EXP:(ARG:0):Ａ性交経験 >= 200 && EXP:(ARG:0):腸内射精経験 >= 150)) && SUM_EX(ARG:0) >= 100
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい…
	PRINTFORML %ANAME(ARG:0)%は幾度となく性交を繰り返した結果、生ハメでないと満足できない身体になったようだ
	CALL KOJO_EVENT(ARG:0, 87)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<生ハメ依存>を得た
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_生ハメ依存
ENDIF

;[孕みたがり] 出産C、妊娠経験10以上
IF  !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_孕みたがり) && ABL:(ARG:0):出産 >= ランク閾値:ランク_その他:ランク_C && ABL:(ARG:0):性交 >= ランク閾値:ランク_その他:ランク_A
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい…
	PRINTFORML %ANAME(ARG:0)%は幾度となく妊娠と出産を繰り返した結果、その快楽にすっかりハマッたようだ
	CALL KOJO_EVENT(ARG:0, 88)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<孕みたがり>を得た
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_孕みたがり
ENDIF

;[露出狂] 露出A,欲望A,自慰C
IF  !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_露出狂) && ABL:(ARG:0):露出 >= ランク閾値:ランク_その他:ランク_A && ABL:(ARG:0):欲望 >= ランク閾値:ランク_その他:ランク_A && ABL:(ARG:0):自慰 >= ランク閾値:ランク_その他:ランク_C
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい…
	PRINTFORML %ANAME(ARG:0)%は己の肉体を見せつける快感にすっかりハマッたようだ
	CALL KOJO_EVENT(ARG:0, 92)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<露出狂>を得た
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_露出狂
ENDIF

;獣姦経験200以上、欲望A以上、性交C以上で雌犬
IF  !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_雌犬) && EXP:(ARG:0):獣姦経験 >= 200 && ABL:(ARG:0):欲望 >= ランク閾値:ランク_その他:ランク_A && ABL:(ARG:0):性交 >= ランク閾値:ランク_その他:ランク_B
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい……
	PRINTFORMW %ANAME(ARG:0)%は、獣と交わる快感を忘れられなくなってしまったようだ
	CALL KOJO_EVENT(ARG:0,  83)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<雌犬>になった
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_雌犬
ENDIF

;女限定、売春経験100以上、欲望B以上、性技C、奉仕C以上で娼婦
IF  !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_娼婦) && IS_FEMALE(ARG:0) && EXP:(ARG:0):売春経験 >= 100 && ABL:(ARG:0):欲望 >= ランク閾値:ランク_その他:ランク_B && ABL:(ARG:0):性技 >= ランク閾値:ランク_その他:ランク_C && ABL:(ARG:0):奉仕 >= ランク閾値:ランク_その他:ランク_C
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい……
	PRINTFORMW %ANAME(ARG:0)%は、自らの身体を金で売ることに悦びを見いだすようになった
	CALL KOJO_EVENT(ARG:0,  84)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<娼婦>になった
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_娼婦
	CALL TALENT_LOSE_TEISOU(ARG:0)
ENDIF

;女限定、撮影経験300以上、欲望A以上、性技A、露出C以上でＡＶ女優
IF  !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_娼妓) && IS_FEMALE(ARG:0) && EXP:(ARG:0):撮影経験 >= 300 && ABL:(ARG:0):欲望 >= ランク閾値:ランク_その他:ランク_A && ABL:(ARG:0):性技 >= ランク閾値:ランク_その他:ランク_A && ABL:(ARG:0):露出 >= ランク閾値:ランク_その他:ランク_C
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい……
	PRINTFORMW %ANAME(ARG:0)%は、自らの痴態を記録に残すことに喜びを覚えるようになった
	CALL KOJO_EVENT(ARG:0,  89)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<ＡＶ女優>になった
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_娼妓
	CALL TALENT_LOSE_TEISOU(ARG:0)
ENDIF

;[良質母胎]
;以下のどちらか
;触手A,触手出産経験300,苗床所持
;出産A,妊娠経験30
{
	IF !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_良質母胎) &&
		(
		(ABL:(ARG:0):触手 > ランク閾値:ランク_その他:ランク_A && EXP:(ARG:0):触手出産経験 >= 300 && GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_苗床)) ||
		(ABL:(ARG:0):出産 >= ランク閾値:ランク_その他:ランク_A && EXP:(ARG:0):妊娠経験 >= 30 && GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_孕みたがり))
		)
}
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい…
	PRINTFORML 幾度も孕まされることを通じ、%ANAME(ARG:0)%は極めて排卵しやすい、孕みやすい体質になったようだ
	CALL KOJO_EVENT(ARG:0, 93)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<良質母胎>になった
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_良質母胎
ENDIF

;[濃厚精液] 性交S、射精S、孕ませ経験10以上
IF !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_濃厚精液) && ABL:(ARG:0):性交 >= ランク閾値:ランク_その他:ランク_S && ABL:(ARG:0):射精 >= ランク閾値:ランク_その他:ランク_S && EXP:(ARG:0):孕ませ経験 >= 10
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい…
	PRINTFORML 幾度も女を孕ませる中で、%ANAME(ARG:0)%の精液は妊娠させるのに最適な濃厚で大量のものになったようだ
	CALL KOJO_EVENT(ARG:0, 94)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<濃厚精液>になった
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_濃厚精液
ENDIF

;自慰狂い
;自慰A、倒錯度800以上
{
	IF !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_自慰狂い) &&
		ABL:(ARG:0):自慰 >= ランク閾値:ランク_その他:ランク_A  &&
		ABL:(ARG:0):倒錯度 >= 800
}
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい…
	PRINTFORML %ANAME(ARG:0)%は自慰のしすぎで、オナニーをせずにはいられない身体になってしまった
	CALL KOJO_EVENT(ARG:0, 97)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<自慰狂い>になった
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_自慰狂い
ENDIF

;雌牛
;母乳体質、淫乳所持、噴乳A、倒錯度600以上、
{
	IF !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_雌牛) &&
		TALENT:(ARG:0):母乳体質 &&
		GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫乳) &&
		ABL:(ARG:0):噴乳 >= ランク閾値:ランク_その他:ランク_A  &&
		ABL:(ARG:0):倒錯度 >= 600
}
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW  %ANAME(ARG:0)%の様子がおかしい……
	PRINTFORMW  %ANAME(ARG:0)%の胸は、家畜のように母乳を搾られないと落ち着かなくなってしまったようだ
	CALL KOJO_EVENT(ARG:0, 98)
	SETCOLOR カラー_ピンク
	PRINTFORMW  %ANAME(ARG:0)%は<雌牛>になった
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_雌牛
ENDIF

;[精飲中毒] 精愛S、Ｍ感覚S、口内射精経験250以上、口淫経験300以上、今回のＭ絶頂回数が50以上
{
	IF !GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_精飲中毒)
		&& ABL:(ARG:0):精愛 >= ランク閾値:ランク_その他:ランク_S
		&& ABL:(ARG:0):Ｍ感 >= ランク閾値:ランク_その他:ランク_S
		&& EXP:(ARG:0):口内射精経験 >= 250
		&& EXP:(ARG:0):口淫経験 >= 300
		&& EX:(ARG:0):Ｍ絶頂 >= 50
}
	CALL SINGLE_EMPTY_LINE()
	PRINTFORMW %ANAME(ARG:0)%の様子がおかしい…
	PRINTFORML %ANAME(ARG:0)%は口内を雄の精液が満たす度に、激しい性的な悦楽を感じているようだ
	CALL KOJO_EVENT(ARG:0, 99)
	SETCOLOR カラー_ピンク
	PRINTFORMW %ANAME(ARG:0)%は<精飲中毒>を得た
	RESETCOLOR
	CALL QST_CHANGE_ITEM("淫堕点,45,")
	SETBIT TALENT:(ARG:0):淫乱系, 素質_淫乱_精飲中毒
ENDIF


code:
@FL_INIT_TOOLCHIP
TOOLTIP_CUSTOM 1
TOOLTIP_SETCOLOR カラー_白, カラー_黒
TOOLTIP_SETDURATION 90000
TOOLTIP_SETFONT "ＭＳ ゴシック"
TOOLTIP_SETFONTSIZE 10
TOOLTIP_FORMAT 0;Right Alignment

repo_name: pervysquirrelz/erafl

license: unknown


code:
;操作関連のツールチップ
#DIMS CONST TT_OPS_NPCオートコマンド = "NPCによる動的なコマンド実行(リアクション、割込)の実行可否を指定します"
#DIMS CONST TT_OPS_実行対象反転 = "コマンドの実行者と対象者を入れ替えます"


code:
;調教コマンドの基幹部分とそれに関連する処理

;-------------------------------------------------
;実行可能なコマンドの記録
;-------------------------------------------------
@CREATE_COMABLE_LIST

;リストのクリア
VARSET COM_ABLE_FLAG
VARSET COM_CONFLICT_FLAG

;モード別のコマンドを走査
FOR LOCAL:0, 0, VARSIZE("TRAINNAME")
	SIF TRAINNAME:(LOCAL:0) == ""
		CONTINUE
	;実行可能かどうかを判定
	CALL CHECK_COMABLE(LOCAL:0)
	;COM_ABLE_FLAGに実行可能かどうか保存
	;0は実行不可、1は干渉せずに実行可能、2は干渉、3の場合は干渉コマンド外したら可能な継続実行
	SELECTCASE RESULT
		CASE 1
			COM_ABLE_FLAG:LOCAL = 1
		CASE 2
			COM_ABLE_FLAG:LOCAL = 1
			COM_CONFLICT_FLAG:(LOCAL) = 1
		CASE 3
			COM_ABLE_FLAG:LOCAL = 1
			COM_CONFLICT_FLAG:(LOCAL) = 1
	ENDSELECT
	;SIF GROUPMATCH(RESULT, 1, 3)
	;	COM_ABLE_FLAG:LOCAL = 1
	;IF GROUPMATCH(RESULT, 2, 3)
	;	COM_CONFLICT_FLAG:(LOCAL) = 1
	;	COM_ABLE_FLAG:LOCAL = 1
	;ENDIF
	;リストの記録位置を一つ進める
NEXT

;-------------------------------------------------
;コマンドARG:0が実行可能ならCOM_LISTに記録する
;-------------------------------------------------
@CHECK_COMABLE(ARG:0)
;TRAINNAMEが定義されていないなら無視
IF TRAINNAME:(ARG:0) != ""
	;コマンドフィルタ
	IF !COM_FILTER:(ARG:0)
		; ;Only check the currently selected category. Saves some processing time.
		; TRYCALLFORM COM_CATEGORY{ARG:0}
		; IF (RESULT != TFLAG:調教タブ設定) && (ARG:0 != 291)
		; 	RETURN 0
		; ENDIF

		;If a continuable action is already equipped with the same players and targets, make it selectable
		;Note: Doing this here instead of in each COM_ABLE means it works for the user, but not autoselect)
		;継続可能コマンドの場合
		TRYCALLFORM COM_IS_EQUIP{ARG:0}
		IF RESULT > 0
			;継続コマンドと同一条件のコマンド実行判定
			RESULT = 0
			TRYCALLFORM COM_ALREADY_HAPPENING{(ARG:0)}
			IF RESULT > 0 || COM_ALREADY_HAPPENING(ARG:0)
				;同一条件で再実行不可能なコマンド(主に道具系)
				;Non-repeatable continuable actions: Strap-on, strapon gag, condom, blindfold, rope, gag, nose hook, exposure play draw on body, shoot video, enema&plug, summon tentacles
				IF GROUPMATCH(ARG:0, 50, 68, 75, 78, 84, 85, 86, 93, 112, 114, 115, 142, 200)
					RETURN 0
				;それ以外
				ELSE
					RETURN 1
				ENDIF
			ENDIF
		ENDIF

		COM_ENABLE = 1
		TRYCALLFORM COM_ABLE{ARG:0}
		COM_ENABLE = 0
		LOCAL:1 = RESULT
		LOCAL:2 = RESULT
		;DEBUGPRINTFORML %TRAINNAME:ARG%,RESULT({RESULT})
		;clear out mequip, except for actions like "Summon Tentacles" that strictly enable other actions, which we move to the top
		;This way, we're only checking conditions like HAS_PENIS or IS_PLAYABLE instead of action-related conditions
		LOCAL:4 = 0
		FOR LOCAL, 0, MEQUIP_NUM
			IF GROUPMATCH(MEQUIP:LOCAL, 50, 200)
				CALL SWAP_MEQUIP(LOCAL, LOCAL:4)
				LOCAL:4++
			ENDIF
		NEXT
		LOCAL:5 = MEQUIP_NUM
		MEQUIP_NUM = LOCAL:4
		COM_ENABLE = 1
		TRYCALLFORM COM_ABLE{ARG:0}
		COM_ENABLE = 0
		LOCAL:2 = RESULT

		;Print the disabled actions - using this for debugging
		;SIF !RESULT && (ARG:0 < 250)
		;    PRINTFORM %ENTRAINNAME(ARG:0)%

		MEQUIP_NUM = LOCAL:5

		;初回実行時はだめだが2回目が通るケース
		;つまり既存コマンドと干渉するケース
		;DEBUGPRINTFORML %TRAINNAME:ARG%,LOCAL:1 = {LOCAL:1},LOCAL:2 = {LOCAL:2}
		IF LOCAL:1 == 0 && LOCAL:2 == 1
			RESULT = 0
			TRYCALLFORM COM_IS_EQUIP{ARG:0}
			SELECTCASE RESULT
				CASE 0
					RETURN 2
				CASE 1
					RETURN 2
				CASE 2
					RETURN 3
			ENDSELECT
			;1回目可、2回目不可は可として扱う
		ELSEIF LOCAL:1 == 1 && LOCAL:2 == 0
			RETURN 1
		ELSEIF LOCAL:1 == LOCAL:2
			RETURN LOCAL:1
		ELSE
			;DEBUGPRINTFORML %TRAINNAME:ARG%
			RETURN 2
		ENDIF
	ENDIF
ENDIF
RETURN 0

;-------------------------------------------------
;調教コマンドの表示＆実行可能コマンドの記録
;-------------------------------------------------
@SHOW_COMMAND
#DIM L_COUNTER
#DIM AUTO_MAIN_CHARA
#DIM SET_MPLY
#DIM SET_MTAR

CALL TITLE_CATEGORY_GENERAL("コマンド")
IF FLAG:ウフフフラグ
	CALL PRINT_SELECT_BUTTON("{Caress}", 2000, TFLAG:調教タブ設定 == 0)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{Vaginal}", 2001, TFLAG:調教タブ設定 == 1)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{Anal}", 2011, TFLAG:調教タブ設定 == 11)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{Tool}", 2002, TFLAG:調教タブ設定 == 2)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{Abusive}", 2003, TFLAG:調教タブ設定 == 3)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{Shame}", 2004, TFLAG:調教タブ設定 == 4)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{Tentacle}", 2005, TFLAG:調教タブ設定 == 5)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{Special}", 2006, TFLAG:調教タブ設定 == 6)
ELSEIF TFLAG:調教経過時間 == TFLAG:調教ターン数 && FLAG:調教モード != 調教_クエスト
	CALL PRINT_SELECT_BUTTON("{Special}", 2006, TFLAG:調教タブ設定 == 6)
	PRINTPLAIN
ELSEIF FLAG:調教モード == 調教_会う
	CALL PRINT_SELECT_BUTTON("{Talk}", 2007, TFLAG:調教タブ設定 == 7)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{Train}", 2008, TFLAG:調教タブ設定 == 8)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{Special}", 2006, TFLAG:調教タブ設定 == 6)
	PRINTPLAIN
ELSEIF FLAG:調教モード == 調教_捕虜会話
	CALL PRINT_SELECT_BUTTON("{Talk}", 2007, TFLAG:調教タブ設定 == 7)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{Special}", 2006, TFLAG:調教タブ設定 == 6)
	PRINTPLAIN
ELSEIF FLAG:調教モード == 調教_居住区
	CALL PRINT_SELECT_BUTTON("{Talk & Act}", 2009, TFLAG:調教タブ設定 == 9)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{Sexual}", 2010, TFLAG:調教タブ設定 == 10)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{Abusive}", 2012, TFLAG:調教タブ設定 == 12)
	PRINTPLAIN
	CALL PRINT_SELECT_BUTTON("{Special}", 2006, TFLAG:調教タブ設定 == 6)
	PRINTPLAIN
ELSEIF FLAG:調教モード == 調教_クエスト
	CALL PRINT_SELECT_BUTTON("{ｸｴｽﾄ}", 2013, TFLAG:調教タブ設定 == 13)
	PRINTPLAIN
	IF FLAG:クエスト_交流コマンド許可
		CALL PRINT_SELECT_BUTTON("{Talk & Act}", 2009, TFLAG:調教タブ設定 == 9)
		PRINTPLAIN
		CALL PRINT_SELECT_BUTTON("{Sexual}", 2010, TFLAG:調教タブ設定 == 10)
		PRINTPLAIN
		CALL PRINT_SELECT_BUTTON("{Abusive}", 2012, TFLAG:調教タブ設定 == 12)
		PRINTPLAIN
		CALL PRINT_SELECT_BUTTON("{Special}", 2006, TFLAG:調教タブ設定 == 6)
		PRINTPLAIN
	ENDIF
ENDIF

PRINTPLAIN
IF GROUPMATCH(FLAG:調教モード, 調教_会う, 調教_閨, 調教_捕虜調教, 調教_捕虜会話, 調教_居住区)
	CALLF TAG_PRINTH(@" @B:5900$%TT_OPS_実行対象反転%@[Give ⇔ Receive]@/B@")
	PRINTBUTTON " [Target reset]", 5901
ELSEIF FLAG:調教モード == 調教_クエスト
	IF FLAG:クエスト_交流コマンド許可
		CALLF TAG_PRINTH(@" @B:5900$%TT_OPS_実行対象反転%@[Give ⇔ Receive]@/B@")
	ELSE
		CALLF TAG_PRINTH(@" @C:{カラー_選択不可}@[Give ⇔ Receive]@/C@")
	ENDIF
	PRINTBUTTON " [Target reset]", 5901
ELSE
	SETCOLOR カラー_選択不可
	PRINTPLAIN  [Give ⇔ Receive]
	PRINTPLAIN  [Target reset]
	RESETCOLOR
ENDIF
PRINT

;PRINTBUTTON "[コマンドフィルタ]", 5905

CALLF TAG_PRINTH(@"@B:5995$%TT_OPS_NPCオートコマンド%@[NPC Auto Command:\@ FLCONFIG:リアクション許可 ? Yes # No\@]@/B@  ", 0)

;逆調教・主人公が行動不能のときは終了ボタンをグレー表示(自分の意志で終了できない)
IF !GROUPMATCH(FLAG:調教モード, 調教_逆調教通常, 調教_慰安, 調教_逆調教特殊, 調教_クエスト) && IS_PLAYABLE(MASTER) && !TFLAG:交流中断不可
	IF (FLAG:ハウジングモード && !FLAG:クエストモード) || (FLAG:クエストモード && FLAG:クエスト_交流コマンド許可)
		SELECTCASE FLAG:調教モード
			CASE 調教_閨
				LOCALS '= "End"
			CASE 調教_捕虜調教
				LOCALS '= "End train"
			CASEELSE
				LOCALS '= "End day"
		ENDSELECT
		PRINTBUTTON @"[%LOCALS%]", 5999
	ELSE
		PRINTBUTTON "[End talk]", 5999
	ENDIF
ELSEIF FLAG:調教スキップ可
	PRINTBUTTON "[Skip event]", 5999
ELSE
	SETCOLOR カラー_選択不可
	PRINTFORM [End talking]
	RESETCOLOR
ENDIF
[IF_DEBUG]
SIF GROUPMATCH(FLAG:調教モード, 調教_逆調教通常, 調教_慰安, 調教_逆調教特殊)
	PRINTBUTTON "  [DEBUG_次回コマンド指定]", 5996
PRINTBUTTON "  [DEBUG_END_TALKING]", 5999
[ENDIF]

PRINTL
PRINTL

;実行可能なコマンドの記録
CALL CREATE_COMABLE_LIST

;逆調教または主人公が行動不能
IF GROUPMATCH(FLAG:調教モード, 調教_逆調教特殊, 調教_逆調教通常, 調教_慰安) || (!IS_PLAYABLE(MASTER) && !FLAG:クエスト_あなた不参加 && FLAG:調教モード != 調教_クエスト)
	PRINTPLAINFORM %TOSTR_SPACE(14)%
	IF !TFLAG:奉仕モード
		PRINTBUTTON @"[Be at mercy]", 0
	ELSE
		IF TCVAR:MASTER:被奉仕者フラグ == 奉仕_押し倒された
			PRINTBUTTON @"[Be at mercy]", 0
		ELSEIF TFLAG:覗き見モード
			PRINTBUTTON @"[Peeping]", 0
		ELSE
			IF TCVAR:MASTER:被奉仕者フラグ
				PRINTBUTTON @"[Be served]", 0
			ELSE
				PRINTBUTTON @"[Continue to serve]", 0
			ENDIF
		ENDIF
	ENDIF
	PRINTL

	RETURN
ENDIF

;非ウフフ中で最終ターンならコマンド種別のタブを「Special」で固定
IF !FLAG:ウフフフラグ && TFLAG:調教経過時間 == TFLAG:調教ターン数 && FLAG:調教モード != 調教_クエスト
	TFLAG:調教タブ設定 = 6
ENDIF

;プレイヤー・ターゲットの一覧を文字列として記録
LOCALS:0 =
LOCALS:1 =
LOCALS:2 =
FOR LOCAL:0, 0, MPLY_NUM
	IF LOCAL:0 >= 1
		LOCALS:0 += @"・%ANAME(MPLY:(LOCAL:0))%"
	ELSE
		LOCALS:0 += @"%ANAME(MPLY:(LOCAL:0))%"
	ENDIF
NEXT
IF LOCALS:0 == ""
	LOCALS:0 = ----
ENDIF
FOR LOCAL:0, 0, MTAR_NUM
	IF LOCAL:0 >= 1
		LOCALS:1 += @"・%ANAME(MTAR:(LOCAL:0))%"
	ELSE
		LOCALS:1 += @"%ANAME(MTAR:(LOCAL:0))%"
	ENDIF
NEXT
IF LOCALS:1 == ""
	LOCALS:1 = ----
ENDIF

IF FLAG:ウフフフラグ && (TFLAG:調教タブ設定 != 5 || IS_EQUIP_PLAYER(MPLY:0, 200)) && TFLAG:調教タブ設定 != 6
	PRINT
	IF IS_MPLY(MASTER)
		IF FLAG:主導権所有者 < 0 || IS_MPLY(FLAG:主導権所有者)
			PRINTFORML 「%LOCALS:0%」が「%LOCALS:1%」に――
		ELSEIF IS_MTAR(FLAG:主導権所有者)
			PRINTFORML 「%LOCALS:0%」が「%LOCALS:1%」の命令で――
		ELSE
			PRINTFORML 「%ANAME(FLAG:主導権所有者)%」の命令で「%LOCALS:0%」が「%LOCALS:1%」に――
		ENDIF
	ELSEIF IS_MTAR(MASTER)
		IF FLAG:主導権所有者 < 0 || IS_MTAR(FLAG:主導権所有者)
			PRINTFORML 「%LOCALS:1%」is「%LOCALS:0%」に命令して――
		ELSEIF IS_MPLY(FLAG:主導権所有者)
			PRINTFORML 「%LOCALS:1%」is「%LOCALS:0%」に――
		ELSE
			PRINTFORML 「%ANAME(FLAG:主導権所有者)%」's order to「%LOCALS:0%」is「%LOCALS:1%」に――
		ENDIF
	ELSE
		IF FLAG:主導権所有者 < 0 || IS_MPLY(FLAG:主導権所有者)
			PRINTFORML 「%LOCALS:0%」が「%LOCALS:1%」に――
		ELSEIF IS_MTAR(FLAG:主導権所有者)
			PRINTFORML 「%LOCALS:0%」が「%LOCALS:1%」の命令で――
		ELSE
			PRINTFORML 「%ANAME(FLAG:主導権所有者)%」の命令で「%LOCALS:0%」が「%LOCALS:1%」に――
		ENDIF
	ENDIF
ENDIF

LOCAL:2 = 0

CALL SET_TMP_MPLY()
SET_MPLY = RESULT
; CALL SET_TMP_MTAR()
; SET_MTAR = RESULT

;;コマンドリスト出力
CALL USERCOM_SHOW_COMLIST()

SIF SET_MPLY
	CALL DEL_MPLY(MPLY:0)
SIF SET_MTAR
	CALL DEL_MTAR(MTAR:0)

;-------------------------------------------------
; コマンドリスト出力
;-------------------------------------------------
@USERCOM_SHOW_COMLIST
#DIM COMMAND
#DIM DYNAMIC COM_NUM

;クエスト時専用処理
IF FLAG:調教モード == 調教_クエスト && TFLAG:調教タブ設定 == 13
	VARS _LIST_EVENT_SLOT
	VARI EVENT_LIST_IDX
	VARI EVENT_SLOT_IDX
	VARI EVENT_ID
	VARS EVENT_SLOT_NAME
	VARS EVENT_ICON
	VARI EVENT_COLOR
	VARI BTN_ID
	VARS STR_BUTTON
	VARS COLUMN
	VARI PRINT_CNT
	CALL HO_GET_MAPDATA(HO_有効マップID, HO_MASTER現在地, "EVENT_SLOT")
	_LIST_EVENT_SLOT = %RESULTS%
	STR_BUTTON = %TOSTR_SPACE(24)%
	FOR EVENT_SLOT_IDX, 0, LIST_COUNT(_LIST_EVENT_SLOT)
		BTN_ID = EVENT_SLOT_IDX + HO_モジュールボタンID
		EVENT_LIST_IDX = TOINT(LIST_GET(_LIST_EVENT_SLOT, EVENT_SLOT_IDX))
		CALL QST_GET_EVENT_LIST(EVENT_LIST_IDX, "EVENT_STATE")
		SIF RESULTS == "DEACTIVE"
			CONTINUE
		;イベントIDを取得
		CALL QST_GET_EVENT_LIST(EVENT_LIST_IDX, "EVENT_ID")
		EVENT_ID = RESULT
		IF QST_イベント選択制限 == -1 || QST_イベント選択制限 == EVENT_ID
			;イベント名を取得
			CALL QST_GET_EVENT_LIST(EVENT_LIST_IDX, "EVENT_SLOT_NAME")
			EVENT_SLOT_NAME = %RESULTS%
			;イベントアイコンを取得
			CALL QST_GET_EVENT_LIST(EVENT_LIST_IDX, "EVENT_ICON")
			EVENT_ICON '= RESULT == -1 ? "◇" # @"%ICON(RESULTS)%"
			;イベントの文字色を取得
			CALL QST_GET_EVENT_LIST(EVENT_LIST_IDX, "EVENT_COLOR")
			IF RESULT > 0
				STR_BUTTON '= @"@C:{RESULT}@%EVENT_SLOT_NAME% [ %EVENT_ICON% ]@/C@"
			ELSE
				STR_BUTTON '= @"%EVENT_SLOT_NAME% [ %EVENT_ICON% ]"
			ENDIF
			;整形と出力
			COLUMN += TAG_PRINT_SHAPE(@"@B:{BTN_ID}@%STR_BUTTON%@/B@", 38, 1, 1)
			COLUMN += TOSTR_SPACE(8)
			PRINT_CNT ++
		ENDIF
		;改行処理
		IF PRINT_CNT > 0 && PRINT_CNT % 3 == 0
			CALLF TAG_PRINTH(COLUMN, 5)
			PRINTL
			PRINT_CNT = 0
			COLUMN '= ""
		ENDIF
	NEXT
	IF COLUMN != ""
		CALLF TAG_PRINTH(COLUMN, 5)
		PRINTL
	ENDIF
ENDIF

VARSET LOCAL
VARSET LOCALS
VARI L_CNT
VARI COM_IS_EQUIP
VARI COM_HAS_OPTION
VARS STR_COMLIST
VARS COM_NAME
VARS TOOLTIP
;愛撫が0から始まるが、それより優先して出力したいコマンド群があるので負数から開始している
FOR LOCAL:0, -1, 1000
	;;待機だけは優先して出力
	IF LOCAL == -1
		COM_NUM = 700
	ELSE
		SIF LOCAL == 700
			CONTINUE
		COM_NUM = LOCAL
	ENDIF
	;COM_FILTERが立ってる場合、対応するCOM_ABLE_FLAGは折れてるので、
	;INPUT側でチェックする必要はなし
	SIF TRAINNAME:COM_NUM == "" || COM_FILTER:COM_NUM
		CONTINUE

	;コマンドがどのタブに含まれるかを取得
	;現在選択されているタブに対応するコマンドのみを表示
	TRYCALLFORM COM_CATEGORY{COM_NUM}
	SIF RESULT != TFLAG:調教タブ設定
		CONTINUE

	;コマンド名称の取得
	FOR LOCAL:3, 0, 6
		RESULTS:(LOCAL:3) =
	NEXT

	;コマンドオプションを設定
	COM_OPTION:COM_NUM = COM_OPTION_UI:COM_NUM
	TRYCALLFORM COM_NAME{COM_NUM}

	;主導権に応じて表示するメッセージを変更
	;主人公が実行者
	IF IS_MPLY(MASTER)
		;主導権設定なし、または主導権が実行者(主人公) (~する)
		IF FLAG:主導権所有者 < 0 || IS_MPLY(FLAG:主導権所有者)
			LOCALS:1 = %RESULTS:0%
		;主導権が対象者 (~されられる)
		ELSEIF IS_MTAR(FLAG:主導権所有者)
			LOCALS:1 = %RESULTS:1%
		;主導権が実行者・対象者以外の者 (~されられる)
		ELSE
			LOCALS:1 = %RESULTS:1%
		ENDIF
	;主人公が対象者
	ELSEIF IS_MTAR(MASTER)
		;主導権設定なし、または主導権が対象者(主人公) (~させる)
		IF FLAG:主導権所有者 < 0 || IS_MTAR(FLAG:主導権所有者)
			LOCALS:1 = %RESULTS:2%
		;主導権が実行者 (~される)
		ELSEIF IS_MPLY(FLAG:主導権所有者)
			LOCALS:1 = %RESULTS:3%
		;主導権が実行者・対象者以外の者 (~される)
		ELSE
			LOCALS:1 = %RESULTS:3%
		ENDIF
	;主人公が実行者でも対象者でもない
	ELSE
		;主導権設定なし、または主導権が実行者 (~する)
		IF FLAG:主導権所有者 < 0 || IS_MPLY(FLAG:主導権所有者)
			LOCALS:1 = %RESULTS:0%
		;主導権が対象者 (~されられる)
		ELSEIF IS_MTAR(FLAG:主導権所有者)
			LOCALS:1 = %RESULTS:1%
		;主導権が実行者・対象者以外の者 (~させる)
		ELSE
			LOCALS:1 = %RESULTS:2%
		ENDIF
	ENDIF
	COM_NAME = %LOCALS:1%

	IF COM_ABLE_FLAG:COM_NUM
		L_CNT ++
		;コマンドの継続タイプを取得
		RESULT = 0
		TRYCALLFORM COM_IS_EQUIP{COM_NUM}
		COM_IS_EQUIP = RESULT
		;コマンドにオプションが存在するかを確認
		RESULT = 0
		TOOLTIP '= ""
		TRYCALLFORM COM_HAS_OPTION{COM_NUM}
		COM_HAS_OPTION = RESULT
		IF COM_HAS_OPTION
			COM_NAME '= @"[+]%COM_NAME%"
			TOOLTIP '= "title = 'Click this command to switch the command operation'"
		ENDIF

		;コマンドボタン印字処理
		IF COM_NAME != ""
			SIF STRLENS(COM_NAME) >= 24
				COM_NAME = %TOHALF(COM_NAME)%
			IF COM_HAS_OPTION
				STR_COMLIST += @"<button value = '[CHANGE_COM_OPTION:{COM_NUM}]' %TOOLTIP%>%COM_NAME, 24, RIGHT%</button>"
			ELSE
				STR_COMLIST += @"%COM_NAME, 24, RIGHT%"
			ENDIF
			IF COM_IS_EQUIP == 2
				STR_COMLIST += @"[----]"
			ELSEIF FLAG:調教モード == 調教_子育て || TFLAG:調教タブ設定 == 6
				STR_COMLIST +=  @"<button value = '{COM_NUM}' %TOOLTIP%>[Exec]</button>"
			ELSE
				STR_COMLIST +=  @"<button value = '{COM_NUM}' %TOOLTIP%>[Once]</button>"
			ENDIF
			IF !(FLAG:調教モード == 調教_子育て || TFLAG:調教タブ設定 == 6)
				IF COM_IS_EQUIP == 0
					STR_COMLIST +=  @"[----]"
				ELSE
					STR_COMLIST +=  @"<button value = '{COM_NUM + 1000}' %TOOLTIP%>[Cont]</button>"
				ENDIF
			ELSE
				STR_COMLIST +=  @"[----]"
			ENDIF
		ELSE
			STR_COMLIST += @"%TOSTR_REPEAT("-", 10), 24, RIGHT%[----][----]"
		ENDIF
		IF COM_CONFLICT_FLAG:(COM_NUM) == 1
			STR_COMLIST +=  @"<button value = '{COM_NUM + 10000}' %TOOLTIP%>[Stop]</button>"
			STR_COMLIST += @"%TOSTR_SPACE(2)%"
		ELSE
			STR_COMLIST += @"%TOSTR_SPACE(8)%"
		ENDIF
		;改行処理
		IF L_CNT > 0 && L_CNT % 3 == 0
			STR_COMLIST += "
"
		ENDIF
	ENDIF
NEXT
HTML_PRINT STR_COMLIST

;-------------------------------------------------
;調教画面における「対象キャラの選択」欄の表示
;-------------------------------------------------
@SHOW_PARTICIPANT_SELECTOR
#DIM 捕虜, VARSIZE("PRISONER_TARGET")
#DIM 慰安者, 8
#DIM カウンタ
VARSET 捕虜, 0
カウンタ = 0

LOCAL:1 = 0
FOR LOCAL:0, 0, CHARANUM
	IF CFLAG:(LOCAL:0):調教参加フラグ || (FLAG:調教モード != 調教_慰安 && LOCAL:0 == MASTER)
		SIF FLAG:クエストモード && FLAG:クエスト_あなた不参加 && LOCAL:0 == MASTER
			CONTINUE
		;捕虜調教のメインターゲットは後回し
		IF FLAG:調教モード == 調教_捕虜調教 && FINDELEMENT(PRISONER_TARGET, LOCAL:0) != -1
			捕虜:カウンタ = LOCAL:1
			カウンタ ++
			;慰安系の調教で慰安参加者でない（ヤる側でない）キャラは後回し
		ELSEIF FLAG:調教モード == 調教_慰安 && !CFLAG:(LOCAL):慰安参加者
			慰安者:カウンタ = LOCAL:1
			カウンタ ++
		ELSE
			CALL SHOW_PARTICIPANT_INFO(LOCAL:0, LOCAL:1)
		ENDIF
		LOCAL:1 ++
	ENDIF
NEXT

カウンタ = 0
IF FLAG:調教モード == 調教_捕虜調教
	PRINTFORML %TOSTR_SPACE(7)%%TOSTR_REPEAT("-", 85)%
	;捕虜調教のメインターゲットについて処理
	FOR LOCAL:0, 0, CHARANUM
		IF FINDELEMENT(PRISONER_TARGET, LOCAL:0) != -1
			CALL SHOW_PARTICIPANT_INFO(LOCAL:0, 捕虜:カウンタ)
			カウンタ ++
		ENDIF
	NEXT
ELSEIF FLAG:調教モード == 調教_慰安
	PRINTFORML %TOSTR_SPACE(7)%%TOSTR_REPEAT("-", 85)%
	;民の慰安のメインターゲットの処理
	FOR LOCAL:0, 0, CHARANUM
		IF CFLAG:LOCAL:調教参加フラグ && !CFLAG:(LOCAL):慰安参加者
			CALL SHOW_PARTICIPANT_INFO(LOCAL:0, 慰安者:カウンタ)
			カウンタ ++
		ENDIF
	NEXT
ENDIF

;-------------------------------------------------
;調教画面におけるキャラARG:0の情報表示
;  ARG:0=キャラID, ARG:1=調教参加キャラの連番
;-------------------------------------------------
@SHOW_PARTICIPANT_INFO(ARG:0, ARG:1)

FOR LOCAL, 0, MPLY_NUM
	IF IS_MTAR(MPLY:LOCAL)
		CALL DEL_MTAR(MPLY:LOCAL)
	ENDIF
NEXT

LOCALS:0 = [＋]
IF IS_MPLY(ARG:0)
	LOCALS:0 = [－]
	SETCOLOR カラー_オレンジ
ENDIF

LOCALS:1 = [＋]
IF IS_MTAR(ARG:0)
	LOCALS:1 = [－]
	SETCOLOR カラー_シアン
ENDIF

IF !GROUPMATCH(TCVAR:(ARG:0):離脱フラグ, 0, 1)
	SETCOLOR カラー_選択不可
ENDIF

PRINTFORM   %SNAME(ARG:0), MAX_CHARANAME_LENGTH / 2, RIGHT%
RESETCOLOR
CALL PRINT_SEX(ARG:0, 1, 1, 4)

IF !GROUPMATCH(FLAG:調教モード, 調教_逆調教特殊, 調教_逆調教通常, 調教_慰安)
	PRINT
	IF (FLAG:調教モード == 調教_捕虜調教 && FINDELEMENT(PRISONER_TARGET, ARG:0) != -1) || !IS_PLAYABLE(ARG:0) || TCVAR:(ARG:0):離脱フラグ
		PRINTPLAIN [×]
	ELSEIF FLAG:主導権所有者 == ARG:0
		PRINTBUTTON "[★]", ARG:1 + 4100
	ELSE
		PRINTBUTTON "[  ]", ARG:1 + 4100
	ENDIF
	PRINT

	IF TFLAG:参加者数
		IF !GROUPMATCH(TCVAR:(ARG:0):離脱フラグ, 0, 1)
			SETCOLOR カラー_選択不可
			PRINTPLAINFORM %LOCALS:0%[⇔]%LOCALS:1%[⇔]
			RESETCOLOR
		ELSE
			PRINTBUTTON LOCALS:0, ARG:1 + 4000
			PRINTBUTTON "[⇔]", ARG:1 + 4020
			PRINTBUTTON LOCALS:1, ARG:1 + 4040
			PRINTBUTTON "[⇔]", ARG:1 + 4060
		ENDIF
	ELSE
		IF IS_MPLY(ARG:0)
			PRINT <Give>
			;		ELSEIF IS_MTAR(ARG:0)
		ELSE
			PRINT <Take>
		ENDIF
	ENDIF
ENDIF
PRINTBUTTON "[Info]", ARG:1 + 4080

;it's nice, WOOT
SIF HAS_PENIS(ARG:0) && TALENT:(ARG:0):童貞
	SETCOLOR カラー_ピンク
CALL PRINT_SHORT_PALAM1(ARG:0, 0, "Ｃ")
RESETCOLOR
SIF TALENT:(ARG:0):処女 && HAS_VAGINA(ARG:0)
	SETCOLOR カラー_ピンク
CALL PRINT_SHORT_PALAM1(ARG:0, 1, "Ｖ", HAS_VAGINA(ARG:0))
RESETCOLOR

SIF TALENT:(ARG:0):アナル処女
	SETCOLOR カラー_ピンク
CALL PRINT_SHORT_PALAM1(ARG:0, 2, "Ａ")
RESETCOLOR

CALL PRINT_SHORT_PALAM1(ARG:0, 3, "Ｂ")

SIF TALENT:(ARG:0):キス未経験
	SETCOLOR カラー_ピンク
CALL PRINT_SHORT_PALAM1(ARG:0, 4, "Ｍ")
RESETCOLOR
CALL PRINT_SHORT_PALAM1(ARG:0, 5, "Ｕ")

CALL PRINT_SHORT_PALAM1(ARG:0, 6, "P", HAS_PENIS(ARG:0))
CALL PRINT_SHORT_PALAM1(ARG:0, 7, "🥛", TALENT:(ARG:0):母乳体質)
CALL PRINT_SHORT_PALAM2(ARG:0, 40, "潤")

IF TFLAG:桃源香使用中 && TCVAR:(ARG:0):媚薬
	SETCOLOR 0xff1c99
ELSEIF TFLAG:桃源香使用中
	SETCOLOR 0xffaad9
ELSEIF TCVAR:(ARG:0):媚薬
	SETCOLOR 0xff5eb7
ENDIF
CALL PRINT_SHORT_PALAM2(ARG:0, 20, "欲")

CALL PRINT_SHORT_EMOTION(ARG:0)

;「会いに行く」のとき限定
IF FLAG:調教モード == 調教_会う
	CALL PRINT_SHORT_DRUNK(ARG:0)
ENDIF
;ウフフ中のみ
IF FLAG:ウフフフラグ || FLAG:ハウジングモード
	CALL PRINT_BASE1(ARG:0, 0, "体")
	CALL PRINT_BASE2(ARG:0, 1, "気")

	IF TALENT:(ARG:0):Ｃ敏感
		CALL COLOR_PRINT("Ｃ", カラー_ピンク)
	ELSEIF TALENT:(ARG:0):Ｃ鈍感
		CALL COLOR_PRINT("Ｃ", カラー_選択不可)
	ELSE
		PRINT Ｃ
	ENDIF
	IF TALENT:(ARG:0):Ｖ敏感
		CALL COLOR_PRINT("Ｖ", カラー_ピンク)
	ELSEIF TALENT:(ARG:0):Ｖ鈍感
		CALL COLOR_PRINT("Ｖ", カラー_選択不可)
	ELSE
		PRINT Ｖ
	ENDIF
	IF TALENT:(ARG:0):Ａ敏感
		CALL COLOR_PRINT("Ａ", カラー_ピンク)
	ELSEIF TALENT:(ARG:0):Ａ鈍感
		CALL COLOR_PRINT("Ａ", カラー_選択不可)
	ELSE
		PRINT Ａ
	ENDIF
	IF TALENT:(ARG:0):Ｂ敏感
		CALL COLOR_PRINT("Ｂ", カラー_ピンク)
	ELSEIF TALENT:(ARG:0):Ｂ鈍感
		CALL COLOR_PRINT("Ｂ", カラー_選択不可)
	ELSE
		PRINT Ｂ
	ENDIF
	IF TALENT:(ARG:0):Ｍ敏感
		CALL COLOR_PRINT("Ｍ", カラー_ピンク)
	ELSEIF TALENT:(ARG:0):Ｍ鈍感
		CALL COLOR_PRINT("Ｍ", カラー_選択不可)
	ELSE
		PRINT Ｍ
	ENDIF
	PRINT
	LOCALS:0 =
	SIF TCVAR:(ARG:0):離脱フラグ == 1
		LOCALS:0 += "眠"
	SIF IS_EQUIP_PLAYER((ARG:0), 50)
		LOCALS:0 += "竿"
	SIF IS_EQUIP_PLAYER((ARG:0), 75)
		LOCALS:0 += "ゴ"
	SIF TCVAR:(ARG:0):利尿剤
		LOCALS:0 += "尿"
	SIF TCVAR:(ARG:0):催眠中 > 0
		LOCALS:0 += "催"
	PRINTFORM %LOCALS:0%
	IF CFLAG:(ARG:0):避妊薬残ターン
		LOCALS:0 += "避"
	ELSE
		SIF IS_OVULATION(ARG:0) || CFLAG:(ARG:0):排卵誘発剤
			CALL COLOR_PRINT(" 排", カラー_ピンク)
		SIF TALENT:(ARG:0):妊娠
			CALL COLOR_PRINT(" 妊", カラー_ピンク)
	ENDIF
	;発情
	IF TCVAR:(ARG:0):媚薬
		CALL COLOR_PRINT(@" 発情Lv{TCVAR:(ARG:0):媚薬}", カラー_ピンク)
	ENDIF
	RESETCOLOR
ENDIF
;「捕虜の調教」のとき限定 メインターゲットに精神力ゲージを表示
IF FLAG:調教モード == 調教_捕虜調教 && FINDELEMENT(PRISONER_TARGET, ARG:0) != -1
	PRINTL
	IF BASE:(ARG:0):精神力 < 0
		PRINT                     崩壊度
	ELSE
		PRINT                     精神力
	ENDIF
	CALL PRINT_SHORT_MIND(ARG:0)
ENDIF
;「居住区」でウフフ以外のとき限定 空腹状態を表示
IF FLAG:調教モード == 調教_居住区 && !FLAG:ウフフフラグ
	IF TCVAR:(ARG:0):空腹度 >= 300
		CALL COLOR_PRINT(" 空腹", カラー_ピンク)
	ENDIF
ENDIF
PRINTL

;-------------------------------------------------
;短縮版パラメータ情報の表示(快感系)
;ARG:0はキャラ番号、ARG:1はPALAM番号、ARGS:2は短縮名、ARG:3が0ならグレー表示
;-------------------------------------------------
@PRINT_SHORT_PALAM1(ARG:0, ARG:1, ARGS:2, ARG:3 = 1)
IF !ARG:3
	SETCOLOR カラー_選択不可
ENDIF
PRINTFORM %ARGS:2%
LOCAL:0 = GET_PALAMLV(PALAM:(ARG:0):(ARG:1))
SETCOLOR 0xFF00FF
FOR LOCAL:1, 0, 2
	IF LOCAL:0 >= LOCAL:1 + 5
		PRINTFORM %UNICODE(0x2665)%
	ELSEIF LOCAL:0 >= LOCAL:1 + 3
		PRINTFORM %UNICODE(0x2661)%
	ELSEIF LOCAL:0 >= LOCAL:1 + 1
		PRINT -
	ELSE
		PRINT
	ENDIF
NEXT
RESETCOLOR

;-------------------------------------------------
;短縮版パラメータ情報の表示(快感系以外)
;ARG:0はキャラ番号、ARG:1はPALAM番号、ARGS:2は短縮名
;-------------------------------------------------
@PRINT_SHORT_PALAM2(ARG:0, ARG:1, ARGS:2)
PRINTFORM %ARGS:2%
LOCAL:0 = GET_PALAMLV(PALAM:(ARG:0):(ARG:1))
IF LOCAL:0 >= 20
	SETCOLOR カラー_オレンジ
ELSEIF LOCAL:0 >= 10
	SETCOLOR カラー_注意
ELSE
	SETCOLOR カラー_緑
ENDIF
PRINTFORM {LOCAL:0, 2, LEFT}
RESETCOLOR

;-------------------------------------------------
;短縮版パラメータ情報の表示(感情)
;ARG:0はキャラ番号
;-------------------------------------------------
@PRINT_SHORT_EMOTION(ARG:0)
IF TALENT:(ARG:0):特殊勢力陥落系
	SETCOLOR 0xA000A0
	IF !TCVAR:(ARG:0):麻薬
		PRINTFORM  堕
	ELSE
		PRINTFORM 堕
	ENDIF
	RESETCOLOR
ELSE
	SETCOLOR GETCOLOR_EMOTION(ARG:0)
	IF !TCVAR:(ARG:0):麻薬
		PRINTFORM  %TOSTR_EMOTION(ARG:0)%
	ELSE
		PRINTFORM %TOSTR_EMOTION(ARG:0)%
	ENDIF
	RESETCOLOR
ENDIF

IF TCVAR:(ARG:0):麻薬
	SETCOLOR カラー_警告
	PRINTFORM 麻
	RESETCOLOR
ENDIF

;-------------------------------------------------
;短縮版パラメータ情報の表示(酔い)
;ARG:0はキャラ番号
;-------------------------------------------------
@PRINT_SHORT_DRUNK(ARG:0)
PRINT
IF PALAM:(ARG:0):酔い <= 0
	PRINT 平
ELSEIF PALAM:(ARG:0):酔い <= 500
	SETCOLOR 0xA08080
	PRINT 微
ELSEIF PALAM:(ARG:0):酔い <= 1500
	SETCOLOR 0xD0A0A0
	PRINT 浅
ELSEIF PALAM:(ARG:0):酔い <= 3000
	SETCOLOR 0xFFC0C0
	PRINT 中
ELSEIF PALAM:(ARG:0):酔い <= 6000
	SETCOLOR 0xD08000
	PRINT 深
ELSE
	SETCOLOR 0x804000
	PRINT 泥
ENDIF
RESETCOLOR
PRINT

;-------------------------------------------------
;短縮版の精神力情報の表示
;ARG:0はキャラ番号
;-------------------------------------------------
@PRINT_SHORT_MIND(ARG:0)

IF TALENT:(ARG:0):崩壊
	CALL PRINT_COLORBAR(100, 100, 43, UNICODE(0x2585), UNICODE(0x2585), カラー_選択不可, 0x404040)
	PRINT
	CALL COLOR_PRINT("崩壊", カラー_選択不可)
ELSEIF TALENT:(ARG:0):虚ろ && BASE:(ARG:0):精神力 < 0
	LOCAL:0 = CFLAG:(ARG:0):崩壊 * 100 / (3500 + MAX(MAXBASE:(ARG:0):精神力, 1000))
	CALL PRINT_COLORBAR(LOCAL:0, 100, 43, UNICODE(0x2585), UNICODE(0x2585), カラー_警告, 0x404040)
	PRINT
	CALL COLOR_PRINT("虚ろ", カラー_選択不可)
ELSEIF BASE:(ARG:0):精神力 < 0
	LOCAL:0 = CFLAG:(ARG:0):崩壊 * 100 / (1000 + MAX(MAXBASE:(ARG:0):精神力, 1000))
	CALL PRINT_COLORBAR(LOCAL:0, 100, 43, UNICODE(0x2585), UNICODE(0x2585), カラー_警告, 0x404040)
	PRINT
	CALL COLOR_PRINT("絶望", カラー_選択不可)
ELSE
	IF MAXBASE:(ARG:0):精神力 > 0
		LOCAL:0 = BASE:(ARG:0):精神力 * 100 / MAXBASE:(ARG:0):精神力
	ELSE
		LOCAL:0 = 100
	ENDIF

	;CALL PRINT_SLIDER(-1000, MAXBASE:(LOCAL:0):精神力, BASE:(LOCAL:0):精神力, 44, 0x4128cc, 0xcb1267)

	IF LOCAL:0 < 0
		LOCAL:1 = 0xA0A0A0
	ELSEIF LOCAL:0 <= 50
		LOCAL:1 = カラー_注意
	ELSEIF LOCAL:0 <= 75
		LOCAL:1 = 0x00FF00
	ELSE
		LOCAL:1 = カラー_シアン
	ENDIF

	CALL PRINT_COLORBAR(BASE:(ARG:0):精神力, MAXBASE:(ARG:0):精神力, 43, UNICODE(0x2585), UNICODE(0x2585), LOCAL:1, 0x404040)
	PRINT

	SETCOLOR LOCAL:1

	IF LOCAL:0 < 0
		PRINT 絶望
	ELSEIF LOCAL:0 <= 50
		PRINT 屈服
	ELSEIF LOCAL:0 <= 75
		PRINT 消耗
	ELSE
		PRINT 平常
	ENDIF
	RESETCOLOR
	PRINT
ENDIF

;-------------------------------------------------
;短縮版BASE情報の表示(体力)
;ARG:0はキャラ番号、ARG:1はBASE番号、ARGS:2は短縮名
;-------------------------------------------------
@PRINT_BASE1(ARG:0, ARG:1, ARGS:2)
;PRINTFORM %ARGS:2%:

LOCAL:0 = BASE:(ARG:0):(ARG:1) * 100 / MAXBASE:(ARG:0):(ARG:1)

IF LOCAL:0 >= 80
	SETCOLOR 0x8080FF
ELSEIF LOCAL:0 >= 40
	SETCOLOR 0x40FF40
ELSEIF BASE:(ARG:0):(ARG:1) >= 500
	SETCOLOR 0xD0D000
ELSEIF BASE:(ARG:0):(ARG:1) > 0
	SETCOLOR 0xD08000
ELSE
	SETCOLOR 0x808080
ENDIF
;PRINTFORM {LOCAL:0, 3, RIGHT}
PRINTFORM ({BASE:(ARG:0):(ARG:1), 4, LEFT}/{MAXBASE:(ARG:0):(ARG:1), 4, LEFT})

IF TCVAR:(ARG:0):行動不能フラグ
	SETCOLOR カラー_選択不可
	PRINT -
ELSEIF TCVAR:(ARG:0):メイガスの夜
	SETCOLOR 0x40FF40
	PRINT +
ELSE
	PRINT
ENDIF
RESETCOLOR
PRINT

;-------------------------------------------------
;短縮版BASE情報の表示(気力)
;ARG:0はキャラ番号、ARG:1はBASE番号、ARGS:2は短縮名
;-------------------------------------------------
@PRINT_BASE2(ARG:0, ARG:1, ARGS:2)
;PRINTFORM %ARGS:2%:
LOCAL:0 = BASE:(ARG:0):(ARG:1) * 100 / MAXBASE:(ARG:0):(ARG:1)
IF LOCAL:0 >= 80
	SETCOLOR 0x8080FF
ELSEIF LOCAL:0 >= 40
	SETCOLOR 0x40FF40
ELSEIF BASE:(ARG:0):(ARG:1) >= 300
	SETCOLOR 0xD0D000
ELSEIF BASE:(ARG:0):(ARG:1) > 0
	SETCOLOR 0xD08000
ELSE
	SETCOLOR 0x808080
ENDIF
;PRINTFORM {LOCAL:0, 3, RIGHT}
PRINTFORM ({BASE:(ARG:0):(ARG:1), 4, LEFT}/{MAXBASE:(ARG:0):(ARG:1), 4, LEFT})
IF TCVAR:(ARG:0):失神フラグ
	SETCOLOR カラー_選択不可
	PRINT -
ELSEIF TCVAR:(ARG:0):メイガスの夜
	SETCOLOR 0x40FF40
	PRINT +
ELSE
	PRINT
ENDIF
RESETCOLOR

PRINT

;---------------------------------------------------------
;実行判定を呼び出してコマンドごとにチェックする処理
;TRYCCALLFORMを使うので式中関数にはできない
;---------------------------------------------------------
@PRE_COMORDER, ARG
;[323]髪を梳いて貰うコマンドだけは途中でINPUTあるので処理しない。
SIF ARG == 323
	RETURN 0

TFLAG:46 = -10000
TRYCCALLFORM COM_ORDER_{ARG}
	;実行できない場合
	IF TFLAG:46 < TFLAG:47
		RETURN 1
		;実行できる場合
	ELSE
		RETURN 0
	ENDIF
CATCH
	;元々実行判定のないコマンドの場合
	RETURN 0
ENDCATCH

;-------------------------------------------------
;独自コマンドの表示処理
;-------------------------------------------------
@SHOW_USERCOM

;-------------------------------------------------
;干渉するコマンドの解消
; COM_NUM コマンド番号
;-------------------------------------------------
@RELEASE_CONFLICT_COM(COM_NUM)
#DIM DYNAMIC COM_NUM
#DIM DYNAMIC IS_RELEASED
#DIM DYNAMIC MEQUIP_INDEX
#DIM DYNAMIC MEQUIP_INDEX_TMP
#DIM DYNAMIC CHARA_INDEX

;現在の装着物リストをTMPに退避
FOR MEQUIP_INDEX, 0, MEQUIP_NUM
	;SIF MEQUIP:MEQUIP_INDEX != -1
	;    PRINTFORML MEQUIP {MEQUIP:MEQUIP_INDEX} STORED AT TMP POSITION {MEQUIP_INDEX} WITH PLY {MEQUIP_PLAYER:MEQUIP_INDEX:0} TAR {MEQUIP_TARGET:MEQUIP_INDEX:0}
	MEQUIP_TMP:MEQUIP_INDEX = MEQUIP:MEQUIP_INDEX
	MEQUIP_PLAYER_NUM_TMP:MEQUIP_INDEX = MEQUIP_PLAYER_NUM:MEQUIP_INDEX
	MEQUIP_TARGET_NUM_TMP:MEQUIP_INDEX = MEQUIP_TARGET_NUM:MEQUIP_INDEX
	MEQUIP_INITIATIVE_TMP:MEQUIP_INDEX = MEQUIP_INITIATIVE:MEQUIP_INDEX
	MEQUIP_OPTION_TMP:MEQUIP_INDEX = MEQUIP_OPTION:MEQUIP_INDEX
	MEQUIP_TURN_TMP:MEQUIP_INDEX = MEQUIP_TURN:MEQUIP_INDEX
	HO_MEQUIP_LOCK_TMP:MEQUIP_INDEX = HO_MEQUIP_LOCK:MEQUIP_INDEX
NEXT
;装着物の実行者を退避
FOR MEQUIP_INDEX, 0, MEQUIP_NUM
	FOR CHARA_INDEX, 0, MEQUIP_PLAYER_NUM:MEQUIP_INDEX
		MEQUIP_PLAYER_TMP:MEQUIP_INDEX:CHARA_INDEX = MEQUIP_PLAYER:MEQUIP_INDEX:CHARA_INDEX
	NEXT
NEXT
;装着物の対象者を退避
FOR MEQUIP_INDEX, 0, MEQUIP_NUM
	FOR CHARA_INDEX, 0, MEQUIP_TARGET_NUM:MEQUIP_INDEX
		MEQUIP_TARGET_TMP:MEQUIP_INDEX:CHARA_INDEX = MEQUIP_TARGET:MEQUIP_INDEX:CHARA_INDEX
	NEXT
NEXT

;装着物リストを初期化
VARSET MEQUIP, -1
VARSET MEQUIP_PLAYER_NUM
VARSET MEQUIP_TARGET_NUM
VARSET MEQUIP_PLAYER, -1
VARSET MEQUIP_TARGET, -1
VARSET MEQUIP_INITIATIVE
VARSET MEQUIP_OPTION
VARSET HO_MEQUIP_LOCK
VARSET MEQUIP_TURN

;装着物の連番
MEQUIP_INDEX = 0
;退避した装着物を一つずつ戻す
FOR MEQUIP_INDEX_TMP, 0, MEQUIP_NUM
	;装着物の設定
	MEQUIP:MEQUIP_INDEX = MEQUIP_TMP:MEQUIP_INDEX_TMP
	MEQUIP_PLAYER_NUM:MEQUIP_INDEX = MEQUIP_PLAYER_NUM_TMP:MEQUIP_INDEX_TMP
	MEQUIP_TARGET_NUM:MEQUIP_INDEX = MEQUIP_TARGET_NUM_TMP:MEQUIP_INDEX_TMP
	FOR CHARA_INDEX, 0, MEQUIP_PLAYER_NUM:MEQUIP_INDEX
		MEQUIP_PLAYER:MEQUIP_INDEX:CHARA_INDEX = MEQUIP_PLAYER_TMP:MEQUIP_INDEX_TMP:CHARA_INDEX
	NEXT
	FOR CHARA_INDEX, 0, MEQUIP_TARGET_NUM:MEQUIP_INDEX
		MEQUIP_TARGET:MEQUIP_INDEX:CHARA_INDEX = MEQUIP_TARGET_TMP:MEQUIP_INDEX_TMP:CHARA_INDEX
	NEXT
	MEQUIP_INITIATIVE:MEQUIP_INDEX = MEQUIP_INITIATIVE:MEQUIP_INDEX_TMP
	MEQUIP_OPTION:MEQUIP_INDEX = MEQUIP_OPTION_TMP:MEQUIP_INDEX_TMP
	HO_MEQUIP_LOCK:MEQUIP_INDEX = HO_MEQUIP_LOCK:MEQUIP_INDEX_TMP
	MEQUIP_TURN:MEQUIP_INDEX = MEQUIP_TURN_TMP:MEQUIP_INDEX_TMP

	COM_ENABLE = 1
	;FLAG:RECHECKINGをONにすると、干渉中コマンドを解消してくれない場合があるのでコメントアウト
	;FLAG:RECHECKING = 1
	RESULT = 0
	;対象の装着物のみの状態でコマンド実行可能か確認することで干渉を判定
	TRYCALLFORM COM_ABLE{COM_NUM}
	COM_ENABLE = 0
	;FLAG:RECHECKING = 0
	;干渉しない場合は次の装着物を確認
	IF RESULT
		MEQUIP_INDEX ++
	;干渉する場合
	ELSE
		RESULT = 0
		;継続ロック時の強制解除判定
		IF HO_MEQUIP_LOCK:MEQUIP_INDEX
			COM_ENABLE = 1
			FLAG:RECHECKING = 1
			TRYCALLFORM COM_ABLE_AT_EQUIP_LOCKED{COM_NUM}
			COM_ENABLE = 0
			FLAG:RECHECKING = 0
			;DEBUGPRINTFORML TEST COM = {SELECTCOM}, MEQUIP_INDEX_TMP = {MEQUIP_INDEX}
		ENDIF
		IF RESULT
			MEQUIP_INDEX ++
		;装着物の解除
		ELSE
			MEQUIP:MEQUIP_INDEX = -1
			MEQUIP_PLAYER_NUM:MEQUIP_INDEX = 0
			MEQUIP_TARGET_NUM:MEQUIP_INDEX = 0
			FOR CHARA_INDEX, 0, MEQUIP_PLAYER_NUM:MEQUIP_INDEX
				MEQUIP_PLAYER:MEQUIP_INDEX:CHARA_INDEX = -1
			NEXT
			FOR CHARA_INDEX, 0, MEQUIP_TARGET_NUM:MEQUIP_INDEX
				MEQUIP_TARGET:MEQUIP_INDEX:CHARA_INDEX = -1
			NEXT
			MEQUIP_INITIATIVE:MEQUIP_INDEX = 0
			MEQUIP_OPTION:MEQUIP_INDEX = 0
			HO_MEQUIP_LOCK:MEQUIP_INDEX = 0
			MEQUIP_TURN:MEQUIP_INDEX = 0
			CALL COLOR_PRINTL(@"※%TRAINNAME:(COM_NUM)%と干渉する、%TRAINNAME:(MEQUIP_TMP:MEQUIP_INDEX_TMP)%を解除しました※", カラー_選択不可)
			IS_RELEASED = 1
		ENDIF
	ENDIF
NEXT
MEQUIP_NUM = MEQUIP_INDEX
IF IS_RELEASED
	WAIT
ENDIF

; #endregion
;-------------------------------------------------
@FORCE_COM()
;-------------------------------------------------
#DIM FIRST_LINE
#DIM 有効コマンド数
#DIM ページ数
#DIM 現在ページ
#DIM 始点
#DIM 終点
#DIM ページ内表示数
#DIM 改行カウンタ
#DIM スイッチ

;ページ数の計算
有効コマンド数 = 0
FOR LOCAL:0, 0, 1000
	IF TRAINNAME:(LOCAL:0) != ""
		有効コマンド数 ++
	ENDIF
NEXT
ページ数 = (有効コマンド数 - 1) / 66 + 1
現在ページ = 1

CALL SINGLE_DRAWLINE
PRINTFORML 分かってる人むけの機能です：バグってもサポートしません
SIF FLAG:逆調教コマンド強制 >= 0
	PRINTFORML 現在:%TRAINNAME:(FLAG:逆調教コマンド強制 % MAX(スイッチ * 1000, 1000))%
CALL SINGLE_DRAWLINE
FIRST_LINE = LINECOUNT
$SHOW_LOOP

;コマンドの表示
有効コマンド数 = 0
始点 = (現在ページ - 1) * 88
終点 = 現在ページ * 88
改行カウンタ = 0
FOR LOCAL:0, 0, 1000
	IF TRAINNAME:(LOCAL:0) != ""
		IF 有効コマンド数 >= 始点 && 有効コマンド数 < 終点
			IF 改行カウンタ >= 1 && 改行カウンタ % 4 == 0
				PRINTL
			ENDIF
			RESULT = 0
			PRINTFORM [{LOCAL:0, 3}] %TRAINNAME:(LOCAL:0), 21, LEFT%
			RESETCOLOR
			改行カウンタ ++
		ENDIF
		有効コマンド数 ++
	ENDIF
NEXT
PRINTL
CALL SINGLE_DRAWLINE

PRINT [990] NEXT
PRINTPLAINFORM page{現在ページ}/{ページ数}
PRINTL [991] PREV

CALL SINGLE_DRAWLINE
CALL PRINTBUTTON_EX("[996] 本人が実行", 996, 1, スイッチ == 0)
PRINT
CALL PRINTBUTTON_EX("[997] 対象が実行", 997, 1, スイッチ == 1)
PRINT
CALL PRINTBUTTON_EX("[998] 第三者が実行", 998, 1, スイッチ == 2)
PRINT
PRINTL [999] 戻る

REDRAW 0

$INPUT_LOOP
INPUT

IF RESULT == 999
	FLAG:逆調教コマンド強制 = -1
	REDRAW 1
	RETURN
ELSEIF RESULT == 996
	スイッチ = 0
	CLEARLINE LINECOUNT - FIRST_LINE
	GOTO SHOW_LOOP
ELSEIF RESULT == 997
	スイッチ = 1
	CLEARLINE LINECOUNT - FIRST_LINE
	GOTO SHOW_LOOP
ELSEIF RESULT == 998
	スイッチ = 2
	CLEARLINE LINECOUNT - FIRST_LINE
	GOTO SHOW_LOOP
ELSEIF RESULT == 990
	現在ページ --
	IF 現在ページ < 1
		現在ページ = ページ数
	ENDIF
	CLEARLINE LINECOUNT - FIRST_LINE
	GOTO SHOW_LOOP
ELSEIF RESULT == 991
	現在ページ ++
	IF 現在ページ > ページ数
		現在ページ = 1
	ENDIF
	CLEARLINE LINECOUNT - FIRST_LINE
	GOTO SHOW_LOOP
ELSEIF RESULT >= 0 && RESULT < 1000
	LOCAL:5 = RESULT
	IF TRAINNAME:(LOCAL:5) != ""
		FLAG:逆調教コマンド強制 = LOCAL:5 + スイッチ * 1000
		PRINTFORMW 設定しました
		REDRAW 1
		RETURN
	ENDIF
ENDIF
CLEARLINE 1
GOTO INPUT_LOOP


code:
;-------------------------------------------------
; プレイヤー追加/解除(往来のボタン方式)
;-------------------------------------------------
@USERCOM_TOGGLE_PLAYER(INPUT_VALUE, INPUT_OPTION1, INPUT_OPTION2)
#DIM INPUT_VALUE
#DIM INPUT_OPTION1
#DIM INPUT_OPTION2

LOCAL:1 = 0
FOR LOCAL:0, 0, CHARANUM
    IF IS_PARTICIPATE_TRAIN(LOCAL:0)
        IF RESULT - 4000 == LOCAL:1 && !TCVAR:(LOCAL:0):離脱フラグ
            FLAG:継続コマンド表示絞り込み選択中キャラ = LOCAL:0
            IF IS_MPLY(LOCAL:0)
                CALL DEL_MPLY(LOCAL:0)
            ELSEIF IS_PLAYABLE(LOCAL:0)
                CALL ADD_MPLY(LOCAL:0)
                CALL DEL_MTAR(LOCAL:0)
            ENDIF
            CLEARLINE LINECOUNT - LINES_TRAIN
            ;LINES_TRAIN = LINECOUNT
            CALL RESERVE_ACTOR
            RETURN 1
        ENDIF
        LOCAL:1 ++
    ENDIF
NEXT
CLEARLINE LINES_TRAIN
;LINES_TRAIN = LINECOUNT
RETURN 0

;-------------------------------------------------
; プレイヤー切り替え
;-------------------------------------------------
@USERCOM_CHANGE_PLAYER(INPUT_VALUE, INPUT_OPTION1, INPUT_OPTION2)
#DIM INPUT_VALUE
#DIM INPUT_OPTION1
#DIM INPUT_OPTION2

LOCAL:1 = 0
FOR LOCAL:0, 0, CHARANUM
    IF IS_PARTICIPATE_TRAIN(LOCAL:0)
        IF RESULT - 4020 == LOCAL:1 && !TCVAR:(LOCAL:0):離脱フラグ
            FLAG:継続コマンド表示絞り込み選択中キャラ = LOCAL:0
            CALL CLEAR_MPLY
            CALL ADD_MPLY(LOCAL:0)
            CALL DEL_MTAR(LOCAL:0)
            CLEARLINE LINECOUNT - LINES_TRAIN
            ;LINES_TRAIN = LINECOUNT
            CALL RESERVE_ACTOR
            RETURN 1
        ENDIF
        LOCAL:1 ++
    ENDIF
NEXT
CLEARLINE LINECOUNT - LINES_TRAIN
;LINES_TRAIN = LINECOUNT
RETURN 0

;-------------------------------------------------
; ターゲット追加/解除
;-------------------------------------------------
@USERCOM_TOGGLE_TARGET(INPUT_VALUE, INPUT_OPTION1, INPUT_OPTION2)
#DIM INPUT_VALUE
#DIM INPUT_OPTION1
#DIM INPUT_OPTION2

LOCAL:1 = 0
FOR LOCAL:0, 0, CHARANUM
    IF IS_PARTICIPATE_TRAIN(LOCAL:0)
        ;酔い限界(離脱フラグ = 1)はターゲットにはとれるように
        IF RESULT - 4040 == LOCAL:1 && !(TCVAR:(LOCAL:0):離脱フラグ > 1)
            FLAG:継続コマンド表示絞り込み選択中キャラ = LOCAL:0
            IF IS_MTAR(LOCAL:0)
                CALL DEL_MTAR(LOCAL:0)
            ELSE
                CALL ADD_MTAR(LOCAL:0)
                CALL DEL_MPLY(LOCAL:0)
            ENDIF
            CLEARLINE LINECOUNT - LINES_TRAIN
            ;LINES_TRAIN = LINECOUNT
            CALL RESERVE_ACTOR
            RETURN 1
        ENDIF
        LOCAL:1 ++
    ENDIF
NEXT
CLEARLINE LINECOUNT - LINES_TRAIN
;LINES_TRAIN = LINECOUNT
RETURN 0

;-------------------------------------------------
; ターゲット切り替え
;-------------------------------------------------
@USERCOM_CHANGE_TARGET(INPUT_VALUE, INPUT_OPTION1, INPUT_OPTION2)
#DIM INPUT_VALUE
#DIM INPUT_OPTION1
#DIM INPUT_OPTION2

LOCAL:1 = 0
FOR LOCAL:0, 0, CHARANUM
    IF IS_PARTICIPATE_TRAIN(LOCAL:0)
        IF RESULT - 4060 == LOCAL:1 && !TCVAR:(LOCAL:0):離脱フラグ
            FLAG:継続コマンド表示絞り込み選択中キャラ = LOCAL:0
            CALL CLEAR_MTAR
            CALL ADD_MTAR(LOCAL:0)
            CALL DEL_MPLY(LOCAL:0)
            CLEARLINE LINECOUNT - LINES_TRAIN
            ;LINES_TRAIN = LINECOUNT
            CALL RESERVE_ACTOR
            RETURN 1
        ENDIF
        LOCAL:1 ++
    ENDIF
NEXT
CLEARLINE LINECOUNT - LINES_TRAIN
;LINES_TRAIN = LINECOUNT
RETURN 0

;-------------------------------------------------
; プレイヤー追加/解除/切替(ポートレイトからのctrl+右クリック)
;-------------------------------------------------
@USERCOM_CHANGE_PLAYER_NEW(INPUT_VALUE, INPUT_OPTION1, INPUT_OPTION2)
#DIM INPUT_VALUE
#DIM INPUT_OPTION1
#DIM INPUT_OPTION2
#DIM CHARA_ID

CHARA_ID = INPUT_VALUE - HO_キャラボタンID
IF !IS_PARTICIPATE_TRAIN(CHARA_ID)
    RETURN 0
ENDIF

IF !IS_MPLY(CHARA_ID)
    ;+SHIFT入力の場合プレイヤー追加
    IF !GETBIT(INPUT_OPTION2, 16)
        CALL CLEAR_MPLY()
    ENDIF
    CALL DEL_MTAR(CHARA_ID)
    CALL ADD_MPLY(CHARA_ID)
    CALL RESERVE_ACTOR
    RETURN 1
ELSEIF IS_MPLY(CHARA_ID)
    CALL DEL_MPLY(CHARA_ID)
    CALL RESERVE_ACTOR
    RETURN 1
ENDIF
RETURN 0

;-------------------------------------------------
; ターゲット追加/解除/切替(ポートレイトからのctrl+右クリック)
;-------------------------------------------------
@USERCOM_CHANGE_TARGET_NEW(INPUT_VALUE, INPUT_OPTION1, INPUT_OPTION2)
#DIM INPUT_VALUE
#DIM INPUT_OPTION1
#DIM INPUT_OPTION2
#DIM CHARA_ID

CHARA_ID = INPUT_VALUE - HO_キャラボタンID
IF !IS_PARTICIPATE_TRAIN(CHARA_ID)
    RETURN 0
ENDIF

IF !IS_MTAR(CHARA_ID)
    ;+SHIFT入力の場合ターゲット追加
    IF !GETBIT(INPUT_OPTION2, 16)
        CALL CLEAR_MTAR()
    ENDIF
    CALL DEL_MPLY(CHARA_ID)
    CALL ADD_MTAR(CHARA_ID)
    CALL RESERVE_ACTOR
    RETURN 1
ELSEIF IS_MTAR(CHARA_ID)
    CALL DEL_MTAR(CHARA_ID)
    CALL RESERVE_ACTOR
    RETURN 1
ENDIF
RETURN 0

;-------------------------------------------------
; 主導権切り替え
;-------------------------------------------------
@USERCOM_CHANGE_INITIATIVE(INPUT_VALUE, INPUT_OPTION1, INPUT_OPTION2)
#DIM INPUT_VALUE
#DIM INPUT_OPTION1
#DIM INPUT_OPTION2
#DIM DYNAMIC CHARA_ID
#DIM DYNAMIC TRAIN_CHARA_NO
#DIM DYNAMIC TARGET_TRAIN_CHARA_NO

TRAIN_CHARA_NO = 0
TARGET_TRAIN_CHARA_NO = INPUT_VALUE - 4100
FOR CHARA_ID, 0, CHARANUM
    IF IS_PARTICIPATE_TRAIN(CHARA_ID)
        IF TRAIN_CHARA_NO == TARGET_TRAIN_CHARA_NO && !TCVAR:(CHARA_ID):行動不能フラグ && !TCVAR:(CHARA_ID):失神フラグ && !TCVAR:(CHARA_ID):離脱フラグ
            ;捕虜調教のメインターゲットは主導権を持てない
            IF !(FLAG:調教モード == 調教_捕虜調教 && FINDELEMENT(PRISONER_TARGET, CHARA_ID) != -1)
                FLAG:継続コマンド表示絞り込み選択中キャラ = CHARA_ID
                IF FLAG:主導権所有者 == CHARA_ID
                    FLAG:主導権所有者 = -1
                ELSE
                    FLAG:主導権所有者 = CHARA_ID
                ENDIF
                ;実行可能なコマンドの記録
                CALL CREATE_COMABLE_LIST
                CLEARLINE LINECOUNT - LINES_TRAIN
                CALL RESERVE_ACTOR
                ;LINES_TRAIN = LINECOUNT
                RETURN 1
            ENDIF
        ENDIF
        TRAIN_CHARA_NO ++
    ENDIF
NEXT
CLEARLINE LINECOUNT - LINES_TRAIN
;LINES_TRAIN = LINECOUNT
RETURN 0

;-------------------------------------------------
; プレイヤー/ターゲット反転
;-------------------------------------------------
@USERCOM_INVERT_ACTOR(INPUT_VALUE, INPUT_OPTION1, INPUT_OPTION2)
#DIM INPUT_VALUE
#DIM INPUT_OPTION1
#DIM INPUT_OPTION2
CALL INVERT_ACTOR()
CLEARLINE LINECOUNT - LINES_TRAIN
;LINES_TRAIN = LINECOUNT
CALL RESERVE_ACTOR
RETURN 1

;-------------------------------------------------
; 対象リセット
;-------------------------------------------------
@USERCOM_RESET_ACTOR(INPUT_VALUE)
#DIM INPUT_VALUE
CALL RESET_ACTOR
CLEARLINE LINECOUNT - LINES_TRAIN
;LINES_TRAIN = LINECOUNT
CALL RESERVE_ACTOR
	RETURN 1


code:
;-------------------------------------------------
;独自コマンドの入力処理
;-------------------------------------------------
@FL_USERCOM
; #region USERCOM
#DIM FIRST_LINE
VARI MOUSE_BTN

INPUTS , 1
;RESULT:0 入力したボタン番号
;RESULT:1 クリックの種類(1=左クリック,2=右クリック,3=中央クリック)
;RESULT:2 補助キーの種類(Shift, Ctrl, Alt)
MOUSE_BTN = RESULT:1
;DEBUGPRINTFORML INPUT:{RESULT},INPUTS:%RESULTS% BTN = {RESULT:1}

IF ISNUMERIC(RESULTS)
	RESULT = TOINT(RESULTS)
	RESULTS '= ""
	CLEARLINE 1
	;ウィンドウのボタン以外が押された場合
ELSEIF RESULTS == "_"
	RESULT = -1
	RESULTS '= ""
	CLEARLINE 1
ELSE
	;非ボタンが押された場合
	RESULT = -1
ENDIF

;プレイヤー/ターゲット
;-------------------------------------------------
;プレイヤー追加・解除
IF RESULT >= 4000 && RESULT < 4020
	CALL USERCOM_TOGGLE_PLAYER(RESULT:0, RESULT:1, RESULT:2)
	RETURN 0

	;プレイヤー切り替え
ELSEIF RESULT >= 4020 && RESULT < 4040
	CALL USERCOM_CHANGE_PLAYER(RESULT:0, RESULT:1, RESULT:2)
	RETURN 0

	;ターゲット追加・解除
ELSEIF RESULT >= 4040 && RESULT < 4060
	CALL USERCOM_TOGGLE_TARGET(RESULT:0, RESULT:1, RESULT:2)
	RETURN 0

	;ターゲット切り替え
ELSEIF RESULT >= 4060 && RESULT < 4080
	CALL USERCOM_CHANGE_TARGET(RESULT:0, RESULT:1, RESULT:2)
	RETURN 0

	;ポートレートからのミドルクリックによるP/T操作
ELSEIF RESULT:1 == 3 && INRANGE(RESULT:0, HO_キャラボタンID, HO_キャラボタンID + 10000) &&  GROUPMATCH(FLAG:調教モード, 調教_会う, 調教_閨, 調教_捕虜調教, 調教_捕虜会話, 調教_居住区, 調教_クエスト)
	;Ctrlが押下されている場合PLAYER切替  && TFLAG:参加者数 >= 2
	IF GETBIT(RESULT:2, 17) && TFLAG:参加者数 >= 1
		CALL USERCOM_CHANGE_PLAYER_NEW(RESULT:0, RESULT:1, RESULT:2)
		RETURN RESULT
	ELSEIF TFLAG:参加者数 >= 1
		CALL USERCOM_CHANGE_TARGET_NEW(RESULT:0, RESULT:1, RESULT:2)
		RETURN RESULT
	ENDIF
	RETURN 0
	;主導権
	;-------------------------------------------------
	;主導権切り替え
ELSEIF RESULT >= 4100 && RESULT < 4120
	CALL USERCOM_CHANGE_INITIATIVE(RESULT:0, RESULT:1, RESULT:2)
	RETURN 0
	;行動側反転
ELSEIF RESULT == 5900 && GROUPMATCH(FLAG:調教モード, 調教_会う, 調教_閨, 調教_捕虜調教, 調教_捕虜会話, 調教_居住区, 調教_クエスト)
	CALL USERCOM_INVERT_ACTOR(RESULT:0, RESULT:1, RESULT:2)
	RETURN 0
	;対象のリセット
ELSEIF RESULT == 5901 && GROUPMATCH(FLAG:調教モード, 調教_会う, 調教_閨, 調教_捕虜調教, 調教_捕虜会話, 調教_居住区, 調教_クエスト)
	CALL USERCOM_RESET_ACTOR(RESULT:0)
	RETURN 0

	;情報
ELSEIF RESULT >= 4080 && RESULT < 4100
	CLEARLINE 1
	LOCAL:2 = RESULT - 4080
	LOCAL:1 = 0
	VARSET SHOP_CHARA_LIST, -1

	FOR LOCAL:0, 0, CHARANUM
		IF IS_PARTICIPATE_TRAIN(LOCAL:0)
			SHOP_CHARA_LIST:(LOCAL:1) = LOCAL:0
			LOCAL:1 ++
		ENDIF
	NEXT
	LOCAL:1 = 0
	FOR LOCAL:0, 0, CHARANUM
		SIF !IS_PARTICIPATE_TRAIN(LOCAL:0)
			CONTINUE
		IF SHOP_CHARA_LIST:(LOCAL:2) == LOCAL
			FLAG:継続コマンド表示絞り込み選択中キャラ = LOCAL:0
			CALL SHOW_INFO_WITH_UI(LOCAL:0, 1, FLAG:ウフフフラグ)
			CLEARLINE LINECOUNT - LINES_TRAIN
			RETURN 1
		ENDIF
		LOCAL:1 ++
	NEXT
	CLEARLINE LINECOUNT - LINES_TRAIN
	;LINES_TRAIN = LINECOUNT
	RETURN 0
ELSEIF RESULT == 5903
	FLAG:調教中表示簡略化 = !FLAG:調教中表示簡略化
	IF FLAG:調教中表示簡略化
		PRINTFORML コマンド実行時の表示のうち、
		PRINTFORMW 体力変動やソース変動の表示をカットします。
	ELSE
		PRINTFORML コマンド実行時の表示のうち、
		PRINTFORMW 体力変動やソース変動の表示も表示します。
	ENDIF
ELSEIF RESULT == 5904
	FLAG:継続コマンド表示絞り込み = !FLAG:継続コマンド表示絞り込み
	IF FLAG:継続コマンド表示絞り込み
		PRINTFORML 継続中のコマンド一覧の表示を、
		PRINTFORMW 最後に選択したキャラが関係するもののみに絞ります。
	ELSE
		PRINTFORML 継続中のコマンド一覧の表示を、
		PRINTFORMW 全て表示します。
	ENDIF
ELSEIF RESULT == 5905
	CALL CONFIG_COM_FILTER
	;EQUIP解除
ELSEIF RESULT >= 6000 && RESULT <= 6000 + MAX_MEQUIP
	REDRAW 0
	CLEARLINE 1
	REDRAW 1
	LOCAL = RESULT - 6000
	TRYCALLFORM COM_BEFORE_RELEASE_EQUIP{MEQUIP:LOCAL}(LOCAL)
	;[IF_DEBUG]
	;CALL RELEASE_EQUIP(LOCAL, 1)
	;[ENDIF]
	;[IF_NDEBUG]
	CALL RELEASE_EQUIP(LOCAL)
	;[ENDIF]
ELSEIF RESULT == 5995
	INVERTBIT FLCONFIG:リアクション許可, 0
	[IF_DEBUG]
ELSEIF RESULT == 5996
	CALL FORCE_COM
	[ENDIF]

	;行動終了
ELSEIF RESULT == 5999
	;ハウジングモード時の処理
	IF FLAG:ハウジングモード == 1
		CALL TRAIN_EXIT(1)
		RETURN 1
	ENDIF
	;逆調教・主人公が行動不能のときは自分の意志で終了できない
	[IF_DEBUG]
	PRINTFORMW (デバッグ_調教を終了します)
	IF FLAG:調教モード == 調教_捕虜調教
		PRINTFORMW （調教を終了します）
		CALL FL_TRAINEXIT
		;ウフフ中
	ELSEIF FLAG:ウフフフラグ
		PRINTFORMW （夜伽を終了します）
		CALL FL_TRAINEXIT
	ELSE
		CALL TRAIN_EXIT()
	ENDIF
	RETURN 1
	[ENDIF]
	IF GROUPMATCH(FLAG:調教モード, 調教_逆調教特殊, 調教_逆調教通常) || !IS_PLAYABLE(MASTER)
		RETURN 0
		;捕虜調教
	ELSEIF FLAG:調教モード == 調教_捕虜調教
		PRINTFORMW （調教を終了します）
		CALL FL_TRAINEXIT
		;ウフフ中
	ELSEIF FLAG:ウフフフラグ
		PRINTFORMW （夜伽を終了します）
		CALL FL_TRAINEXIT
	ELSE
		CALL TRAIN_EXIT()
	ENDIF
	RETURN 1

ELSEIF RESULT == 5997
	CALL CONFIG_HELPMENU

	;DEBUG_MENU
ELSEIF RESULT == 999999999
	[IF_DEBUG]
	CALL FL_TRAIN_DEBUG_MENU
	[ENDIF]
	;タブ設定
ELSEIF RESULT >= 2000 && RESULT <= 2013
	{
		IF FLAG:ウフフフラグ
			|| (FLAG:調教モード == 調教_会う && GROUPMATCH(RESULT, 2007, 2008, 2006))
			|| (FLAG:調教モード == 調教_子育て && GROUPMATCH(RESULT, 2007))
			|| (FLAG:調教モード == 調教_捕虜会話 && GROUPMATCH(RESULT, 2007, 2008))
			|| (FLAG:調教モード == 調教_居住区 && GROUPMATCH(RESULT, 2006, 2009, 2010, 2011, 2012))
			|| (FLAG:調教モード == 調教_クエスト && GROUPMATCH(RESULT, 2013))
			|| (FLAG:調教モード == 調教_クエスト && FLAG:クエスト_交流コマンド許可 && GROUPMATCH(RESULT, 2013, 2006, 2009, 2010, 2011, 2012))
	}
		TFLAG:調教タブ設定 = RESULT - 2000
	ENDIF
	CLEARLINE LINECOUNT - LINES_TRAIN
	;LINES_TRAIN = LINECOUNT
;逆調教・行動不能時の「なすがまま」
ELSEIF RESULT == 0 && (GROUPMATCH(FLAG:調教モード, 調教_逆調教特殊, 調教_逆調教通常, 調教_慰安) || !IS_PLAYABLE(MASTER))
	IF TRAIN_FORCED_COM_NUM > 0
		CALL DO_TRAIN_FORCED_COM()
		RETURN 1
	ENDIF
	;おまかせフラグON
	TFLAG:おまかせ中 = 1
	TFLAG:主導権所有者 = 1
	CALL COM_AUTOSELECT
	CALL FL_DOTRAIN(RESULT:0, RESULT:1)
;干渉解除
ELSEIF RESULT >= 10000 && RESULT < 11000
	LOCAL = RESULT - 10000
	SIF !COM_CONFLICT_FLAG:LOCAL
		RETURN 0
	RESULT = 0
	CALL RELEASE_CONFLICT_COM(LOCAL)
;コマンド及び独自ユーティリティ実行
ELSEIF RESULT >= 0 && RESULT < 2000
	IF TRAIN_FORCED_COM_NUM > 0
		CALL DO_TRAIN_FORCED_COM()
		RETURN 1
	ENDIF

	VARI COM_NUM = -1
	;主人公主導、単発
	IF RESULT < 1000
		COM_NUM = RESULT
		TFLAG:非継続フラグ = 1
	ELSEIF RESULT < 2000
		COM_NUM = RESULT - 1000
		TFLAG:非継続フラグ = 0
	ENDIF

	;コマンドの実行
	IF COM_NUM >= 0 && COM_ABLE_FLAG:COM_NUM
		;290「欲望に従う」
		IF GROUPMATCH(COM_NUM, GETNUM(TRAINNAME, "欲望に従う"))
			FLAG:主導権所有者 = MASTER
			CALL COM_AUTOSELECT(MPLY:0)
			CALL FL_DOTRAIN(RESULT:0, RESULT:1)
		;291「おまかせする」
		ELSEIF GROUPMATCH(COM_NUM, GETNUM(TRAINNAME, "おまかせする"))
			;おまかせフラグON
			TFLAG:おまかせ中 = 1
			;複数回実行の最大値を設定
			FL_TRAIN_RESERVED_COM_COUNT_MAX = COM_RESERVED_ACTION_COUNT291()
			;複数回実行の予約リスト設定
			FOR LOCAL, 0, FL_TRAIN_RESERVED_COM_COUNT_MAX -1
				FL_TRAIN_RESERVED_COM_NAME_LIST = %LIST_ADD(FL_TRAIN_RESERVED_COM_NAME_LIST,"おまかせする")%
	            FL_TRAIN_RESERVED_COM_OPTION_LIST = %LIST_ADD(FL_TRAIN_RESERVED_COM_OPTION_LIST,"0")%
			NEXT
			;初回実行設定
			;実行回数のカウント初期化
			FL_TRAIN_RESERVED_COM_COUNT = 1
			;調教コマンド自動選択
			CALL COM_AUTOSELECT
			;調教コマンド設定
			CALL FL_DOTRAIN(RESULT:0, RESULT:1)
		;393「なりゆきまかせ」
		ELSEIF GROUPMATCH(COM_NUM, GETNUM(TRAINNAME, "なりゆきまかせ"))
			;おまかせフラグON
			TFLAG:おまかせ中 = 1
			CALL COM_AUTOSELECT_N
		;それ以外の調教コマンド
		ELSE
			;おまかせフラグOFF
			TFLAG:おまかせ中 = 0
			;リアクションとしての実行でない場合、実行時のMPLY,MTARを保存
			IF !TFLAG:リアクションコマンド実行
				CALL RESERVE_ACTOR
			ENDIF
			CALL FL_DOTRAIN(COM_NUM)
		ENDIF
	ENDIF
	;ハウジング関連の処理実行
	;ELSEIF (FLAG:調教モード == 調教_居住区  || FLAG:ハウジングモード == 1) && RESULT >= HO_キャラボタンID
ELSEIF RESULT >= HO_キャラボタンID
	CALL HOUSING_TRAIN_INPUT(RESULT:0,RESULT:1, RESULT:2, RESULTS)
ENDIF

IF RESULTS != ""
	IF DIC_CONTAINSKEY(RESULTS, "CHANGE_COM_OPTION")
		CLEARLINE 1
		LOCAL = DIC_GETINT(RESULTS, "CHANGE_COM_OPTION")
		TRYCALLFORM COM_HAS_OPTION(LOCAL)
		IF RESULT
			CALL COM_OPTION(LOCAL)
			RETURN
		ENDIF
	ENDIF
ENDIF

RETURN 0


code:
@COM_SLG_TRAIN_MAIN_PROCESS(能力, 育児フラグ)
#DIM 能力
#DIM 育児フラグ
#DIM 乱数基準値, 2
#DIM 適正, 2
;コマンドの成否をTFLAG:コマンド成否にセット
CALL JUDGE_COM_RESULT(MTAR:0, 5, 5)

乱数基準値:0 = MAX(100 - ABL:(MPLY:0):能力 / 3, 30)
乱数基準値:1 = MAX(100 - ABL:(MTAR:0):能力 / 3, 30)

IF ABL:(MPLY:0):能力 > ABL:(MTAR:0):能力 + 10
	乱数基準値:0 -= 10
	乱数基準値:1 += 10
ELSEIF ABL:(MTAR:0):能力 > ABL:(MPLY:0):能力 + 10
	乱数基準値:1 += 10
	乱数基準値:0 -= 10
ENDIF

SELECTCASE TFLAG:コマンド成否
	CASE -1
		乱数基準値:0 -= 10
		乱数基準値:1 -= 10
	CASE 0
	CASEELSE
		乱数基準値:0 += 10
		乱数基準値:1 += 10
ENDSELECT

適正:0 = GROWTYPE_RATE(MPLY:0, ABLNAME:能力)
適正:1 = GROWTYPE_RATE(MTAR:0, ABLNAME:能力)

乱数基準値:0 += (適正:0 - 100) / 10
乱数基準値:1 += (適正:1 - 100) / 10

IF ABL:(MPLY:0):能力 > ランク閾値:ランク_ＳＬＧ:ランク_B
	TIMES 乱数基準値:0, 0.75
ELSEIF ABL:(MPLY:0):能力 < ランク閾値:ランク_ＳＬＧ:ランク_D
	TIMES 乱数基準値:0, 1.3
ENDIF
IF ABL:(MTAR:0):能力 > ランク閾値:ランク_ＳＬＧ:ランク_B
	TIMES 乱数基準値:1, 0.75
ELSEIF ABL:(MTAR:0):能力 < ランク閾値:ランク_ＳＬＧ:ランク_D
	TIMES 乱数基準値:1, 1.3
ENDIF

SIF TALENT:(MPLY:0):サボり魔
	TIMES 乱数基準値:0, 0.8
SIF TALENT:(MTAR:0):サボり魔
	TIMES 乱数基準値:1, 0.8

IF 育児フラグ == 0
	;適性がなく好感度・従属度が低いと恐怖と反感のソースを得る
	IF 適正:1 < 100
		SOURCE:(MTAR:0):歓楽 = 0
		SOURCE:(MTAR:0):恐怖 = MAX(0, 100 - MAX(CFLAG:(MTAR:0):好感度, CFLAG:(MTAR:0):従属度) * 100 / 800)
		SOURCE:(MTAR:0):不安 = MAX(0, 200 - MAX(CFLAG:(MTAR:0):好感度, CFLAG:(MTAR:0):従属度) * 200 / 500)
	ENDIF

	SOURCE:(MTAR:0):歓楽 = 20 * 適正 / 100

	;親密に応じた歓楽のソース追加
	CALL ADD_SOURCE_KANRAKU(MTAR:0, 100 + (適正:1 - 100) /2)

	;主導権に応じたソースの追加
	CALL ADD_SOURCE_INITIATIVE_N(MPLY:0, 100, 100)
	CALL ADD_SOURCE_INITIATIVE_N(MTAR:0, 100, 100)

	;ターゲットがサボり魔なら効果減少
	IF TALENT:(MTAR:0):サボり魔
		TIMES SOURCE:(MTAR:0):歓楽, 0.80
		SOURCE:(MTAR:0):反感 = 70 - SOURCE:(MTAR:0):歓楽 / 3
	ENDIF

	;失敗
	IF TFLAG:コマンド成否 == -1
		TIMES SOURCE:(MTAR:0):歓楽, 0.20
		TIMES SOURCE:(MTAR:0):不安, 1.50
		SOURCE:(MTAR:0):不満 += 300
		;	LOCAL:2 = 1
		;成功
	ELSEIF TFLAG:コマンド成否 == 0
		;	LOCAL:2 = 1
		;大成功
	ELSE
		TIMES SOURCE:(MTAR:0):歓楽, 2.00
		TIMES SOURCE:(MTAR:0):不安, 0.50
		;	LOCAL:2 = 2
	ENDIF

	;運動することにより、締まりが改善する！　歌唱とか下腹部に力はいるし！
	;失敗0　成功0～1　大成功0～2
	IF (能力 == GETNUM(ABL, "身体")) || (能力 == GETNUM(ABL, "歌唱"))
		SIF HAS_VAGINA(MPLY:0)
			TALENT:(MPLY:0):Ｖ締まり = LIMIT(TALENT:(MPLY:0):Ｖ締まり + RAND:(TFLAG:コマンド成否 + 2), 締まり_最低値, 締まり_最高値)
		TALENT:(MPLY:0):Ａ締まり = LIMIT(TALENT:(MPLY:0):Ａ締まり + RAND:(TFLAG:コマンド成否 + 3), 締まり_最低値, 締まり_最高値)
		SIF HAS_VAGINA(MTAR:0)
			TALENT:(MTAR:0):Ｖ締まり = LIMIT(TALENT:(MTAR:0):Ｖ締まり + RAND:(TFLAG:コマンド成否 + 2), 締まり_最低値, 締まり_最高値)
		TALENT:(MTAR:0):Ａ締まり = LIMIT(TALENT:(MTAR:0):Ａ締まり + RAND:(TFLAG:コマンド成否 + 3), 締まり_最低値, 締まり_最高値)
	ENDIF

	;精神力の強化
	SIF MAXBASE:(MTAR:0):精神力 < 3000 || (MAXBASE:(MTAR:0):精神力 < 3500 && RAND:5 == 0)
		MAXBASE:(MTAR:0):精神力 = MIN(MAXBASE:(MTAR:0):精神力 + 2, 3500)

	;体力の強化
	IF MAXBASE:(MTAR:0):体力 < 1600
		MAXBASE:(MTAR:0):体力 += 2
	ELSEIF MAXBASE:(MTAR:0):体力 < 2000
		MAXBASE:(MTAR:0):体力 += 1
	ELSEIF MAXBASE:(MTAR:0):体力 < 3000 && RAND:5 == 0
		MAXBASE:(MTAR:0):体力 += 1
	ENDIF

	;気力の強化
	IF MAXBASE:(MTAR:0):気力 < 1600
		MAXBASE:(MTAR:0):気力 += 1
	ELSEIF MAXBASE:(MTAR:0):気力 < 2000 && RAND:2 == 0
		MAXBASE:(MTAR:0):気力 += 1
	ELSEIF MAXBASE:(MTAR:0):気力 < 2500 && RAND:6 == 0
		MAXBASE:(MTAR:0):気力 += 1
	ENDIF
	;主導度変化基準値
	TFLAG:主導度変化基準値 = 2

	;倒錯度変化基準値
	TFLAG:倒錯度変化基準値 = -1
ENDIF

IF !TALENT:(MTAR:0):幼児

	LOCAL = (RAND:100 < 乱数基準値:0)

	IF LOCAL
		SELECTCASE ABL:(MPLY:0):能力
			CASE IS < ランク閾値:ランク_ＳＬＧ:ランク_C
				LOCAL += RAND:3
			CASE IS < ランク閾値:ランク_ＳＬＧ:ランク_B
				LOCAL += RAND:2
		ENDSELECT
	ENDIF

	EXP:(MPLY:0):GET_EXP(能力) += LOCAL

	IF LOCAL:2
		LOCAL = RAND:2 + 2
	ELSE
		LOCAL = (RAND:100 < 乱数基準値:1)
	ENDIF

	IF LOCAL
		SELECTCASE ABL:(MTAR:0):能力
			CASE IS < ランク閾値:ランク_ＳＬＧ:ランク_C
				LOCAL += RAND:3
			CASE IS < ランク閾値:ランク_ＳＬＧ:ランク_B
				LOCAL += RAND:2
		ENDSELECT
	ENDIF

	EXP:(MTAR:0):GET_EXP(能力) += LOCAL

ELSE
	FOR LOCAL, 0, 10
		EXP:(MTAR:0):GET_EXP(能力) += (RAND:100 < 乱数基準値:1)
	NEXT
ENDIF


code:
"就寝","Sleep"
"食事","Eat"
"自由","Free"
"入浴","Bath"
"休憩","Rest"
"飲酒","Drink"
"購入","Buy"
"施錠","Lock"
"踊る","Dance"
"店番","Shop"
"炊事","Cook"
"ｸﾗﾌﾄ","Craft"
"売春","Brothel"
"宿番","Innkeeping"
"攻撃","ATK"
"魔力","MAG"
"防御","DEF"
"行動","AGI"
"軽減","ARMOR"
"選敵","TARGET"
"採集","Gather"
"採掘","Mine"
"芸能","Perform"
"訓練","Train"
"搾乳","Milk"
"プライド高い","High Pride"
"気丈","Brave"
"自制心","Self-Control"
"悲観的","Pessimistic"
"痛みに強い","↑Pain Tolerance"
"快感の否定","Denies pleasure"
"Ｍ気質","Maso"
"Ｖ敏感","V-Sens"
"Ａ敏感","A-Sens"
"Ｂ敏感","B-Sens"
"Ｍ敏感","M-Sens"
"Ｃ敏感","C-Sens"
"Ｃ鈍感","C-Insens"
"Ｖ鈍感","V-Insens"
"Ａ鈍感","A-Insens"
"Ｂ鈍感","B-Insens"
"Ｍ鈍感","M-Insens"
"性別","Gender"
"処女","Virgin"
"童貞","Virgin"
"キス未経験","Unkissed"
"アナル処女","A Virgin"
"臆病","Cowardly"
"反抗的","Rebellious"
"気丈","Formiable"
"素直","Obidient"
"大人しい","Quiet"
"プライド高い","Low Proud"
"生意気","Cheeky"
"プライド低い","High Pride"
"ツンデレ","Tsundere"
"自制心","Self-Control"
"無関心","Indifferent"
"感情乏しい","Emotionless"
"好奇心","Curious"
"保守的","Conservative"
"楽観的","Optismistic"
"悲観的","Pessimistic"
"一線越えない","Stuck up"
"目立ちたがり","Attention Seeker"
"貞操観念","Chasity"
"貞操無頓着","Unchase"
"抑圧","Oppressed"
"解放","Liberated"
"孤高","Solitude"
"恥じらい","Shy"
"恥薄い","Low shame"
"サボり魔","Slacker"
"痛みに弱い","Weak to Pain"
"痛みに強い","Resist pain"
"濡れやすい","Easy to get wet"
"濡れにくい","Hard to get wet"
"射精しにくい","Hard to cum"
"習得早い","Easy learner"
"習得遅い","Slow learner"
"舌使い","Long tongue"
"おもらし癖","Pees often"
"自慰しやすい","Masturbator"
"汚臭鈍感","Smell insensitive"
"汚臭敏感","Smell sensitive"
"献身的","Devoted"
"汚れ無視","Ignore dirt"
"快感に素直","Open to pleasure"
"快感の否定","Denies pleasure"
"中毒しやすい","Addictive"
"倒錯的","Perverse"
"両刀","Ambitious"
"男嫌い","Hates Men"
"女嫌い","Hates Woman"
"Ｓ気質","Sadistic"
"Ｍ気質","Masochistic"
"小悪魔","Little devil"
"魅惑","Charming"
"謎の魅力","Mysterious charm"
"人気","Popular"
"回復早い","Quick Recover"
"回復遅い","Slow Recover"
"美脚","Nice Legs"
"美尻","Nice Butt"
"Ｕ鈍感","Ｕ Insens"
"Ｕ敏感","Ｕ Sens"
"母乳体質","Lactates"
"幼児","Infant"
"幼稚","Childish"
"酒豪","Heavy drinker"
"絶倫","Stamina++"
"下戸","Light drinker"
"霊体","Spirit"
"妊娠不能","Inimpregnatable"
"小柄体型","Small body"
"子供体型","Childish body"
"動物耳","Animal Ears"
"しっぽ","Tail"
"恋慕","In Love"
"親友","Best friend"
"親愛","Dearest"
"恋人","Lover"
"服従","Submission"
"隷属","Slavery"
"烙印","Branded"
"崩壊","Collapsed"
"虚ろ","Empty"
"憎悪","Hatred"
"合意","Agreement"
"正妻","Legal wife"
"妾","Mistress"
"既婚者","Married"
"他人の主人","Other's Master"
"他人の奴隷","Other's Slave"
"妊娠","Pregante"
"育児中","Child raising"
"母性","Motherhood"
"孕み可能","Impregnatable"
"触手妊娠","Tentacle Preg"
"Ａ触手妊娠","A Tentacle Preg"
"子供人質","Child hostage"
"Ｕ触手妊娠","Ｕ Tentacle Preg"
"主人","Master"
"所有者","Owner"
"天の御遣い","Messiah"
"魔術師","Magician"
"技師","Engineer"
"君主の器","Vessel of sovereign"
"求心力","Centripetal force"
"強運","Good luck"
"教導","Instructor"
"調合","Mixer"
"成長型","Grower"
"性格","Personality"
"髪色","Hair color"
"髪の長さ","Hair length"
"姓名逆転","First name fixed"
"チョロイン","Cheerleader"
"ミドルネーム洋風","Western middle name"
"Ｖ締まり","Ｖ Tightness"
"Ａ締まり","Ａ Tightness"
"淫乱系","Lewd"
"成長後バスト","Bust (adult)"
"成長後体型","Body shape (adult)"
"成長後幼稚","Stays childish"
"成長後ヒップ","Hips (adult)"
"ピアス穴","Pierced ear"
"ピアス","Pierced"
"陰毛現在値","Pubic Hair (now)"
"陰毛目標値","Pubic Hair (goal)"
"性的嗜好","Sex Pref."
"性的嗜好ロック","Sex Pref. Lock"
"危険日","Dangerous Day"
"腋毛現在値","Armpit hair (now)"
"腋毛目標値","Armpit hair (goal)"
"特殊勢力素質","Special power"
"特殊勢力陥落系","Special power type"
"デイリー系","Daily"
"キャラ区分","Char spec"
"バストサイズ","Bust size"
"ペニスサイズ","Penis size"
"ヒップサイズ","Hip size"
"体格","Physical build"
"体型","Body type"
"元性別","Original gender"
"戦闘機械","Fighter"
"動物","Animals"
"カスタムキャラ","Custom Character"
"カスタムキャラバージョン","Custom Character Version"
"慰安モブ","Comfort Mob"
"戦闘モブ","Combat Mob"
"露出プレイモブ","Exposed Play Mob"
"奴隷市場モブ","Slave Market Mob"
"職業","Profession"
"最初から","   NEW GAME"
"続きから","   CONTINUE"
"クイックロード"," QUICK LOAD"
"カスタムキャラ"," CHAR MAKER"
"ヘルプ","       HELP"
"LANGUAGE","言語"
"バイブ","Vibe"
"アナルバイブ","Anal Vibe"
"クリキャップ","Clit cap"
"ニプルキャップ","Nipple cap"
"媚薬","Aphrodisiac"
"尻を叩","Butt slap"
"鞭","Whip"
"目隠し","Blindfold"
"口枷","Ball gag"
"首輪","Collar"
"服","Clothes tear"
"なりゆきまかせ","Idle waiting"
"告白する","Confess"
"貝合わせ","Tribasim"
"二穴正常位","Double Missionary"
"正常位","Missionary"
"二穴後背位","Double Doggy"
"後背位","Doggy"
"二穴対面座位","Double Face-to-Face Doggy"
"対面座位","Face-to-Face Doggy"
"二穴背面座位","Double Back Cowgirl"
"背面座位","Back Cowgirl"
"乳首責め","Torture nipples"
"搾乳","Miling"
"胸愛撫","Breat carress"
"同時搾乳","Simult. Milking"
"同時胸愛撫","Simult. Breat carress"
"亀頭責め手コキ","Glans handjob"
"Ｗ亀頭責め手コキ","W Glans handjob"
"亀頭責めフェラ","Glans BJ"
"Ｔ亀頭責めフェラ","T Glans BJ"
"Ｗ亀頭責めフェラ","W Glans BJ"
"パイズリフェラ","Paizuri BJ"
"Ｔパイズリフェラ","T Paizuri BJ"
"Ｗパイズリフェラ","W Paizuri BJ"
"横取り亀頭責めフェラ","Strip glans BJ"
"押し倒す","Push down"
"誘い受ける","Accept invite"
"服を脱がす","Undress"
"服を脱がす(上)","Undress (top)"
"服を脱がす(下)","Undress (bottom)"
"誘い受ける","Accept invite"
"誘い受ける","Accept invite"
"誘い受ける","Accept invite"
"誘い受ける","Accept invite"
"誘い受ける","Accept invite"
"誘い受ける","Accept invite"
"舌を這わす","Use Tongue"
"舌を這わす(首)","Use Tongue (Neck)"
"舌を這わす(頬)","Use Tongue (Cheek)"
"舌を這わす(腹)","Use Tongue (Stomach)"
"舌を這わす(脇)","Use Tongue (Armpit)"
"舌を這わす(腿)","Use Tongue (Thigh)"
"舌を這わす(耳)","Use Tongue (Ear)"
"奉仕","を要求","Request service"
"奉仕","する","Serve"
"奉仕","させる","Force service"
"バイブ","Vibe"
"アナルバイブ","Anal Vibe"
"クリキャップ","Clit cap"
"ニプルキャップ","Nipple cap"
"媚薬","Aphrodisiac"
"尻を叩","Butt slap"
"鞭","Whip"
"目隠し","Blindfold"
"口枷","Ball gag"
"首輪","Collar"
"服","Clothes tear"
"なりゆきまかせ","Idle waiting"
"告白する","Confess"
"貝合わせ","Tribasim"
"二穴正常位","Double Missionary"
"正常位","Missionary"
"二穴後背位","Double Doggy"
"後背位","Doggy"
"二穴対面座位","Double Face-to-Face Doggy"
"対面座位","Face-to-Face Doggy"
"二穴背面座位","Double Back Cowgirl"
"背面座位","Back Cowgirl"
"乳首責め","Torture nipples"
"搾乳","Miling"
"胸愛撫","Breat carress"
"同時搾乳","Simult. Milking"
"同時胸愛撫","Simult. Breat carress"
"亀頭責め手コキ","Glans handjob"
"Ｗ亀頭責め手コキ","W Glans handjob"
"亀頭責めフェラ","Glans BJ"
"Ｔ亀頭責めフェラ","T Glans BJ"
"Ｗ亀頭責めフェラ","W Glans BJ"
"パイズリフェラ","Paizuri BJ"
"Ｔパイズリフェラ","T Paizuri BJ"
"Ｗパイズリフェラ","W Paizuri BJ"
"横取り亀頭責めフェラ","Strip glans BJ"
"押し倒す","Push down"
"誘い受ける","Accept invite"
"服を脱がす","Undress"
"服を脱がす(上)","Undress (top)"
"服を脱がす(下)","Undress (bottom)"
"舌を這わす","Use Tongue"
"舌を這わす(首)","Use Tongue (Neck)"
"舌を這わす(頬)","Use Tongue (Cheek)"
"舌を這わす(腹)","Use Tongue (Stomach)"
"舌を這わす(脇)","Use Tongue (Armpit)"
"舌を這わす(腿)","Use Tongue (Thigh)"
"舌を這わす(耳)","Use Tongue (Ear)"

"レポート","Daily Report"
"領地","Territorial changes"
"商業活動の評判","Commerial reputation"
"キャラクター","Characters"
"妊娠・出産報告","Pregnancy and childbirth report"
"素質獲得・関係性の変化","Talents and relationships"
"逢瀬による獲得淫堕点","Abuse lewd point"
"仲間たちの交流","Character interactions"
"*","の避妊薬の効果が切れました","{0}'s contraceptives have expired"
"*","の排卵誘発剤の効果が切れました","{0}'s ovulation inducer's effect decreased"
"*","が買い物にやって来た","{0} came to shop"
"*","は去っていった","{0} left."
"*","のカップルが宿泊しにやって来た","{0} came as a couple to stay"
"*","が宿泊しにやって来た","{0} came to stay"
"◆","*","のスキル◆","◆{0}'s skill◆"
"*","の妊娠記録","{0}'s list of impregnated people"
"*","の種付け記録","{0}'s list of people they poured semen into"
"*","を父親に持つ子供","{0}'s fathered children"
"*","を母親に持つ子供","{0}'s birthed children"
"*","の兄弟・姉妹","{0}'s brothers and sisters"
"*","の胃内の精液","{0}'s list of semen in stomach (oral)"
"*","の子宮内の精液","{0}'s list of semen in the uterus (V)"
"*","の腸内の精液","{0}'s list of semen in the intestines (A)"

"その他","Others"
"両親ともに不明のため、わからない","Unknown, as parents are unknown"
"なし","None"
"買物客","Shopper"
"冒険者","Adventurer"
"商人","Merchant"
"村人","Villager"
"旅行者","Traveler"
"村の子供","Village child"
"牧童","Herd boy"
"小姓","Page boy"
"徒弟","Apprentice"
"観客_街","Town spectator"
"市民","Citizen"
"観客_スラム","Slum spectator"
"ならず者","Ruffian"
"娼婦","Prostitute"
"浮浪者","Vagrant"
"奴隷","Slave"

"超々大量","Enormous "
"超大量","Huge "
"大量","Big "
"噴乳","Milk spray "
"潮吹き","Squirting"
"大量おもらし","Lots of peeing"
"おもらし","Peeing"
"射精","Ejaculation"
"絶頂","*","Climax ({1})"
"絶頂","Climax"
"強","Strong "
"超強","Super strong "
"最強","Strongest "

"<最 強 六 重 絶 頂>","<STRONG 6x Orgasm>"
"<六 重 絶 頂>","<6x Orgasm>"
"<最 強 五 重 絶 頂>","<STRONG 5x Orgasm>"
"<五 重 絶 頂>","<5x Orgasm>"
"<最 強 四 重 絶 頂>","<STRONG 4x Orgasm>"
"<四 重 絶 頂>","<4x Orgasm>"

"活動","ACTV"
"謀略","PLOT"
"捕虜","PRIS"
"管理","MGMT"
"情報","INFO"
"特殊","SPCL"
"売買","B/S"
"進行","PROG"
"設定","CONF"
"設定","Config"
"セーブ","Save game"
"ロード","Load game"

"リナシメント","Rinascimento"
"トネリコの冒険","Ash's adventure"
"ノアレルム辺境の賊徒","Noarelm's pirates"
"深森の忘都","Fukamori's forgets"
"海岸の探索","Exploring the coast"
"月下離宮イシリオン","Tsukishita Palace: Ishirion"
"魔獣の心核","Demon beast's heart"
"忌み地より来たる者","Abomination visitors"
"ドワーフの大坑道","Dwarf's mine"
"街角","Street corner"
"身体を捧げる","Offer yourself"
"断る","Refuse"
"飛び込む","Jump in"
"別の道を進む","Take another path"
"目の前に、向こう側が見えない様な渦が巻いている。","You are standing infront of a vortex, but you cannot see the other side."
"木の精が言っていた次元の裂け目とはこれだろうか？","Is that the dimensional rift the tree spirit was talking about?"
"豪奢な宝箱","Luxurious treasure chest"
"遺品の箱","Box of remains"
"後方地域を探索する(通常通り)","Explore the back area (as usual)"
"さらに南へ(難易度増・報酬増)","Go further south (increasing difficulty and rewards)"
"近辺を索敵する(脅威:低)","Search the area (danger: low)"
"遠方を索敵する(脅威:高)","Venture deeper (danger: high)"
"妊娠はしなかったようだ","... but they appear to no have gotten pregnant."
"膣内で精子が元気に泳ぎ回っている","insides are completly filled up with sperm."
"膣内で夥しい数の精子が蠢いている","has a large amount of sperm swirling around."
"膣内は精液で完全に満たされている","has sperm floating around violently..."
"危険日の","(has a dangerous day ❤)"

"撫で回される","Getting petted"
"採集","Collect"

"*","は牢の中で虚ろに視線を彷徨わせている","{0} is staring blankly in their cell..."
"*","は牢の中で大人しくしている…","{0} is quietly in their cell..."
"*","は牢の中で暴れているようだ…","{0} is acting violently in their cell..."
"*","は牢の外にいる看守と話し込んでいる…","{0} is talking to a guard outside of their cell."
"*","は牢の中で不安そうにしている…","{0} is looking anxious in their cell..."
"*","は牢の中でじっとしている…","{0} is sitting still in their cell..."
"*","は牢の中で文句を言っている…","{0} is complaining in their cell..."
"*","は牢の中で心細そうにしている…","{0} is feeling lonely in their cell..."
"*","は牢の中で不安そうにしている…","{0} is feeling anxious in their cell..."
"*","は体の変調を感じた…","{0} is feeling a change in their body..."
"*","の様子がおかしい…","{0} is acting strange..."
"*","は[妊娠]しました","{0} is now [pregnant]."
"*","の胸から母乳が出るようになりました","{0} started to produce breast milk."
"*","はそんなこと出来るはずがないと断った……","{0} refused and said they cannot do it."
"*","が情事の場に加わった…","{0} joined the sexy time..."
"*","と別れた後、","After parting with {0}, "
"*","は劣情を抑えきれず、","{0} could not suppress their lust "
"*","は採集を行った","{0} is collecting"
"どうやら","*","It seems that {1} might got pregnant by "
"名も知れぬ誰か","somebody"
"子供を身篭った様だ","."

"*","*","*","*","を物陰に連れ込んだ","{0} agreed and is lead by {2} into the shadows."
"*","*","の胸のサイズが一段階大きくなりました","Due to the pregnancy, the breasts of {1} increased by one size"
"そして自身の性器を取り出すと、","*","の眼前で自身を慰め始めた……","Finally they strip down and starts masturbating infront of {1}..."

"自らの指で反り立った肉棒を慰めた…","they started to masturbate with their penis..."
"自らの指で火照った体を慰めた…","they started to masturbate with their fingers..."
"自らの尻穴に指を挿れて快感を貪った…","they started to masturbate by putting their fingers in their butt..."
"どうやらひどく発情しているようだ…","It seems to be in heat..."
"追い払う","Shake it off"
"なすがまま","Let it happen"
"しかし何もみつけることができなかった……","But couldn't find anything..."
"移動する前に","*","*","*","をそっと整えた……","Before leaving, {1} straightend their clothes and left."
"*","*","*","のそばにやってきた","{0} came over to sit beside {2}"
"*","*","*","に別れを告げて立ち去った","{0} said goodbye to {2} and left."
"*","*","*","を売却し","*","ディナリを得た","{0} sold {2} for {4} Denari"
"*","*","*","*","*","個売却し","*","ディナリを得た","{0} sold {4}x {2} for {6} Denari"

"*","*","*","個入手した","Collected {2}x {0}"
"*","*","*","匹入手した","Collected {2}x {0}"
"*","*","*","と協力して採集を行った","{0} and {2} are collecting together..."
"*","*","*","が""見抜き""させてくれるなら、何か買ってやってもよいと言っているが……","{2} said that if {0} 'endure something', they'll buy something from you..."
"*","*","*","*","*","*","mlの精液が溢れた……","{5}ml of semen are spilling out as {1}'s {3} is already full."
"*","*","*","*","*","にすっかり取り囲まれてしまった","While {0} was working in {2} when they suddently were surround by the undulating {4}..."
"*","*","*","*","*","が息を荒げ、じりじりとにじり寄ってきた","While {0} was working in {2}, a {4} started to breath heavily and kept creeping closer..."
"*","*","の先端からは生臭い粘液が絶え間なく滴っている…","When it raised it's head, the tip of {1} was dripping with large amounts of weird mucus..."
"*","が隙を見せるなり、すかさず","*","が飛びかかってきた！","As soon as {0} showed an opening, {2} sprung into action!"


code:
"攻撃","ATK"
"魔力","MAG"
"防御","DEF"
"行動","AGI"
"軽減","ARMOR"
"選敵","TARGET"


code:
"バイブ","Vibe"
"アナルバイブ","Anal Vibe"
"クリキャップ","Clit cap"
"ニプルキャップ","Nipple cap"
"媚薬","Aphrodisiac"
"尻を叩","Butt slap"
"鞭","Whip"
"目隠し","Blindfold"
"口枷","Ball gag"
"首輪","Collar"
"服","Clothes tear"
"なりゆきまかせ","Idle waiting"
"告白する","Confess"
"貝合わせ","Tribasim"
"二穴正常位","Double Missionary"
"正常位","Missionary"
"二穴後背位","Double Doggy"
"後背位","Doggy"
"二穴対面座位","Double Face-to-Face Doggy"
"対面座位","Face-to-Face Doggy"
"二穴背面座位","Double Back Cowgirl"
"背面座位","Back Cowgirl"
"乳首責め","Torture nipples"
"搾乳","Miling"
"胸愛撫","Breat carress"
"同時搾乳","Simult. Milking"
"同時胸愛撫","Simult. Breat carress"
"亀頭責め手コキ","Glans handjob"
"Ｗ亀頭責め手コキ","W Glans handjob"
"亀頭責めフェラ","Glans BJ"
"Ｔ亀頭責めフェラ","T Glans BJ"
"Ｗ亀頭責めフェラ","W Glans BJ"
"パイズリフェラ","Paizuri BJ"
"Ｔパイズリフェラ","T Paizuri BJ"
"Ｗパイズリフェラ","W Paizuri BJ"
"横取り亀頭責めフェラ","Strip glans BJ"
"押し倒す","Push down"
"誘い受ける","Accept invite"
"服を脱がす","Undress"
"服を脱がす(上)","Undress (top)"
"服を脱がす(下)","Undress (bottom)"
"誘い受ける","Accept invite"
"舌を這わす","Use Tongue"
"舌を這わす(首)","Use Tongue (Neck)"
"舌を這わす(頬)","Use Tongue (Cheek)"
"舌を這わす(腹)","Use Tongue (Stomach)"
"舌を這わす(脇)","Use Tongue (Armpit)"
"舌を這わす(腿)","Use Tongue (Thigh)"
"舌を這わす(耳)","Use Tongue (Ear)"
"奉仕","を要求","Request service"
"奉仕","する","Serve"
"奉仕","させる","Force service"

"超々大量","Enormous "
"超大量","Huge "
"大量","Big "
"噴乳","Milk spray "
"潮吹き","Squirting"
"大量おもらし","Lots of peeing"
"おもらし","Peeing"
"射精","Ejaculation"
"絶頂","*","Climax ({1})"
"絶頂","Climax"
"強","Strong "
"超強","Super strong "
"最強","Strongest "

"<最 強 六 重 絶 頂>","<STRONG 6x Orgasm>"
"<六 重 絶 頂>","<6x Orgasm>"
"<最 強 五 重 絶 頂>","<STRONG 5x Orgasm>"
"<五 重 絶 頂>","<5x Orgasm>"
"<最 強 四 重 絶 頂>","<STRONG 4x Orgasm>"
"<四 重 絶 頂>","<4x Orgasm>"

"撫で回される","Getting petted"
"採集","Collect"


code:
@TR(ARGS:0, ARGS:1 = "", ARGS:2 = "", ARGS:3 = "", ARGS:4 = "", ARGS:5 = "", ARGS:6 = "", ARGS:7 = "", ARGS:8 = "")
#FUNCTIONS
CALLSHARP TranslateNative(CONFIG:666, ARGS:0, ARGS:1, ARGS:2, ARGS:3, ARGS:4, ARGS:5, ARGS:6, ARGS:7, ARGS:8)
RETURNF RESULTS


code:
"就寝","Sleep"
"食事","Eat"
"自由","Free"
"入浴","Bath"
"休憩","Rest"
"飲酒","Drink"
"購入","Buy"
"施錠","Lock"
"踊る","Dance"
"店番","Shop"
"炊事","Cook"
"ｸﾗﾌﾄ","Craft"
"売春","Brothel"
"宿番","Innkeeping"
"採集","Gather"
"採掘","Mine"
"芸能","Perform"
"訓練","Train"
"搾乳","Milk"

"レポート","Daily Report"
"領地","Territorial changes"
"商業活動の評判","Commerial reputation"
"キャラクター","Characters"
"妊娠・出産報告","Pregnancy and childbirth report"
"素質獲得・関係性の変化","Talents and relationships"
"逢瀬による獲得淫堕点","Abuse lewd point"
"仲間たちの交流","Character interactions"

"妊娠はしなかったようだ","... but they appear to no have gotten pregnant."
"膣内で精子が元気に泳ぎ回っている","insides are completly filled up with sperm."
"膣内で夥しい数の精子が蠢いている","has a large amount of sperm swirling around."
"膣内は精液で完全に満たされている","has sperm floating around violently..."
"危険日の","(has a dangerous day ❤)"

"*","は牢の中で虚ろに視線を彷徨わせている","{0} is staring blankly in their cell..."
"*","は牢の中で大人しくしている…","{0} is quietly in their cell..."
"*","は牢の中で暴れているようだ…","{0} is acting violently in their cell..."
"*","は牢の外にいる看守と話し込んでいる…","{0} is talking to a guard outside of their cell."
"*","は牢の中で不安そうにしている…","{0} is looking anxious in their cell..."
"*","は牢の中でじっとしている…","{0} is sitting still in their cell..."
"*","は牢の中で文句を言っている…","{0} is complaining in their cell..."
"*","は牢の中で心細そうにしている…","{0} is feeling lonely in their cell..."
"*","は牢の中で不安そうにしている…","{0} is feeling anxious in their cell..."

"自らの指で反り立った肉棒を慰めた…","they started to masturbate with their penis..."
"自らの指で火照った体を慰めた…","they started to masturbate with their fingers..."
"自らの尻穴に指を挿れて快感を貪った…","they started to masturbate by putting their fingers in their butt..."
"どうやらひどく発情しているようだ…","It seems to be in heat..."

"*","は体の変調を感じた…","{0} is feeling a change in their body..."
"*","の様子がおかしい…","{0} is acting strange..."
"*","は[妊娠]しました","{0} is now [pregnant]."
"*","の胸から母乳が出るようになりました","{0} started to produce breast milk."

"*","はそんなこと出来るはずがないと断った……","{0} refused and said they cannot do it."
"*","が情事の場に加わった…","{0} joined the sexy time..."
"*","と別れた後、","After parting with {0}, "
"*","は劣情を抑えきれず、","{0} could not suppress their lust "
"*","は採集を行った","{0} is collecting"

"移動する前に","*","*","*","をそっと整えた……","Before leaving, {1} straightend their clothes and left."

"*","*","*","のそばにやってきた","{0} came over to sit beside {2}"
"*","*","*","に別れを告げて立ち去った","{0} said goodbye to {2} and left."

"*","*","*","を売却し","*","ディナリを得た","{0} sold {2} for {4} Denari"
"*","*","*","*","*","個売却し","*","ディナリを得た","{0} sold {4}x {2} for {6} Denari"

"*","*","*","*","を物陰に連れ込んだ","{0} agreed and is lead by {2} into the shadows."
"そして自身の性器を取り出すと、","*","の眼前で自身を慰め始めた……","Finally they strip down and starts masturbating infront of {1}..."

"*","*","の胸のサイズが一段階大きくなりました","Due to the pregnancy, the breasts of {1} increased by one size"
"どうやら","*","It seems that {1} might got pregnant by "
"名も知れぬ誰か","somebody"
"子供を身篭った様だ","."

"*","*","*","個入手した","Collected {2}x {0}"
"*","*","*","匹入手した","Collected {2}x {0}"
"*","*","*","と協力して採集を行った","{0} and {2} are collecting together..."
"*","*","*","が""見抜き""させてくれるなら、何か買ってやってもよいと言っているが……","{2} said that if {0} 'endure something', they'll buy something from you..."
"*","*","*","*","*","*","mlの精液が溢れた……","{5}ml of semen are spilling out as {1}'s {3} is already full."
"*","*","*","*","*","にすっかり取り囲まれてしまった","While {0} was working in {2} when they suddently were surround by the undulating {4}..."
"*","*","*","*","*","が息を荒げ、じりじりとにじり寄ってきた","While {0} was working in {2}, a {4} started to breath heavily and kept creeping closer..."
"*","*","の先端からは生臭い粘液が絶え間なく滴っている…","When it raised it's head, the tip of {1} was dripping with large amounts of weird mucus..."
"*","が隙を見せるなり、すかさず","*","が飛びかかってきた！","As soon as {0} showed an opening, {2} sprung into action!"


code:
"最初から","   NEW GAME"
"続きから","   CONTINUE"
"クイックロード"," QUICK LOAD"
"カスタムキャラ"," CHAR MAKER"
"ヘルプ","       HELP"
"LANGUAGE","言語"


code:
"リナシメント","Rinascimento"
"トネリコの冒険","Ash's adventure"
"ノアレルム辺境の賊徒","Noarelm's pirates"
"深森の忘都","Fukamori's forgets"
"海岸の探索","Exploring the coast"
"月下離宮イシリオン","Tsukishita Palace: Ishirion"
"魔獣の心核","Demon beast's heart"
"忌み地より来たる者","Abomination visitors"
"ドワーフの大坑道","Dwarf's mine"
"街角","Street corner"

"身体を捧げる","Offer yourself"
"断る","Refuse"
"飛び込む","Jump in"
"別の道を進む","Take another path"
"目の前に、向こう側が見えない様な渦が巻いている。","You are standing infront of a vortex, but you cannot see the other side."
"木の精が言っていた次元の裂け目とはこれだろうか？","Is that the dimensional rift the tree spirit was talking about?"
"豪奢な宝箱","Luxurious treasure chest"
"遺品の箱","Box of remains"
"後方地域を探索する(通常通り)","Explore the back area (as usual)"
"さらに南へ(難易度増・報酬増)","Go further south (increasing difficulty and rewards)"
"近辺を索敵する(脅威:低)","Search the area (danger: low)"
"遠方を索敵する(脅威:高)","Venture deeper (danger: high)"

"追い払う","Shake it off"
"なすがまま","Let it happen"
"しかし何もみつけることができなかった……","But couldn't find anything..."