code:
;-------------------------------------------------
;# おまかせ時のプレイヤー選択
;-------------------------------------------------
@COM_AUTOSELECT_DECIDE_PLAYER
#DIM CHARA_ID
#DIM RETURN_CHARA_NUM
#DIM DECIDE_REFERENCE_VALUE					;重みの基準
#DIM MULTI_SITUATION_DECIDE_REFERENCE_VALUE	;状況による重みの乗算補正
#DIM CHECK_BEING_IAN_SERVE_FEMALE
#DIM CHECK_BEING_IAN_GUEST_FEMALE

DEBUGPRINTFORML
DEBUGPRINTFORML #### DEBUG メインプレイヤー選択

;-------------------------------------------------
;## リセット
;-------------------------------------------------
CALL COM_AUTO_RANDOMIZED_WEIGHTED_START

;-------------------------------------------------
;## 慰安時のキャラ性別チェック
;	FOR文軽量化のため先に確認して代入しておく
;-------------------------------------------------
IF FLAG:調教モード == 調教_慰安
	;慰安サービス側に女はいるか
	CHECK_BEING_IAN_SERVE_FEMALE = BEING_IAN_SERVE_FEMALE(0) ;行動可能かどうかは問わない
	;慰安客側に女はいるか
	CHECK_BEING_IAN_GUEST_FEMALE = BEING_IAN_GUEST_FEMALE()
ENDIF

;-------------------------------------------------
;## 候補設定
;-------------------------------------------------
FOR CHARA_ID, 0, CHARANUM
	;---------------------------------------------
	;### 不可候補
	;---------------------------------------------
	;参加者ではない(MASTERもここで候補から除外される)
	SIF !CFLAG:CHARA_ID:調教参加フラグ
		CONTINUE
	;行動不可能
	SIF !IS_AUTOSELECT(CHARA_ID)
		CONTINUE
	;慰安モード、このキャラが男慰安客、サービス側に行動可能な女性がいない、客に行動可能な女性がいる
	IF FLAG:調教モード == 調教_慰安 && IS_IAN_GUEST_MALE(CHARA_ID) && !CHECK_BEING_IAN_SERVE_FEMALE && CHECK_BEING_IAN_GUEST_FEMALE
		DEBUGPRINTFORML %ANAME(CHARA_ID)%は候補から除外された
		CONTINUE
	ENDIF
	IF TFLAG:奉仕モード
		;奉仕モードで奉仕者でも被奉仕者でもないキャラは実行者にならない
		IF !TCVAR:CHARA_ID:奉仕者フラグ && !TCVAR:CHARA_ID:被奉仕者フラグ
			CONTINUE
		ENDIF
	ENDIF
	;---------------------------------------------
	;### 重みの基準
	;	主導度Ｕプラス量を元に10～100 +1は0除算回避用
	;---------------------------------------------
	DECIDE_REFERENCE_VALUE = MAX((1000 + ABL:CHARA_ID:主導度Ｕ + 1) / 20, 10)

	SIF FLAG:調教モード == 調教_逆調教特殊 && IS_FALLEN_TO_SP_COUNTRY(CHARA_ID)
		DECIDE_REFERENCE_VALUE += 30
	;---------------------------------------------
	;### 状況の補正
	;---------------------------------------------
	;慰安でないときは主人公に挿入している・されているキャラを優先
	IF FLAG:調教モード != 調教_慰安 && IS_INSERT_MUTUAL(MASTER, CHARA_ID) >= 1
		MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
		;挿入中ではないキャラ
	ELSE
		MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 50
	ENDIF
	;主導除外フラグが立っていたら0補正する
	SIF CFLAG:CHARA_ID:主導除外 == 1
		MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 0
	;特定カテゴリは奉仕モードの場合常に受け身に回る
	IF TFLAG:奉仕モード
		IF GROUPMATCH(TFLAG:奉仕カテゴリ, 奉仕_見抜き)
			IF TCVAR:CHARA_ID:奉仕者フラグ
				MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 0
			ENDIF
		ENDIF
	ENDIF

	;---------------------------------------------
	;### 重みの計算
	;---------------------------------------------
	DECIDE_REFERENCE_VALUE = DECIDE_REFERENCE_VALUE * MULTI_SITUATION_DECIDE_REFERENCE_VALUE

	;---------------------------------------------
	;### 候補の追加
	;---------------------------------------------
	CALL COM_AUTO_RANDOMIZED_WEIGHTED_VALUE(CHARA_ID, DECIDE_REFERENCE_VALUE)
	DEBUGPRINTFORML      %ANAME(CHARA_ID), MAX_CHARANAME_LENGTH, LEFT%  %TOSTR_SEX(TALENT:CHARA_ID:性別), 6%  重み {DECIDE_REFERENCE_VALUE, 10}
NEXT

;-------------------------------------------------
;## 結果取得
;-------------------------------------------------
RETURN_CHARA_NUM = COM_AUTO_RANDOMIZED_WEIGHTED_RESULT()
IF RETURN_CHARA_NUM < 0
	; PRINTFORML ※おまかせ実行者が見つかりませんでした
	; PRINTFORML ※ログをスレにエラー報告して頂けると助かります
	; PRINTFORML ※@COM_AUTOSELECT_DECIDE_PLAYER @COM_AUTO_RANDOMIZED_WEIGHTED_RESULT
	RETURN -1
ENDIF

RETURN RETURN_CHARA_NUM

;-------------------------------------------------
;# おまかせ時のターゲット選択
;-------------------------------------------------
@COM_AUTOSELECT_DECIDE_TARGET(プレイヤー)
#DIM CHARA_ID
#DIM プレイヤー
#DIM RETURN_CHARA_NUM
#DIM DECIDE_REFERENCE_VALUE					;重みの基準
#DIM MULTI_SEX_DECIDE_REFERENCE_VALUE		;性別による重みの乗算補正
#DIM MULTI_VIRGIN_DECIDE_REFERENCE_VALUE	;処女性による重みの乗算補正
#DIM MULTI_SITUATION_DECIDE_REFERENCE_VALUE	;状況による重みの乗算補正

DEBUGPRINTFORML
DEBUGPRINTFORML #### DEBUG メインターゲット選択

;-------------------------------------------------
;## リセット
;-------------------------------------------------
CALL COM_AUTO_RANDOMIZED_WEIGHTED_START

;-------------------------------------------------
;## 候補設定
;-------------------------------------------------
FOR CHARA_ID, 0, CHARANUM
	;---------------------------------------------
	;### 不可候補
	;---------------------------------------------
	;;参加者ではない　MASTERが調教参加フラグ設定されるのは慰安系のみのようなのでMASTERを除外
	;SIF !CFLAG:CHARA_ID:調教参加フラグ && !( FLAG:調教モード != 調教_慰安 && CHARA_ID == MASTER )
	;	CONTINUE
	SIF !IS_PARTICIPATE_TRAIN(CHARA_ID)
		CONTINUE
	;実行者
	SIF CHARA_ID == プレイヤー
		CONTINUE
	;CFLAG:慰安参加者非対象化を持ってるキャラは慰安参加者を対象に取らない
	SIF CFLAG:プレイヤー:慰安参加者非対象化 && CFLAG:CHARA_ID:慰安参加者
		CONTINUE
	;一時離脱フラグが立っていない
	SIF TCVAR:CHARA_ID:離脱フラグ == 離脱フラグ_一時離脱
		CONTINUE
	IF TFLAG:奉仕モード
		;奉仕モードで非参加者は対象にとらない
		IF !TCVAR:CHARA_ID:奉仕者フラグ && !TCVAR:CHARA_ID:被奉仕者フラグ
			CONTINUE
		ENDIF
		;被奉仕者がプレイヤーの場合、被奉仕者を対象にとらない
		IF TCVAR:プレイヤー:被奉仕者フラグ && TCVAR:CHARA_ID:被奉仕者フラグ
			CONTINUE
		ENDIF
	ENDIF
	;---------------------------------------------
	;### 重みの基準
	;	主導度Ｕマイナス量を元に10～100
	;---------------------------------------------
	DECIDE_REFERENCE_VALUE = MAX((2000 - (1000 + ABL:CHARA_ID:主導度Ｕ)) / 20, 10)

	;---------------------------------------------
	;### 性別組の補正
	;---------------------------------------------
	;対象があなたで実行が浮気癖所持
	IF CHARA_ID == MASTER && GETBIT(TALENT:プレイヤー:淫乱系, 素質_淫乱_浮気癖)
		MULTI_SEX_DECIDE_REFERENCE_VALUE = 15
		;対象があなたで実行が陥落済み ただし特殊勢力逆調教を除く
	ELSEIF CHARA_ID == MASTER && ( TALENT:プレイヤー:恋慕 || TALENT:プレイヤー:服従 || TALENT:プレイヤー:主人 ) && !GROUPMATCH(FLAG:調教モード, 調教_逆調教特殊)
		MULTI_SEX_DECIDE_REFERENCE_VALUE = 100
		;両刀or実行ふたなりor対象ふたなり
	ELSEIF TALENT:プレイヤー:両刀 || (HAS_PENIS(プレイヤー) && HAS_VAGINA(プレイヤー)) || (HAS_PENIS(CHARA_ID) && HAS_VAGINA(CHARA_ID))
		MULTI_SEX_DECIDE_REFERENCE_VALUE = 70
		;異性
	ELSEIF (HAS_PENIS(プレイヤー) && HAS_VAGINA(CHARA_ID)) || (HAS_VAGINA(プレイヤー) && HAS_PENIS(CHARA_ID))
		MULTI_SEX_DECIDE_REFERENCE_VALUE = 70
		;同性
	ELSE
		MULTI_SEX_DECIDE_REFERENCE_VALUE = 1
	ENDIF

	;---------------------------------------------
	;### 処女系の補正
	;---------------------------------------------
	;マスターが対象で処女系素質を持つとき ただし浮気癖がある場合は除外
	IF CHARA_ID == MASTER && (TALENT:MASTER:キス未経験 || (HAS_VAGINA(MASTER) && TALENT:MASTER:処女) || (HAS_PENIS(MASTER) && TALENT:MASTER:童貞)) && !GETBIT(TALENT:プレイヤー:淫乱系, 素質_淫乱_浮気癖)
		MULTI_VIRGIN_DECIDE_REFERENCE_VALUE = 100
		;対象が処女系素質を持つとき
	ELSEIF TALENT:CHARA_ID:キス未経験 || (HAS_VAGINA(CHARA_ID) && TALENT:CHARA_ID:処女) || (HAS_PENIS(CHARA_ID) && TALENT:CHARA_ID:童貞)
		MULTI_VIRGIN_DECIDE_REFERENCE_VALUE = 100
		;処女系は持たないとき
	ELSE
		MULTI_VIRGIN_DECIDE_REFERENCE_VALUE = 1
	ENDIF

	;---------------------------------------------
	;### 状況の補正
	;---------------------------------------------
	;特殊勢力逆調教時の男あなた
	IF CHARA_ID == MASTER && GROUPMATCH(FLAG:調教モード, 調教_逆調教特殊) && IS_MALE(CHARA_ID)
		MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 20
		;特殊勢力逆調教かつ特殊キャラでない女
	ELSEIF !IS_SP_CHARA(CHARA_ID) && GROUPMATCH(FLAG:調教モード, 調教_逆調教特殊) && IS_FEMALE(CHARA_ID)
		MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 70
		;逆調教の主人公
	ELSEIF CHARA_ID == MASTER && GROUPMATCH(FLAG:調教モード, 調教_逆調教特殊, 調教_逆調教通常) && !GETBIT(TALENT:プレイヤー:淫乱系, 素質_淫乱_浮気癖)
		MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
		;逆調教以外の主人公
	ELSEIF CHARA_ID == MASTER && !GETBIT(TALENT:プレイヤー:淫乱系, 素質_淫乱_浮気癖)
		MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 70
		;捕虜調教のターゲット
	ELSEIF FLAG:調教モード == 調教_捕虜調教 && FINDELEMENT(PRISONER_TARGET, CHARA_ID)
		MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 70
		;慰安モードで主導者が慰安客のとき慰安客は確率低下
	ELSEIF FLAG:調教モード == 調教_慰安 && (TALENT:プレイヤー:慰安モブ || CFLAG:プレイヤー:慰安参加者) && (TALENT:CHARA_ID:慰安モブ || CFLAG:CHARA_ID:慰安参加者)
		MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
		;慰安モードで主導者がサービス側のときサービス側は確率低下
	ELSEIF FLAG:調教モード == 調教_慰安 && !TALENT:プレイヤー:慰安モブ && !CFLAG:プレイヤー:慰安参加者 && !TALENT:CHARA_ID:慰安モブ && !CFLAG:CHARA_ID:慰安参加者
		MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 15
		;それ以外
	ELSE
		MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 30
	ENDIF
	;奉仕者がプレイヤーの場合、奉仕者を対象に取る確率は低下
	IF TCVAR:プレイヤー:奉仕者フラグ && TCVAR:CHARA_ID:奉仕者フラグ
		MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
	ENDIF
	;奉仕者がプレイヤーの場合、被奉仕者を対象に取る確率は上昇
	IF TCVAR:プレイヤー:奉仕者フラグ && TCVAR:CHARA_ID:被奉仕者フラグ
		MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
	ENDIF
	;---------------------------------------------
	;### 重みの計算
	;---------------------------------------------
	DECIDE_REFERENCE_VALUE = DECIDE_REFERENCE_VALUE * MULTI_SEX_DECIDE_REFERENCE_VALUE * MULTI_VIRGIN_DECIDE_REFERENCE_VALUE * MULTI_SITUATION_DECIDE_REFERENCE_VALUE

	;---------------------------------------------
	;### 候補の追加
	;---------------------------------------------
	CALL COM_AUTO_RANDOMIZED_WEIGHTED_VALUE(CHARA_ID, DECIDE_REFERENCE_VALUE)
	DEBUGPRINTFORML      %ANAME(CHARA_ID), MAX_CHARANAME_LENGTH, LEFT%  %TOSTR_SEX(TALENT:CHARA_ID:性別), 6%  重み {DECIDE_REFERENCE_VALUE, 10}
NEXT

;-------------------------------------------------
;## 結果取得
;-------------------------------------------------
RETURN_CHARA_NUM = COM_AUTO_RANDOMIZED_WEIGHTED_RESULT()
IF RETURN_CHARA_NUM < 0
	PRINTFORML ※おまかせ対象者が見つかりませんでした
	PRINTFORML ※ログをスレにエラー報告して頂けると助かります
	PRINTFORML ※@COM_AUTOSELECT_DECIDE_TARGET @COM_AUTO_RANDOMIZED_WEIGHTED_RESULT
	RETURN -1
ENDIF

RETURN RETURN_CHARA_NUM

;-------------------------------------------------
;# 第三者の参加を決定する
;-------------------------------------------------
@AUTO_SET_THIRD_PERSON(主導者, 対象者, コマンド)
#DIM L_COUNTER
#DIM CHARA_COUNTER
#DIM コマンド
#DIM 主導者
#DIM 対象者
#DIM 今回候補
#DIM DECIDE_REFERENCE_VALUE							;候補取得の重み
#DIM PLAYER_DECIDE_REFERENCE_VALUE					;する側に回る重みの基準
#DIM PLAYER_MULTI_SEX_DECIDE_REFERENCE_VALUE		;する側に回る性別による重みの乗算補正
#DIM PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE	;する側に回る状況による重みの乗算補正
#DIM TARGET_DECIDE_REFERENCE_VALUE					;される側に回る重みの基準
#DIM TARGET_MULTI_SEX_DECIDE_REFERENCE_VALUE		;される側に回る性別による重みの乗算補正
#DIM TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE	;される側に回る状況による重みの乗算補正
#DIM CONST ASSIST_PLAYER_ID = 1						;候補識別用・この番号が選ばれたら実行者
#DIM CONST ASSIST_TARGET_ID = 2						;候補識別用・この番号が選ばれたら対象者
#DIM ASSIST_ID_RESULT								;する側とされる側どっちが選ばれたか受け取る

DEBUGPRINTFORML
DEBUGPRINTFORML #### DEBUG 第三の参加者選択

;候補取得と実行可否チェックを繰り返す
FOR L_COUNTER, 0, 5
	SIF RAND:100 > 20
		CONTINUE
	DEBUGPRINTFORML
	DEBUGPRINTFORML      第三者の参加チェック {L_COUNTER + 1}周目

	;---------------------------------------------
	;## 今回候補キャラ選択
	;---------------------------------------------

	;---------------------------------------------
	;### リセット
	;---------------------------------------------
	今回候補 = -1
	CALL COM_AUTO_RANDOMIZED_WEIGHTED_START

	;---------------------------------------------
	;### 候補設定
	;---------------------------------------------
	FOR CHARA_COUNTER, 0, CHARANUM
		DECIDE_REFERENCE_VALUE = 0
		;不可候補 行動できないか、既に実行者あるいは対象者
		SIF !IS_AUTOSELECT(CHARA_COUNTER) || IS_MPLY(CHARA_COUNTER) || IS_MTAR(CHARA_COUNTER)
			CONTINUE
		;CFLAG:慰安参加者非対象化を持ってるキャラは慰安参加者を対象に取らない
		SIF CFLAG:主導者:慰安参加者非対象化 && CFLAG:CHARA_COUNTER:慰安参加者 && IS_MTAR(CHARA_COUNTER)
			CONTINUE
		IF TFLAG:奉仕モード
			;奉仕モードで非参加者は対象にとらない
			IF !TCVAR:CHARA_COUNTER:奉仕者フラグ && !TCVAR:CHARA_COUNTER:被奉仕者フラグ
				CONTINUE
			ENDIF
		ENDIF
		;CHARA_COUNTERが陥落済みで対象があなた
		IF 対象者 == MASTER && ( TALENT:CHARA_COUNTER:恋慕 || TALENT:CHARA_COUNTER:服従 || TALENT:CHARA_COUNTER:主人 )
			DECIDE_REFERENCE_VALUE = 100
			;CHARA_COUNTERが特殊勢力陥落済みで特殊勢力逆調教かつ対象がMASTER
		ELSEIF 対象者 == MASTER && FLAG:調教モード == 調教_逆調教特殊
			DECIDE_REFERENCE_VALUE = 70
			;CHARA_COUNTERが両刀、あるいはフタナリがいる
		ELSEIF TALENT:CHARA_COUNTER:両刀 || (HAS_PENIS(CHARA_COUNTER) && HAS_VAGINA(CHARA_COUNTER)) || (HAS_PENIS(主導者) && HAS_VAGINA(主導者)) || (HAS_PENIS(対象者) && HAS_VAGINA(対象者))
			DECIDE_REFERENCE_VALUE = 70
			;CHARA_COUNTERの異性がいる
		ELSEIF (HAS_PENIS(CHARA_COUNTER) && HAS_VAGINA(主導者)) || (HAS_VAGINA(CHARA_COUNTER) && HAS_PENIS(主導者)) || (HAS_PENIS(CHARA_COUNTER) && HAS_VAGINA(対象者)) || (HAS_VAGINA(CHARA_COUNTER) && HAS_PENIS(対象者))
			DECIDE_REFERENCE_VALUE = 70
			;両刀もなく全員同性なら消極参加
		ELSE
			DECIDE_REFERENCE_VALUE = 1
		ENDIF
		;候補追加
		CALL COM_AUTO_RANDOMIZED_WEIGHTED_VALUE(CHARA_COUNTER, DECIDE_REFERENCE_VALUE)
		DEBUGPRINTFORML      %ANAME(CHARA_COUNTER), MAX_CHARANAME_LENGTH, LEFT%  %TOSTR_SEX(TALENT:CHARA_COUNTER:性別), 6%  重み {DECIDE_REFERENCE_VALUE, 10}
	NEXT

	;-----------------------------------------
	;### 結果取得
	;-----------------------------------------
	今回候補 = COM_AUTO_RANDOMIZED_WEIGHTED_RESULT()
	IF RESULT < 0 || 今回候補 == -1 || (RESULT == MASTER && !IS_PARTICIPATE_TRAIN(MASTER))
		DEBUGPRINTFORML      候補になれるキャラがいないので抜ける
		BREAK
	ENDIF

	;---------------------------------------------
	;## する側される側どちらを望むか
	;---------------------------------------------

	;---------------------------------------------
	;### リセット
	;---------------------------------------------
	CALL COM_AUTO_RANDOMIZED_WEIGHTED_START

	;---------------------------------------------
	;### 重みの基準
	;---------------------------------------------
	;MPLYに加わる欲求
	PLAYER_DECIDE_REFERENCE_VALUE = MAX((1000 + ABL:今回候補:主導度Ｕ) / 20, 10)
	;MTARに加わる欲求
	TARGET_DECIDE_REFERENCE_VALUE = MAX((2000 - (1000 + ABL:今回候補:主導度Ｕ)) / 20, 10)

	;---------------------------------------------
	;### 性別組の補正
	;---------------------------------------------
	;MPLYに加わる欲求 性別組補正
	PLAYER_MULTI_SEX_DECIDE_REFERENCE_VALUE = 0
	;MTARに加わる欲求 性別組補正
	TARGET_MULTI_SEX_DECIDE_REFERENCE_VALUE = 0

	;主導者が実行
	IF IS_MPLY(主導者) && IS_MTAR(対象者)
		;相手があなたで今回候補が陥落済み
		IF 対象者 == MASTER && ( TALENT:今回候補:恋慕 || TALENT:今回候補:服従 || TALENT:今回候補:主人 )
			PLAYER_MULTI_SEX_DECIDE_REFERENCE_VALUE = 100
			;今回候補が両刀、あるいは今回候補か相手のどちらかがフタナリ
		ELSEIF TALENT:今回候補:両刀 || (HAS_PENIS(今回候補) && HAS_VAGINA(今回候補)) || (HAS_PENIS(対象者) && HAS_VAGINA(対象者))
			;男両刀や男ふたなりは攻め手に回りやすい
			IF IS_MALE(今回候補)
				PLAYER_MULTI_SEX_DECIDE_REFERENCE_VALUE = 70
				;女両刀や女ふたなりは受け手に回りやすい
			ELSE
				PLAYER_MULTI_SEX_DECIDE_REFERENCE_VALUE = 30
			ENDIF
			;相手が異性ならする側に消極的
		ELSEIF (HAS_PENIS(今回候補) && HAS_VAGINA(対象者)) || (HAS_VAGINA(今回候補) && HAS_PENIS(対象者))
			PLAYER_MULTI_SEX_DECIDE_REFERENCE_VALUE = 70
			;相手が同性ならする側に消極的
		ELSE
			PLAYER_MULTI_SEX_DECIDE_REFERENCE_VALUE = 1
		ENDIF
		;相手があなたで今回候補が陥落済み
		IF 対象者 == MASTER && ( TALENT:今回候補:恋慕 || TALENT:今回候補:服従 || TALENT:今回候補:主人 )
			TARGET_MULTI_SEX_DECIDE_REFERENCE_VALUE = 50
			;今回候補が両刀、あるいは今回候補か相手のどちらかがフタナリ
		ELSEIF TALENT:今回候補:両刀 || (HAS_PENIS(今回候補) && HAS_VAGINA(今回候補)) || (HAS_PENIS(主導者) && HAS_VAGINA(主導者))
			;男両刀や男ふたなりは攻め手に回りやすい
			IF IS_MALE(今回候補)
				TARGET_MULTI_SEX_DECIDE_REFERENCE_VALUE = 30
				;女両刀や女ふたなりは受け手に回りやすい
			ELSE
				TARGET_MULTI_SEX_DECIDE_REFERENCE_VALUE = 70
			ENDIF
			;相手が異性ならされる側に消極的
		ELSEIF (HAS_PENIS(今回候補) && HAS_VAGINA(主導者)) || (HAS_VAGINA(今回候補) && HAS_PENIS(主導者))
			TARGET_MULTI_SEX_DECIDE_REFERENCE_VALUE = 70
			;相手が同性ならされる側に消極的
		ELSE
			TARGET_MULTI_SEX_DECIDE_REFERENCE_VALUE = 1
		ENDIF
		;主導者が対象
	ELSE
		;今回候補が両刀、あるいは今回候補か対象のどちらかがフタナリ
		IF TALENT:今回候補:両刀 || (HAS_PENIS(今回候補) && HAS_VAGINA(今回候補)) || (HAS_PENIS(主導者) && HAS_VAGINA(主導者))
			;男両刀や男ふたなりは攻め手に回りやすい
			IF IS_MALE(今回候補)
				PLAYER_MULTI_SEX_DECIDE_REFERENCE_VALUE = 70
				;女両刀や女ふたなりは受け手に回りやすい
			ELSE
				PLAYER_MULTI_SEX_DECIDE_REFERENCE_VALUE = 30
			ENDIF
			;対象が異性ならする側に消極的
		ELSEIF (HAS_PENIS(今回候補) && HAS_VAGINA(主導者)) || (HAS_VAGINA(今回候補) && HAS_PENIS(主導者))
			PLAYER_MULTI_SEX_DECIDE_REFERENCE_VALUE = 70
			;対象が同性ならする側に消極的
		ELSE
			PLAYER_MULTI_SEX_DECIDE_REFERENCE_VALUE = 1
		ENDIF
		;今回候補が両刀、あるいは今回候補か主導のどちらかがフタナリ
		IF TALENT:今回候補:両刀 || (HAS_PENIS(今回候補) && HAS_VAGINA(今回候補)) || (HAS_PENIS(対象者) && HAS_VAGINA(対象者))
			;男両刀や男ふたなりは攻め手に回りやすい
			IF IS_MALE(今回候補)
				TARGET_MULTI_SEX_DECIDE_REFERENCE_VALUE = 30
				;女両刀や女ふたなりは受け手に回りやすい
			ELSE
				TARGET_MULTI_SEX_DECIDE_REFERENCE_VALUE = 70
			ENDIF
			;相手が異性ならされる側に消極的
		ELSEIF (HAS_PENIS(今回候補) && HAS_VAGINA(対象者)) || (HAS_VAGINA(今回候補) && HAS_PENIS(対象者))
			TARGET_MULTI_SEX_DECIDE_REFERENCE_VALUE = 70
			;主導者が同性ならされる側に消極的
		ELSE
			TARGET_MULTI_SEX_DECIDE_REFERENCE_VALUE = 1
		ENDIF
	ENDIF

	;---------------------------------------------
	;### 状況の補正
	;---------------------------------------------
	;MPLYに加わる欲求 状況補正
	PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 0
	;MTARに加わる欲求 状況補正
	TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 0

	;捕虜調教のターゲットは仲間の補助に回りやすい
	IF FLAG:調教モード == 調教_捕虜調教 && FINDELEMENT(PRISONER_TARGET, 今回候補)
		;主導者が仲間で実行者
		IF FINDELEMENT(PRISONER_TARGET, 主導者) && IS_MPLY(主導者)
			PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
			TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
			;対象者が仲間で実行者
		ELSEIF FINDELEMENT(PRISONER_TARGET, 対象者) && IS_MPLY(対象者)
			PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
			TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
			;主導者が仲間で対象者
		ELSEIF FINDELEMENT(PRISONER_TARGET, 主導者) && IS_MTAR(主導者)
			PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
			TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
			;対象者が仲間で対象者
		ELSEIF FINDELEMENT(PRISONER_TARGET, 対象者) && IS_MTAR(対象者)
			PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
			TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
			;他
		ELSE
			PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
			TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
		ENDIF
		;慰安サービス側は仲間の補助に回りやすい
	ELSEIF FLAG:調教モード == 調教_慰安 && (!TALENT:今回候補:慰安モブ || !CFLAG:今回候補:慰安参加者)
		;慰安者で主導者が仲間で実行者
		IF !TALENT:主導者:慰安モブ && !CFLAG:主導者:慰安参加者 && IS_MPLY(主導者)
			PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
			TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
			;慰安者で対象者が仲間で実行者
		ELSEIF !TALENT:対象者:慰安モブ && !CFLAG:対象者:慰安参加者 && IS_MPLY(対象者)
			PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
			TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
			;慰安者で主導者が仲間で対象者
		ELSEIF !TALENT:主導者:慰安モブ && !CFLAG:主導者:慰安参加者 && IS_MTAR(主導者)
			PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
			TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
			;慰安者で対象者が仲間で対象者
		ELSEIF !TALENT:対象者:慰安モブ && !CFLAG:対象者:慰安参加者 && IS_MTAR(対象者)
			PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
			TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
			;他
		ELSE
			PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
			TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
		ENDIF
		;慰安客は仲間の補助に回りやすい
	ELSEIF FLAG:調教モード == 調教_慰安 && (TALENT:今回候補:慰安モブ || CFLAG:今回候補:慰安参加者)
		;慰安客で主導者が仲間で実行者
		IF (TALENT:主導者:慰安モブ || CFLAG:主導者:慰安参加者) && IS_MPLY(主導者)
			PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
			TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
			;慰安客で対象者が仲間で実行者
		ELSEIF (TALENT:対象者:慰安モブ || CFLAG:対象者:慰安参加者) && IS_MPLY(対象者)
			PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
			TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
			;慰安客で主導者が仲間で対象者
		ELSEIF (TALENT:主導者:慰安モブ || CFLAG:主導者:慰安参加者) && IS_MTAR(主導者)
			PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
			TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
			;慰安客で対象者が仲間で対象者
		ELSEIF (TALENT:対象者:慰安モブ || CFLAG:対象者:慰安参加者) && IS_MTAR(対象者)
			PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
			TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
			;他
		ELSE
			PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 100
			TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
		ENDIF
	ELSE
		PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
		TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 1
	ENDIF

	;---------------------------------------------
	;### 奉仕モード時の状況補正
	;---------------------------------------------
	IF TFLAG:奉仕モード
		IF TCVAR:主導者:奉仕者フラグ && IS_MPLY(主導者)
			SIF TCVAR:今回候補:被奉仕者フラグ
				PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 0
		ELSEIF  TCVAR:主導者:奉仕者フラグ && IS_MTAR(主導者)
			SIF TCVAR:今回候補:被奉仕者フラグ
				TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 0
		ENDIF
		IF TCVAR:主導者:被奉仕者フラグ && IS_MPLY(主導者)
			SIF TCVAR:今回候補:奉仕者フラグ
				PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 0
			;被奉仕者が被奉仕者を対象にとらない、奉仕者が奉仕者を対象に取るケースはあり得る（被奉仕者を楽しませるため）
			SIF TCVAR:今回候補:被奉仕者フラグ
				TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 0
		ELSEIF  TCVAR:主導者:被奉仕者フラグ && IS_MTAR(主導者)
			;ターゲットが被奉仕者の場合被奉仕者は実行に加わらない
			SIF TCVAR:今回候補:被奉仕者フラグ
				PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 0
			;奉仕者と被奉仕者は同時に対象にならない
			SIF TCVAR:今回候補:奉仕者フラグ
				TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 0
		ENDIF
	ENDIF

	;-------------------------------------------------
	;慰安参加者非対象化フラグの考慮
	;-------------------------------------------------
	IF CFLAG:主導者:慰安参加者非対象化 && IS_MPLY(主導者)
		SIF CFLAG:今回候補:慰安参加者
			TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 0
	ELSEIF CFLAG:主導者:慰安参加者非対象化 && IS_MTAR(主導者)
		SIF CFLAG:今回候補:慰安参加者
			PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE = 0
	ENDIF

	;---------------------------------------------
	;### 重みの計算
	;---------------------------------------------
	PLAYER_DECIDE_REFERENCE_VALUE = PLAYER_DECIDE_REFERENCE_VALUE * PLAYER_MULTI_SEX_DECIDE_REFERENCE_VALUE * PLAYER_MULTI_SITUATION_DECIDE_REFERENCE_VALUE
	TARGET_DECIDE_REFERENCE_VALUE = TARGET_DECIDE_REFERENCE_VALUE * TARGET_MULTI_SEX_DECIDE_REFERENCE_VALUE * TARGET_MULTI_SITUATION_DECIDE_REFERENCE_VALUE
	;---------------------------------------------
	;### 補正 性別制限
	;---------------------------------------------
	IF TOSTR_SEX(TALENT:今回候補:性別) == "男性"
		IF PLAYER_DECIDE_REFERENCE_VALUE > 3 && GROUPMATCH(コマンド, ADD_NUM_対象が実行 + GET_TRAINNUM("胸愛撫"), ADD_NUM_対象が実行 + GET_TRAINNUM("乳首吸い"), GET_TRAINNUM("フェラチオ"), ADD_NUM_対象が実行 + GET_TRAINNUM("イラマチオ"), GET_TRAINNUM("パイズリ"), GET_TRAINNUM("泡踊り"), GET_TRAINNUM("素股"), GET_TRAINNUM("尻コキ"), GET_TRAINNUM("亀頭責め手コキ"), GET_TRAINNUM("亀頭責めフェラ"), GET_TRAINNUM("土下座"), GET_TRAINNUM("おねだり"), ADD_NUM_対象が実行 + GET_TRAINNUM("ペニバン口枷"))
			PLAYER_DECIDE_REFERENCE_VALUE /= 3
		ENDIF
		IF TARGET_DECIDE_REFERENCE_VALUE > 3 && GROUPMATCH(コマンド, GET_TRAINNUM("胸愛撫"), GET_TRAINNUM("乳首吸い"), ADD_NUM_対象が実行 + GET_TRAINNUM("フェラチオ"), GET_TRAINNUM("イラマチオ"), ADD_NUM_対象が実行 + GET_TRAINNUM("パイズリ"), ADD_NUM_対象が実行 + GET_TRAINNUM("泡踊り"), ADD_NUM_対象が実行 + GET_TRAINNUM("素股"), ADD_NUM_対象が実行 + GET_TRAINNUM("尻コキ"), ADD_NUM_対象が実行 + GET_TRAINNUM("亀頭責め手コキ"), ADD_NUM_対象が実行 + GET_TRAINNUM("亀頭責めフェラ"), ADD_NUM_対象が実行 + GET_TRAINNUM("土下座"), ADD_NUM_対象が実行 + GET_TRAINNUM("おねだり"), GET_TRAINNUM("ペニバン口枷"))
			TARGET_DECIDE_REFERENCE_VALUE /= 3
		ENDIF
	ENDIF

	;---------------------------------------------
	;### 除外 順番に挿入
	;---------------------------------------------
	;女性かつペニスなしなら問答無用で受け手
	IF IS_FEMALE(今回候補) && !HAS_PENIS(今回候補) && GROUPMATCH(コマンド, GET_TRAINNUM("順番に挿入"), GET_TRAINNUM("順番にＡ挿入"), GET_TRAINNUM("代わる代わる挿入"), GET_TRAINNUM("代わる代わるＡ挿入"))
		PLAYER_DECIDE_REFERENCE_VALUE = 0
	ENDIF

	;---------------------------------------------
	;### 除外 男性のＡを狙う行為
	;---------------------------------------------
	IF TOSTR_SEX(TALENT:今回候補:性別) == "男性" && !GETBIT(CONFIG:11, COM_AUTO_FILTER_男性のＡを狙う行為を許可)
		;カテゴリで殺すもの
		IF GROUPMATCH(COM_AUTO_COM_CATEGORY:コマンド, COM_AUTO_CATEGORY_NUM_性交する, COM_AUTO_CATEGORY_NUM_避妊する, COM_AUTO_CATEGORY_NUM_潤滑追加する)
			TARGET_DECIDE_REFERENCE_VALUE = 0
		ELSEIF GROUPMATCH(COM_AUTO_COM_CATEGORY:コマンド, COM_AUTO_CATEGORY_NUM_性交させる, COM_AUTO_CATEGORY_NUM_避妊させる, COM_AUTO_CATEGORY_NUM_潤滑追加させる)
			PLAYER_DECIDE_REFERENCE_VALUE = 0
		ENDIF
		;コマンドで殺すもの
		IF コマンド < ADD_NUM_対象が実行
			IF GROUPMATCH(コマンド, GET_TRAINNUM("アナル舐め"), GET_TRAINNUM("セルフＡ挿入"), GET_TRAINNUM("アナル愛撫"), GET_TRAINNUM("アナルバイブ"), GET_TRAINNUM("Ａ拡張バルーン"), GET_TRAINNUM("アナルフィスト"), GET_TRAINNUM("触手Ａ挿入"), GET_TRAINNUM("触手Ａ産卵"))
				TARGET_DECIDE_REFERENCE_VALUE = 0
			ELSEIF GROUPMATCH(コマンド, GET_TRAINNUM("Ａ顔面騎乗"), GET_TRAINNUM("顔面騎乗"), GET_TRAINNUM("Ｗ顔面騎乗"))
				PLAYER_DECIDE_REFERENCE_VALUE = 0
			ENDIF
		ELSE
			IF GROUPMATCH(コマンド - ADD_NUM_対象が実行, GET_TRAINNUM("アナル舐め"), GET_TRAINNUM("セルフＡ挿入"), GET_TRAINNUM("アナル愛撫"), GET_TRAINNUM("アナルバイブ"), GET_TRAINNUM("Ａ拡張バルーン"), GET_TRAINNUM("アナルフィスト"), GET_TRAINNUM("触手Ａ挿入"), GET_TRAINNUM("触手Ａ産卵"))
				PLAYER_DECIDE_REFERENCE_VALUE = 0
			ELSEIF GROUPMATCH(コマンド - ADD_NUM_対象が実行, GET_TRAINNUM("Ａ顔面騎乗"), GET_TRAINNUM("顔面騎乗"), GET_TRAINNUM("Ｗ顔面騎乗"))
				TARGET_DECIDE_REFERENCE_VALUE = 0
			ENDIF
		ENDIF
	ENDIF

	;---------------------------------------------
	;### 候補追加
	;---------------------------------------------
	SIF PLAYER_DECIDE_REFERENCE_VALUE > 0
		CALL COM_AUTO_RANDOMIZED_WEIGHTED_VALUE(ASSIST_PLAYER_ID, PLAYER_DECIDE_REFERENCE_VALUE)
	SIF TARGET_DECIDE_REFERENCE_VALUE > 0
		CALL COM_AUTO_RANDOMIZED_WEIGHTED_VALUE(ASSIST_TARGET_ID, TARGET_DECIDE_REFERENCE_VALUE)
	IF PLAYER_DECIDE_REFERENCE_VALUE <= 0 && TARGET_DECIDE_REFERENCE_VALUE <= 0
		DEBUGPRINTFORML      %ANAME(今回候補), MAX_CHARANAME_LENGTH, LEFT%  %TOSTR_SEX(TALENT:今回候補:性別), 6%  実行者の補佐も対象者の補佐も希望しなかった
		BREAK
	ENDIF

	;---------------------------------------------
	;### 結果取得
	;---------------------------------------------
	ASSIST_ID_RESULT = COM_AUTO_RANDOMIZED_WEIGHTED_RESULT()
	IF ASSIST_ID_RESULT != ASSIST_PLAYER_ID && ASSIST_ID_RESULT != ASSIST_TARGET_ID
		DEBUGPRINTFORML      %ANAME(今回候補), MAX_CHARANAME_LENGTH, LEFT%  %TOSTR_SEX(TALENT:今回候補:性別), 6%  実行者の補佐も対象者の補佐も希望しなかった
		BREAK
	ELSEIF ASSIST_ID_RESULT == ASSIST_PLAYER_ID
		CALL ADD_MPLY(今回候補)
		DEBUGPRINTFORM      %ANAME(今回候補), MAX_CHARANAME_LENGTH, LEFT%  %TOSTR_SEX(TALENT:今回候補:性別), 6%
		IF IS_MPLY(主導者)
			DEBUGPRINTFORML   主導者%ANAME(主導者)%の補佐・実行を希望した
		ELSEIF IS_MPLY(対象者)
			DEBUGPRINTFORML   対象者%ANAME(対象者)%の補佐・実行を希望した
		ENDIF
	ELSEIF ASSIST_ID_RESULT == ASSIST_TARGET_ID
		CALL ADD_MTAR(今回候補)
		DEBUGPRINTFORM      %ANAME(今回候補), MAX_CHARANAME_LENGTH, LEFT%  %TOSTR_SEX(TALENT:今回候補:性別), 6%
		IF IS_MTAR(主導者)
			DEBUGPRINTFORML   主導者%ANAME(主導者)%の補佐・対象を希望した
		ELSEIF IS_MTAR(対象者)
			DEBUGPRINTFORML   対象者%ANAME(対象者)%の補佐・対象を希望した
		ENDIF
	ENDIF

	;---------------------------------------------
	;## 実行可否の判定
	;---------------------------------------------
	;コマンド判定フラグON
	COM_ENABLE = 1

	RESULT = 0
	CALL CHECK_COMABLE(コマンド % ADD_NUM_対象が実行)
	IF !RESULT
		;ダメならプレイヤー／ターゲットを外す
		IF コマンド < ADD_NUM_対象が実行
			CALL DEL_MPLY(今回候補)
			CALL DEL_MTAR(今回候補)
		ELSE
			CALL DEL_MTAR(今回候補)
			CALL DEL_MPLY(今回候補)
		ENDIF
		;コマンド判定フラグOFF
		COM_ENABLE = 0
		DEBUGPRINTFORML      判定に失敗したので終える
		BREAK
	ENDIF

	;コマンド判定フラグOFF
	COM_ENABLE = 0
NEXT

RETURN 0

;-------------------------------------------------
;# 第三者命令
;desc  :自動調教時、主導者が第三者に命じる形になるようにする処理
;param :主導者:その回におけるメイン行動者
;PARAM :対象者:その回におけるメイン対象者
;-------------------------------------------------
@AUTO_SET_REMOVE_MAIN(主導者, 対象者, コマンド)
#DIM 主導者
#DIM 対象者
#DIM コマンド
#DIM MTARフラグ

;慰安で主導者が慰安客なら7割
IF FLAG:調教モード == 調教_慰安 && (TALENT:主導者:慰安モブ || CFLAG:主導者:慰安参加者) && RAND:100 < 30
	RETURN 0
	;慰安以外なら3割
ELSEIF RAND:100 < 70
	RETURN 0
ENDIF

IF IS_MTAR(主導者) && MTAR_NUM > 1 && RAND:100 < 50
	CALL DEL_MTAR(主導者)
	MTARフラグ = 1
ELSEIF IS_MPLY(主導者) && MPLY_NUM > 1 && RAND:100 < 50
	CALL DEL_MPLY(主導者)
	MTARフラグ = 0
ENDIF

;コマンド判定フラグON
COM_ENABLE = 1

RESULT = 0
CALL CHECK_COMABLE(コマンド % 1000)
IF !RESULT
	;ダメならプレイヤー／ターゲットを戻す
	IF MTARフラグ
		CALL ADD_MTAR(主導者)
	ELSE
		CALL ADD_MPLY(主導者)
	ENDIF
ENDIF

;コマンド判定フラグOFF
COM_ENABLE = 0


code:
;-------------------------------------------------
;# COM_AUTOSELECT_2_カテゴリの優先度設定
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET
#DIM L_COUNTER

;-------------------------------------------------
;## リセット
;-------------------------------------------------
VARSET COM_AUTO_CATEGORY_PRIORITY, 0

;-------------------------------------------------
;## 各カテゴリの優先度リスト読み込み
;-------------------------------------------------
FOR L_COUNTER, 1, COM_AUTO_CATEGORY_NUM_MAX + 1
	CALLFORM COM_AUTOSELECT_SET_CATEGORY_PRIORITY_{L_COUNTER}(MAIN_PLAYER, MAIN_TARGET)
NEXT

;-------------------------------------------------
;## デバッグ 登録漏れ確認
;-------------------------------------------------
[IF_DEBUG]
DEBUGPRINTFORML
DEBUGPRINTFORML #### DEBUG カテゴリ優先度 登録漏れ確認
FOR L_COUNTER, 1, COM_AUTO_CATEGORY_NUM_MAX + 1
	SIF COM_AUTO_CATEGORY_PRIORITY:L_COUNTER != 0
		CONTINUE
	DEBUGPRINTFORML {L_COUNTER, 4}.%COM_AUTO_N_COM_CATEGORY_NAME(L_COUNTER), 26, LEFT% カテゴリなし
NEXT
[ENDIF]

;-------------------------------------------------
;## デバッグ カテゴリ優先度 基本設定後
;-------------------------------------------------
[IF_DEBUG]
DEBUGPRINTFORML
DEBUGPRINTFORML #### DEBUG カテゴリ優先度 基本設定後
FOR L_COUNTER, 1, COM_AUTO_CATEGORY_NUM_MAX + 1
	IF COM_AUTO_CATEGORY_PRIORITY:L_COUNTER > 0
		DEBUGPRINTFORML {L_COUNTER, 4}.%COM_AUTO_COM_CATEGORY_NAME(L_COUNTER), 26, LEFT% %NUM_FORMAT(COM_AUTO_CATEGORY_PRIORITY:L_COUNTER), 10, RIGHT%
	ENDIF
NEXT
[ENDIF]

;-------------------------------------------------
;## 補正　慰安サービス側
;	慰安のときサービス側は相手にサービスを命令しにくい
;	性交させるや被虐するはどうぞ弄んでください的表現としてありか？
;-------------------------------------------------
{
	IF (FLAG:調教モード == 調教_慰安
		&& !TALENT:MAIN_PLAYER:慰安モブ
		&& !CFLAG:MAIN_PLAYER:慰安参加者)
		|| (TFLAG:奉仕モード && !TCVAR:MAIN_PLAYER:被奉仕者フラグ)
}
	SIF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫させる > 0
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫させる /= 3
	SIF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕させる > 0
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕させる /= 3
	SIF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる > 0
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる /= 3
	SIF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる > 0
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる /= 3
	SIF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる > 0
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる /= 3
	SIF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う > 0
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う /= 3
	SIF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる > 0
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる /= 3
	SIF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する > 0
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する /= 3
	SIF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄させる > 0
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄させる /= 3
	SIF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄させる > 0
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄させる /= 3
	SIF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く加虐する > 0
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く加虐する /= 3
	SIF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる > 0
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる /= 3
ENDIF

;-------------------------------------------------
;## 除外 奉仕に関する除外
;被奉仕者が実行すると不自然なカテゴリを除外する
;-------------------------------------------------
IF TCVAR:MAIN_PLAYER:被奉仕者フラグ
	IF GROUPMATCH(TFLAG:奉仕カテゴリ, 奉仕_口淫, 奉仕_手淫)
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫する = -1
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する = -1
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕する = -1
	ENDIF
	IF GROUPMATCH(TFLAG:奉仕カテゴリ, 奉仕_自慰)
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる *= 2
	ENDIF
	SIF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する > 0
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する /= 3
ENDIF

;-------------------------------------------------
;## 除外 特殊勢力・慰安モブ男性
;	上の指定ではCHECK_SP_SADIST_CHARA（慰安モブは動物以外、特殊勢力は自警団・サキュバス以外）
;	で攻め役を判断し、Ｓ行動の制限をなくしている
;	が、Ｍ行動は特に制限していない。理由はＭな淫乱痴女キャラを制限しないようにするため
;	男性のみ自主的なＭ行動を制限して竿役らしくする、排泄は判断がつかないのでスルー
;-------------------------------------------------
IF IS_MALE(MAIN_PLAYER) && (TALENT:MAIN_PLAYER:特殊勢力素質 || TALENT:MAIN_PLAYER:慰安モブ)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く被虐する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる = -1
ENDIF

;男慰安モブ側が実行なら。対象の場合はこの限りではない
IF TALENT:MAIN_PLAYER:慰安モブ && IS_MALE(MAIN_PLAYER)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる = -1
	;オナホコキ指示をできるようにするには
	;コマンドの優先度設定側で分岐させて道具使わせるを生かす必要あり
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く被虐する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる = -1
ENDIF

;-------------------------------------------------
;## 除外 動物モブ
;	対象なら、キャラ側から避妊させたり道具を使うことはできる
;-------------------------------------------------
IF GROUPMATCH(TALENT:MAIN_PLAYER:慰安モブ, 慰安_キャラ_犬, 慰安_キャラ_豚, 慰安_キャラ_馬, 慰安_キャラ_猿) || IS_ANIMAL(MAIN_PLAYER)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる = -1
	;動物側からイラマはさせたい
	;COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く加虐する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く被虐する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄させる = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄させる = -1
ENDIF
IF GROUPMATCH(TALENT:MAIN_TARGET:慰安モブ, 慰安_キャラ_犬, 慰安_キャラ_豚, 慰安_キャラ_馬, 慰安_キャラ_猿) || IS_ANIMAL(MAIN_TARGET)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く加虐する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く被虐する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる = -1
	;キャラから動物に排泄を求めると散歩やお世話のようになりそうなので制限
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄させる = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄させる = -1
ENDIF

;-------------------------------------------------
;;; ##奉仕モード時の個別カテゴリ補正
;-------------------------------------------------
CALLFORM COM_AUTOSELECT_SET_CATEGORY_PRIORITY_FOR_SERVICE860(MAIN_PLAYER, MAIN_TARGET)

;-------------------------------------------------
;## 除外 おまかせ設定
;-------------------------------------------------
;-------------------------------------------------
;### 男性のＡ狙いを禁止設定
;-------------------------------------------------
IF !GETBIT(CONFIG:11, COM_AUTO_FILTER_男性のＡを狙う行為を許可)
	IF TOSTR_SEX(TALENT:MAIN_PLAYER:性別) == "男性"
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる = -1
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる = -1
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる = -1
	ENDIF
	IF TOSTR_SEX(TALENT:MAIN_TARGET:性別) == "男性"
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊する = -1
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する = -1
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する = -1
	ENDIF
ENDIF

;-------------------------------------------------
;### 過激な暴力を禁止
;-------------------------------------------------
IF GETBIT(CONFIG:11, COM_AUTO_FILTER_過激な暴力を禁止)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く加虐する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く被虐する = -1
ENDIF

;-------------------------------------------------
;### ＳＭを禁止
;-------------------------------------------------
IF GETBIT(CONFIG:11, COM_AUTO_FILTER_ＳＭを禁止)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する = -1
ENDIF

;-------------------------------------------------
;### 大スカを禁止
;-------------------------------------------------
IF GETBIT(CONFIG:11, COM_AUTO_FILTER_大スカを禁止)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄させる = -1
ENDIF

;-------------------------------------------------
;### 小スカを禁止
;-------------------------------------------------
IF GETBIT(CONFIG:11, COM_AUTO_FILTER_小スカを禁止)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄する = -1
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄させる = -1
ENDIF

;-------------------------------------------------
;## 最低優先度
;-------------------------------------------------
FOR L_COUNTER, 1, COM_AUTO_CATEGORY_NUM_MAX + 1
	IF L_COUNTER == 1
		COM_AUTO_CATEGORY_PRIORITY:L_COUNTER = MAX(COM_AUTO_CATEGORY_PRIORITY:L_COUNTER, 2)
	ELSE
		COM_AUTO_CATEGORY_PRIORITY:L_COUNTER = MAX(COM_AUTO_CATEGORY_PRIORITY:L_COUNTER, 0)
	ENDIF
NEXT

;-------------------------------------------------
;## カテゴリの予約補正
;	許可されていれば、そのカテゴリの選択率を大幅に上昇
;	潤滑許可するとローション塗りからの予約行動で性交が出る可能性あり
;	第三者でゴムやローションからの予約発動が起きることがあるので
;	カテゴリが0なら予約発動しないようにした
;-------------------------------------------------
IF TFLAG:30 >= 1 && COM_AUTO_CATEGORY_PRIORITY:(TFLAG:30) > 0
	COM_AUTO_CATEGORY_PRIORITY:(TFLAG:30) += 10000
ENDIF

;-------------------------------------------------
;## デバッグ カテゴリ優先度 補正設定後
;-------------------------------------------------
[IF_DEBUG]
DEBUGPRINTFORML
DEBUGPRINTFORML #### DEBUG カテゴリ優先度 補正設定後
FOR L_COUNTER, 1, COM_AUTO_CATEGORY_NUM_MAX + 1
	IF COM_AUTO_CATEGORY_PRIORITY:L_COUNTER > 0
		DEBUGPRINTFORML {L_COUNTER, 4}.%COM_AUTO_COM_CATEGORY_NAME(L_COUNTER), 26, LEFT% %NUM_FORMAT(COM_AUTO_CATEGORY_PRIORITY:L_COUNTER), 10, RIGHT%
	ENDIF
NEXT
[ENDIF]

RETURN 0

repo_name: pervysquirrelz/erafl

license: unknown


code:
;-------------------------------------------------
;# 01 COM_CATEGORY_NUM 愛撫する
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_1(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫する += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫する += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫する += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫する += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫する += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫する += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫する += AUTO_N_TYPE_魅了(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫する += AUTO_N_TYPE_魅了(MASTER, 0)

;## 性的嗜好補正
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫する && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_愛撫したい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫する *= 3
ENDIF

;## 陥落傾向補正
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫する && TALENT:MAIN_PLAYER:恋慕
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫する *= 2
ENDIF

RETURN 0

;-------------------------------------------------
;# 02 COM_AUTO_CATEGORY_NUM_性交する
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_2(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET
#DIM COM_AUTO_CHECK_FLAG_IS_CATEGORY	;可否フラグ
#DIM FALLEN_FLAG

FALLEN_FLAG = IS_FALLEN_TO_SP_COUNTRY(MAIN_PLAYER) && FLAG:調教モード == 調教_逆調教特殊

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する += AUTO_N_TYPE_魅了(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する += AUTO_N_TYPE_魅了(MASTER, 0)

;## 可否チェック
;可否チェックリセット
VARSET COM_AUTO_CHECK_FLAG_IS_CATEGORY
;潤滑追加チェックリセット
VARSET COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH

;### 対象が慰安モブや特殊勢力
;	特殊勢力の場合、サキュバスや自警団は除く
IF CHECK_SP_SADIST_CHARA(MAIN_PLAYER) || IS_ANIMAL(MAIN_PLAYER)
	;相手が凌辱対象ならお構いなし
	IF CFLAG:MAIN_TARGET:凌辱被害者フラグ
		COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
		;動物は気の赴くがままに
	ELSEIF IS_ANIMAL(MAIN_PLAYER)
		COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
	ENDIF
	;---------------------------------------------
	;対象男性・実行女性
	;---------------------------------------------
	IF IS_MALE(MAIN_TARGET) && IS_FEMALE(MAIN_PLAYER)
		;対象の潤滑・実行の倒錯度800以上・実行の主導度Ｕ800以上・実行のサドが必要
		IF COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_TARGET) && ABL:MAIN_PLAYER:倒錯度 >= 800  - FALLEN_FLAG * 300 && ABL:MAIN_PLAYER:主導度Ｕ >= 800 - FALLEN_FLAG * 300 && GETBIT(TALENT:MAIN_PLAYER:淫乱系, 素質_淫乱_サド)
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;対象の潤滑を満たせば条件を達成する
		ELSEIF ABL:MAIN_PLAYER:倒錯度 >= 800 && ABL:MAIN_PLAYER:主導度Ｕ >= 800 - FALLEN_FLAG * 300 && GETBIT(TALENT:MAIN_PLAYER:淫乱系, 素質_淫乱_サド)
			COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH = 1
		ENDIF
		;---------------------------------------------
		;対象男性・実行男性
		;---------------------------------------------
	ELSEIF IS_MALE(MAIN_TARGET) && IS_MALE(MAIN_PLAYER)
		;対象の潤滑・実行の倒錯度500以上・実行の主導度Ｕ500以上
		IF COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_TARGET) && ABL:MAIN_PLAYER:倒錯度 >= 500 - FALLEN_FLAG * 300 && ABL:MAIN_PLAYER:主導度Ｕ >= 500 - FALLEN_FLAG * 300
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;対象の潤滑を満たせば条件を達成する
		ELSEIF ABL:MAIN_PLAYER:倒錯度 >= 500 - FALLEN_FLAG * 300 && ABL:MAIN_PLAYER:主導度Ｕ >= 500 - FALLEN_FLAG * 300
			COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH = 1
		ENDIF
		;---------------------------------------------
		;対象女性・実行女性
		;---------------------------------------------
	ELSEIF IS_FEMALE(MAIN_TARGET) && IS_FEMALE(MAIN_PLAYER)
		;対象の潤滑・実行の倒錯度100以上・実行の主導度Ｕ100以上
		IF COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_TARGET) && ABL:MAIN_PLAYER:倒錯度 >= 100 - FALLEN_FLAG * 300 && ABL:MAIN_PLAYER:主導度Ｕ >= 300 - FALLEN_FLAG * 300
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;対象の潤滑を満たせば条件を達成する
		ELSEIF ABL:MAIN_PLAYER:倒錯度 >= 100 - FALLEN_FLAG * 300 && ABL:MAIN_PLAYER:主導度Ｕ >= 100 - FALLEN_FLAG * 300
			COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH = 1
		ENDIF
		;---------------------------------------------
		;対象女性・実行男性
		;---------------------------------------------
	ELSEIF IS_FEMALE(MAIN_TARGET) && IS_MALE(MAIN_PLAYER)
		;対象の潤滑
		IF  COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_TARGET)
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;対象の潤滑を満たせば条件を達成する
		ELSE
			COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH = 1
		ENDIF
	ENDIF
	;### 対象が慰安モブや特殊勢力でない
	;	または特殊勢力であってもサキュバスや自警団
ELSE
	;相手が凌辱対象ならお構いなし
	IF CFLAG:MAIN_TARGET:凌辱被害者フラグ
		COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
	ENDIF
	;---------------------------------------------
	;対象男性＆実行女性 逆転するので最も倒錯度と主導度Ｕを要する
	;---------------------------------------------
	IF IS_MALE(MAIN_TARGET) && IS_FEMALE(MAIN_PLAYER)
		;対象の潤滑が不十分ならサド気が必要
		IF !COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_TARGET) && ABL:MAIN_PLAYER:倒錯度 >= 500 - FALLEN_FLAG * 300 && ABL:MAIN_PLAYER:主導度Ｕ >= 500 - FALLEN_FLAG * 300
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;対象の潤滑が充分なら、実行の倒錯度300以上・実行の主導度Ｕ300以上
		ELSEIF COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_TARGET) && ABL:MAIN_PLAYER:倒錯度 >= 300 - FALLEN_FLAG * 300 && ABL:MAIN_PLAYER:主導度Ｕ >= 300 - FALLEN_FLAG * 300
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;奉仕モードは無条件に可
		ELSEIF TFLAG:奉仕モード
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;対象の潤滑を満たせば条件が達成される
		ELSEIF ABL:MAIN_PLAYER:倒錯度 >= 300 - FALLEN_FLAG * 300 && ABL:MAIN_PLAYER:主導度Ｕ >= 300 - FALLEN_FLAG * 300
			COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH = 1
		ENDIF
		;合意済みかつ陥落済みで極度に興奮しており、対象がMASTER
		IF IS_LOVER(MAIN_PLAYER) && TALENT:MAIN_PLAYER:合意 && IS_ESTRUS(MAIN_PLAYER) && MAIN_TARGET == MASTER
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
		ENDIF
		;---------------------------------------------
		;対象男性＆実行男性 男役を好む
		;---------------------------------------------
	ELSEIF IS_MALE(MAIN_TARGET) && IS_MALE(MAIN_PLAYER)
		;対象の潤滑が不十分ならサド気が必要
		IF !COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_TARGET) && ABL:MAIN_PLAYER:倒錯度 >= 100 - FALLEN_FLAG * 300 && ABL:MAIN_PLAYER:主導度Ｕ >= 300 - FALLEN_FLAG * 300
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;奉仕モードは無条件に可
		ELSEIF TFLAG:奉仕モード
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;対象の潤滑が充分なら、実行の主導度Ｕ-100以上
		ELSEIF COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_TARGET) && ABL:MAIN_PLAYER:主導度Ｕ >= -100 - FALLEN_FLAG * 300
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;対象の潤滑を満たせば条件が達成される
		ELSEIF ABL:MAIN_PLAYER:主導度Ｕ >= -100 - FALLEN_FLAG * 300
			COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH = 1
		ENDIF
		;---------------------------------------------
		;対象女性＆実行女双 男役を好む
		;---------------------------------------------
	ELSEIF IS_FEMALE(MAIN_TARGET) && IS_FEMALE(MAIN_PLAYER) && HAS_PENIS(MAIN_PLAYER, 1)
		;対象の潤滑が不十分ならサド気が必要
		IF !COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_TARGET) && ABL:MAIN_PLAYER:倒錯度 >= 100 - FALLEN_FLAG * 300 && ABL:MAIN_PLAYER:主導度Ｕ >= 300 - FALLEN_FLAG * 300
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;奉仕モードは無条件に可
		ELSEIF TFLAG:奉仕モード
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;対象の潤滑が充分なら、実行の主導度Ｕ-100以上
		ELSEIF COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_TARGET) && ABL:MAIN_PLAYER:主導度Ｕ >= -100 - FALLEN_FLAG * 300
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;対象の潤滑を満たせば条件が達成される
		ELSEIF ABL:MAIN_PLAYER:主導度Ｕ >= -100 - FALLEN_FLAG * 300
			COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH = 1
		ENDIF
		;---------------------------------------------
		;対象女性＆実行女性 女役を好む
		;---------------------------------------------
	ELSEIF IS_FEMALE(MAIN_TARGET) && IS_FEMALE(MAIN_PLAYER)
		;対象の潤滑が不十分ならサド気が必要
		IF !COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_TARGET) && ABL:MAIN_PLAYER:倒錯度 >= 300 - FALLEN_FLAG * 300 && ABL:MAIN_PLAYER:主導度Ｕ >= 500 - FALLEN_FLAG * 300
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;奉仕モードは無条件に可
		ELSEIF TFLAG:奉仕モード
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;対象の潤滑が充分なら、実行の倒錯度100以上・実行の主導度Ｕ100以上
		ELSEIF COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_TARGET) && ABL:MAIN_PLAYER:倒錯度 >= 100 - FALLEN_FLAG * 300 && ABL:MAIN_PLAYER:主導度Ｕ >= 100 - FALLEN_FLAG * 300
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;対象の潤滑を満たせば条件が達成される
		ELSEIF ABL:MAIN_PLAYER:倒錯度 >= 100 - FALLEN_FLAG * 300 && ABL:MAIN_PLAYER:主導度Ｕ >= 100 - FALLEN_FLAG * 300
			COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH = 1
		ENDIF
		;---------------------------------------------
		;対象女性＆実行男性
		;---------------------------------------------
	ELSEIF IS_FEMALE(MAIN_TARGET) && IS_MALE(MAIN_PLAYER)
		;対象の潤滑が不十分なら、実行の倒錯度100以上・実行の主導度Ｕ100以上
		IF !COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_TARGET) && ABL:MAIN_PLAYER:倒錯度 >= 100 - FALLEN_FLAG * 300 && ABL:MAIN_PLAYER:主導度Ｕ >= 100 - FALLEN_FLAG * 300
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;奉仕モードは無条件に可
		ELSEIF TFLAG:奉仕モード
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;対象の潤滑が充分なら無条件
		ELSEIF COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_TARGET)
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;対象の潤滑を満たせば条件が達成される
		ELSE
			COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH = 1
		ENDIF
	ENDIF
ENDIF

;## 性的嗜好補正
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する > 0 && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_性交したい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する *= 3
ENDIF

;## 陥落傾向補正
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する > 0 && TALENT:MAIN_PLAYER:恋慕
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する *= 2
ENDIF

;## その他補正
;	挿入状態補正	@IS_INSERT_MUTUAL	3=ARG:1がARG:0のＶに挿入	4=ARG:1がARG:0のＡに挿入
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する > 0 && GROUPMATCH(IS_INSERT_MUTUAL(MAIN_PLAYER, MAIN_TARGET), 3, 4)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する /= 2
ENDIF
;	コンフィグ設定補正 男主人公への逆調教の傾向が我慢させる
;	竿を弄らない設定とコメントされていて性交制限されていたので、雌化かと思い後ろは積極に掘るようにしてみる
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する > 0 && CONFIG:8 == 1 && MAIN_TARGET == MASTER && HAS_PENIS(MAIN_TARGET) && GROUPMATCH(FLAG:調教モード, 調教_逆調教特殊, 調教_逆調教通常, 調教_慰安)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する *= 2
ENDIF
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する > 0 && CFLAG:MAIN_TARGET:排卵誘発剤
	TIMES COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する, 2
ENDIF
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する > 0 && IS_OVULATION(MAIN_TARGET)
	TIMES COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する, 1.3
ENDIF
;	疲労
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する > 0 && BASE:MAIN_PLAYER:体力 <= MAXBASE:MAIN_PLAYER:体力 / 2
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する /= 10
ENDIF
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する > 0 && FLAG:調教モード == 調教_慰安
	TIMES COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する, 2
ENDIF

;## 不可
IF !COM_AUTO_CHECK_FLAG_IS_CATEGORY
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交する = -1
ENDIF

RETURN 0

;-------------------------------------------------
;# 03 COM_AUTO_CATEGORY_NUM_潤滑追加する
;	性交できないとき、避妊できないときの受け皿にも
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_3(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する += AUTO_N_TYPE_魅了(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する += AUTO_N_TYPE_魅了(MASTER, 0)

;## 性的嗜好補正
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する > 0  && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_性交したい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する *= 3
ENDIF

;## 陥落傾向補正
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する > 0 && TALENT:MAIN_PLAYER:恋慕
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する *= 2
ENDIF

;## 特殊素質補正
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する > 0 && TALENT:MAIN_PLAYER:技師
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する *= 2
ENDIF

;## その他補正
;	濡れが足りない
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する > 0 && !COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_TARGET)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する *= 3
ENDIF

;## 不可
; 動物はお構いなし
IF !COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH && !IS_ANIMAL(MAIN_PLAYER)
	IF !GROUPMATCH(TFLAG:奉仕カテゴリ, 奉仕_舌技する, 奉仕_舌技させる)
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加する = -1
	ENDIF
ENDIF

RETURN 0

;-------------------------------------------------
;# 04 COM_AUTO_CATEGORY_NUM_避妊する
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_4(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊する += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊する += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊する += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊する += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊する += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊する += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊する += AUTO_N_TYPE_魅了(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊する += AUTO_N_TYPE_魅了(MASTER, 0)

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊する > 0 && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_性交したい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊する *= 3
ENDIF

;## 陥落傾向
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊する > 0 && TALENT:MAIN_PLAYER:恋慕
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊する *= 2
ENDIF

;## その他補正
;	技師
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊する > 0 && TALENT:MAIN_PLAYER:技師
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊する *= 2
ENDIF

;## 不可
;	特殊勢力や慰安モブ等の攻めキャラあるいは動物
IF CHECK_SP_SADIST_CHARA(MAIN_PLAYER) || GROUPMATCH(TALENT:MAIN_PLAYER:慰安モブ, 慰安_キャラ_犬, 慰安_キャラ_豚, 慰安_キャラ_馬, 慰安_キャラ_猿)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊する = -1
ENDIF
;	実行にＰがない、対象にＶがない
IF !HAS_PENIS(MAIN_PLAYER, 1) || !HAS_VAGINA(MAIN_TARGET, 1)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊する = -1
ENDIF

RETURN 0

;-------------------------------------------------
;# 05 COM_AUTO_CATEGORY_NUM_道具使う
;	同所属・倒錯度100以上・主導度Ｕ100以上
;	違所属・無条件
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_5(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う += GET_PERVERSION_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う += AUTO_N_TYPE_魅了(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う += AUTO_N_TYPE_魅了(MASTER, 0)

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う > 0 && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_道具を使いたい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う *= 3
ENDIF

;## 陥落傾向
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う > 0 && TALENT:MAIN_PLAYER:主人
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う *= 2
ENDIF

;## その他補正
;	技師
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う > 0 && TALENT:MAIN_PLAYER:技師
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う *= 2
ENDIF
;	道具使用の指定されていた慰安モブ
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う > 0 && TALENT:MAIN_PLAYER:慰安モブ == 慰安_キャラ_妖精
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う *= 2
ENDIF

;## 不可
IF !CHECK_SP_SADIST_CHARA(MAIN_PLAYER)
	IF CFLAG:MAIN_PLAYER:所属 == CFLAG:MAIN_TARGET:所属
		IF ABL:MAIN_PLAYER:倒錯度 < 100 || ABL:MAIN_PLAYER:主導度Ｕ < 100
			COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使う = -1
		ENDIF
	ENDIF
ENDIF

RETURN 0

;-------------------------------------------------
;# 06 COM_AUTO_CATEGORY_NUM_加虐する
;	同所属・倒錯度300以上・主導度Ｕ300以上
;	違所属・倒錯度100以上・主導度Ｕ100以上
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_6(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する += GET_PERVERSION_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する += AUTO_N_TYPE_魅了(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する += AUTO_N_TYPE_魅了(MASTER, 0)

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する > 0 && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_虐げたい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する *= 3
ENDIF

;## 陥落傾向
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する > 0 && TALENT:MAIN_PLAYER:主人
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する *= 2
ENDIF

;## その他補正
;	主導度Ｕが高く設定されていた慰安モブ
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する > 0 && GROUPMATCH(TALENT:MAIN_PLAYER:慰安モブ, 慰安_キャラ_天狗, 慰安_キャラ_野盗, 慰安_キャラ_月人)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する *= 2
ENDIF
;## 不可
IF !CHECK_SP_SADIST_CHARA(MAIN_PLAYER) && !GROUPMATCH(TFLAG:奉仕カテゴリ, 奉仕_ＳＭ, 奉仕_ＳＭする, 奉仕_ＳＭさせる)
	IF CFLAG:MAIN_PLAYER:所属 == CFLAG:MAIN_TARGET:所属
		IF ABL:MAIN_PLAYER:倒錯度 < 300 || ABL:MAIN_PLAYER:主導度Ｕ < 300
			COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する = -1
		ENDIF
	ELSE
		IF ABL:MAIN_PLAYER:倒錯度 < 100 || ABL:MAIN_PLAYER:主導度Ｕ < 100
			COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_加虐する = -1
		ENDIF
	ENDIF
ENDIF

RETURN 0

;-------------------------------------------------
;# 07 COM_AUTO_CATEGORY_NUM_酷く加虐する
;	攻め役特殊キャラは除く
;	同所属・倒錯度800以上・主導度Ｕ800以上・サド
;	違所属・倒錯度500以上・主導度Ｕ500以上
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_7(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く加虐する = GET_INITIATIVE_U_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く加虐する += GET_PERVERSION_RANK(MAIN_PLAYER) * 5

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く加虐する > 0 && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_虐げたい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く加虐する *= 3
ENDIF

;## 不可
IF !CHECK_SP_SADIST_CHARA(MAIN_PLAYER)
	IF CFLAG:MAIN_PLAYER:所属 == CFLAG:MAIN_TARGET:所属
		IF !GETBIT(TALENT:MAIN_PLAYER:淫乱系, 素質_淫乱_サド) || ABL:MAIN_PLAYER:倒錯度 < 800 || ABL:MAIN_PLAYER:主導度Ｕ < 800
			COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く加虐する = -1
		ENDIF
	ELSE
		IF ABL:MAIN_PLAYER:倒錯度 < 500 || ABL:MAIN_PLAYER:主導度Ｕ < 500
			COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く加虐する = -1
		ENDIF
	ENDIF
ENDIF

RETURN 0

;-------------------------------------------------
;# 08 COM_AUTO_CATEGORY_NUM_露出する
;	倒錯度300以上 主導度Ｕ-300未満
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_8(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する += GET_PERVERSION_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する += AUTO_N_TYPE_魅了(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する += AUTO_N_TYPE_魅了(MASTER, 0)

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する > 0  && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_露出したい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する *= 3
ENDIF

;## 陥落傾向
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する > 0 && TALENT:MAIN_PLAYER:服従
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する *= 2
ENDIF

;## その他補正
;	名前通りの慰安モブ
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する > 0 && TALENT:MAIN_PLAYER:慰安モブ == 慰安_キャラ_露出狂
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する *= 2
ENDIF

;## 不可
IF !TFLAG:奉仕モード
	IF ABL:MAIN_PLAYER:倒錯度 < 300 || ABL:MAIN_PLAYER:主導度Ｕ >= -300
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出する = -1
	ENDIF
ENDIF

RETURN 0

;-------------------------------------------------
;# 09 COM_AUTO_CATEGORY_NUM_小排泄する
;	排泄1・倒錯度100以上・主導度Ｕが-100未満か主導度が100以上
;	陥落傾向がＳかＭか判別しにくいのでどっちでも
;	四足歩行の動物は制限しない
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_9(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄する += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄する += GET_PERVERSION_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄する += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄する += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄する += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄する += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄する += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄する += AUTO_N_TYPE_魅了(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄する += AUTO_N_TYPE_魅了(MASTER, 0)

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄する > 0 && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_辱められたい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄する *= 3
ENDIF

;## その他補正
;	慰安モブ
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄する > 0 && TALENT:MAIN_PLAYER:慰安モブ == 慰安_キャラ_露出狂
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄する *= 2
ENDIF
;## 不可
IF !CHECK_SP_SADIST_CHARA(MAIN_PLAYER)
	IF !GROUPMATCH(TALENT:MAIN_PLAYER:慰安モブ, 慰安_キャラ_犬, 慰安_キャラ_豚, 慰安_キャラ_馬, 慰安_キャラ_猿) || !IS_ANIMAL(MAIN_PLAYER)
		IF ABL:MAIN_PLAYER:排泄 < 1 || ABL:MAIN_PLAYER:倒錯度 < 100 || (ABL:MAIN_PLAYER:主導度Ｕ > -100 && ABL:MAIN_PLAYER:主導度Ｕ < 100)
			COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄する = -1
		ENDIF
	ENDIF
ENDIF

RETURN 0

;-------------------------------------------------
;# 10 COM_AUTO_CATEGORY_NUM_大排泄する
;	排泄2・倒錯度300以上・主導度Ｕが-300未満か主導度が300以上
;	陥落傾向がＳかＭか判別しにくいのでどっちでも
;	四足歩行の動物は制限しない
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_10(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄する += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄する += GET_PERVERSION_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄する += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄する += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄する += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄する += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄する += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄する += AUTO_N_TYPE_魅了(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄する += AUTO_N_TYPE_魅了(MASTER, 0)

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄する > 0 && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_辱められたい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄する *= 3
ENDIF

;## その他補正
;	慰安モブ
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄する > 0 && TALENT:MAIN_PLAYER:慰安モブ == 慰安_キャラ_露出狂
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄する *= 2
ENDIF

;## 不可
IF !CHECK_SP_SADIST_CHARA(MAIN_PLAYER)
	IF !GROUPMATCH(TALENT:MAIN_PLAYER:慰安モブ, 慰安_キャラ_犬, 慰安_キャラ_豚, 慰安_キャラ_馬, 慰安_キャラ_猿)
		IF ABL:MAIN_PLAYER:排泄 < 2 || ABL:MAIN_PLAYER:倒錯度 < 300 || (ABL:MAIN_PLAYER:主導度Ｕ > -300 && ABL:MAIN_PLAYER:主導度Ｕ < 300)
			COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄する = -1
		ENDIF
	ENDIF
ENDIF

RETURN 0

;-------------------------------------------------
;# 11 COM_AUTO_CATEGORY_NUM_触手を扱う
;	同勢力・魔術知識・倒錯度500以上・主導度Ｕ500以上
;	違勢力・魔術知識・倒錯度300以上・主導度Ｕ300以上
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_11(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱う += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱う += GET_PERVERSION_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱う += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱う += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱う += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱う += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱う += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱う += AUTO_N_TYPE_魅了(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱う += AUTO_N_TYPE_魅了(MASTER, 0)

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱う > 0 && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_触手で犯したい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱う *= 3
ENDIF

;## 陥落傾向
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱う > 0 && TALENT:MAIN_PLAYER:主人
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱う *= 2
ENDIF

;## 不可
IF !TALENT:MAIN_PLAYER:魔術師
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱う = -1
ENDIF
IF !CHECK_SP_SADIST_CHARA(MAIN_PLAYER)
	IF CFLAG:MAIN_PLAYER:所属 == CFLAG:MAIN_TARGET:所属
		IF ABL:MAIN_PLAYER:倒錯度 < 500 || ABL:MAIN_PLAYER:主導度Ｕ < 500
			COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱う = -1
		ENDIF
	ELSE
		IF ABL:MAIN_PLAYER:倒錯度 < 300 || ABL:MAIN_PLAYER:主導度Ｕ < 300
			COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱う = -1
		ENDIF
	ENDIF
ENDIF

RETURN 0

;-------------------------------------------------
;# 12 COM_AUTO_CATEGORY_NUM_愛撫させる
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_12(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫させる += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * -1 * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫させる += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫させる += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫させる += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫させる += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫させる += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫させる += AUTO_N_TYPE_魅了(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫させる += AUTO_N_TYPE_魅了(MASTER, 1)

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫させる > 0 && (GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_愛撫されたい) || GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_奉仕されたい))
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫させる *= 3
ENDIF

;## 陥落傾向
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫させる > 0 && TALENT:MAIN_PLAYER:恋慕
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫させる *= 2
ENDIF

;## 奉仕モード
{
	IF GROUPMATCH(TCVAR:MAIN_PLAYER:奉仕者フラグ
		,奉仕_フェラのみ
		,奉仕_口淫
		,奉仕_愛撫
		,奉仕_手コキのみ
		,奉仕_手淫
		)
}
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_愛撫させる = -1
ENDIF

RETURN 0

;-------------------------------------------------
;# 13 COM_AUTO_CATEGORY_NUM_性交させる
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_13(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET
#DIM COM_AUTO_CHECK_FLAG_IS_CATEGORY	;可否フラグ

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる += AUTO_N_TYPE_魅了(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる += AUTO_N_TYPE_魅了(MASTER, 0)

;## 可否チェック
;可否チェックリセット
VARSET COM_AUTO_CHECK_FLAG_IS_CATEGORY
;潤滑追加チェックリセット
VARSET COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH

;### 奉仕モード
IF TFLAG:奉仕モード && TCVAR:MAIN_PLAYER:奉仕者フラグ
	COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
	;### 対象が慰安モブや特殊勢力
ELSEIF CHECK_SP_SADIST_CHARA(MAIN_TARGET) || IS_ANIMAL(MAIN_TARGET)
	; ;相手が凌辱対象ならお構いなし
	; IF CFLAG:MAIN_PLAYER:凌辱被害者フラグ
	; 	COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
	; 	;動物は気の赴くがままに
	; ELSEIF IS_ANIMAL(MAIN_TARGET)
	; 	COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
	; ENDIF
	;---------------------------------------------
	;実行男性
	;---------------------------------------------
	IF IS_MALE(MAIN_PLAYER)
		;実行の潤滑・実行の倒錯度800以上・実行の主導度Ｕ-800未満・実行のマゾが必要
		IF COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_PLAYER) && ABL:MAIN_PLAYER:倒錯度 >= 800 && ABL:MAIN_PLAYER:主導度Ｕ < -800 && GETBIT(TALENT:MAIN_PLAYER:淫乱系, 素質_淫乱_マゾ)
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;実行の潤滑を満たせば条件を達成する
		ELSEIF ABL:MAIN_PLAYER:倒錯度 >= 800 && ABL:MAIN_PLAYER:主導度Ｕ < -800 && GETBIT(TALENT:MAIN_PLAYER:淫乱系, 素質_淫乱_マゾ)
			COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH = 1
		ENDIF
		;---------------------------------------------
		;実行女性
		;---------------------------------------------
	ELSE
		;実行の潤滑
		IF COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_PLAYER)
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;実行の潤滑を満たせば条件を達成する
		ELSE
			COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH = 1
		ENDIF
	ENDIF
	;### 対象が慰安モブや特殊勢力でない
	;	または特殊勢力であってもサキュバスや自警団
ELSE
	;対象女性＆実行男性 逆転するので最も倒錯度と主導度Ｕマイナスを要する
	IF IS_FEMALE(MAIN_TARGET) && IS_MALE(MAIN_PLAYER)
		;自分の潤滑が不十分ならマゾ気が必要
		IF !COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_PLAYER) && ABL:MAIN_PLAYER:倒錯度 >= 500 && ABL:MAIN_PLAYER:主導度Ｕ < -500
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;自分の潤滑が充分なら、実行の倒錯度300以上・実行の主導度Ｕ-300未満
		ELSEIF COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_PLAYER) && ABL:MAIN_PLAYER:倒錯度 >= 300 && ABL:MAIN_PLAYER:主導度Ｕ < -300
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;実行の潤滑を満たせば条件を達成する
		ELSEIF ABL:MAIN_PLAYER:倒錯度 >= 300 && ABL:MAIN_PLAYER:主導度Ｕ < -300
			COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH = 1
		ENDIF
		;---------------------------------------------
		;対象男性＆実行男性 男役を好む
		;---------------------------------------------
	ELSEIF IS_MALE(MAIN_TARGET) && IS_MALE(MAIN_PLAYER)
		;自分の潤滑が不十分ならマゾ気が必要
		IF !COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_PLAYER) && ABL:MAIN_PLAYER:倒錯度 >= 300 && ABL:MAIN_PLAYER:主導度Ｕ < -500
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;自分の潤滑が充分なら、実行の倒錯度100以上・実行の主導度Ｕ-100未満
		ELSEIF COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_PLAYER) && ABL:MAIN_PLAYER:倒錯度 >= 100 && ABL:MAIN_PLAYER:主導度Ｕ < -300
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;実行の潤滑を満たせば条件を達成する
		ELSEIF ABL:MAIN_PLAYER:倒錯度 >= 100 && ABL:MAIN_PLAYER:主導度Ｕ < -300
			COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH = 1
		ENDIF
		;---------------------------------------------
		;対象女性＆実行女性 女役を好む
		;---------------------------------------------
	ELSEIF IS_FEMALE(MAIN_TARGET) && IS_FEMALE(MAIN_PLAYER)
		;自分の潤滑が不十分ならマゾ気が必要
		IF !COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_PLAYER) && ABL:MAIN_PLAYER:倒錯度 >= 100 && ABL:MAIN_PLAYER:主導度Ｕ < -300
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;自分の潤滑が充分なら、実行の主導度Ｕ100未満
		ELSEIF COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_PLAYER) && ABL:MAIN_PLAYER:主導度Ｕ < 100
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;実行の潤滑を満たせば条件を達成する
		ELSEIF ABL:MAIN_PLAYER:主導度Ｕ < 100
			COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH = 1
		ENDIF
		;---------------------------------------------
		;対象男性＆実行女性
		;---------------------------------------------
	ELSEIF IS_MALE(MAIN_TARGET) && IS_FEMALE(MAIN_PLAYER)
		;自分の潤滑が不十分ならならマゾ気が必要
		IF !COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_PLAYER) && ABL:MAIN_PLAYER:倒錯度 >= 100 && ABL:MAIN_PLAYER:主導度Ｕ < -100
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;自分の潤滑が充分なら無条件
		ELSEIF COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_PLAYER)
			COM_AUTO_CHECK_FLAG_IS_CATEGORY = 1
			;実行の潤滑を満たせば条件を達成する
		ELSE
			COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH = 1
		ENDIF
	ENDIF
ENDIF

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる > 0 && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_性交されたい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる *= 3
ENDIF

;## 陥落傾向
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる > 0 && TALENT:MAIN_PLAYER:恋慕
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる *= 2
ENDIF

;## その他補正
;	挿入状態 @IS_INSERT_MUTUAL	1=ARG:0がARG:1のＶに挿入	2=ARG:0がARG:1のＡに挿入
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる > 0 && GROUPMATCH(IS_INSERT_MUTUAL(MAIN_PLAYER, MAIN_TARGET), 1, 2)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる /= 2
ENDIF
;	疲労
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる > 0 && BASE:MAIN_PLAYER:体力 <= MAXBASE:MAIN_PLAYER:体力 / 2
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる /= 10
ENDIF

;## 不可
IF !COM_AUTO_CHECK_FLAG_IS_CATEGORY
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる = -1
ENDIF
;	コンフィグ設定・男主人公への逆調教の傾向が我慢させる
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる > 0 && CONFIG:8 == 1 && MAIN_TARGET == MASTER && HAS_PENIS(MAIN_TARGET) && GROUPMATCH(FLAG:調教モード, 調教_逆調教特殊, 調教_逆調教通常, 調教_慰安)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_性交させる = -1
ENDIF

RETURN 0

;-------------------------------------------------
;# 14 COM_AUTO_CATEGORY_NUM_潤滑追加させる
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_14(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * -1 * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる += AUTO_N_TYPE_魅了(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる += AUTO_N_TYPE_魅了(MASTER, 1)

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる > 0 && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_性交されたい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる *= 3
ENDIF

;## 陥落傾向
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる > 0 && TALENT:MAIN_PLAYER:恋慕
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる *= 2
ENDIF

;## 特殊素質
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる > 0 && TALENT:MAIN_PLAYER:技師
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる *= 2
ENDIF

;## その他補正
;	濡れが足りない
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる > 0 && !COM_AUTOSELECT_IS_WET_ENOUGH(MAIN_PLAYER)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる *= 3
ENDIF

;## 不可
IF !COM_AUTO_CHECK_FLAG_IS_WET_ENOUGH
	IF !GROUPMATCH(TFLAG:奉仕カテゴリ, 奉仕_舌技する, 奉仕_舌技させる)
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_潤滑追加させる = -1
	ENDIF
ENDIF

RETURN 0

;-------------------------------------------------
;# 15 COM_AUTO_CATEGORY_NUM_避妊させる
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_15(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * -1 * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる += AUTO_N_TYPE_魅了(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる += AUTO_N_TYPE_魅了(MASTER, 1)

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる > 0 && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_性交されたい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる *= 3
ENDIF

;## 陥落傾向
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる > 0 && TALENT:MAIN_PLAYER:恋慕
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる *= 2
ENDIF

;## 特殊素質
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる > 0 && TALENT:MAIN_PLAYER:技師
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる *= 2
ENDIF

;## 不可
IF !HAS_PENIS(MAIN_TARGET, 1) || !HAS_VAGINA(MAIN_PLAYER, 1)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_避妊させる = -1
ENDIF

RETURN 0

;-------------------------------------------------
;# 16 COM_AUTO_CATEGORY_NUM_道具使わせる
;	同所属・無条件
;	違所属・倒錯度100以上・主導度Ｕ100以上
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_16(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * -1 * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる += GET_PERVERSION_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる += AUTO_N_TYPE_魅了(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる += AUTO_N_TYPE_魅了(MASTER, 1)

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる > 0 && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_道具を使われたい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる *= 3
ENDIF

;## 陥落傾向
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる > 0 && TALENT:MAIN_PLAYER:服従
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる *= 2
ENDIF

;## 特殊素質
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる > 0 && TALENT:MAIN_PLAYER:技師
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる *= 2
ENDIF

;## 不可
IF CFLAG:MAIN_PLAYER:所属 != CFLAG:MAIN_TARGET:所属
	IF ABL:MAIN_PLAYER:倒錯度 < 100 || ABL:MAIN_PLAYER:主導度Ｕ >= -100
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_道具使わせる = -1
	ENDIF
ENDIF

RETURN 0

;-------------------------------------------------
;# 17 COM_AUTO_CATEGORY_NUM_被虐する
;	倒錯度300以上・主導度Ｕ-300未満
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_17(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * -1 * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する += GET_PERVERSION_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する += AUTO_N_TYPE_魅了(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する += AUTO_N_TYPE_魅了(MASTER, 1)

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する > 0 && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_虐げられたい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する *= 3
ENDIF

;## 陥落傾向
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する > 0 && TALENT:MAIN_PLAYER:服従
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する *= 2
ENDIF

;## 不可
IF ABL:MAIN_PLAYER:倒錯度 < 300 || ABL:MAIN_PLAYER:主導度Ｕ >= -300
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_被虐する = -1
ENDIF

RETURN 0

;-------------------------------------------------
;# 18 COM_AUTO_CATEGORY_NUM_酷く被虐する
;	倒錯度800以上・主導度Ｕ800以上・マゾ
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_18(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く被虐する = GET_INITIATIVE_U_RANK(MAIN_PLAYER) * -1 * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く被虐する += GET_PERVERSION_RANK(MAIN_PLAYER) * 5

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く被虐する > 0 && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_虐げられたい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く被虐する *= 3
ENDIF

;## 不可
IF ABL:MAIN_PLAYER:倒錯度 < 800 || ABL:MAIN_PLAYER:主導度Ｕ >= -800 && !GETBIT(TALENT:MAIN_PLAYER:淫乱系, 素質_淫乱_マゾ)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_酷く被虐する = -1
ENDIF

RETURN 0

;-------------------------------------------------
;# 19 COM_AUTO_CATEGORY_NUM_露出させる
;	同所属・倒錯度300以上・主導度Ｕ300以上
;	違所属・倒錯度100以上・主導度Ｕ100以上
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_19(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * -1 * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる += GET_PERVERSION_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる += AUTO_N_TYPE_魅了(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる += AUTO_N_TYPE_魅了(MASTER, 1)

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる > 0 && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_辱めたい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる *= 3
ENDIF

;## 陥落傾向
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる > 0 && TALENT:MAIN_PLAYER:主人
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる *= 2
ENDIF

;## 不可
IF !TFLAG:奉仕モード
	IF !CHECK_SP_SADIST_CHARA(MAIN_PLAYER)
		IF CFLAG:MAIN_PLAYER:所属 == CFLAG:MAIN_TARGET:所属
			IF ABL:MAIN_PLAYER:倒錯度 < 300 || ABL:MAIN_PLAYER:主導度Ｕ < 300
				COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる = -1
			ENDIF
		ELSE
			IF ABL:MAIN_PLAYER:倒錯度 < 100 || ABL:MAIN_PLAYER:主導度Ｕ < 100
				COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_露出させる = -1
			ENDIF
		ENDIF
	ENDIF
ENDIF

RETURN 0

;-------------------------------------------------
;# 20 COM_AUTO_CATEGORY_NUM_小排泄させる
;	排泄1・倒錯度100以上・主導度Ｕが-100未満か主導度が100以上
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_20(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄させる += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * -1 * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄させる += GET_PERVERSION_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄させる += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄させる += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄させる += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄させる += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄させる += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄させる += AUTO_N_TYPE_魅了(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄させる += AUTO_N_TYPE_魅了(MASTER, 1)

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄させる > 0 && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_辱めたい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄させる *= 3
ENDIF

;## 不可
IF !CHECK_SP_SADIST_CHARA(MAIN_PLAYER)
	IF ABL:MAIN_PLAYER:排泄 < 1 || ABL:MAIN_PLAYER:倒錯度 < 100 || (ABL:MAIN_PLAYER:主導度Ｕ >= -100 && ABL:MAIN_PLAYER:主導度Ｕ < 100)
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_小排泄させる = -1
	ENDIF
ENDIF

RETURN 0

;-------------------------------------------------
;# 21 COM_AUTO_CATEGORY_NUM_大排泄させる
;	排泄2・倒錯度300以上・主導度Ｕが-300未満か主導度が300以上
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_21(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄させる += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * -1 * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄させる += GET_PERVERSION_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄させる += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄させる += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄させる += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄させる += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄させる += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄させる += AUTO_N_TYPE_魅了(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄させる += AUTO_N_TYPE_魅了(MASTER, 1)

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄させる > 0  && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_辱めたい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄させる *= 3
ENDIF

;## 不可
IF !CHECK_SP_SADIST_CHARA(MAIN_PLAYER)
	IF ABL:MAIN_PLAYER:排泄 < 2 || ABL:MAIN_PLAYER:倒錯度 < 300 || (ABL:MAIN_PLAYER:主導度Ｕ >= -300 && ABL:MAIN_PLAYER:主導度Ｕ < 300)
		COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_大排泄させる = -1
	ENDIF
ENDIF

RETURN 0

;-------------------------------------------------
;# 22 COM_AUTO_CATEGORY_NUM_触手を扱わせる
;	魔術知識・倒錯度500以上・主導度Ｕ-500未満
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_22(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * -1 * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる += GET_PERVERSION_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる += AUTO_N_TYPE_魅了(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる += AUTO_N_TYPE_魅了(MASTER, 1)

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる > 0  && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_触手で犯されたい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる *= 3
ENDIF

;## 陥落傾向
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる > 0 && TALENT:MAIN_PLAYER:服従
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる *= 2
ENDIF

;## 不可
IF !TALENT:MAIN_TARGET:魔術師
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる = -1
ENDIF
IF ABL:MAIN_PLAYER:倒錯度 < 500 || ABL:MAIN_PLAYER:主導度Ｕ >= -500
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_触手を扱わせる = -1
ENDIF

RETURN 0

;-------------------------------------------------
;# 23 COM_AUTO_CATEGORY_NUM_説得
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_23(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET
#DIM L_COUNTER
#DIM L_COUNTER_CHECK

;## 基礎
;TFLAG:調教経過時間 現在時間
IF FLAG:調教モード == 調教_逆調教通常 && CFLAG:MAIN_PLAYER:所属 != CFLAG:MAIN_TARGET:所属 && TFLAG:調教経過時間 >= 5 && FLAG:勧誘経過期間 > 3
	L_COUNTER_CHECK = 4
	FOR L_COUNTER, 0, COM_AUTO_CATEGORY_NUM_MAX + 1
		L_COUNTER_CHECK += MAX(COM_AUTO_CATEGORY_PRIORITY:L_COUNTER, 0)
	NEXT
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_説得 = LIMIT(FLAG:勧誘経過期間 * 20, 0, 90)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_説得 = L_COUNTER_CHECK * COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_説得 / (100 - COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_説得)
ELSE
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_説得 = -1
ENDIF
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_説得 <= 0
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_説得 = -1
ENDIF

;DEBUGPRINTFORML      FLAG:勧誘経過期間 {FLAG:勧誘経過期間}期

;-------------------------------------------------
;# 24 COM_CATEGORY_NUM 奉仕する
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_24(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕する += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕する += AUTO_N_TYPE_活発(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕する += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕する += AUTO_N_TYPE_クール(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕する += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕する += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕する += AUTO_N_TYPE_魅了(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕する += AUTO_N_TYPE_魅了(MASTER, 0)

;## 性的嗜好補正
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕する && GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_奉仕したい)
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕する *= 3
ENDIF

;## 陥落傾向補正
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕する && TALENT:MAIN_PLAYER:恋慕
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕する *= 2
ENDIF

RETURN 0

;-------------------------------------------------
;# 25 COM_AUTO_CATEGORY_NUM_奉仕させる
;-------------------------------------------------
@COM_AUTOSELECT_SET_CATEGORY_PRIORITY_25(MAIN_PLAYER, MAIN_TARGET)
#DIM MAIN_PLAYER
#DIM MAIN_TARGET

;## 基礎
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕させる += GET_INITIATIVE_U_RANK(MAIN_PLAYER) * -1 * 5
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕させる += AUTO_N_TYPE_活発(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕させる += AUTO_N_TYPE_大人しい(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕させる += AUTO_N_TYPE_クール(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕させる += AUTO_N_TYPE_凛とした(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕させる += AUTO_N_TYPE_遊び人(MAIN_PLAYER, 1)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕させる += AUTO_N_TYPE_魅了(MAIN_PLAYER, 0)
COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕させる += AUTO_N_TYPE_魅了(MASTER, 1)

;## 性的嗜好
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕させる > 0 && (GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_奉仕されたい) || GETBIT(SEXUAL_PREFERENCE:MAIN_PLAYER:0, 性的嗜好_奉仕されたい))
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕させる *= 3
ENDIF

;## 陥落傾向
IF COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕させる > 0 && TALENT:MAIN_PLAYER:恋慕
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕させる *= 2
ENDIF

;## 奉仕モード
{
	IF GROUPMATCH(TCVAR:MAIN_PLAYER:奉仕者フラグ
		,奉仕_フェラのみ
		,奉仕_口淫
		,奉仕_愛撫
		,奉仕_手コキのみ
		,奉仕_手淫
		)
}
	COM_AUTO_CATEGORY_PRIORITY:COM_AUTO_CATEGORY_NUM_奉仕させる = -1
ENDIF

RETURN 0