code:
;調教関連のシステム関数を管理

;-------------------------------------------------
;調教開始時の処理
;-------------------------------------------------
@FL_EVENTTRAIN
CALL FL_EVENTTRAIN_KOJO

FLAG:継続コマンド表示絞り込み = 0
FLAG:継続コマンド表示絞り込み選択中キャラ = MASTER
FLAG:逆調教コマンド強制 = -1

LINES_TRAIN = LINECOUNT
;調教に参加している人数を数える
TFLAG:参加者数 = 0
FOR LOCAL:0, 0, CHARANUM
	IF CFLAG:(LOCAL:0):調教参加フラグ
		TFLAG:参加者数 ++
	ENDIF
NEXT

;機嫌パラメータに退避しておいた値を代入
FOR LOCAL:0, 0, CHARANUM
	FOR LOCAL:1, 0, 10
		PALAM:(LOCAL:0):(LOCAL:1 + 10) = CFLAG:(LOCAL:0):(LOCAL:1 + 190)
	NEXT
NEXT

;強制友好化フラグが立っているなら、負の感情をリセットする
FOR LOCAL:0, 0, CHARANUM
	IF CFLAG:(LOCAL:0):強制友好化
		FOR LOCAL:1, 0, 10
			SIF PALAM:(LOCAL:0):(LOCAL:1 + 10) > 0
				PALAM:(LOCAL:0):(LOCAL:1 + 10) = 0
		NEXT
	ENDIF
NEXT

;衣装データを一時領域にコピー
FOR LOCAL, 0, CHARANUM
	CALL SET_CHARA_CLOTH_DATA(LOCAL)
NEXT

;「会いに行く」モード
IF FLAG:調教モード == 0
	FOR LOCAL:0, 0, CHARANUM
		;ツンデレ＆恋慕＆非恋人の場合
		IF TALENT:(LOCAL:0):ツンデレ && TALENT:(LOCAL:0):恋慕 && !TALENT:(LOCAL:0):恋人
			;最初から怒・哀の感情が高めの状態に
			PALAM:(LOCAL:0):怒主 = MAX(PALAM:(LOCAL:0):怒主, 300 + RAND:100)
			PALAM:(LOCAL:0):哀主 = MAX(PALAM:(LOCAL:0):哀主, 300 + RAND:100)
		ENDIF
	NEXT
ENDIF

;時間の設定
IF FLAG:調教モード == 調教_会う
	;臨月
	IF CFLAG:(MTAR:0):行動不能状態 == 行動不能_臨月
		TFLAG:調教ターン数 = 5
		;育児中
	ELSEIF CFLAG:(MTAR:0):行動不能状態 == 行動不能_育児
		TFLAG:調教ターン数 = 5
		;怪我
	ELSEIF CFLAG:(MTAR:0):行動不能状態 == 3
		TFLAG:調教ターン数 = 3
	ELSE
		TFLAG:調教ターン数 = 10
	ENDIF
ELSEIF FLAG:クエストモード
	TFLAG:調教ターン数 = QST_調教ターン数
ELSEIF FLAG:調教モード == 調教_子育て
	TFLAG:調教ターン数 = 5
ELSEIF FLAG:調教モード == 調教_捕虜会話
	TFLAG:調教ターン数 = 10
ELSEIF FLAG:ウフフフラグ
	TFLAG:調教ターン数 = 20
ELSEIF FLAG:調教モード == 調教_居住区
	TFLAG:調教ターン数 = 20
ENDIF

;情報表示モードのリセット
FLAG:能力表示モード = 0

;捕虜調教・子育てなら常に主人公が主導権を握る
IF GROUPMATCH(FLAG:調教モード, 2, 3)
	FOR LOCAL, 0, CHARANUM
		IF IS_PARTICIPATE_TRAIN(LOCAL)
			FLAG:主導権所有者 = LOCAL
			BREAK
		ENDIF
	NEXT
	;それ以外なら通常は「成り行き」で開始
ELSE
	FLAG:主導権所有者 = -1
ENDIF

;EQUIPの初期化
CALL INIT_EQUIP()

;捕虜逆調教なら縛られた状態からスタート
IF GROUPMATCH(FLAG:調教モード, 4, 5) && !GROUPMATCH(1, FLAG:閨逆調教)
	CALL CLEAR_MPLY
	CALL CLEAR_MTAR
	FOR LOCAL:0, 0, CHARANUM
		IF CFLAG:(LOCAL:0):調教参加フラグ && LOCAL:0 != MASTER
			CALL ADD_MPLY(LOCAL:0)
		ENDIF
	NEXT
	CALL ADD_MTAR(MASTER)
	;縄は捕虜であるか1/3
	SIF CFLAG:(MASTER):捕虜先 || !RAND:3
		CALL SET_EQUIP(85, 1)
	SIF !RAND:3
		CALL SET_EQUIP(84, 1)
	SIF !RAND:3
		CALL SET_EQUIP(86, 1)
	CALL CLEAR_MPLY
	CALL CLEAR_MTAR
	FOR LOCAL, 0, CHARANUM
		IF CFLAG:(LOCAL:0):調教参加フラグ && TALENT:LOCAL:特殊勢力素質 == 特殊勢力_触手
			CALL ADD_MPLY(LOCAL:0)
		ENDIF
	NEXT
	IF MPLY_NUM > 0
		CALL SET_EQUIP(200, 1)
	ENDIF
ENDIF

IF CONFIG:10 && GROUPMATCH(FLAG:調教モード, 調教_閨, 調教_捕虜調教)
	CALL CLEAR_MPLY
	CALL CLEAR_MTAR
	FOR LOCAL, 0, CHARANUM
		IF IS_PARTICIPATE_TRAIN(LOCAL) && HAS_PENIS(LOCAL)
			;ゴムがなければ補給
			IF ITEM:コンドーム <= 0
				IF ITEMPRICE:コンドーム > MONEY
					PRINTFORML コンドーム購入のための資金が不足しています
					BREAK
				ELSE
					PRINTFORML コンドームを補充します
					ITEM:コンドーム ++
					MONEY -= ITEMPRICE:コンドーム
				ENDIF
			ENDIF
			IF (LOCAL == MASTER && CONFIG:10 == 2) || LOCAL != MASTER
				CALL ADD_MPLY(LOCAL)
				ITEM:コンドーム --
			ENDIF
		ENDIF
	NEXT
	SIF MPLY_NUM > 0
		CALL SET_EQUIP(GETNUM(TRAINNAME, "コンドーム"), 1)
ENDIF

;特殊勢力による調教は、出来上がった状態からスタート
IF FLAG:調教モード == 調教_逆調教特殊
	FOR LOCAL:0, 0, CHARANUM
		IF CFLAG:(LOCAL:0):調教参加フラグ
			PALAM:(LOCAL:0):潤滑 = 30000
			PALAM:(LOCAL:0):欲情 = 30000
		ENDIF
	NEXT
ENDIF

;下戸でなく妊娠していなかったら、たまに酔っ払った状態でスタート
;種族名が鬼の場合高確率、酒豪でもそこそこの確率
;ただし鬼じゃない場合、捕虜調教時は含めない
IF FLAG:調教モード == 調教_会う
	FOR LOCAL, 0, CHARANUM
		IF CFLAG:(LOCAL:0):調教参加フラグ && !TALENT:(LOCAL:0):下戸 && !TALENT:(LOCAL:0):妊娠 && CFLAG:(LOCAL:0):行動不能状態 != 行動不能_子供 && !TALENT:(LOCAL:0):霊体
			IF HAS_TAG(LOCAL:0, タグ_鬼) && !RAND:3
				PRINTFORMW %ANAME(LOCAL:0)%は酔っ払っているようだ……
				PALAM:(LOCAL:0):酔い = RAND(3000, 6000)
			ELSEIF TALENT:(LOCAL:0):酒豪 && FLAG:調教モード != 2 && !RAND:5
				PRINTFORMW %ANAME(LOCAL:0)%は酔っ払っているようだ……
				PALAM:(LOCAL:0):酔い = RAND(1500, 3000)
			ELSEIF FLAG:調教モード != 2 && !RAND:10
				PRINTFORMW %ANAME(LOCAL:0)%は酔っ払っているようだ……
				PALAM:(LOCAL:0):酔い = RAND(500, 1500)
			ENDIF
		ENDIF
	NEXT
ENDIF

;ハウジングモード用の初期化処理
IF  FLAG:調教モード == 調教_居住区
	CALL HO_INIT_DATA_EVENTTRAIN_START
ENDIF

;クエストモード用の初期化処理 空腹からスタート
IF  FLAG:調教モード == 調教_クエスト
	CVARSET TCVAR, GETNUM(TCVAR, "空腹度"), 300
ENDIF

;プレイヤーとターゲットをクリア
CALL CLEAR_MPLY
CALL CLEAR_MTAR

;初期プレイヤー、ターゲット設定
;指定しとかないと何かと不具合起こしがちなので
CALL SET_TMP_MPLY
CALL SET_TMP_MTAR

;尿残量と屁残量をリセット
CVARSET TCVAR, 54, 1000
CVARSET TCVAR, 55, 1000

PLAYER = -1
TARGET = -1
TFLAG:31 = -1

SELECTCASE FLAG:調教モード
	CASE 調教_会う, 調教_子育て, 調教_捕虜会話
		TFLAG:調教タブ設定 = 7
	CASE 調教_居住区
		TFLAG:調教タブ設定 = 9
	CASE 調教_クエスト
		TFLAG:調教タブ設定 = 13
	CASEELSE
		TFLAG:調教タブ設定 = 0
ENDSELECT

SIF EVENTTRAIN_CALLEE_NUM > 0
	CALL TRAIN_CALL(0)

IF TRAIN_PLACE == ""
	IF FLAG:調教モード == 調教_慰安 && GROUPMATCH(FLAG:慰安モード,1, 3)
		TRAIN_PLACE = %IAN_PLACE:(FLAG:慰安場所)%
	ELSEIF FLAG:夜這い
		TRAIN_PLACE = %ANAME(PRISONER_TARGET:0)%の寝室
	ELSEIF GROUPMATCH(FLAG:調教モード, 2, 4, 5)
		TRAIN_PLACE = 牢屋
	ELSEIF CFLAG:MASTER:所属
		TRAIN_PLACE = 拠点内
	ELSE
		TRAIN_PLACE = 仮拠点
	ENDIF
ENDIF

PRINTL

JUMP FL_SHOW_STATUS

;-------------------------------------------------
;DESC  :MPLY:0が-1だとまずい時用の仮決め
;-------------------------------------------------
@SET_TMP_MPLY()
SIF MPLY:0 >= 0
	RETURN 0
IF GROUPMATCH(FLAG:調教モード, 調教_会う, 調教_閨, 調教_捕虜調教, 調教_捕虜会話, 調教_子育て, 調教_居住区, 調教_クエスト) && !FLAG:クエスト_あなた不参加
	CALL ADD_MPLY(MASTER)
ELSEIF GROUPMATCH(FLAG:調教モード, 調教_逆調教特殊, 調教_逆調教通常) || FLAG:クエスト_あなた不参加
	FOR LOCAL, 1, CHARANUM
		IF IS_PARTICIPATE_TRAIN(LOCAL)
			CALL ADD_MPLY(LOCAL)
			BREAK
		ENDIF
	NEXT
ELSE
	FOR LOCAL, 0, CHARANUM
		IF TALENT:LOCAL:慰安モブ
			CALL ADD_MPLY(LOCAL)
			BREAK
		ENDIF
	NEXT
ENDIF
RETURN 1

;-------------------------------------------------
;DESC  :MTAR:0が-1だとまずい時用の仮決め
;-------------------------------------------------
@SET_TMP_MTAR()
#DIM DYNAMIC CNT
SIF MTAR:0 >= 0
	RETURN 0
IF GROUPMATCH(FLAG:調教モード, 調教_会う, 調教_閨, 調教_捕虜調教, 調教_捕虜会話, 調教_子育て, 調教_居住区, 調教_クエスト) && !FLAG:クエスト_あなた不参加
	FOR LOCAL, 1, CHARANUM
		IF IS_PARTICIPATE_TRAIN(LOCAL) && LOCAL != MASTER && !TCVAR:(LOCAL):53
			CALL ADD_MTAR(LOCAL)
			RETURN 1
		ENDIF
	NEXT
	;誰もいなければMASTERで仮置き
	CALL ADD_MTAR(MASTER)
ELSEIF GROUPMATCH(FLAG:調教モード, 調教_逆調教特殊, 調教_逆調教通常)
	CALL ADD_MTAR(MASTER)
ELSEIF FLAG:クエスト_あなた不参加
	FOR LOCAL, 0, CHARANUM
		IF IS_PARTICIPATE_TRAIN(LOCAL) && !TCVAR:(LOCAL):53
			;二人目の参加者をMTARとしてセットする
			IF CNT > 0
				CALL ADD_MTAR(LOCAL)
				RETURN 1
			ENDIF
			CNT++
		ENDIF
	NEXT
	;二人目がいなければとりあえず参加してるキャラをMTARとしてセット
	FOR LOCAL, 0, CHARANUM
		IF IS_PARTICIPATE_TRAIN(LOCAL) && !TCVAR:(LOCAL):53
			CALL ADD_MTAR(LOCAL)
			RETURN 1
		ENDIF
	NEXT
ELSE
	FOR LOCAL, 0, CHARANUM
		IF IS_PARTICIPATE_TRAIN(LOCAL) && !TCVAR:(LOCAL):53
			CALL ADD_MTAR(LOCAL)
			RETURN 1
		ENDIF
	NEXT
ENDIF
RETURN 1

;-------------------------------------------------
;;; コマンド実行前の処理
;-------------------------------------------------
@FL_EVENTCOM_INIT
; #region EVENTCOM_INIT
VARI I
FOR I, 0, CHARANUM
	VARSET CUP:I:0, 0
	VARSET CDOWN:I:0, 0
	VARSET NOWEX:I:0, 0
	VARSET DOWNBASE:I:0, 0
NEXT
FOR LOCAL:0, 0, 20
	CVARSET TCVAR, LOCAL:0, 0
NEXT
FOR LOCAL:0, 400, 420
	CVARSET TCVAR, LOCAL:0, -1
NEXT

FOR LOCAL:0, 420, 440
	CVARSET TCVAR, LOCAL:0, 0
NEXT

CVARSET TCVAR, 74, 0
CVARSET TCVAR, 75, 0

CVARSET TCVAR, 24, -10000
CVARSET TCVAR, 25, 10000
CVARSET TCVAR, 50, 0
CVARSET TCVAR, 90, -1 ;精飲発情フラグ
CVARSET TCVAR, 91, 0  ;絶頂抑制フラグ
CVARSET TCVAR, 93, 0  ;絶頂解放フラグ
TFLAG:絶頂フラグ = 0
TFLAG:5 = 0
TFLAG:17 = 0
TFLAG:コマンド成否 = 0
TFLAG:主導度変化基準値 = 0
TFLAG:倒錯度変化基準値 = 0
TFLAG:レズ・ＢＬ経験基準値 = 0
TFLAG:欲情上昇量 = 0
TFLAG:絶頂数 = 0
TFLAG:58 = 0
;TFLAG:母乳採集量 = 0
TFLAG:リアクションコマンド予約 = -1
; #endregion

;-------------------------------------------------
;;; コマンド実行時の処理
;-------------------------------------------------
@FL_EVENTCOM
; #region EVENTCOM
#DIM 主導権奪取候補者配列, MAX_CHARANUM

;コマンド実行前の初期処理
CALL FL_EVENTCOM_INIT

;地の文カットフラグをOFF
VARSET MEQUIP_CUT, 0

;現在のEXPを保存
FOR LOCAL:0, 0, CHARANUM

	{
		IF (FLAG:調教モード == 調教_居住区 && LOCAL == MASTER || CFLAG:(LOCAL:0):ゲストモブ || CFLAG:(LOCAL:0):交流参加 == 1)
			|| (IS_PARTICIPATE_TRAIN(LOCAL:0))
	}
		FOR LOCAL:1, 0, 100
			TCVAR:(LOCAL:0):(LOCAL:1 + 100) = EXP:(LOCAL:0):(LOCAL:1)
		NEXT
	ENDIF
NEXT

;●主導権判定
;プレイヤーの中に行動不能のキャラがいれば、全てのプレイヤーは主導権を取れない
LOCAL:5 = 0
FOR LOCAL:0, 0, MPLY_NUM
	IF !IS_PLAYABLE(MPLY:(LOCAL:0))
		LOCAL:5 = 1
		BREAK
	ENDIF
NEXT

;ターゲットの中に行動不能のキャラがいれば、全てのターゲットは主導権を取れない
LOCAL:6 = 0
FOR LOCAL:0, 0, MTAR_NUM
	IF !IS_PLAYABLE(MTAR:(LOCAL:0))
		LOCAL:6 = 1
		BREAK
	ENDIF
NEXT
;コマンド「脅す」は必ずプレイヤーが主導権を握る
IF SELECTCOM == 80
	LOCAL:6 = 1
ENDIF

;主導権を握ることが可能なキャラをLOCAL:50以降に記録
VARI 候補者数 = 0
VARI CHARA_ID
IF !LOCAL:5
	FOR LOCAL:0, 0, MPLY_NUM
		CHARA_ID = MPLY:(LOCAL:0)
		SIF CFLAG:(CHARA_ID):主導除外
			CONTINUE
		CALL CHECK_COM_KNOWLEDGE(CHARA_ID, SELECTCOM)
		IF RESULT
			主導権奪取候補者配列:候補者数 = CHARA_ID
			候補者数 ++
		ENDIF
	NEXT
ENDIF
IF !LOCAL:6
	FOR LOCAL:0, 0, MTAR_NUM
		CHARA_ID = MTAR:(LOCAL:0)
		SIF CFLAG:(CHARA_ID):主導除外
			CONTINUE
		CALL CHECK_COM_KNOWLEDGE(CHARA_ID, SELECTCOM)
		IF RESULT
			主導権奪取候補者配列:候補者数 = CHARA_ID
			候補者数 ++
		ENDIF
	NEXT
ENDIF

;主導度が最大のキャラの主導度を求める
;ただし主導権奪取を命令できる状態でないキャラ(口枷中のキャラ、催眠中のキャラは-1000とする)
VARI 最大主導度 = -9999
FOR LOCAL:0, 0, 候補者数
	CHARA_ID = 主導権奪取候補者配列:LOCAL
	IF TCVAR:(CHARA_ID):催眠中 || IS_EQUIP_TARGET(CHARA_ID, 86)
		最大主導度 = -1000
	ELSE
		IF FLAG:ウフフフラグ
			最大主導度 = ABL:(CHARA_ID):主導度Ｕ
		ELSE
			最大主導度 = ABL:(CHARA_ID):主導度Ｎ
		ENDIF
	ENDIF
NEXT

;主導度の大きさに応じてランダムに主導権を持つキャラを決定

VARI 参照主導度 = 0
VARI 判定値
VARI I
FOR I, 0, 候補者数
	CHARA_ID = 主導権奪取候補者配列:I
	IF CHARA_ID == MASTER
		参照主導度 += MAX(-最大主導度+ 800, 0)
	ELSEIF FLAG:ウフフフラグ
		参照主導度 += MAX(ABL:(CHARA_ID):主導度Ｕ - 最大主導度 + 800, 0)
	ELSE
		参照主導度 += MAX(ABL:(CHARA_ID):主導度Ｎ - 最大主導度 + 800, 0)
	ENDIF
NEXT
IF 参照主導度 <= 0
	TFLAG:主導権所有者 = MASTER
ELSE
	判定値 = RAND:(参照主導度)
	FOR I, 0, 候補者数
		CHARA_ID = 主導権奪取候補者配列:I
		IF CHARA_ID == MASTER
			判定値 -= MAX(-最大主導度+ 800, 0)
		ELSEIF FLAG:ウフフフラグ
			判定値 -= MAX(ABL:(CHARA_ID):主導度Ｕ - 最大主導度 + 800, 0)
		ELSE
			判定値 -= MAX(ABL:(CHARA_ID):主導度Ｎ - 最大主導度 + 800, 0)
		ENDIF
		IF 判定値 < 0
			TFLAG:主導権所有者 = CHARA_ID
			BREAK
		ENDIF
	NEXT
ENDIF
;クエストモードでMASTER不在時の考慮
IF FLAG:クエストモード && TFLAG:主導権所有者 == 0 && !IS_PARTICIPATE_TRAIN(MASTER)
	TFLAG:主導権所有者 = QST_LEADER_ID()
ENDIF
;主導権を持つキャラが設定されていない場合は以上で決定

;主導権を持つキャラが設定されているなら、基本的にそのキャラに主導権を持たせる
;ただし、上で決定された仮の主導権者との主導度に大きな差があると、その差に応じた確率で主導権を奪われる

IF TFLAG:おまかせ中 && FLAG:主導権所有者 >= 0 || TFLAG:リアクションコマンド実行 == 1 || TFLAG:割込コマンド実行
	;おまかせフラグが立っているなら主導権奪取は起こらない
	TFLAG:主導権所有者 = FLAG:主導権所有者

ELSEIF FLAG:主導権所有者 >= 0 && FLAG:主導権所有者 != TFLAG:主導権所有者 && !(IS_MPLY(FLAG:主導権所有者) && IS_MPLY(TFLAG:主導権所有者)) && !(IS_MTAR(FLAG:主導権所有者) && IS_MTAR(TFLAG:主導権所有者))
	IF FLAG:ウフフフラグ
		LOCAL:9 = ABL:(FLAG:主導権所有者):主導度Ｕ
		LOCAL:7 = ABL:(TFLAG:主導権所有者):主導度Ｕ - LOCAL:9 - 300
	ELSE
		LOCAL:9 = ABL:(FLAG:主導権所有者):主導度Ｎ
		LOCAL:7 = ABL:(TFLAG:主導権所有者):主導度Ｎ - LOCAL:9 - 300
	ENDIF

	IF LOCAL:7 < 0
		TFLAG:主導権所有者 = FLAG:主導権所有者
	ELSE
		LOCAL:8 = MIN(LOCAL:7 * SQRT(LOCAL:7 * 10000) * 70 / 18520 + 500, 4000)
		IF RAND:10000 >= LOCAL:8
			TFLAG:主導権所有者 = FLAG:主導権所有者
		ELSEIF CFLAG:(TFLAG:主導権所有者):主導除外
			TFLAG:主導権所有者 = FLAG:主導権所有者
		ELSE
			IF FLAG:主導権所有者 == MASTER
				PRINTFORMW %ANAME(FLAG:主導権所有者)%が主導権を握っていたはずが、気が付くと%ANAME(TFLAG:主導権所有者)%に主導権を奪われていた…
			ELSEIF TFLAG:主導権所有者 == MASTER
				PRINTFORMW %ANAME(FLAG:主導権所有者)%に主導権を握らせていたはずが、気が付くと%ANAME(TFLAG:主導権所有者)%が主導権を握ってしまっていた…
			ELSE
				PRINTFORMW %ANAME(FLAG:主導権所有者)%が主導権を握っていたはずだが、いつの間にか%ANAME(TFLAG:主導権所有者)%が主導権を奪っていた…
			ENDIF
		ENDIF
	ENDIF
ENDIF

;主導権が「成り行き」の場合のメッセージ
IF FLAG:主導権所有者 == -1
	LOCAL:1 = 0
	FOR LOCAL:0, 0, CHARANUM
		IF IS_PARTICIPATE_TRAIN(LOCAL:0)
			IF IS_PLAYABLE(LOCAL:0)
				IF IS_MPLY(LOCAL:0)
					LOCAL:1 |= 1
				ELSEIF IS_MTAR(LOCAL:0)
					LOCAL:1 |= 2
				ELSE
					LOCAL:1 |= 4
				ENDIF
			ENDIF
		ENDIF
	NEXT
	;主導権が自明の場合には表示しない
	;	IF LOCAL:1 != 1 && LOCAL:1 != 2
	;		PRINTFORML %ANAME(MASTER)%は主導権をその場の雰囲気に任せた
	;		PRINTL
	;	ENDIF
ENDIF

;コマンド名称の表示
LOCALS:0 =
VARSET RESULTS, ""
TRYCALLFORM COM_NAME{SELECTCOM}
;主人公が実行者
IF IS_MPLY(MASTER)
	;主導権が実行者(主人公) (~する)
	IF IS_INITIATIVE(MASTER)
		LOCALS:0 = %RESULTS:0%
		;主導権が対象者 (~されられる)
	ELSE
		LOCALS:0 = %RESULTS:1%
	ENDIF
	;主人公が対象者
ELSEIF IS_MTAR(MASTER)
	;主導権が対象者(主人公) (~させる)
	IF IS_INITIATIVE(MASTER)
		LOCALS:0 = %RESULTS:2%
		;主導権が実行者 (~される)
	ELSE
		LOCALS:0 = %RESULTS:3%
	ENDIF
ELSEIF TCVAR:(MPLY:0):覗き見対象 == 1 && TCVAR:(MTAR:0):覗き見対象 == 1
	;キャラIDが若いキャラ視点でコマンドを表示する
	IF MPLY:0 < MTAR:0
		;主導権が実行者 (~する)
		IF IS_INITIATIVE(MPLY:0)
			LOCALS:0 = %RESULTS:0%
			;主導権が対象者 (~されられる)
		ELSE
			LOCALS:0 = %RESULTS:1%
		ENDIF
	ELSE
		;主導権が実行者 (~される)
		IF IS_INITIATIVE(MPLY:0)
			LOCALS:0 = %RESULTS:3%
			;主導権が対象者 (~させる)
		ELSE
			LOCALS:0 = %RESULTS:2%
		ENDIF
	ENDIF
	;主人公が実行者でも対象者でもない
ELSE
	IF FLAG:調教モード == 調教_慰安
		IF MTAR_NUM == 0
			LOCALS:0 = %RESULTS:0%
		ELSEIF CFLAG:(MTAR:0):慰安参加者 && CFLAG:(MPLY:0):慰安参加者
			LOCALS:0 = %RESULTS:5%
		ELSEIF CFLAG:(MTAR:0):慰安参加者
			LOCALS:0 = %RESULTS:1%
		ELSE
			LOCALS:0 = %RESULTS:3%
		ENDIF
		;主導権が主人公 (~させる)
	ELSEIF IS_INITIATIVE(MASTER)
		LOCALS:0 = %RESULTS:4%
		;主導権が主人公でない (~見せつけ)
	ELSE
		LOCALS:0 = %RESULTS:5%
	ENDIF
ENDIF
IF LOCALS:0 == ""
	LOCALS:0 = %TRAINNAME:SELECTCOM%
ENDIF
PRINTL
IF FLAG:DO_DUMMYCOM && TSTR:ダミーコマンド表示名 != ""
	LOCALS:0 = %TSTR:ダミーコマンド表示名%
	CALL PRINT_TITLE(LOCALS:0, "コマンド")
ELSE
	IF !TFLAG:リアクションコマンド実行 && !TFLAG:割込コマンド実行
		SIF SELECTCOM != T_N("ダミーコマンド")
			CALL PRINT_TITLE(LOCALS:0, "コマンド")
	ELSEIF TFLAG:リアクションコマンド実行 || TFLAG:割込コマンド実行
		IF !TFLAG:割込コマンド実行
			CALL PRINT_TITLE(@"→ %LOCALS:0%", "リアクション")
			WAIT
		ELSEIF TFLAG:割込コマンド実行
			CALL PRINT_TITLE(@"→ %LOCALS:0%", "割込")
			WAIT
		ENDIF
	ENDIF
ENDIF

DEBUGPRINTFORML ;-------------------------------------------------
DEBUGPRINTFORML ; %LOCALS:0%を実行(SELECTCOM = {SELECTCOM}),TRAINNAME = %TRAINNAME:SELECTCOM%
DEBUGPRINTFORML ; MOUSE_X = {MOUSEX()}, MOUSE_Y = {MOUSEY()}
DEBUGPRINTFORML ;-------------------------------------------------

;今回のコマンド名称を保存
SELECTCOM_NAME = %RESULTS%

;実行タイプの設定
IF IS_MPLY(MASTER)
	SELECTCOM_TYPE = 0
ELSEIF IS_MTAR(MASTER)
	SELECTCOM_TYPE = 1
ELSE
	SELECTCOM_TYPE = 2
ENDIF

; #endregion

;-------------------------------------------------
;コマンド実行後の処理
;-------------------------------------------------
@FL_EVENTCOMEND
; #region EVENTCOMEND
#DIM DYNAMIC 行動可能人数
#DIM DYNAMIC ITER_I
#DIM DYNAMIC ITER_J

VARSET LOCAL, 0
;コマンドの実行済みフラグをONにする
FOR LOCAL:0, 0, MPLY_NUM
	CALL SET_COM_FIRST_FLAG(MPLY:(LOCAL:0))
NEXT
FOR LOCAL:0, 0, MTAR_NUM
	CALL SET_COM_FIRST_FLAG(MTAR:(LOCAL:0))
NEXT

;継続コマンドロック用フラグを初期化
TFLAG:継続ロックフラグ = 0

;実行したコマンドの知識を獲得
FOR LOCAL:0, 0, CHARANUM
	;居住区モードで情事を目撃していない場合獲得できない
	{
		IF FLAG:ハウジングモード == 1
			&& (FLAG:調教モード == 調教_居住区 || TFLAG:奉仕モード)
			&& LOCAL:0 != MASTER
			&& IS_PARTICIPATE_TRAIN(LOCAL:0)
	}
		CALL HO_CHECK_UFUFU(LOCAL:0)
		SIF !RESULT
			CONTINUE
	ENDIF
	;調教に参加していても、行動不能だと獲得できない
	IF IS_PARTICIPATE_TRAIN(LOCAL:0) && IS_PLAYABLE(LOCAL:0)
		CALL SET_COM_KNOWLEDGE(LOCAL:0, SELECTCOM)
	ENDIF
NEXT

;コマンドの実行状況に応じて発生するイベントの処理
CALL TRAIN_COM_FLAG_EVENT

;;SELECTCOM系変数の操作
PREVCOM = SELECTCOM
PREVCOM_NAME = %SELECTCOM_NAME%
PREVCOM_TYPE = SELECTCOM_TYPE

;前回コマンドのオプションを保持
ARRAYCOPY "COM_OPTION", "PREVCOM_OPTION"

;前回コマンド実行時のMPLY,MTARを保持
ARRAYCOPY "MPLY", "PREV_MPLY"
ARRAYCOPY "MTAR", "PREV_MTAR"

;時間経過
IF !FLAG:ハウジングモード || FLAG:クエストモード
	{
		IF FLAG:クエストモード && FLAG:調教モード != 調教_クエスト && !FLAG:クエスト_交流コマンド許可
			|| !(FLAG:クエストモード && FLAG:クエスト_交流コマンド許可 && GROUPMATCH(FLAG:調教モード, 調教_クエスト, 調教_閨))
	}
		;[IF_NDEBUG]
		TFLAG:調教経過時間 ++
		;[ENDIF]
		IF TFLAG:57 > 0
			TFLAG:57 ++
		ENDIF
	ENDIF
ENDIF

;ハウジング関連のコマンド実行後処理
IF FLAG:ハウジングモード == 1
	CALL HOUSING_TIME_PROGRESS
	;ハウジングモードの定刻(27:00)による時間切れ、またはクエストが規定する終了時刻に到達
	IF (!FLAG:クエストモード && HO_TIME >= 1620) || (FLAG:QST_終了時刻 > 0 && FLAG:クエストモード && HO_TIME >= FLAG:QST_終了時刻)
		CALL TRAIN_EXIT(0)
		LINES_TRAIN = LINECOUNT
		RETURN
	ENDIF
	;奉仕モード時間切れ判定
	IF TFLAG:奉仕モード
		TRYCALLFORM COM_EXIT_SERVICE860()
		IF RESULT
			CALL TRAIN_EXIT(0)
			LINES_TRAIN = LINECOUNT
			RETURN
		ENDIF
	ENDIF
ENDIF

;ダミーコマンド実行フラグクリア
FLAG:DO_DUMMYCOM = -1
TSTR:ダミーコマンド表示名 '= ""

;ハウジング・クエストモードのコマンド実行後処理
IF FLAG:ハウジングモード == 1 && FLAG:クエストモード != 1
	CALL HOUSING_EVENTCOMEND()
ELSEIF FLAG:クエストモード == 1
	CALL QST_EVENTCOMEND()
ENDIF

;継続状態の継続ターンを加算
FOR LOCAL:0, 0, MAX_MEQUIP
	IF MEQUIP:(LOCAL:0) >= 0
		MEQUIP_TURN:(LOCAL:0) ++
	ENDIF
NEXT

IF GROUPMATCH(FLAG:調教モード, 調教_捕虜調教, 調教_逆調教特殊, 調教_逆調教通常)
	LOCALS:0 = 調教
ELSEIF FLAG:ウフフフラグ && FLAG:ハウジングモード != 1
	LOCALS:0 = 夜伽
ELSEIF FLAG:ウフフフラグ && FLAG:ハウジングモード == 1
	LOCALS:0 = 逢瀬
ELSEIF FLAG:クエストモード
	LOCALS:0 = 行動
ELSE
	LOCALS:0 = 交流
ENDIF

;-------------------------------------------------
;ここでウェイト
PRINTW
;-------------------------------------------------

;強制終了フラグが立っている場合は調教を中断
IF TFLAG:調教強制終了フラグ
	CALL FL_TRAINEXIT
	RETURN
ENDIF

;主人公が行動不能(逆調教除く)
IF !GROUPMATCH(FLAG:調教モード, 調教_逆調教特殊, 調教_逆調教通常, 調教_慰安, 調教_閨) && !IS_PLAYABLE(MASTER)
	;ウフフ中は継続判定
	IF FLAG:ウフフフラグ
		FOR LOCAL:0, 0, CHARANUM
			IF LOCAL:0 != MASTER && CFLAG:(LOCAL:0):調教参加フラグ && (ABL:(LOCAL:0):主導度Ｕ >= 500 || ABL:(LOCAL:0):欲望 >= 10)
				;行動可能でウフフ主導度500以上または欲望10以上のキャラが1人以上入れば継続
				行動可能人数 ++
				IF !IS_AUTOSELECT(LOCAL:0)
					LOCAL:21 ++
				ENDIF
			ENDIF
		NEXT
	ENDIF
	IF 行動可能人数 <= 0 && FLAG:ハウジングモード != 1
		WAIT
		PRINTL
		PRINTFORMW （%ANAME(MASTER)%が行動不能であるため、%LOCALS:0%を終了します）
		CALL FL_TRAINEXIT
		RETURN
	ELSEIF LOCAL:21 == 行動可能人数 && FLAG:ハウジングモード != 1
		WAIT
		PRINTL
		PRINTFORMW （%LOCALS:0%は終了しました）
		CALL FL_TRAINEXIT
		RETURN
	ELSEIF 行動可能人数 <= 0 && FLAG:ハウジングモード == 1 && !FLAG:クエストモード
		WAIT
		PRINTL
		IF TFLAG:覗き見モード
			PRINTFORMW （%ANAME(MASTER)%が行動不能であるため、%LOCALS:0%を終了します）
		ELSE
			PRINTFORMW （全員が行動不能であるため、%LOCALS:0%を終了します）
		ENDIF
		CALL RELEASE_ALL_EQUIP(MASTER)
		IF !TFLAG:覗き見モード
			CALL HOUSING_EVENTEND
			CALL HO_FORCE_MASTER_REST
			CALL HO_CHARAACT_DESC
		ELSE
			;TFLAG:覗き見モードを解除し調教継続
			CALL TRAIN_EXIT(0)
		ENDIF
		;キャラの状態描写文を更新
	ENDIF
ENDIF

;逆調教で行動可能な調教者がいなければ終了
IF GROUPMATCH(FLAG:調教モード, 4, 5, 7)
	LOCAL:10 = 0
	FOR LOCAL:0, 0, CHARANUM
		IF IS_AUTOSELECT(LOCAL:0)
			LOCAL:10 ++
		ENDIF
	NEXT
	IF LOCAL:10 <= 0 && FLAG:ハウジングモード != 1 && !FLAG:クエストモード
		WAIT
		PRINTL
		PRINTFORMW （行動可能な調教者がいないため、%LOCALS:0%を終了します）
		CALL FL_TRAINEXIT
	ELSEIF LOCAL:10 <= 0 && FLAG:クエストモード
		WAIT
		PRINTL
		PRINTFORMW （行動可能なキャラクターがいなくなりました）
		CALL TRAIN_EXIT(0)
	ELSEIF LOCAL:10 <= 0 && FLAG:ハウジングモード == 1
		WAIT
		PRINTL
		PRINTFORMW （行動可能なキャラクターがいないため、%LOCALS:0%を終了します）
		CALL RELEASE_ALL_EQUIP(MASTER)
		IF !TFLAG:覗き見モード
			CALL HOUSING_EVENTEND
			SIF !IS_PLAYABLE(MASTER)
				CALL HO_FORCE_MASTER_REST
			;キャラの状態描写文を更新
			CALL HO_CHARAACT_DESC
		ELSE
			;TFLAG:覗き見モードを解除し調教継続
			CALL TRAIN_EXIT(0)
		ENDIF
	ENDIF
ENDIF

LOCAL:2 = 1
LOCAL:3 = 0
FOR LOCAL:0, 0, CHARANUM
	IF CFLAG:(LOCAL:0):調教参加フラグ
		IF !TCVAR:(LOCAL:0):離脱フラグ
			LOCAL:2 = 0
		ENDIF
		LOCAL:3 ++
	ENDIF
NEXT

;調教参加者全員が行動不能
IF LOCAL:2 && !TFLAG:睡姦中フラグ && !FLAG:ハウジングモード
	WAIT
	PRINTL

	;調教参加者が１人のとき
	IF LOCAL:3 == 1
		FOR LOCAL:0, 0, CHARANUM
			IF CFLAG:(LOCAL:0):調教参加フラグ
				IF TCVAR:(LOCAL:0):離脱フラグ == 1
					IF TFLAG:デート場所 == 1
						PRINTFORML すっかり酔い潰れた%ANAME(LOCAL:0)%は%ANAME(MASTER)%にもたれかかって眠っている
					ELSEIF TFLAG:デート場所 == 7
						PRINTFORML すっかり酔い潰れた%ANAME(LOCAL:0)%は湯船に浸かったまま%ANAME(MASTER)%に無防備な姿で寄りかかり、眠っている
					ELSEIF TFLAG:デート場所
						PRINTFORML すっかり酔い潰れた%ANAME(LOCAL:0)%は地面に\@ RAND:2 == 0 ? 酒瓶を抱きかかえて # 大の字に横になって \@眠っている
					ELSE
						PRINTFORML すっかり酔い潰れた%ANAME(LOCAL:0)%は床の上で\@ RAND:2 == 0 ? 酒瓶を抱きかかえて # 大の字に横になって \@眠っている
					ENDIF
					PRINTFORML この分では、ちょっとやそっとでは目を覚まさないだろう…
					IF ABL:MASTER:性知識 <= 1
						RESULT = 0
					ELSEIF TFLAG:デート場所
						CALL ASK_YN("連れて帰る", "イタズラする")
					ELSE
						CALL ASK_YN("寝かせて帰る", "イタズラする")
					ENDIF

					IF RESULT == 0
						IF TFLAG:デート場所
							IF ABL:(MASTER):身体 >= 60
								PRINTFORMW %ANAME(MASTER)%は%ANAME(LOCAL:0)%を担ぎ上げると、%ANAME(LOCAL:0)%を背負ったまま帰路についた…
							ELSE
								PRINTFORMW %ANAME(MASTER)%は%ANAME(LOCAL:0)%を引きずるようにしながら、どうにか拠点まで辿り着いた…
							ENDIF
						ELSE
							PRINTFORMW %ANAME(MASTER)%は%ANAME(LOCAL:0)%を寝台に寝かせ、部屋を後にした…
						ENDIF
						PRINTFORMW (%ANAME(LOCAL:0)%が行動不能であるため、%LOCALS:0%を終了します)

						;睡姦実行
					ELSE
						;イベント口上の表示
						CALL KOJO_EVENT(LOCAL:0, 110)
						;睡姦中フラグをＯＮ
						TFLAG:睡姦中フラグ = 1
						;ウフフフラグをＯＮ
						FLAG:ウフフフラグ = 1
						;時間を再設定
						TFLAG:調教経過時間 = 0
						TFLAG:調教ターン数 = 15
						;タブ設定をリセット
						TFLAG:調教タブ設定 = 0
					ENDIF

				ELSEIF GROUPMATCH(TCVAR:(LOCAL:0):離脱フラグ, 3, 4)
					PRINTFORMW (%ANAME(LOCAL:0)%に追い返されてしまったため、%LOCALS:0%を終了します)
				ELSEIF GROUPMATCH(TCVAR:(LOCAL:0):離脱フラグ, 5, 6)
					PRINTFORMW (%ANAME(LOCAL:0)%が帰ってしまったため、%LOCALS:0%を終了します)
				ELSE
					PRINTFORMW (%ANAME(LOCAL:0)%が行動不能であるため、%LOCALS:0%を終了します)
				ENDIF
				BREAK
			ENDIF
		NEXT
		;調教参加者が２人以上のとき
	ELSEIF !FLAG:クエストモード
		PRINTFORMW （行動可能なキャラがいないため、%LOCALS:0%を終了します）
	ENDIF
	IF !TFLAG:睡姦中フラグ && !FLAG:クエストモード
		CALL FL_TRAINEXIT
		RETURN
	ENDIF
ENDIF

;時間切れ
IF TFLAG:調教経過時間 >= TFLAG:調教ターン数
	CALL TRAIN_EXIT(0)
	LINES_TRAIN = LINECOUNT
	RETURN
ENDIF

;おまかせ中
IF TFLAG:おまかせ中
	;おまかせ時の自動EQUIP解除
	CALL AUTO_EQUIP_RELEASE
ENDIF

;主人公が行動不能かつ調教が継続した場合
IF !TFLAG:MASTER行動不能 && 行動可能人数
	FOR LOCAL:0, 0, CHARANUM
		IF LOCAL:0 != MASTER && CFLAG:(LOCAL:0):調教参加フラグ && IS_AUTOSELECT(LOCAL:0) && (ABL:(LOCAL:0):主導度Ｕ >= 500 || ABL:(LOCAL:0):欲望 >= 10)
			TFLAG:MASTER行動不能 = 1
			IF 行動可能人数 >= 2
				LOCALS:0 = たち
			ELSE
				LOCALS:0 =
			ENDIF
			IF BASE:MASTER:気力 <= 0
				LOCALS:1 = 気絶して意識のない
			ELSE
				LOCALS:1 = 疲れ果てて動けない
			ENDIF

			WAIT
			PRINTL
			IF 行動可能人数 == 1
				IF BASE:MASTER:気力 <= 0
					CALL KOJO_EVENT(LOCAL:0, 111)
				ELSE
					CALL KOJO_EVENT(LOCAL:0, 112)
				ENDIF
			ENDIF
			IF ABL:(LOCAL:0):主導度Ｕ >= 500
				PRINTFORMW %ANAME(LOCAL:0)%%LOCALS:0%は嗜虐的な表情を浮かべると、%LOCALS:1%%ANAME(MASTER)%の体を弄び始めた
			ELSE
				PRINTFORMW %ANAME(LOCAL:0)%%LOCALS:0%は性欲を抑えることができず、%LOCALS:1%%ANAME(MASTER)%の体を弄び始めた
			ENDIF
			BREAK
		ENDIF
	NEXT

	;逆調教で主人公が疲労・失神状態になった場合
ELSEIF !TFLAG:MASTER行動不能 && GROUPMATCH(FLAG:調教モード, 4, 5) && !IS_PLAYABLE(MASTER)
	TFLAG:MASTER行動不能 = 1
	LOCAL:1 = 0
	FOR LOCAL:0, 0, CHARANUM
		IF CFLAG:(LOCAL:0):調教参加フラグ && IS_PLAYABLE(LOCAL:0)
			LOCAL:1 ++
			LOCAL:2 = LOCAL:0
		ENDIF
	NEXT
	IF LOCAL:1 == 1
		IF BASE:MASTER:気力 <= 0
			CALL KOJO_EVENT(LOCAL:2, 111)
		ELSE
			CALL KOJO_EVENT(LOCAL:2, 112)
		ENDIF
	ENDIF
ENDIF

;キャラによるリアクション処理
IF (TFLAG:リアクションコマンド実行 || TFLAG:割込コマンド実行) && TFLAG:リアクションコマンド予約 == -1
	;NEXTCOM初期化
	NEXTCOM = -1
	TFLAG:リアクションコマンド実行 = 0
	TFLAG:割込コマンド実行 = 0
	TFLAG:割込キャラ = -1
	TFLAG:割込人数 = 0
	TFLAG:割込まれたキャラ = -1
	TFLAG:割込ターゲット = -1
	;MTAR,MPLYを退避前の状態に復元
	CALL CLEAR_MPLY()
	CALL CLEAR_MTAR()
	FOR LOCAL, 0, 100
		IF COM_REACTION_実行前MPLY:LOCAL != -1 && (CFLAG:(COM_REACTION_実行前MPLY:LOCAL):調教参加フラグ == 1 || COM_REACTION_実行前MPLY:LOCAL == MASTER)
			CALL ADD_MPLY(COM_REACTION_実行前MPLY:LOCAL)
			DEBUGPRINTFORML @SYSTEM_TRAIN(MPLY:{LOCAL}に%ANAME(COM_REACTION_実行前MPLY:LOCAL)%が追加された)
		ENDIF
		IF COM_REACTION_実行前MTAR:LOCAL != -1 && !IS_MPLY(COM_REACTION_実行前MTAR:LOCAL) && (CFLAG:(COM_REACTION_実行前MTAR:LOCAL):調教参加フラグ == 1 || COM_REACTION_実行前MTAR:LOCAL == MASTER)
			CALL ADD_MTAR(COM_REACTION_実行前MTAR:LOCAL)
			DEBUGPRINTFORML @SYSTEM_TRAIN(MTAR:{LOCAL}に(%ANAME(COM_REACTION_実行前MTAR:LOCAL)%が追加された)
		ENDIF
	NEXT
	IF COM_REACTION_実行前主導権 != -1
		IF CFLAG:COM_REACTION_実行前主導権:調教参加フラグ == 1 || COM_REACTION_実行前主導権 == MASTER
			FLAG:主導権所有者 = COM_REACTION_実行前主導権
		ELSE
			FLAG:主導権所有者 = -1
		ENDIF
	ELSE
		FLAG:主導権所有者 = -1
	ENDIF
ELSE
	;リアクション実行判定
	CALL COM_REACTION_MAIN()
	IF RESULT != -1
		;DOTRAIN RESULT
		CALL FL_DOTRAIN(RESULT)
	ENDIF
ENDIF

IF FLAG:ハウジングモード
	FOR ITER_I, 0, CHARANUM
		IF TCVAR:ITER_I:調教一時参加扱い
			TCVAR:ITER_I:調教一時参加扱い = 0
			IF C_COND_MAP_GET(ITER_I, "設備IDX") != HO_MASTER_USE_MODULE_LIST_IDX
				CFLAG:(ITER_I):調教参加フラグ = 0
				TFLAG:参加者数 --
			ENDIF
			CALL RELEASE_ALL_EQUIP(ITER_I, 1)
			CALL DEL_MTAR(ITER_I)
		ENDIF
	NEXT
ENDIF

;実行済みコマンドオプションの消去
VARSET COM_OPTION

;LINES_TRAINを更新
LINES_TRAIN = LINECOUNT

;-------------------------------------------------
;交流終了時の共通処理  時間切れならARG:0に0を、コマンドによる終了なら1を指定する
;AFTERTRAIN より@EVENTEND が呼び出され@SHOPに遷移する
;-------------------------------------------------
@TRAIN_EXIT(ARG:0)
#DIM DYNAMIC ITER_I
#DIM DYNAMIC ITER_J
#DIM DYNAMIC ITER_K

FLAG:調教スキップ可 = 0
FLAG:調教シチュエーション指定 = 0

IF !FLAG:ハウジングモード
	;EQUIPの初期化
	CALL INIT_EQUIP()
ENDIF

;一時禁止コマンド制御変数のリセット
FOR ITER_I, 0, CHARANUM
	VARSET COM_FORBIDDEN:ITER_I:0, 0
	;この調教でのコマンド実行回数をこのターンのコマンド実行回数に加算
	FOR ITER_J, 0, 3000
		FOR ITER_K, 0, COM_OPTION_NUM
			COM_COUNT_THIS_TRAIN:ITER_I:ITER_J:ITER_K = 0
		NEXT
	NEXT
NEXT

;ハウジングモードでの調教終了処理,TRAINは継続する
{
	IF FLAG:ハウジングモード
		&& (FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト)
		&& (ARG:0 == 1 || TFLAG:奉仕モード)
		&& !FLAG:クエストモード
}
	CALL HOUSING_TRAIN_EXIT(ARG:0)
	SIF !RESULT
		RETURN
	;クエストモードでの終了処理
ELSEIF FLAG:クエストモード
	CALL INIT_EQUIP()
	;規定時間に到達
	IF (FLAG:QST_終了時刻 > 0 && FLAG:クエストモード && HO_TIME >= FLAG:QST_終了時刻) && !FLAG:クエスト_刻限による終了無効
		CALL QST_TRAIN_EXIT(ARG:0)
		FLAG:QST_終了時刻 = 0
		PRINTL
		PRINTFORMW (すっかり夜も更けたため、一度拠点に帰還します)
		CALL FL_TRAINEXIT
		RETURN
	ENDIF

	;クエスト完了フラグが立っていない状態で調教が終了された場合は調教終了処理を実行し、TRAINフロー自体は継続
	IF !TFLAG:クエスト_完了フラグ
		;コマンドカテゴリを{ｸｴｽﾄ}に
		TFLAG:調教タブ設定 = 13
		CALL QST_TRAIN_EXIT(ARG:0)
	ELSE
		CALL QST_TRAIN_EXIT(ARG:0)
		PRINTFORMW (クエストが終了しました)
		CALL FL_TRAINEXIT
	ENDIF
	RETURN
ELSEIF FLAG:調教モード == 調教_居住区 && ARG:0 == 1
	CALL INIT_EQUIP()
	CALL HOUSING_TRAIN_EXIT(ARG:0)
	PRINTL
	PRINTFORMW (交流を終了します)
	CALL FL_TRAINEXIT
	RETURN
ELSEIF (FLAG:調教モード == 調教_居住区 || FLAG:ハウジングモード) && ARG:0 == 0
	CALL INIT_EQUIP()
	CALL HOUSING_TRAIN_EXIT(ARG:0)
	PRINTL
	PRINTFORMW (すっかり夜も更けたため、交流を終了します)
	CALL FL_TRAINEXIT
	RETURN
ENDIF

;子育てモード
IF FLAG:調教モード == 3
	PRINTL
	PRINTFORMW (そろそろ日が暮れます。今日はここまでにしてゆっくり過ごすことにしました)
	CALL FL_TRAINEXIT

ELSEIF FLAG:調教モード == 4 || FLAG:調教モード == 5
	PRINTL
	PRINTFORMW (どうやら今日の調教は終了したようです…)
	CALL FL_TRAINEXIT

ELSEIF FLAG:調教モード == 7
	PRINTL
	PRINTFORMW (逢瀬の時間が終了しました…)
	CALL FL_TRAINEXIT

	;ウフフモードの場合
ELSEIF FLAG:ウフフフラグ
	;睡姦中
	IF TFLAG:睡姦中フラグ
		PRINTL
		PRINTFORMW (目を覚まされるとまずいため、後始末をして早めに帰ることにしました)

		;主人公がターゲット側の場合、ターゲットとプレイヤーを入れ替えておく
		;(MTAR:0が必ず会いに行った相手を指すようにしておく)
		IF MTAR:0 == MASTER
			SWAP MTAR:0, MPLY:0
		ENDIF
		;真名を許すイベント
		;		CALL AFTER_ALLOW_NAME

		;主人公が行動不能
	ELSEIF TFLAG:MASTER行動不能
		PRINTL
		PRINTFORMW (さすがに夜も更けてきたため、なんとか解放してもらえました)
		;デート中
	ELSEIF TFLAG:デート場所
		PRINTL
		PRINTFORMW (もう夜も遅い時間です。今日はここまでにして帰ることにしました)
	ELSEIF FLAG:夜這い
		PRINTL
		PRINTFORMW (これ以上留まるのは危険です。今日はここまでにして逃げることにしました)
	ELSEIF FLAG:デイリーイベント
		PRINTL
		PRINTFORMW (刻限がきたようです。逢瀬を終了します)
	ELSE
		PRINTL
		PRINTFORMW (もう夜も更ける時間帯です。今日はここまでにして眠ることにしました)
	ENDIF
	CALL FL_TRAINEXIT

ELSE
	;主人公がターゲット側の場合、ターゲットとプレイヤーを入れ替えておく
	;(MTAR:0が必ず会いに行った相手を指すようにしておく)
	IF MTAR:0 == MASTER
		SWAP MTAR:0, MPLY:0
	ENDIF

	;真名を許すイベント
	;	CALL AFTER_ALLOW_NAME

	WAIT
	CALL SINGLE_DRAWLINE
	PRINTFORMW そろそろ遅い時間になってきました…
	PRINTL

	PRINTPLAIN
	PRINTBUTTON "0[このまま別れる]", 0
	PRINTPLAIN
	IF GET_PLACENAME(TFLAG:デート場所) == "市街地"
		IF (IS_FEMALE(MASTER) && IS_MALE(MTAR:0)) || (GROUPMATCH(TALENT:MASTER:性別, 4, 5) && GROUPMATCH(TALENT:(MTAR:0):性別, 0, 3) && TALENT:(MTAR:0):恋人)
			PRINTBUTTON "1[宿に連れ込む(宿代は相手持ち)]", 1
		ELSE
			PRINTBUTTON "1[宿に連れ込む(所持金－2000)]", 1
		ENDIF
	ELSEIF GET_PLACENAME(TFLAG:デート場所) == "温泉"
		PRINTBUTTON "1[抱き寄せる]", 1
	ELSE
		PRINTBUTTON "1[押し倒す]", 1
	ENDIF
	PRINTPLAIN
	PRINTBUTTON "2[誘惑する]", 2
	PRINTL

	$INPUT_LOOP
	INPUT

	LOCAL:1 = 0
	LOCAL:2 = RESULT

	;このまま別れる
	IF LOCAL:2 == 0
		;ムードが60以上または相手が肉便器で通常または育児中なら押し倒し／おねだりの判定
		IF (TFLAG:ムード >= 60 || GETBIT(TALENT:(MTAR:0):淫乱系, 素質_淫乱_精液便女)) && ARG:0 == 0 && GROUPMATCH(CFLAG:(MTAR:0):行動不能状態, 0, 2)
			;押し倒し／おねだり判定
			CALL PUSH_OVER
			;押し倒された場合
			IF RESULT == 1
				;ウフフフラグをＯＮ
				FLAG:ウフフフラグ = 1
				;時間を再設定
				TFLAG:調教経過時間 = 0
				TFLAG:調教ターン数 = 20
				;タブ設定をリセット
				TFLAG:調教タブ設定 = 0
				;主導権を相手側に渡す
				FLAG:主導権所有者 = MTAR:0
				;おねだりされた場合
			ELSEIF RESULT == 2
				CALL ASK_YN("抱く", "おあずけ")
				IF RESULT == 0
					LOCAL:1 = 1
				ELSE
					TCVAR:(MTAR:0):おねだりフラグ = 1
					CALL KOJO_EVENT(MTAR:0, 103)
					PRINTFORMW （%LOCALS:0%%ANAME(MTAR:0)%と一旦別れました）
					CALL FL_TRAINEXIT
				ENDIF
				;押し倒し／おねだりが発生せず、捕虜会話でない場合
			ELSEIF FLAG:調教モード != 6
				;相手からのキス・告白の判定
				CALL CHECK_EXIT_ACTION
			ENDIF
		ENDIF
	ENDIF

	;押し倒す
	IF LOCAL:2 == 1
		;押し倒した時の判定
		CALL JUDGE_PUSHDOWN
		IF RESULT
			LOCAL:1 = 2
		ENDIF
	ENDIF

	;誘惑する
	IF LOCAL:2 == 2
		IF HAS_VAGINA(MASTER) && HAS_PENIS(MTAR:0)
			IF GET_BUSTSIZE(ARG:0) < 0
				PRINTFORMW %ANAME(MASTER)%は体を擦り付けて%ANAME(MTAR:0)%を誘惑した…
			ELSE
				PRINTFORMW %ANAME(MASTER)%は胸を押し付けて%ANAME(MTAR:0)%を誘惑した…
			ENDIF
		ELSEIF TALENT:MASTER:霊体 || TALENT:(MTAR:0):霊体
			PRINTFORMW %ANAME(MASTER)%は%ANAME(MTAR:0)%の体を焦らすようにまさぐって誘惑しようとした…
		ELSE
			PRINTFORMW %ANAME(MASTER)%は%ANAME(MTAR:0)%の体を焦らすようにまさぐって誘惑した…
		ENDIF
		;誘惑した時の判定
		CALL JUDGE_PUSHDOWN2
		IF RESULT
			LOCAL:1 = 3
		ENDIF
	ENDIF

	;ウフフ突入の場合
	IF LOCAL:1
		IF LOCAL:1 == 3
			IF GET_PLACENAME(TFLAG:デート場所) == "市街地"
				PRINTFORMW すっかりその気になった%ANAME(MTAR:0)%は、%ANAME(MASTER)%を市街地の宿へと連れ込んだ…
			ELSEIF GET_PLACENAME(TFLAG:デート場所) == "温泉"
				PRINTFORMW すっかりその気になった%ANAME(MTAR:0)%は、息を荒らげて%ANAME(MASTER)%の体に抱きついた
			ELSEIF GETBIT(TALENT:(MTAR:0):淫乱系, 素質_淫乱_精液便女)
				PRINTFORMW すっかりその気になった%ANAME(MTAR:0)%は、%ANAME(MASTER)%に自分を使ってくれと頼んできた…
			ELSEIF GETBIT(TALENT:MASTER:淫乱系, 素質_淫乱_精液便女)
				PRINTFORMW すっかりその気になった%ANAME(MTAR:0)%は、%ANAME(MASTER)%を使うことにしたようだ
			ELSE
				PRINTFORMW すっかりその気になった%ANAME(MTAR:0)%は、息を荒らげて%ANAME(MASTER)%を押し倒した
			ENDIF
		ELSE
			IF GET_PLACENAME(TFLAG:デート場所) == "市街地"
				PRINTFORMW %ANAME(MASTER)%と%ANAME(MTAR:0)%は市街地の宿へと入った…
			ELSEIF GET_PLACENAME(TFLAG:デート場所) == "温泉"
				PRINTFORMW %ANAME(MASTER)%は%ANAME(MTAR:0)%を抱き寄せた
			ELSEIF GETBIT(TALENT:(MTAR:0):淫乱系, 素質_淫乱_精液便女)
				PRINTFORMW %ANAME(MASTER)%は%ANAME(MTAR:0)%を使ってやることにした
			ELSEIF GETBIT(TALENT:MASTER:淫乱系, 素質_淫乱_精液便女)
				PRINTFORMW %ANAME(MASTER)%は%ANAME(MTAR:0)%に、自分を使ってくれと頼んだ…
			ELSE
				PRINTFORMW %ANAME(MASTER)%は%ANAME(MTAR:0)%を押し倒した
			ENDIF
		ENDIF
		;ウフフフラグをＯＮ
		FLAG:ウフフフラグ = 1
		;時間を再設定
		TFLAG:調教経過時間 = 0
		TFLAG:調教ターン数 = 20
		;タブ設定をリセット
		TFLAG:調教タブ設定 = 0
	ENDIF

	;ウフフモードに入らないなら終了
	IF !FLAG:ウフフフラグ
		PRINTFORMW （%LOCALS:0%%ANAME(MTAR:0)%と一旦別れました）
		CALL FL_TRAINEXIT
	ENDIF
ENDIF

;-------------------------------------------------
;真名を許すイベント
;-------------------------------------------------
;@AFTER_ALLOW_NAME
;ターゲットが複数いる場合は戻る
;IF MTAR_NUM != 1
;	RETURN 0
;ENDIF

;既に真名を許してもらった場合、真名が定義されていない場合は戻る
;IF CFLAG:(MTAR:0):8 || CALLNAME:(MTAR:0) == "" || CALLNAME:(MTAR:0) == NAME:(MTAR:0)
;	RETURN 0
;ENDIF
;
;好感度500以上
;IF CFLAG:(MTAR:0):好感度 < 500
;	RETURN 0
;ENDIF

;PRINTL
;CALL SINGLE_DRAWLINE

;睡姦を行った場合
;IF TFLAG:睡姦中フラグ
;	PRINTFORMW 後日、%ANAME(MASTER)%は%ANAME(MTAR:0)%からの呼び出しを受けた…
;ENDIF

;口上独自のイベント
;CALL KOJO_EVENT(MTAR:0, 10)

;真名許可フラグ
;CFLAG:(MTAR:0):8 = 1

;PRINTL
;SETCOLOR カラー_注意
;PRINTFORML %ANAME(MTAR:0)%から真名「%CALLNAME:(MTAR:0)%」を許されました
;RESETCOLOR
;CALL SINGLE_DRAWLINE
;WAIT
;RETURN 1

;-------------------------------------------------
;押し倒した時の判定
;-------------------------------------------------
@JUDGE_PUSHDOWN
;ターゲットが複数いる場合は戻る
IF MTAR_NUM != 1
	RETURN 0
ENDIF

;●実行値の計算
CVARSET TCVAR, 24, -10000
CVARSET TCVAR, 25, 10000

;実行値の設定
TCVAR:(MTAR:0):実行値 = 100

CALL COM_ORDER(MTAR:0)

CALL COM_ORDER_ELEMENT(MTAR:0, "欲情", GET_PALAMLV(PALAM:(MTAR:0):欲情))
IF HAS_VAGINA(MTAR:0)
	CALL COM_ORDER_ELEMENT(MTAR:0, "潤滑", GET_PALAMLV(PALAM:(MTAR:0):潤滑))
ENDIF
CALL COM_ORDER_ELEMENT(MTAR:0, "欲望", ABL:(MTAR:0):欲望 * 4)
CALL COM_ORDER_ELEMENT(MTAR:0, "奉仕", ABL:(MTAR:0):奉仕 * 2)

IF TALENT:(MTAR:0):貞操観念
	CALL COM_ORDER_ELEMENT(MTAR:0, "貞操観念", -10)
ENDIF

IF TALENT:(MTAR:0):貞操無頓着
	CALL COM_ORDER_ELEMENT(MTAR:0, "貞操無頓着", 10)
ENDIF

IF TALENT:(MTAR:0):恥じらい
	CALL COM_ORDER_ELEMENT(MTAR:0, "恥じらい", -6)
ENDIF

IF TALENT:(MTAR:0):恥薄い
	CALL COM_ORDER_ELEMENT(MTAR:0, "恥薄い", 3)
ENDIF

IF TALENT:(MTAR:0):快感に素直
	CALL COM_ORDER_ELEMENT(MTAR:0, "快感に素直", 5)
ENDIF

IF TALENT:(MTAR:0):快感の否定
	CALL COM_ORDER_ELEMENT(MTAR:0, "快感の否定", -5)
ENDIF

IF TALENT:(MTAR:0):一線越えない
	CALL COM_ORDER_ELEMENT(MTAR:0, "一線越えない", -15)
ENDIF

IF TALENT:(MTAR:0):恋慕
	CALL COM_ORDER_ELEMENT(MTAR:0, "恋慕", 12)
ENDIF

IF TALENT:(MTAR:0):親友
	CALL COM_ORDER_ELEMENT(MTAR:0, "親友", 6)
ENDIF

IF TALENT:(MTAR:0):親愛
	CALL COM_ORDER_ELEMENT(MTAR:0, "親愛", 20)
ENDIF

IF TALENT:(MTAR:0):恋人
	CALL COM_ORDER_ELEMENT(MTAR:0, "恋人", 6)
ENDIF

IF TALENT:(MTAR:0):キス未経験
	CALL COM_ORDER_ELEMENT(MTAR:0, "キス未経験", -5)
ENDIF

IF TALENT:(MTAR:0):霊体 || TALENT:(MPLY:0):霊体
	CALL COM_ORDER_ELEMENT(MTAR:0, "霊体", -1000)
ENDIF

;ムードボーナス
IF TFLAG:ムード < 60
	CALL COM_ORDER_ELEMENT(MTAR:0, "ムード", 0)
ELSE
	CALL COM_ORDER_ELEMENT(MTAR:0, "ムード", 5 + TFLAG:ムード / 30)
ENDIF

;好感度
IF CFLAG:(MTAR:0):好感度 < 700
	IF CFLAG:(MTAR:0):好感度 < 300
		LOCAL:0 = -20
	ELSEIF CFLAG:(MTAR:0):好感度 < 500
		LOCAL:0 = -10
	ELSE
		LOCAL:0 = -5
	ENDIF
	CALL COM_ORDER_ELEMENT(MTAR:0, "好感度不足", LOCAL:0)
ENDIF

;第三者　○○に恋慕に関する処理
;CALL JUDGE_PUSHDOWN_SUB

;性知識
IF ABL:(MTAR:0):性知識 == 0
	CALL COM_ORDER_ELEMENT(MTAR:0, "性知識なし", 80)
ENDIF

;合意
IF TALENT:(MTAR:0):合意
	CALL COM_ORDER_ELEMENT(MTAR:0, "合意", 10)
ENDIF

;判定結果を表示
PRINTFORMW  = {TCVAR:(MTAR:0):判定値} %TOSTR_COMPARE(TCVAR:(MTAR:0):判定値, TCVAR:(MTAR:0):実行値)% 実行値{TCVAR:(MTAR:0):実行値}

;実行判定
IF TCVAR:(MTAR:0):判定値 >= TCVAR:(MTAR:0):実行値
	;既に[合意]済み
	IF TALENT:(MTAR:0):合意
		CALL KOJO_EVENT(MTAR:0, 7)

		;酔いによる補正を除いても成功
	ELSEIF TCVAR:(MTAR:0):判定値 - PALAM:(MTAR:0):酔い / 150 >= 100
		TFLAG:酔った勢いで成功 = 0
		CALL KOJO_EVENT(MTAR:0, 5)
		IF TCVAR:(MTAR:0):催眠中 <= 0
			PRINTFORMW %ANAME(MTAR:0)%の<合意>を得た
			TALENT:(MTAR:0):合意 = 1
		ENDIF

		;酔った勢いで成功
	ELSE
		TFLAG:酔った勢いで成功 = 1
		CALL KOJO_EVENT(MTAR:0, 4)
	ENDIF
	RETURN 1

	;失敗
ELSE
	CALL KOJO_EVENT(MTAR:0, 6)
	IF !TALENT:(MTAR:0):合意 && !TALENT:(MTAR:0):恋慕 && !TALENT:(MTAR:0):親友 && !TALENT:(MTAR:0):霊体 && !TALENT:(MPLY:0):霊体
		PRINTFORMW %ANAME(MTAR:0)%の好感度が100下がりました
		CFLAG:(MTAR:0):好感度 -= 100
	ENDIF
	RETURN 0
ENDIF

;-------------------------------------------------
;誘惑した時の判定
;-------------------------------------------------
@JUDGE_PUSHDOWN2
;ターゲットが複数いる場合は戻る
IF MTAR_NUM != 1
	RETURN 0
ENDIF

;●実行値の計算
CVARSET TCVAR, 24, -10000
CVARSET TCVAR, 25, 10000

;実行値の設定
TCVAR:(MTAR:0):実行値 = 110

CALL COM_ORDER(MTAR:0)

CALL COM_ORDER_ELEMENT(MTAR:0, "欲情", GET_PALAMLV(PALAM:(MTAR:0):欲情) * 2)
IF HAS_VAGINA(MTAR:0)
	CALL COM_ORDER_ELEMENT(MTAR:0, "潤滑", GET_PALAMLV(PALAM:(MTAR:0):潤滑))
ENDIF
CALL COM_ORDER_ELEMENT(MTAR:0, "欲望", ABL:(MTAR:0):欲望 * 5)
CALL COM_ORDER_ELEMENT(MTAR:0, "奉仕", ABL:(MTAR:0):奉仕 * 1)

IF TALENT:(MTAR:0):貞操観念
	CALL COM_ORDER_ELEMENT(MTAR:0, "貞操観念", -10)
ENDIF

IF TALENT:(MTAR:0):貞操無頓着
	CALL COM_ORDER_ELEMENT(MTAR:0, "貞操無頓着", 10)
ENDIF

IF TALENT:(MTAR:0):大人しい
	CALL COM_ORDER_ELEMENT(MTAR:0, "大人しい", -8)
ENDIF

IF TALENT:(MTAR:0):恥じらい
	CALL COM_ORDER_ELEMENT(MTAR:0, "恥じらい", -8)
ENDIF

IF TALENT:(MTAR:0):恥薄い
	CALL COM_ORDER_ELEMENT(MTAR:0, "恥薄い", 3)
ENDIF

IF TALENT:(MTAR:0):一線越えない
	CALL COM_ORDER_ELEMENT(MTAR:0, "一線越えない", -15)
ENDIF

IF TALENT:(MTAR:0):快感に素直
	CALL COM_ORDER_ELEMENT(MTAR:0, "快感に素直", 12)
ENDIF

IF TALENT:(MTAR:0):快感の否定
	CALL COM_ORDER_ELEMENT(MTAR:0, "快感の否定", -10)
ENDIF

IF TALENT:(MTAR:0):保守的
	CALL COM_ORDER_ELEMENT(MTAR:0, "保守的", -4)
ENDIF

IF TALENT:(MTAR:0):自制心
	CALL COM_ORDER_ELEMENT(MTAR:0, "自制心", -10)
ENDIF

IF TALENT:(MTAR:0):恋慕
	CALL COM_ORDER_ELEMENT(MTAR:0, "恋慕", 12)
ENDIF

IF TALENT:(MTAR:0):親友
	CALL COM_ORDER_ELEMENT(MTAR:0, "親友", 6)
ENDIF

IF TALENT:(MTAR:0):親愛
	CALL COM_ORDER_ELEMENT(MTAR:0, "親愛", 20)
ENDIF

IF TALENT:(MTAR:0):恋人
	CALL COM_ORDER_ELEMENT(MTAR:0, "恋人", 6)
ENDIF

IF TALENT:(MTAR:0):キス未経験
	CALL COM_ORDER_ELEMENT(MTAR:0, "キス未経験", -5)
ENDIF

IF HAS_PENIS(MTAR:0) && HAS_VAGINA(MPLY:0)
	CALL COM_ORDER_ELEMENT(MTAR:0, "性別", 20)
ENDIF

IF TALENT:(MTAR:0):霊体 || TALENT:(MPLY:0):霊体
	CALL COM_ORDER_ELEMENT(MTAR:0, "霊体", -1000)
ENDIF

;ムードボーナス
IF TFLAG:ムード < 60
	CALL COM_ORDER_ELEMENT(MTAR:0, "ムード", 0)
ELSE
	CALL COM_ORDER_ELEMENT(MTAR:0, "ムード", 5 + TFLAG:ムード / 30)
ENDIF

;好感度
IF CFLAG:(MTAR:0):好感度 < 700
	IF CFLAG:(MTAR:0):好感度 < 300
		LOCAL:0 = -20
	ELSEIF CFLAG:(MTAR:0):好感度 < 500
		LOCAL:0 = -10
	ELSE
		LOCAL:0 = -5
	ENDIF
	CALL COM_ORDER_ELEMENT(MTAR:0, "好感度不足", LOCAL:0)
ENDIF
;
;性知識
IF ABL:(MTAR:0):性知識 == 0
	CALL COM_ORDER_ELEMENT(MTAR:0, "性知識なし", -80)
ENDIF

;合意
IF TALENT:(MTAR:0):合意
	CALL COM_ORDER_ELEMENT(MTAR:0, "合意", 10)
ENDIF

;判定結果を表示
PRINTFORMW  = {TCVAR:(MTAR:0):判定値} %TOSTR_COMPARE(TCVAR:(MTAR:0):判定値, TCVAR:(MTAR:0):実行値)% 実行値{TCVAR:(MTAR:0):実行値}

;実行判定
IF TCVAR:(MTAR:0):判定値 >= TCVAR:(MTAR:0):実行値
	;既に[合意]済み
	IF TALENT:(MTAR:0):合意
		CALL KOJO_EVENT(MTAR:0, 107)

		;酔いによる補正を除いても成功
	ELSEIF TCVAR:(MTAR:0):判定値 - PALAM:(MTAR:0):酔い / 150 >= 100
		TFLAG:酔った勢いで成功 = 0
		CALL KOJO_EVENT(MTAR:0, 105)
		IF TCVAR:(MTAR:0):催眠中 <= 0
			PRINTFORMW %ANAME(MTAR:0)%の<合意>を得た
			TALENT:(MTAR:0):合意 = 1
		ENDIF

		;酔った勢いで成功
	ELSE
		TFLAG:酔った勢いで成功 = 1
		CALL KOJO_EVENT(MTAR:0, 104)
	ENDIF
	RETURN 1

	;失敗
ELSE
	CALL KOJO_EVENT(MTAR:0, 106)
	IF !TALENT:(MTAR:0):合意 && !TALENT:(MTAR:0):恋慕 && !TALENT:(MTAR:0):親友 && !TALENT:(MTAR:0):霊体 && !TALENT:(MPLY:0):霊体
		PRINTFORMW %ANAME(MTAR:0)%の好感度が50下がりました
		CFLAG:(MTAR:0):好感度 -= 50
	ENDIF
	RETURN 0
ENDIF

;-------------------------------------------------
;押し倒され／おねだり判定(戻り値:0=何もしない、1=押し倒し、2=おねだり)
;-------------------------------------------------
@PUSH_OVER
;既にウフフ中なら戻る
IF FLAG:ウフフフラグ
	RETURN 0
ENDIF

SIF TCVAR:(MTAR:0):催眠中 > 0
	RETURN 0

;最低でも[恋慕][恋人][服従][烙印][肉便器]のいずれかが必要
IF !TALENT:(MTAR:0):恋慕 && !TALENT:(MTAR:0):恋人 && !TALENT:(MTAR:0):服従 && !TALENT:(MTAR:0):烙印 && !TALENT:(MTAR:0):主人 && !GETBIT(TALENT:(MTAR:0):淫乱系, 素質_淫乱_精液便女)
	RETURN 0
ENDIF

;[霊体]持ちは不可能
IF TALENT:(MTAR:0):霊体 || TALENT:(MPLY:0):霊体
	RETURN 0
ENDIF

;性知識Lv1以上が必要
IF ABL:(MTAR:0):性知識 < 1
	RETURN 0
ENDIF

;霖之助に恋慕 or 霖之助の恋人なら戻る
;IF TALENT:(MTAR:0):霖之助に恋慕 || TALENT:(MTAR:0):霖之助の恋人
;	RETURN
;ENDIF

;●実行値の計算
CVARSET TCVAR, 24, -10000
CVARSET TCVAR, 25, 10000

;◆↓表示スキップここから↓◆
SKIPDISP 1

CALL COM_ORDER(MTAR:0)

CALL COM_ORDER_ELEMENT(MTAR:0, "欲情", GET_PALAMLV(PALAM:(MTAR:0):欲情))
CALL COM_ORDER_ELEMENT(MTAR:0, "潤滑", GET_PALAMLV(PALAM:(MTAR:0):潤滑))
CALL COM_ORDER_ELEMENT(MTAR:0, "欲望", ABL:(MTAR:0):欲望 * 4)

SIF TALENT:(MTAR:0):臆病
	CALL COM_ORDER_ELEMENT(MTAR:0, "臆病", -6)
SIF TALENT:(MTAR:0):反抗的
	CALL COM_ORDER_ELEMENT(MTAR:0, "反抗的", -5)
SIF TALENT:(MTAR:0):大人しい
	CALL COM_ORDER_ELEMENT(MTAR:0, "大人しい", -10)
SIF TALENT:(MTAR:0):プライド高い
	CALL COM_ORDER_ELEMENT(MTAR:0, "プライド高い", -6)
SIF TALENT:(MTAR:0):ツンデレ
	CALL COM_ORDER_ELEMENT(MTAR:0, "ツンデレ", 15)
SIF TALENT:(MTAR:0):自制心
	CALL COM_ORDER_ELEMENT(MTAR:0, "自制心", -15)
SIF TALENT:(MTAR:0):無関心
	CALL COM_ORDER_ELEMENT(MTAR:0, "無関心", -15)
SIF TALENT:(MTAR:0):感情乏しい
	CALL COM_ORDER_ELEMENT(MTAR:0, "感情乏しい", -15)
SIF TALENT:(MTAR:0):楽観的
	CALL COM_ORDER_ELEMENT(MTAR:0, "楽観的", 5)
SIF TALENT:(MTAR:0):悲観的
	CALL COM_ORDER_ELEMENT(MTAR:0, "悲観的", -5)
SIF TALENT:(MTAR:0):一線越えない
	CALL COM_ORDER_ELEMENT(MTAR:0, "一線越えない", -20)
SIF TALENT:(MTAR:0):貞操観念
	CALL COM_ORDER_ELEMENT(MTAR:0, "貞操観念", -10)
SIF TALENT:(MTAR:0):貞操無頓着
	CALL COM_ORDER_ELEMENT(MTAR:0, "貞操無頓着", 10)
SIF TALENT:(MTAR:0):孤高
	CALL COM_ORDER_ELEMENT(MTAR:0, "孤高", -10)
SIF TALENT:(MTAR:0):抑圧
	CALL COM_ORDER_ELEMENT(MTAR:0, "抑圧", -25)
SIF TALENT:(MTAR:0):解放
	CALL COM_ORDER_ELEMENT(MTAR:0, "解放", 10)
SIF TALENT:(MTAR:0):恥じらい
	CALL COM_ORDER_ELEMENT(MTAR:0, "恥じらい", -12)
SIF TALENT:(MTAR:0):恥薄い
	CALL COM_ORDER_ELEMENT(MTAR:0, "恥薄い", 4)
SIF TALENT:(MTAR:0):恋慕
	CALL COM_ORDER_ELEMENT(MTAR:0, "恋慕", 12)
SIF TALENT:(MTAR:0):親愛
	CALL COM_ORDER_ELEMENT(MTAR:0, "親愛", 20)
SIF TALENT:(MTAR:0):恋人
	CALL COM_ORDER_ELEMENT(MTAR:0, "恋人", 6)
SIF TALENT:(MTAR:0):キス未経験
	CALL COM_ORDER_ELEMENT(MTAR:0, "キス未経験", -15)

;ムードボーナス
IF TFLAG:ムード < 60
	CALL COM_ORDER_ELEMENT(MTAR:0, "ムード", 0)
ELSE
	CALL COM_ORDER_ELEMENT(MTAR:0, "ムード", 5 + TFLAG:ムード / 30)
ENDIF

CALL COM_ORDER_ELEMENT(MTAR:0, "好感度", CFLAG:(MTAR:0):好感度 / 500)
CALL COM_ORDER_ELEMENT(MTAR:0, "依存度", CFLAG:(MTAR:0):依存度 / 500)

IF TALENT:(MTAR:0):合意
	;二回目以降は条件が厳しくなる
	TCVAR:(MTAR:0):実行値 = 240 + RAND:200
ELSE
	TCVAR:(MTAR:0):実行値 = 220
ENDIF

;判定結果を表示
PRINTFORMW  = {TCVAR:(MTAR:0):判定値} %TOSTR_COMPARE(TCVAR:(MTAR:0):判定値, TCVAR:(MTAR:0):実行値)% 実行値{TCVAR:(MTAR:0):実行値}

;◆↑表示スキップここまで↑◆
SKIPDISP 0

;主人公の主導権ポイントが低ければ押し倒し
IF GET_INITIATIVE_RATE(MTAR:0) > 0
	;酔い補正を除いても成功
	IF TCVAR:(MTAR:0):判定値 - PALAM:(MTAR:0):酔い / 150 >= TCVAR:(MTAR:0):実行値
		;酔った勢いフラグOFF
		TFLAG:酔った勢いで成功 = 0

		IF TALENT:(MTAR:0):合意
			;口上表示
			CALL KOJO_EVENT(MTAR:0, 24)

			;合意なし
		ELSE
			;口上表示
			CALL KOJO_EVENT(MTAR:0, 22)

			TALENT:(MTAR:0):合意 = 1
			PRINTFORMW %ANAME(MTAR:0)%の<合意>を得た
		ENDIF
		RETURN 1

		;酔った勢い
	ELSEIF TCVAR:(MTAR:0):判定値 >= TCVAR:(MTAR:0):実行値
		;酔った勢いフラグON
		TFLAG:酔った勢いで成功 = 1

		;合意あり
		IF TALENT:(MTAR:0):親愛
			;口上表示
			CALL KOJO_EVENT(MTAR:0, 25)

			;合意なし
		ELSE
			;口上表示
			CALL KOJO_EVENT(MTAR:0, 23)
		ENDIF
		RETURN 1
	ENDIF

	;主人公の主導権ポイントが高ければおねだり
ELSE
	;酔い補正を除いても成功
	IF TCVAR:(MTAR:0):判定値 - PALAM:(MTAR:0):酔い / 150 >= TCVAR:(MTAR:0):実行値
		;酔った勢いフラグOFF
		TFLAG:酔った勢いで成功 = 0

		IF TALENT:(MTAR:0):合意
			;口上表示
			CALL KOJO_EVENT(MTAR:0, 28)

			;合意なし
		ELSE
			;口上表示
			CALL KOJO_EVENT(MTAR:0, 26)

			TALENT:(MTAR:0):合意 = 1
			PRINTFORMW %ANAME(MTAR:0)%の<合意>を得た
		ENDIF
		RETURN 2

		;酔った勢い
	ELSEIF TCVAR:(MTAR:0):判定値 >= TCVAR:(MTAR:0):実行値
		;酔った勢いフラグON
		TFLAG:酔った勢いで成功 = 1

		;合意あり
		IF TALENT:(MTAR:0):親愛
			;口上表示
			CALL KOJO_EVENT(MTAR:0, 29)

			;合意なし
		ELSE
			;口上表示
			CALL KOJO_EVENT(MTAR:0, 27)
		ENDIF
		RETURN 2
	ENDIF
ENDIF

RETURN 0

;-------------------------------------------------
;別れるときのキスや告白の判定
;-------------------------------------------------
@CHECK_EXIT_ACTION
;ムードが60未満なら戻る
IF TFLAG:ムード < 60
	RETURN
ENDIF

;Modding
;this out because there's no reason a female PC should never get kisses or confessions
;Todo think about the m/m case
;IF IS_SAMESEX(MPLY:0, MTAR:0) && !TALENT:(MTAR:0):両刀
;	RETURN
;ENDIF

;既に恋人 or 服従系なら戻る
IF TALENT:(MTAR:0):恋人 || IS_SLAVE(MTAR:0) || IS_SLAVED_BY(MTAR:0)
	RETURN
ENDIF

;霖之助に恋慕 or 霖之助の恋人なら戻る
;IF TALENT:(MTAR:0):霖之助に恋慕 || TALENT:(MTAR:0):霖之助の恋人
;	RETURN
;ENDIF

;●実行値の計算
CVARSET TCVAR, 24, -10000
CVARSET TCVAR, 25, 10000

;◆↓表示スキップここから↓◆
SKIPDISP 1

CALL COM_ORDER_BASE(MTAR:0)

CALL COM_ORDER_ELEMENT(MTAR:0, "追加好感度補正", CFLAG:(MTAR:0):好感度 / 50)

SIF TALENT:(MTAR:0):臆病
	CALL COM_ORDER_ELEMENT(MTAR:0, "臆病", -12)
SIF TALENT:(MTAR:0):反抗的
	CALL COM_ORDER_ELEMENT(MTAR:0, "反抗的", -15)
SIF TALENT:(MTAR:0):気丈
	CALL COM_ORDER_ELEMENT(MTAR:0, "気丈", 6)
SIF TALENT:(MTAR:0):素直
	CALL COM_ORDER_ELEMENT(MTAR:0, "素直", 5)
SIF TALENT:(MTAR:0):大人しい
	CALL COM_ORDER_ELEMENT(MTAR:0, "大人しい", -10)
SIF TALENT:(MTAR:0):プライド高い
	CALL COM_ORDER_ELEMENT(MTAR:0, "プライド高い", -10)
SIF TALENT:(MTAR:0):ツンデレ
	CALL COM_ORDER_ELEMENT(MTAR:0, "ツンデレ", -25)
SIF TALENT:(MTAR:0):自制心
	CALL COM_ORDER_ELEMENT(MTAR:0, "自制心", -7)
SIF TALENT:(MTAR:0):無関心
	CALL COM_ORDER_ELEMENT(MTAR:0, "無関心", -20)
SIF TALENT:(MTAR:0):感情乏しい
	CALL COM_ORDER_ELEMENT(MTAR:0, "感情乏しい", -20)
SIF TALENT:(MTAR:0):楽観的
	CALL COM_ORDER_ELEMENT(MTAR:0, "楽観的", 15)
SIF TALENT:(MTAR:0):悲観的
	CALL COM_ORDER_ELEMENT(MTAR:0, "悲観的", -20)
SIF TALENT:(MTAR:0):一線越えない
	CALL COM_ORDER_ELEMENT(MTAR:0, "一線越えない", -20)
SIF TALENT:(MTAR:0):目立ちたがり
	CALL COM_ORDER_ELEMENT(MTAR:0, "目立ちたがり", 10)
SIF TALENT:(MTAR:0):貞操観念
	CALL COM_ORDER_ELEMENT(MTAR:0, "貞操観念", -10)
SIF TALENT:(MTAR:0):貞操無頓着
	CALL COM_ORDER_ELEMENT(MTAR:0, "貞操無頓着", 10)
SIF TALENT:(MTAR:0):孤高
	CALL COM_ORDER_ELEMENT(MTAR:0, "孤高", -15)
SIF TALENT:(MTAR:0):抑圧
	CALL COM_ORDER_ELEMENT(MTAR:0, "抑圧", -25)
SIF TALENT:(MTAR:0):解放
	CALL COM_ORDER_ELEMENT(MTAR:0, "解放", 12)
SIF TALENT:(MTAR:0):恥じらい
	CALL COM_ORDER_ELEMENT(MTAR:0, "恥じらい", -12)
SIF TALENT:(MTAR:0):恥薄い
	CALL COM_ORDER_ELEMENT(MTAR:0, "恥薄い", 4)
SIF TALENT:(MTAR:0):恋慕
	CALL COM_ORDER_ELEMENT(MTAR:0, "恋慕", 30)
SIF TALENT:(MTAR:0):親愛
	CALL COM_ORDER_ELEMENT(MTAR:0, "親愛", 30)
SIF TALENT:(MTAR:0):キス未経験
	CALL COM_ORDER_ELEMENT(MTAR:0, "キス未経験", -10)

IF CFLAG:(MTAR:0):捕虜先 == CFLAG:MASTER:所属
	CALL COM_ORDER_ELEMENT(MTAR:0, "捕虜", -50)
ENDIF

CALL COM_ORDER_ELEMENT(MTAR:0, "主導権基準値", GET_INITIATIVE_RATE(MTAR:0))

IF TFLAG:ムード < 10
	LOCAL:0 = -20
ELSEIF TFLAG:ムード < 30
	LOCAL:0 = -15
ELSEIF TFLAG:ムード < 50
	LOCAL:0 = 0
ELSEIF TFLAG:ムード < 100
	LOCAL:0 = (TFLAG:ムード - 50) / 10
ELSE
	LOCAL:0 = MIN(10, (TFLAG:ムード - 100) / 50 + 5)
ENDIF
CALL COM_ORDER_ELEMENT(MTAR:0, "ムード", LOCAL:0)

IF PALAM:(MTAR:0):酔い >= 150
	CALL COM_ORDER_ELEMENT(MTAR:0, "酔い", PALAM:(MTAR:0):酔い / 150)
ENDIF

;振られた回数の影響
LOCAL:0 = CFLAG:(MTAR:0):振られた回数 * 50
SIF TALENT:(MTAR:0):楽観的
	TIMES LOCAL:0, 0.50
SIF TALENT:(MTAR:0):悲観的
	TIMES LOCAL:0, 2.50
SIF TALENT:(MTAR:0):臆病
	TIMES LOCAL:0, 1.80
SIF TALENT:(MTAR:0):気丈
	TIMES LOCAL:0, 1.50
SIF TALENT:(MTAR:0):恥じらい
	TIMES LOCAL:0, 1.50
SIF TALENT:(MTAR:0):恥薄い
	TIMES LOCAL:0, 0.80
SIF TALENT:(MTAR:0):大人しい
	TIMES LOCAL:0, 1.30
SIF TALENT:(MTAR:0):自制心
	TIMES LOCAL:0, 1.50
SIF TALENT:(MTAR:0):無関心
	TIMES LOCAL:0, 1.50
SIF TALENT:(MTAR:0):感情乏しい
	TIMES LOCAL:0, 1.50
SIF TALENT:(MTAR:0):一線越えない
	TIMES LOCAL:0, 1.50
SIF TALENT:(MTAR:0):目立ちたがり
	TIMES LOCAL:0, 0.80
SIF TALENT:(MTAR:0):解放
	TIMES LOCAL:0, 0.60
SIF TALENT:(MTAR:0):抑圧
	TIMES LOCAL:0, 1.80
SIF TALENT:(MTAR:0):献身的
	TIMES LOCAL:0, 1.40
SIF TALENT:(MTAR:0):小悪魔
	TIMES LOCAL:0, 0.80
CALL COM_ORDER_ELEMENT(MTAR:0, "失恋回数", -LOCAL:0)

;告白の実行値を設定
TCVAR:(MTAR:0):実行値 = 190

;判定結果を表示
PRINTFORMW  = {TCVAR:(MTAR:0):判定値} %TOSTR_COMPARE(TCVAR:(MTAR:0):判定値, TCVAR:(MTAR:0):実行値)% 実行値{TCVAR:(MTAR:0):実行値}

;◆↑表示スキップここまで↑◆
SKIPDISP 0

;●告白判定
;最低でも恋慕が必要
IF TALENT:(MTAR:0):恋慕
	;判定成功
	IF TCVAR:(MTAR:0):判定値 >= TCVAR:(MTAR:0):実行値
		;口上表示
		CALL KOJO_EVENT(MTAR:0, 21)

		;了承した場合
		IF TFLAG:告白成功
			;キスの共通処理
			IF !TALENT:(MTAR:0):霊体 && !TALENT:(MPLY:0):霊体
				CALL KISS_COMMON(MTAR:0, @"%ANAME(MPLY:0)%の唇", "告白を受けての和姦", 0)
				CALL KISS_COMMON(MPLY:0, @"%ANAME(MTAR:0)%の唇", "告白を受けての和姦", 0)
			ENDIF

			;恋人になる処理
			CALL GET_LOVERS(MTAR:0)

			SOURCE:(MTAR:0):歓喜 += 3000

			;断った場合
		ELSE
			;主人公に振られた回数を加算
			CFLAG:(MTAR:0):振られた回数 ++

			SOURCE:(MTAR:0):反感 += 600
			SOURCE:(MTAR:0):悲哀 += 6000
		ENDIF
	ENDIF
ENDIF

;◆↓表示スキップここから↓◆
SKIPDISP 1

;キスの実行値を設定
TCVAR:(MTAR:0):実行値 = 120

;判定結果を表示
PRINTFORMW  = {TCVAR:(MTAR:0):判定値} %TOSTR_COMPARE(TCVAR:(MTAR:0):判定値, TCVAR:(MTAR:0):実行値)% 実行値{TCVAR:(MTAR:0):実行値}

;◆↑表示スキップここまで↑◆
SKIPDISP 0

;●ファーストキス判定
;最低でも好感度800が必要、少なくとも一方がキス未経験、どちらかが霊体ではない
IF CFLAG:(MTAR:0):好感度 >= 800 && (TALENT:(MTAR:0):キス未経験 || TALENT:(MPLY:0):キス未経験) && !TALENT:(MTAR:0):霊体 && !TALENT:(MPLY:0):霊体
	;判定成功
	IF TCVAR:(MTAR:0):判定値 >= TCVAR:(MTAR:0):実行値
		;口上表示
		CALL KOJO_EVENT(MTAR:0, 20)

		;キスの共通処理
		CALL KISS_COMMON(MTAR:0, @"%ANAME(MPLY:0)%の唇", "和姦", 1)
		CALL KISS_COMMON(MPLY:0, @"%ANAME(MTAR:0)%の唇", "和姦", 1)
		EXP:(MTAR:0):キス経験 += 1
		EXP:(MPLY:0):キス経験 += 1

		SOURCE:(MTAR:0):歓喜 += 500
	ENDIF
ENDIF

RETURN


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 = 好感度・依存度・従属度が上がりやすくなる。コマンドが実行しやすくなる。
LIST_BONUS_SELECTABLE:LOCAL  = !TALENT:MASTER:謎の魅力
; 天の御遣い
LOCAL = 1
LIST_BONUS_NAME:LOCAL        = 天の御遣い
LIST_BONUS_ANNOTATIONE:LOCAL = 好感度が上がりやすくなる。
LIST_BONUS_SELECTABLE:LOCAL  = !TALENT:MASTER:天の御遣い
;君主の器
LOCAL = 2
LIST_BONUS_NAME:LOCAL        = 君主の器
LIST_BONUS_ANNOTATIONE:LOCAL = 従属度が上がりやすくなる。
LIST_BONUS_SELECTABLE:LOCAL  = !TALENT:MASTER:君主の器
;求心力
LOCAL = 3
LIST_BONUS_NAME:LOCAL        = 求心力
LIST_BONUS_ANNOTATIONE:LOCAL = 依存度が上がりやすくなる。
LIST_BONUS_SELECTABLE:LOCAL  = !TALENT:MASTER:求心力
;絶倫
LOCAL = 4
LIST_BONUS_NAME:LOCAL        = 絶倫
LIST_BONUS_ANNOTATIONE:LOCAL = 調教中に体力・気力が極めて減りにくくなり、射精量が増える。
LIST_BONUS_SELECTABLE:LOCAL  = !TALENT:MASTER:絶倫
;冒険SP上限拡張
LOCAL = 5
LIST_BONUS_NAME:LOCAL        = 冒険SP上限拡張
LIST_BONUS_ANNOTATIONE:LOCAL = 冒険スキルの拡張限界が上昇します。※ 現在の拡張限界:{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 = 性技スキルの拡張限界が上昇します。※ 現在の拡張限界:{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 = お金がもらえます。
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

repo_name: napo/erafl

license: unknown


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


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