code:
;-------------------------------------------------
;コマンドを実行できるか判定する関数(ARG:0はキャラ番号)
;各コマンドのCOM_ORDERを呼び出し、成功なら1を、失敗なら0を返す
;-------------------------------------------------
@COM_ORDER_COMMON
#DIM FIRST_LINE
FIRST_LINE = LINECOUNT
;おまかせフラグが立っているなら無視
IF TFLAG:おまかせ中
	RETURN 1
ENDIF
;ダミーコマンド実行は実行判定をしない
IF FLAG:DO_DUMMYCOM > 0
	RETURN 1
ENDIF

SIF TFLAG:リアクションコマンド実行 || TFLAG:割込コマンド実行
	REDRAW 0

LOCAL:2 = 1
FOR LOCAL:0, 0, MPLY_NUM
	LOCAL:1 = MPLY:(LOCAL:0)

	IF LOCAL:1 != MASTER
		RESULT = 0
		;各コマンドの固有実行判定
		PRINTFORM %SNAME(LOCAL:1), MAX_CHARANAME_LENGTH, LEFT%:
		TRYCALLFORM COM_ORDER_PLAYER{SELECTCOM}(LOCAL:1)
		IF RESULT
			;判定結果を表示
			PRINTFORML  = {TCVAR:(LOCAL:1):判定値} %TOSTR_COMPARE(TCVAR:(LOCAL:1):判定値, TCVAR:(LOCAL:1):実行値)% 実行値{TCVAR:(LOCAL:1):実行値}

			;実行できない場合
			IF TCVAR:(LOCAL:1):判定値 < TCVAR:(LOCAL:1):実行値
				PRINTFORMW 　　⇒　失敗
				;実行判定失敗口上呼び出し
				CALL KOJO_EVENT(LOCAL:1, 150)
				LOCAL:2 = 0
			ENDIF
		ELSE
			PRINTFORML 判定無し
		ENDIF
	ENDIF
NEXT

FOR LOCAL:0, 0, MTAR_NUM
	LOCAL:1 = MTAR:(LOCAL:0)

	IF LOCAL:1 != MASTER
		RESULT = 0
		;各コマンドの固有実行判定
		PRINTFORM %SNAME(LOCAL:1), MAX_CHARANAME_LENGTH, LEFT%:
		TRYCALLFORM COM_ORDER_TARGET{SELECTCOM}(LOCAL:1)
		IF RESULT
			;判定結果を表示
			PRINTFORML  = {TCVAR:(LOCAL:1):判定値} %TOSTR_COMPARE(TCVAR:(LOCAL:1):判定値, TCVAR:(LOCAL:1):実行値)% 実行値{TCVAR:(LOCAL:1):実行値}

			;実行できない場合
			IF TCVAR:(LOCAL:1):判定値 < TCVAR:(LOCAL:1):実行値
				PRINTFORMW 　　⇒　失敗
				;実行判定失敗口上呼び出し
				CALL KOJO_EVENT(LOCAL:1, 150)
				LOCAL:2 = 0
			ENDIF
		ELSE
			PRINTFORML 判定無し
		ENDIF
	ENDIF
NEXT
SIF FIRST_LINE != LINECOUNT
	CALL COLOR_LINE

;COM_ORDERの判定結果出力メッセージをリアクションで表示すると煩わしいので出力後に無理やり消去してしまう
IF TFLAG:リアクションコマンド実行 || TFLAG:割込コマンド実行
	CLEARLINE LINECOUNT - FIRST_LINE
	REDRAW 1
ENDIF

RETURN LOCAL:2

;-------------------------------------------------
;COM_ORDER用の表示＆判定値加算
;ARG:0=キャラ番号、ARGS:1=表示する文字列、ARG:2=加算する判定値
;-------------------------------------------------
@COM_ORDER_ELEMENT(ARG:0, ARGS:1, ARG:2)
#DIM 判定値を表示
IF TCVAR:(ARG:0):判定値 == -10000
	TCVAR:(ARG:0):判定値 = 0
ELSE
	PRINT  +
ENDIF
PRINTFORM %ARGS:1%({ARG:2})
TCVAR:(ARG:0):判定値 += ARG:2

;-------------------------------------------------
;汎用的なコマンドの実行判定(判定値はTFLAG:46で返す)
;非常に基本的な要素(好感度・依存度・従属度・機嫌)のみ
;ARG:0=キャラ番号
;-------------------------------------------------
@COM_ORDER_BASE(ARG:0)
IF CFLAG:(ARG:0):好感度 >= 50000
	LOCAL:0 = (CFLAG:(ARG:0):好感度 - 50000) / 10000 + 120
ELSEIF CFLAG:(ARG:0):好感度 >= 10000
	LOCAL:0 = (CFLAG:(ARG:0):好感度 - 10000) / 2000 + 100
ELSEIF CFLAG:(ARG:0):好感度 >= 3000
	LOCAL:0 = (CFLAG:(ARG:0):好感度 - 3000) / 350 + 80
ELSEIF CFLAG:(ARG:0):好感度 >= 1500
	LOCAL:0 = (CFLAG:(ARG:0):好感度 - 1500) / 75 + 60
ELSE
	LOCAL:0 = MAX(CFLAG:(ARG:0):好感度 / 25, 0)
ENDIF

IF CFLAG:(ARG:0):依存度 >= 50000
	LOCAL:1 = (CFLAG:(ARG:0):依存度 - 50000) / 20000 + 60
ELSEIF CFLAG:(ARG:0):依存度 >= 10000
	LOCAL:1 = (CFLAG:(ARG:0):依存度 - 10000) / 4000 + 50
ELSEIF CFLAG:(ARG:0):依存度 >= 3000
	LOCAL:1 = (CFLAG:(ARG:0):依存度 - 3000) / 700 + 40
ELSEIF CFLAG:(ARG:0):依存度 >= 1500
	LOCAL:1 = (CFLAG:(ARG:0):依存度 - 1500) / 150 + 30
ELSE
	LOCAL:1 = MAX(CFLAG:(ARG:0):依存度 / 50, 0)
ENDIF

IF CFLAG:(ARG:0):従属度 >= 50000
	LOCAL:2 = (CFLAG:(ARG:0):従属度 - 50000) / 10000 + 120
ELSEIF CFLAG:(ARG:0):従属度 >= 10000
	LOCAL:2 = (CFLAG:(ARG:0):従属度 - 10000) / 2000 + 100
ELSEIF CFLAG:(ARG:0):従属度 >= 3000
	LOCAL:2 = (CFLAG:(ARG:0):従属度 - 3000) / 350 + 80
ELSEIF CFLAG:(ARG:0):従属度 >= 1500
	LOCAL:2 = (CFLAG:(ARG:0):従属度 - 1500) / 75 + 60
ELSE
	LOCAL:2 = MAX(CFLAG:(ARG:0):従属度 / 25, 0)
ENDIF

IF CFLAG:(ARG:0):支配度 >= 50000
	LOCAL:3 = (CFLAG:(ARG:0):支配度 - 50000) / 10000 + 120
ELSEIF CFLAG:(ARG:0):支配度 >= 10000
	LOCAL:3 = (CFLAG:(ARG:0):支配度 - 10000) / 2000 + 100
ELSEIF CFLAG:(ARG:0):支配度 >= 3000
	LOCAL:3 = (CFLAG:(ARG:0):支配度 - 3000) / 350 + 80
ELSEIF CFLAG:(ARG:0):支配度 >= 1500
	LOCAL:3 = (CFLAG:(ARG:0):支配度 - 1500) / 75 + 60
ELSE
	LOCAL:3 = MAX(CFLAG:(ARG:0):支配度 / 25, 0)
ENDIF

LOCAL:4 = MAX(LOCAL:0, LOCAL:2, LOCAL:3)
LOCAL:0 = LOCAL:4 + (LOCAL:0 + LOCAL:2 + LOCAL:3 - LOCAL:4) / 4

IF FLAG:調教モード == 調教_居住区
	LOCAL:0 = LOCAL:0 / 3 ; "好感度・従属度・支配度の実効値補正"
	LOCAL:1 = LOCAL:1 / 3 ; "依存度の実効値補正"
ENDIF

IF IS_PARTICIPATE_TRAIN(MASTER)
	CALL COM_ORDER_ELEMENT(ARG:0, "好感度・従属度・支配度", LOCAL:0)
	CALL COM_ORDER_ELEMENT(ARG:0, "依存度", LOCAL:1)
ENDIF

;機嫌の影響
LOCAL:0 = 0
SELECTCASE TOSTR_EMOTION(ARG:0)
	CASE "幸"
		LOCAL:0 = 30
	CASE "悦"
		LOCAL:0 = 20
	CASE "良"
		LOCAL:0 = 10
	CASE "恨"
		IF TALENT:(ARG:0):子供人質
			LOCAL:0 = -35
		ELSE
			LOCAL:0 = -50
		ENDIF
	CASE "怒"
		IF TALENT:(ARG:0):子供人質
			LOCAL:0 = -14
		ELSE
			LOCAL:0 = -20
		ENDIF
	CASE "憤"
		IF TALENT:(ARG:0):子供人質
			LOCAL:0 = -7
		ELSE
			LOCAL:0 = -10
		ENDIF
	CASE "鬱"
		LOCAL:0 = -15
	CASE "悲"
		LOCAL:0 = -10
	CASE "憂"
		LOCAL:0 = -5
	CASE "狂"
		LOCAL:0 = 30
	CASE "恐"
		LOCAL:0 = 20
	CASE "怯"
		LOCAL:0 = 8
ENDSELECT
CALL COM_ORDER_ELEMENT(ARG:0, @"機嫌<%TOSTR_EMOTION(ARG:0)%>", LOCAL:0)

;-------------------------------------------------
;汎用的なコマンドの実行判定(判定値はTFLAG:46で返す)
;ARG:0=キャラ番号
;-------------------------------------------------
@COM_ORDER(ARG:0)
;好感度・依存度・従属度・機嫌の考慮
CALL COM_ORDER_BASE(ARG:0)

IF IS_SP_COUNTRY_CHARA(ARG:0)
	CALL COM_ORDER_ELEMENT(ARG:0, "特殊勢力キャラ", 100)
ENDIF

IF IS_FALLEN_TO_SP_COUNTRY(ARG:0) && IS_SP_COUNTRY(CFLAG:MASTER:所属)
	CALL COM_ORDER_ELEMENT(ARG:0, "特殊勢力に陥落", 100)
ENDIF

IF CFLAG:(ARG:0):慰安モブ && !CFLAG:(ARG:0):ゲストモブ
	CALL COM_ORDER_ELEMENT(ARG:0, "慰安モブ", 100)
ENDIF

IF CFLAG:(ARG:0):スケベモブ
	CALL COM_ORDER_ELEMENT(ARG:0, "スケベモブ", 100)
ENDIF

IF TALENT:(ARG:0):チョロイン
	CALL COM_ORDER_ELEMENT(ARG:0, "チョロイン", 20)
ENDIF

IF TALENT:(ARG:0):反抗的
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "反抗的", -4)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "反抗的", -5)
	ENDIF
ENDIF
IF TALENT:(ARG:0):気丈
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "気丈", -4)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "気丈", -5)
	ENDIF
ENDIF
IF TALENT:(ARG:0):素直
	CALL COM_ORDER_ELEMENT(ARG:0, "素直", 5)
ENDIF
IF TALENT:(ARG:0):プライド高い
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "プライド高い", -11)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "プライド高い", -15)
	ENDIF
ENDIF
IF TALENT:(ARG:0):プライド低い
	CALL COM_ORDER_ELEMENT(ARG:0, "プライド低い", 5)
ENDIF
IF TALENT:(ARG:0):好奇心
	CALL COM_ORDER_ELEMENT(ARG:0, "好奇心", 5)
ENDIF
IF TALENT:(ARG:0):保守的
	;ウフフ中
	IF FLAG:ウフフフラグ
		IF TALENT:(ARG:0):子供人質
			CALL COM_ORDER_ELEMENT(ARG:0, "保守的", -7)
		ELSE
			CALL COM_ORDER_ELEMENT(ARG:0, "保守的", -10)
		ENDIF
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "保守的", -5)
	ENDIF
ENDIF
IF TALENT:(ARG:0):目立ちたがり
	CALL COM_ORDER_ELEMENT(ARG:0, "目立ちたがり", 2)
ENDIF
IF TALENT:(ARG:0):孤高
	CALL COM_ORDER_ELEMENT(ARG:0, "孤高", -(20 * KOKOU_RATE(ARG:0) / 100))
ENDIF
IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫乱) && FLAG:ウフフフラグ
	CALL COM_ORDER_ELEMENT(ARG:0, "淫乱", 5)
ENDIF

;COM_ORDERでやってる
IF TALENT:(ARG:0):親愛
	CALL COM_ORDER_ELEMENT(ARG:0, "親愛", 30)
ELSEIF TALENT:(ARG:0):恋慕
	CALL COM_ORDER_ELEMENT(ARG:0, "恋慕", 15)
ELSEIF TALENT:(ARG:0):親友
	CALL COM_ORDER_ELEMENT(ARG:0, "親友", 15)
ENDIF
IF TALENT:(ARG:0):恋人
	CALL COM_ORDER_ELEMENT(ARG:0, "恋人", 10)
ENDIF

IF TALENT:(ARG:0):隷属
	CALL COM_ORDER_ELEMENT(ARG:0, "隷属", 30)
ELSEIF TALENT:(ARG:0):服従
	CALL COM_ORDER_ELEMENT(ARG:0, "服従", 15)
ENDIF

IF TALENT:(ARG:0):烙印
	CALL COM_ORDER_ELEMENT(ARG:0, "烙印", 10)
ENDIF

IF TALENT:(ARG:0):所有者
	CALL COM_ORDER_ELEMENT(ARG:0, "所有者", 30)
ELSEIF TALENT:(ARG:0):主人
	CALL COM_ORDER_ELEMENT(ARG:0, "主人", 15)
ENDIF

IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_精液便女)
	CALL COM_ORDER_ELEMENT(ARG:0, "精液便女", 20)
ENDIF

IF GETBIT(TALENT:MASTER:淫乱系, 素質_淫乱_精液便女)
	CALL COM_ORDER_ELEMENT(ARG:0, "主人公が精液便女", 5)
ENDIF

IF TALENT:(ARG:0):プライド高い
	LOCAL:0 = 4
	SIF TALENT:(ARG:0):子供人質
		LOCAL:0 -= 1
ELSEIF TALENT:(ARG:0):プライド低い
	LOCAL:0 = 1
ELSE
	LOCAL:0 = 2
ENDIF

IF MARK:(ARG:0):既成事実 >= 1
	CALL COM_ORDER_ELEMENT(ARG:0, @"既成事実Lv{MARK:(ARG:0):既成事実}", MARK:(ARG:0):既成事実 * 3 * LOCAL:0)
ENDIF

;同性
IF IS_SAMESEX(MASTER, ARG:0)
	;ウフフ中
	IF FLAG:ウフフフラグ
		IF !TALENT:(ARG:0):両刀
			CALL COM_ORDER_ELEMENT(ARG:0, "同性", -5)
		ENDIF
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "同性", 5)
	ENDIF

	;男性
	IF IS_MALE(ARG:0)
		CALL COM_ORDER_ELEMENT(ARG:0, @"ＢＬLv{ABL:(ARG:0):ＢＬ}", ABL:(ARG:0):ＢＬ * 3)
		;女性
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, @"レズLv{ABL:(ARG:0):レズ}", ABL:(ARG:0):レズ * 3)
	ENDIF
ENDIF

IF TALENT:MASTER:魅惑
	CALL COM_ORDER_ELEMENT(ARG:0, "主人公の魅惑", 6)
ENDIF
IF TALENT:MASTER:謎の魅力
	CALL COM_ORDER_ELEMENT(ARG:0, "主人公の謎の魅力", 6)
ENDIF

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

IF TFLAG:桃源香使用中
	CALL COM_ORDER_ELEMENT(ARG:0, "桃源香", 8)
ENDIF

;麻薬は薬物依存が高いほど効果が薄い
IF TCVAR:(ARG:0):麻薬
	CALL COM_ORDER_ELEMENT(ARG:0, "麻薬", MAX(50 / (CFLAG:(ARG:0):薬物依存 / 20), 1))
ENDIF

;CFLAG薬物依存を所持しており、麻薬を消費していないと、禁断症状で逆に実効値が下がる
IF !TCVAR:(ARG:0):麻薬 && CFLAG:(ARG:0):薬物依存
	IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_薬物中毒)
		CALL COM_ORDER_ELEMENT(ARG:0, "薬の禁断症状", CFLAG:(ARG:0):薬物依存 / 3 * -1)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "薬の禁断症状", CFLAG:(ARG:0):薬物依存 / 8 * -1)
	ENDIF
ENDIF

;誘蛾の色香
CALL SKILL_GET_LEVEL(ARG:0, スキル_大分類_性技, "SEDUCTION")
IF RESULT
	CALL COM_ORDER_ELEMENT(ARG:0, @"誘蛾の色香LV{RESULT}", 5 * RESULT)
ENDIF

IF MAXBASE:(ARG:0):精神力 > 0
	LOCAL:0 = BASE:(ARG:0):精神力 * 100 / MAXBASE:(ARG:0):精神力
	IF LOCAL:0 < 0
		CALL COM_ORDER_ELEMENT(ARG:0, "精神力低下", 60)
	ELSEIF LOCAL:0 <= 50
		CALL COM_ORDER_ELEMENT(ARG:0, "精神力低下", 50)
	ELSEIF LOCAL:0 <= 75
		CALL COM_ORDER_ELEMENT(ARG:0, "精神力低下", 25)
	ENDIF
ENDIF

IF TCVAR:(ARG:0):催眠中 > 0
	LOCAL:0 = MAX(ABL:MASTER:催眠 + ABL:(ARG:0):催眠 / 2, 1) * 15
	CALL COM_ORDER_ELEMENT(ARG:0, "催眠術", LOCAL:0)
ENDIF

;血縁関係
IF IS_FATHER(ARG:0, MASTER) || IS_MOTHER(ARG:0, MASTER) || IS_FATHER(MASTER, ARG:0) || IS_MOTHER(MASTER, ARG:0)
	CALL COM_ORDER_ELEMENT(ARG:0, "親子", 20)
ELSEIF IS_PURE_BROTHER(ARG:0, MASTER)
	CALL COM_ORDER_ELEMENT(ARG:0, "兄弟姉妹", 20)
ENDIF

;-------------------------------------------------
;膣性交の実行判定(Ｐ側)
;-------------------------------------------------
@COM_ORDER_VSEX_P(ARG:0)
;共通部分
CALL COM_ORDER(ARG:0)

CALL COM_ORDER_ELEMENT(ARG:0, @"欲望Lv{ABL:(ARG:0):欲望}", ABL:(ARG:0):欲望 * 4)
CALL COM_ORDER_ELEMENT(ARG:0, @"Ｃ感Lv{ABL:(ARG:0):Ｃ感}", ABL:(ARG:0):Ｃ感 * 1)
CALL COM_ORDER_ELEMENT(ARG:0, @"奉仕Lv{ABL:(ARG:0):奉仕}", ABL:(ARG:0):奉仕 * 2)
CALL COM_ORDER_ELEMENT(ARG:0, @"性交Lv{ABL:(ARG:0):性交}", ABL:(ARG:0):性交 * 5)

LOCAL:0 = GET_PALAMLV(PALAM:(ARG:0):欲情)
CALL COM_ORDER_ELEMENT(ARG:0, @"欲情Lv{LOCAL:0}", LOCAL:0 * 4)

IF IS_SP_COUNTRY_CHARA(ARG:0)
	CALL COM_ORDER_ELEMENT(ARG:0, "特殊勢力キャラ", 100)
ENDIF

IF IS_FALLEN_TO_SP_COUNTRY(ARG:0) && IS_SP_COUNTRY(CFLAG:MASTER:所属)
	CALL COM_ORDER_ELEMENT(ARG:0, "特殊勢力に陥落", 100)
ENDIF

IF TALENT:(ARG:0):チョロイン
	CALL COM_ORDER_ELEMENT(ARG:0, "チョロイン", 20)
ENDIF

IF TALENT:(ARG:0):恥じらい
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "恥じらい", -1)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "恥じらい", -2)
	ENDIF
ENDIF
IF TALENT:(ARG:0):快感の否定
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "快感の否定", -4)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "快感の否定", -5)
	ENDIF
ENDIF
IF TALENT:(ARG:0):女嫌い
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "女嫌い", -5)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "女嫌い", -7)
	ENDIF
ENDIF
IF TALENT:(ARG:0):童貞
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "童貞", -4)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "童貞", -5)
	ENDIF
ENDIF
IF TALENT:(ARG:0):一線越えない
	IF TALENT:(ARG:0):童貞
		IF TALENT:(ARG:0):子供人質
			CALL COM_ORDER_ELEMENT(ARG:0, "一線越えない", -14)
		ELSE
			CALL COM_ORDER_ELEMENT(ARG:0, "一線越えない", -20)
		ENDIF
	ELSE
		IF TALENT:(ARG:0):子供人質
			CALL COM_ORDER_ELEMENT(ARG:0, "一線越えない", -7)
		ELSE
			CALL COM_ORDER_ELEMENT(ARG:0, "一線越えない", -10)
		ENDIF
	ENDIF
ENDIF

IF TCVAR:(ARG:0):媚薬
	CALL COM_ORDER_ELEMENT(ARG:0, "媚薬", 6)
ENDIF

;合意
IF !TALENT:(ARG:0):合意 && !TALENT:(ARG:0):親友
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "合意なし", -14)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "合意なし", -20)
	ENDIF
ENDIF

;-------------------------------------------------
;膣性交の実行判定(Ｖ側) ※双頭バイブのときはARG:1に1を設定
;-------------------------------------------------
@COM_ORDER_VSEX_V(ARG:0, ARG:1 = 0)
;共通部分
CALL COM_ORDER(ARG:0)

CALL COM_ORDER_ELEMENT(ARG:0, @"欲望Lv{ABL:(ARG:0):欲望}", ABL:(ARG:0):欲望 * 3)
CALL COM_ORDER_ELEMENT(ARG:0, @"Ｖ感Lv{ABL:(ARG:0):Ｖ感}", ABL:(ARG:0):Ｖ感 * 2)
CALL COM_ORDER_ELEMENT(ARG:0, @"奉仕Lv{ABL:(ARG:0):奉仕}", ABL:(ARG:0):奉仕 * 3)
CALL COM_ORDER_ELEMENT(ARG:0, @"性交Lv{ABL:(ARG:0):性交}", ABL:(ARG:0):性交 * 5)

IF IS_SP_COUNTRY_CHARA(ARG:0)
	CALL COM_ORDER_ELEMENT(ARG:0, "特殊勢力キャラ", 100)
ENDIF

IF IS_FALLEN_TO_SP_COUNTRY(ARG:0) && IS_SP_COUNTRY(CFLAG:MASTER:所属)
	CALL COM_ORDER_ELEMENT(ARG:0, "特殊勢力に陥落", 100)
ENDIF

IF TALENT:(ARG:0):チョロイン
	CALL COM_ORDER_ELEMENT(ARG:0, "チョロイン", 20)
ENDIF

IF PALAM:(ARG:0):潤滑 < PALAMLV:5
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "潤滑不足", -4)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "潤滑不足", -5)
	ENDIF
ENDIF

LOCAL:0 = GET_PALAMLV(PALAM:(ARG:0):欲情)
CALL COM_ORDER_ELEMENT(ARG:0, @"欲情Lv{LOCAL:0}", LOCAL:0 * 4)

IF TALENT:(ARG:0):恥じらい
	CALL COM_ORDER_ELEMENT(ARG:0, "恥じらい", -2)
ENDIF
IF TALENT:(ARG:0):快感の否定
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "快感の否定", -4)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "快感の否定", -5)
	ENDIF
ENDIF
IF ARG:1
	IF TALENT:(ARG:0):女嫌い
		IF TALENT:(ARG:0):子供人質
			CALL COM_ORDER_ELEMENT(ARG:0, "女嫌い", -5)
		ELSE
			CALL COM_ORDER_ELEMENT(ARG:0, "女嫌い", -7)
		ENDIF
	ENDIF
ELSE
	IF TALENT:(ARG:0):男嫌い
		IF TALENT:(ARG:0):子供人質
			CALL COM_ORDER_ELEMENT(ARG:0, "男嫌い", -5)
		ELSE
			CALL COM_ORDER_ELEMENT(ARG:0, "男嫌い", -7)
		ENDIF
	ENDIF
ENDIF
IF TALENT:(ARG:0):処女
	CALL COM_ORDER_ELEMENT(ARG:0, "処女", -20)
ENDIF
IF TALENT:(ARG:0):一線越えない
	IF TALENT:(ARG:0):処女
		CALL COM_ORDER_ELEMENT(ARG:0, "一線越えない", -20)
	ELSE
		IF TALENT:(ARG:0):子供人質
			CALL COM_ORDER_ELEMENT(ARG:0, "一線越えない", -7)
		ELSE
			CALL COM_ORDER_ELEMENT(ARG:0, "一線越えない", -10)
		ENDIF
	ENDIF
ENDIF

IF TCVAR:(ARG:0):媚薬
	CALL COM_ORDER_ELEMENT(ARG:0, "媚薬", 6)
ENDIF

;合意
IF !TALENT:(ARG:0):合意 && !TALENT:(ARG:0):親友
	CALL COM_ORDER_ELEMENT(ARG:0, "合意なし", -20)
ENDIF

;-------------------------------------------------
;アナルセックスの実行判定(Ｐ側)
;-------------------------------------------------
@COM_ORDER_ASEX_P(ARG:0)
;共通部分
CALL COM_ORDER(ARG:0)

CALL COM_ORDER_ELEMENT(ARG:0, @"欲望Lv{ABL:(ARG:0):欲望}", ABL:(ARG:0):欲望 * 4)
CALL COM_ORDER_ELEMENT(ARG:0, @"Ｃ感Lv{ABL:(ARG:0):Ｃ感}", ABL:(ARG:0):Ｃ感 * 1)
CALL COM_ORDER_ELEMENT(ARG:0, @"奉仕Lv{ABL:(ARG:0):奉仕}", ABL:(ARG:0):奉仕 * 2)
CALL COM_ORDER_ELEMENT(ARG:0, @"性交Lv{ABL:(ARG:0):性交}", ABL:(ARG:0):性交 * 5)

IF IS_SP_COUNTRY_CHARA(ARG:0)
	CALL COM_ORDER_ELEMENT(ARG:0, "特殊勢力キャラ", 100)
ENDIF

IF IS_FALLEN_TO_SP_COUNTRY(ARG:0) && IS_SP_COUNTRY(CFLAG:MASTER:所属)
	CALL COM_ORDER_ELEMENT(ARG:0, "特殊勢力に陥落", 100)
ENDIF

IF TALENT:(ARG:0):チョロイン
	CALL COM_ORDER_ELEMENT(ARG:0, "チョロイン", 20)
ENDIF

LOCAL:0 = GET_PALAMLV(PALAM:(ARG:0):欲情)
CALL COM_ORDER_ELEMENT(ARG:0, @"欲情Lv{LOCAL:0}", LOCAL:0 * 4)

IF TALENT:(ARG:0):恥じらい
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "恥じらい", -1)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "恥じらい", -2)
	ENDIF
ENDIF
IF TALENT:(ARG:0):快感の否定
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "快感の否定", -4)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "快感の否定", -5)
	ENDIF
ENDIF
IF TALENT:(ARG:0):童貞
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "童貞", -4)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "童貞", -5)
	ENDIF
ENDIF
IF TALENT:(ARG:0):一線越えない
	IF TALENT:(ARG:0):童貞
		IF TALENT:(ARG:0):子供人質
			CALL COM_ORDER_ELEMENT(ARG:0, "一線越えない", -14)
		ELSE
			CALL COM_ORDER_ELEMENT(ARG:0, "一線越えない", -20)
		ENDIF

	ELSE
		IF TALENT:(ARG:0):子供人質
			CALL COM_ORDER_ELEMENT(ARG:0, "一線越えない", -7)
		ELSE
			CALL COM_ORDER_ELEMENT(ARG:0, "一線越えない", -10)
		ENDIF
	ENDIF
ENDIF

IF TCVAR:(ARG:0):媚薬
	CALL COM_ORDER_ELEMENT(ARG:0, "媚薬", 6)
ENDIF

;合意
IF !TALENT:(ARG:0):合意 && !TALENT:(ARG:0):親友
	CALL COM_ORDER_ELEMENT(ARG:0, "合意なし", -20)
ENDIF

;-------------------------------------------------
;アナルセックスの実行判定(Ａ側)
;-------------------------------------------------
@COM_ORDER_ASEX_A(ARG:0)
;共通部分
CALL COM_ORDER(ARG:0)

CALL COM_ORDER_ELEMENT(ARG:0, @"欲望Lv{ABL:(ARG:0):欲望}", ABL:(ARG:0):欲望 * 3)
CALL COM_ORDER_ELEMENT(ARG:0, @"Ａ感Lv{ABL:(ARG:0):Ａ感}", ABL:(ARG:0):Ａ感 * 3)
CALL COM_ORDER_ELEMENT(ARG:0, @"奉仕Lv{ABL:(ARG:0):奉仕}", ABL:(ARG:0):奉仕 * 3)
CALL COM_ORDER_ELEMENT(ARG:0, @"性交Lv{ABL:(ARG:0):性交}", ABL:(ARG:0):性交 * 4)

IF IS_SP_COUNTRY_CHARA(ARG:0)
	CALL COM_ORDER_ELEMENT(ARG:0, "特殊勢力キャラ", 100)
ENDIF

IF IS_FALLEN_TO_SP_COUNTRY(ARG:0) && IS_SP_COUNTRY(CFLAG:MASTER:所属)
	CALL COM_ORDER_ELEMENT(ARG:0, "特殊勢力に陥落", 100)
ENDIF
IF TALENT:(ARG:0):チョロイン
	CALL COM_ORDER_ELEMENT(ARG:0, "チョロイン", 20)
ENDIF

IF PALAM:(ARG:0):潤滑 < PALAMLV:5
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "潤滑不足", -4)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "潤滑不足", -5)
	ENDIF
ENDIF

LOCAL:0 = GET_PALAMLV(PALAM:(ARG:0):欲情)
CALL COM_ORDER_ELEMENT(ARG:0, @"欲情Lv{LOCAL:0}", LOCAL:0 * 4)

IF TALENT:(ARG:0):恥じらい
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "恥じらい", -1)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "恥じらい", -2)
	ENDIF
ENDIF
IF TALENT:(ARG:0):快感の否定
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "快感の否定", -4)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "快感の否定", -5)
	ENDIF
ENDIF
IF TALENT:(ARG:0):一線越えない
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "一線越えない", -4)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "一線越えない", -5)
	ENDIF
ENDIF

IF TCVAR:(ARG:0):媚薬
	CALL COM_ORDER_ELEMENT(ARG:0, "媚薬", 6)
ENDIF

;合意
IF !TALENT:(ARG:0):合意 && !TALENT:(ARG:0):親友
	IF TALENT:(ARG:0):子供人質
		CALL COM_ORDER_ELEMENT(ARG:0, "合意なし", -14)
	ELSE
		CALL COM_ORDER_ELEMENT(ARG:0, "合意なし", -20)
	ENDIF
ENDIF


code:
;各コマンドがどのタブに入るのかを設定

;◎ウフフ中
; 0=愛撫 1=性交 2=道具 3=ＳＭ 4=羞恥 5=触手 6=特殊

;◎非ウフフ
; 0=交流 1=訓練・仕事 6=特殊 9=居住区交流 10=居住区交流・性接触
;
;TODO
;⇒最終的にこのファイルは廃止し、各コマンドファイル側に関数を持たせてたい
;段階的に移植
;
;愛撫
@COM_CATEGORY0
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 0
ELSE
    RETURN 10
ENDIF

;胸愛撫
@COM_CATEGORY1
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 0
ELSE
    RETURN 10
ENDIF

;クンニ
@COM_CATEGORY2
RETURN 0

;アナル愛撫
@COM_CATEGORY4
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 0
ELSE
    RETURN 10
ENDIF

;泡踊り
@COM_CATEGORY5
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 0
ELSE
    RETURN 10
ENDIF

;尻尾挿入
@COM_CATEGORY6
RETURN 0

;尻尾Ａ挿入
@COM_CATEGORY7
RETURN 0

;アナル舐め
@COM_CATEGORY8
RETURN 0

;乳首吸い
@COM_CATEGORY9
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 0
ELSE
    RETURN 10
ENDIF

;手コキ
@COM_CATEGORY10
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 0
ELSE
    RETURN 10
ENDIF

;フェラチオ
@COM_CATEGORY11
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 0
ELSE
    RETURN 10
ENDIF
;パイズリ
@COM_CATEGORY12
RETURN 0

;足コキ
@COM_CATEGORY14
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 0
ELSE
    RETURN 10
ENDIF

;オナホコキ
@COM_CATEGORY16
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 0
ELSE
    RETURN 10
ENDIF

;尻尾コキ
@COM_CATEGORY17
RETURN 0

;髪コキ
@COM_CATEGORY18
RETURN 0

;玉舐め
@COM_CATEGORY19
RETURN 0

;キス
@COM_CATEGORY20
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 0
ELSE
    RETURN 10
ENDIF

;貝合わせ
@COM_CATEGORY21
RETURN 1

;双頭バイブ
@COM_CATEGORY22
RETURN 1

;兜合わせ
@COM_CATEGORY23
RETURN 1

;指フェラ
@COM_CATEGORY24
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 0
ELSE
    RETURN 10
ENDIF

;ニプルファック
@COM_CATEGORY25
RETURN 0

;玉揉み
@COM_CATEGORY26
RETURN 0

;乳首責め
@COM_CATEGORY27
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 0
ELSE
    RETURN 10
ENDIF

;正常位
@COM_CATEGORY30
RETURN 1

;後背位
@COM_CATEGORY31
RETURN 1

;対面座位
@COM_CATEGORY32
RETURN 1

;背面座位
@COM_CATEGORY33
RETURN 1

;騎乗位
@COM_CATEGORY34
RETURN 1

;背面騎乗位
@COM_CATEGORY35
RETURN 1

;二本挿入
@COM_CATEGORY36
RETURN 1

;側位挿入
@COM_CATEGORY37
RETURN 1

;屈曲位位挿入
@COM_CATEGORY38
RETURN 1

;駅弁
@COM_CATEGORY39
RETURN 1

;背面駅弁
@COM_CATEGORY52
RETURN 1

;立ちバック
@COM_CATEGORY160
RETURN 1

;Ａ正常位
@COM_CATEGORY40
RETURN 11

;Ａ後背位
@COM_CATEGORY41
RETURN 11

;Ａ対面座位
@COM_CATEGORY42
RETURN 11

;Ａ背面座位
@COM_CATEGORY43
RETURN 11

;Ａ騎乗位
@COM_CATEGORY44
RETURN 11

;Ａ背面騎乗位
@COM_CATEGORY45
RETURN 11

;二本A挿入
@COM_CATEGORY46
RETURN 11

;A側位挿入
@COM_CATEGORY47
RETURN 11

;屈曲位挿入
@COM_CATEGORY48
RETURN 11

;A駅弁
@COM_CATEGORY49
RETURN 11

;A背面駅弁
@COM_CATEGORY53
RETURN 11

;A立ちバック
@COM_CATEGORY161
RETURN 11

;ペニバン装着
@COM_CATEGORY50
RETURN 1

;しゅちにくりん
@COM_CATEGORY51
RETURN 1

;順番に挿入
@COM_CATEGORY55
RETURN 1

;順番にＡ挿入
@COM_CATEGORY56
RETURN 11

;代わる代わる挿入
@COM_CATEGORY57
RETURN 1

;代わる代わるＡ挿入
@COM_CATEGORY58
RETURN 11

;ローター
@COM_CATEGORY60
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 2
ELSE
    RETURN 12
ENDIF

;バイブ
@COM_CATEGORY61
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 2
ELSE
    RETURN 12
ENDIF

;アナルバイブ
@COM_CATEGORY62
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 2
ELSE
    RETURN 12
ENDIF

;クリキャップ
@COM_CATEGORY63
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 2
ELSE
    RETURN 12
ENDIF

;ニプルキャップ
@COM_CATEGORY64
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 2
ELSE
    RETURN 12
ENDIF

;Ｖ拡張バルーン
@COM_CATEGORY65
RETURN 2

;Ａ拡張バルーン
@COM_CATEGORY66
RETURN 2

;搾乳機
@COM_CATEGORY67
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 2
ELSE
    RETURN 12
ENDIF

;口枷ペニバン
@COM_CATEGORY68
RETURN 2

;ローション
@COM_CATEGORY70
RETURN 2

;媚薬
@COM_CATEGORY71
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 2
ELSE
    RETURN 12
ENDIF

;排卵誘発剤
@COM_CATEGORY72
RETURN 2

;メイガスの夜
@COM_CATEGORY73
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 2
ELSE
    RETURN 12
ENDIF

;麻薬
@COM_CATEGORY74
RETURN 2

;コンドーム
@COM_CATEGORY75
RETURN 2

;桃源香
@COM_CATEGORY76
RETURN 2

;自家受精
@COM_CATEGORY77
RETURN 2

;ペニスリボン
@COM_CATEGORY78
RETURN 2

;脅す
@COM_CATEGORY80
RETURN 3

;スパンキング
@COM_CATEGORY81
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 3
ELSE
    RETURN 12
ENDIF

;鞭
@COM_CATEGORY82
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 3
ELSE
    RETURN 12
ENDIF

;針
@COM_CATEGORY83
RETURN 3

;フィストファック
@COM_CATEGORY87
RETURN 3

;アナルフィスト
@COM_CATEGORY88
RETURN 3

;平手打ち
@COM_CATEGORY89
RETURN 3

;イラマチオ
@COM_CATEGORY90
RETURN 3

;ピアシング
@COM_CATEGORY91
RETURN 3

;タトゥー
@COM_CATEGORY92
RETURN 3

;鼻フック
@COM_CATEGORY93
RETURN 3

;首絞め
@COM_CATEGORY94
RETURN 3

;腹パン
@COM_CATEGORY97
RETURN 3

;遠隔調教
@COM_CATEGORY98
RETURN 3

;首輪
@COM_CATEGORY99
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 3
ELSE
    RETURN 12
ENDIF

;自慰
@COM_CATEGORY100
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 4
ELSE
    RETURN 10
ENDIF

;Ｐ自慰
@COM_CATEGORY120
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 4
ELSE
    RETURN 10
ENDIF

;顔面騎乗
@COM_CATEGORY101
RETURN 4

;Ａ顔面騎乗
@COM_CATEGORY102
RETURN 4

;電気按摩
@COM_CATEGORY103
RETURN 4

;足を舐める
@COM_CATEGORY104
RETURN 4

;Ｗ顔面騎乗
@COM_CATEGORY105
RETURN 4

;亀頭責め手コキ
@COM_CATEGORY106
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 0
ELSE
    RETURN 10
ENDIF

;亀頭責めフェラ
@COM_CATEGORY107
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 0
ELSE
    RETURN 10
ENDIF

;セルフ挿入
@COM_CATEGORY108
RETURN 4

;セルフ挿入アナル
@COM_CATEGORY109
RETURN 4

;土下座
@COM_CATEGORY110
RETURN 4

;おねだり
@COM_CATEGORY111
RETURN 4

;露出プレイ
@COM_CATEGORY112
RETURN 4

;陰毛管理
@COM_CATEGORY113
RETURN 4

;身体に落書き
@COM_CATEGORY114
RETURN 4

;撮影
@COM_CATEGORY115
RETURN 4

;セルフオナホコキ
@COM_CATEGORY116
RETURN 4

;セルフフェラ
@COM_CATEGORY117
RETURN 4

;秘貝拡張
@COM_CATEGORY118
RETURN 4

;アナル拡張
@COM_CATEGORY119
RETURN 4

;放尿する
@COM_CATEGORY130
RETURN 4

;尿を掛ける
@COM_CATEGORY131
RETURN 4

;口内放尿
@COM_CATEGORY132
RETURN 4

;利尿剤
@COM_CATEGORY140
RETURN 4

;浣腸
@COM_CATEGORY141
RETURN 4

;浣腸＆プラグ
@COM_CATEGORY142
RETURN 4

;放屁する
@COM_CATEGORY150
RETURN 4

;顔騎放屁
@COM_CATEGORY151
RETURN 4

;尿道カテーテル
@COM_CATEGORY170
RETURN 2

;尿道指挿入れ
@COM_CATEGORY171
RETURN 0

;尿道挿入
@COM_CATEGORY172
RETURN 1

;触手召喚
@COM_CATEGORY200
RETURN 5

;触手挿入
@COM_CATEGORY201
RETURN 5

;触手Ａ挿入
@COM_CATEGORY202
RETURN 5

;触手クリ責め
@COM_CATEGORY203
RETURN 5

;触手胸愛撫
@COM_CATEGORY204
RETURN 5

;触手オナホ
@COM_CATEGORY205
RETURN 5

;触手コキ
@COM_CATEGORY206
RETURN 5

;触手搾乳
@COM_CATEGORY207
RETURN 5

;触手緊縛
@COM_CATEGORY208
RETURN 5

;触手口辱
@COM_CATEGORY210
RETURN 5

;触手オナニー
@COM_CATEGORY211
RETURN 5

;触手産卵
@COM_CATEGORY212
RETURN 5

;触手Ａ産卵
@COM_CATEGORY213
RETURN 5

;触手乳腺開発
@COM_CATEGORY214
RETURN 5

;触手尿道挿入
@COM_CATEGORY215
RETURN 5

;触手尿道産卵
@COM_CATEGORY216
RETURN 5

;欲望に従う
@COM_CATEGORY290
RETURN 6

;おまかせする
@COM_CATEGORY291
RETURN 6

;なにもしない
@COM_CATEGORY292
RETURN 6

;搾精する
@COM_CATEGORY293
RETURN 6

;忠誠を誓わせるＲ
@COM_CATEGORY298
RETURN 6

;忠誠を誓わせる
@COM_CATEGORY299
RETURN 6

;会話
@COM_CATEGORY300
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 7
ELSE
    RETURN 9
ENDIF

;身体訓練
@COM_CATEGORY301
RETURN 8

;護身訓練
@COM_CATEGORY302
RETURN 8

;勉強
@COM_CATEGORY303
RETURN 8

;政務
@COM_CATEGORY304
RETURN 8

;警邏
@COM_CATEGORY305
RETURN 8

;歌唱訓練
@COM_CATEGORY306
RETURN 8

;料理
@COM_CATEGORY307
RETURN 8

;猥談
@COM_CATEGORY309
RETURN 7

;酒を飲む
@COM_CATEGORY310
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 7
ELSE
    RETURN 9
ENDIF

;蜂蜜水
@COM_CATEGORY311
RETURN 7

;スキンシップ
@COM_CATEGORY320
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 7
ELSE
    RETURN 9
ENDIF

;頭を撫でる
@COM_CATEGORY321
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 7
ELSE
    RETURN 9
ENDIF

;髪を梳く
@COM_CATEGORY322
RETURN 7

;櫛で梳かす
@COM_CATEGORY323
RETURN 7

;甘い言葉
@COM_CATEGORY324
RETURN 7

;見つめあう
@COM_CATEGORY325
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 7
ELSE
    RETURN 9
ENDIF

;お腹の音を聴く
@COM_CATEGORY326
RETURN 7

;抱きしめる
@COM_CATEGORY327
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト && !FLAG:ウフフフラグ
    RETURN 7
ELSEIF GROUPMATCH(FLAG:調教モード, 調教_閨, 調教_捕虜調教)
    RETURN 0
ELSE
    RETURN 9
ENDIF

@COM_CATEGORY328
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 7
ELSE
    RETURN 9
ENDIF

;日常フェラ
@COM_CATEGORY330
RETURN 7

;日常フェラ
@COM_CATEGORY331
RETURN 7

;日常フェラ
@COM_CATEGORY332
RETURN 7

;日常フェラ
@COM_CATEGORY333
RETURN 7

; ;日常Ｃ自慰
; @COM_CATEGORY334
; IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
;     RETURN 7
; ELSE
;     RETURN 10
; ENDIF

; ;日常Ｐ自慰
; @COM_CATEGORY335
; IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
;     RETURN 7
; ELSE
;     RETURN 10
; ENDIF

;バードキス
@COM_CATEGORY340
RETURN 7

;ソフトキス
@COM_CATEGORY341
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 7
ELSE
    RETURN 9
ENDIF

;ディープキス
@COM_CATEGORY342
RETURN 7

;服屋に入る
@COM_CATEGORY350
RETURN 7

;食事
@COM_CATEGORY351
RETURN 7

;本屋に入る
;@COM_CATEGORY352
;RETURN 7

;水浴び
@COM_CATEGORY354
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 7
ELSE
    RETURN 9
ENDIF

;泳ぐ
@COM_CATEGORY355
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 7
ELSE
    RETURN 9
ENDIF

;花冠を作る
@COM_CATEGORY356
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 7
ELSE
    RETURN 9
ENDIF

;狩りをする
@COM_CATEGORY357
RETURN 7

;背中を流す
@COM_CATEGORY358
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 7
ELSE
    RETURN 9
ENDIF

;二人で出掛ける
@COM_CATEGORY390
RETURN 7

;移動
@COM_CATEGORY391
RETURN 7

;帰る
@COM_CATEGORY392
RETURN 7

;なりゆきまかせ
@COM_CATEGORY393
RETURN 6

;告白する(調教中)
@COM_CATEGORY398
RETURN 6

;告白する
@COM_CATEGORY399
RETURN 6

;武術を教える
@COM_CATEGORY500
RETURN 7

;兵法を教える
@COM_CATEGORY501
RETURN 7

;政治を教える
@COM_CATEGORY502
RETURN 7

;歌の練習
@COM_CATEGORY503
RETURN 7

;料理を作る
@COM_CATEGORY504
RETURN 7

;兵法を教える
@COM_CATEGORY505
RETURN 7

;性の知識を教える
@COM_CATEGORY550
RETURN 6

;自国に誘う
@COM_CATEGORY551
RETURN 6

;記憶を断ち切らせる
@COM_CATEGORY554
RETURN 6

;拉致
@COM_CATEGORY555
RETURN 6

;催眠術
@COM_CATEGORY556
RETURN 6

;懐中時計
@COM_CATEGORY557
RETURN 6

;;ハウジング関連コマンド
;待機
@COM_CATEGORY700
RETURN 9
;会話する
; @COM_CATEGORY701
; RETURN 9
;一緒に遊ぶ
@COM_CATEGORY703
RETURN 9
;食事をとる
@COM_CATEGORY704
RETURN 9
;休憩をとる
@COM_CATEGORY705
RETURN 9
;運動する
@COM_CATEGORY706
RETURN 9
;模擬戦
@COM_CATEGORY707
RETURN 9
;入浴する
@COM_CATEGORY708
RETURN 9
;演奏する
@COM_CATEGORY720
RETURN 9
;踊る
@COM_CATEGORY721
RETURN 9
;勉強する
@COM_CATEGORY722
RETURN 9
;伐採する
@COM_CATEGORY750
RETURN 9
;採掘する
@COM_CATEGORY751
RETURN 9
;クラフト
@COM_CATEGORY752
RETURN 9
;狩猟
@COM_CATEGORY753
RETURN 9
;採集
@COM_CATEGORY754
RETURN 9
;購入
@COM_CATEGORY759
RETURN 9
;押し倒す
@COM_CATEGORY851
RETURN 10
;服を破る
@COM_CATEGORY854
IF FLAG:調教モード != 調教_居住区 && FLAG:調教モード != 調教_クエスト
    RETURN 3
ELSE
    RETURN 12
ENDIF
;着替える
@COM_CATEGORY855
IF GROUPMATCH(FLAG:調教モード, 調教_閨, 調教_捕虜調教)
    RETURN 0
ELSE
    RETURN 9
ENDIF
;押し倒す
@COM_CATEGORY860
RETURN 10

;撤退
@COM_CATEGORY900
RETURN 13

repo_name: napo/erafl

license: unknown


code:
; @COM_NAME900
; RESULTS =

; @COM_ABLE900
; RETURN 1

; @COM900
; RETURN 1


code:
;各コマンドを主導実行するのに必要な性知識レベルを定義

;愛撫
@COM_KNOWLEDGE_LEVEL0
RETURN 0

;胸愛撫
@COM_KNOWLEDGE_LEVEL1
RETURN 1

;クンニ
@COM_KNOWLEDGE_LEVEL2
RETURN 2

;指挿入れ
@COM_KNOWLEDGE_LEVEL3
RETURN 1

;アナル愛撫
@COM_KNOWLEDGE_LEVEL4
RETURN 3

;泡踊り
@COM_KNOWLEDGE_LEVEL5
RETURN 3

;尻尾挿入
@COM_KNOWLEDGE_LEVEL6
RETURN 3

;尻尾Ａ挿入
@COM_KNOWLEDGE_LEVEL7
RETURN 3

;アナル舐め
@COM_KNOWLEDGE_LEVEL8
RETURN 3

;乳首吸い
@COM_KNOWLEDGE_LEVEL9
RETURN 1

;手コキ
@COM_KNOWLEDGE_LEVEL10
RETURN 1

;フェラチオ
@COM_KNOWLEDGE_LEVEL11
RETURN 2

;パイズリ
@COM_KNOWLEDGE_LEVEL12
RETURN 2

;素股
@COM_KNOWLEDGE_LEVEL13
RETURN 2

;足コキ
@COM_KNOWLEDGE_LEVEL14
RETURN 3

;尻コキ
@COM_KNOWLEDGE_LEVEL15
RETURN 3

;オナホコキ
@COM_KNOWLEDGE_LEVEL16
RETURN 3

;尻尾コキ
@COM_KNOWLEDGE_LEVEL17
RETURN 3

;髪コキ
@COM_KNOWLEDGE_LEVEL18
RETURN 3

;玉舐め
@COM_KNOWLEDGE_LEVEL19
RETURN 2

;キス
@COM_KNOWLEDGE_LEVEL20
RETURN 1

;貝合わせ
@COM_KNOWLEDGE_LEVEL21
RETURN 3

;双頭バイブ
@COM_KNOWLEDGE_LEVEL22
RETURN 3

;兜合わせ
@COM_KNOWLEDGE_LEVEL23
RETURN 3

;指フェラ
@COM_KNOWLEDGE_LEVEL24
RETURN 2

;ニプルファック
@COM_KNOWLEDGE_LEVEL25
RETURN 5

;玉舐め
@COM_KNOWLEDGE_LEVEL26
RETURN 2

;正常位
@COM_KNOWLEDGE_LEVEL30
RETURN 1

;後背位
@COM_KNOWLEDGE_LEVEL31
RETURN 2

;対面座位
@COM_KNOWLEDGE_LEVEL32
RETURN 3

;背面座位
@COM_KNOWLEDGE_LEVEL33
RETURN 3

;騎乗位
@COM_KNOWLEDGE_LEVEL34
RETURN 2

;背面騎乗位
@COM_KNOWLEDGE_LEVEL35
RETURN 3

;二本挿入
@COM_KNOWLEDGE_LEVEL36
RETURN 4

;側位
@COM_KNOWLEDGE_LEVEL37
RETURN 2

;屈曲位
@COM_KNOWLEDGE_LEVEL38
RETURN 3

;駅弁
@COM_KNOWLEDGE_LEVEL39
RETURN 3

;背面駅弁
@COM_KNOWLEDGE_LEVEL52
RETURN 3

;立ちバック
@COM_KNOWLEDGE_LEVEL160
RETURN 2

;Ａ正常位
@COM_KNOWLEDGE_LEVEL40
RETURN 3

;Ａ後背位
@COM_KNOWLEDGE_LEVEL41
RETURN 3

;Ａ対面座位
@COM_KNOWLEDGE_LEVEL42
RETURN 3

;Ａ背面座位
@COM_KNOWLEDGE_LEVEL43
RETURN 3

;Ａ騎乗位
@COM_KNOWLEDGE_LEVEL44
RETURN 3

;Ａ背面騎乗位
@COM_KNOWLEDGE_LEVEL45
RETURN 3

;二本A挿入
@COM_KNOWLEDGE_LEVEL46
RETURN 4

;A側位
@COM_KNOWLEDGE_LEVEL47
RETURN 3

;A屈曲位
@COM_KNOWLEDGE_LEVEL48
RETURN 3

;A駅弁
@COM_KNOWLEDGE_LEVEL49
RETURN 3

;A背面駅弁
@COM_KNOWLEDGE_LEVEL53
RETURN 3

;A立ちバック
@COM_KNOWLEDGE_LEVEL161
RETURN 3

;ペニバン装着
@COM_KNOWLEDGE_LEVEL50
RETURN 2

;しゅちにくりん
@COM_KNOWLEDGE_LEVEL51
RETURN 5

;順番に挿入
@COM_KNOWLEDGE_LEVEL55
RETURN 5

;順番にＡ挿入
@COM_KNOWLEDGE_LEVEL56
RETURN 5

;代わる代わる挿入
@COM_KNOWLEDGE_LEVEL57
RETURN 5

;代わる代わるＡ挿入
@COM_KNOWLEDGE_LEVEL58
RETURN 5

;ローター
@COM_KNOWLEDGE_LEVEL60
RETURN 3

;バイブ
@COM_KNOWLEDGE_LEVEL61
RETURN 2

;アナルバイブ
@COM_KNOWLEDGE_LEVEL62
RETURN 3

;クリキャップ
@COM_KNOWLEDGE_LEVEL63
RETURN 3

;ニプルキャップ
@COM_KNOWLEDGE_LEVEL64
RETURN 3

;Ｖ拡張バルーン
@COM_KNOWLEDGE_LEVEL65
RETURN 5

;Ａ拡張バルーン
@COM_KNOWLEDGE_LEVEL66
RETURN 5

;搾乳機
@COM_KNOWLEDGE_LEVEL67
RETURN 4

;口枷ペニバン
@COM_KNOWLEDGE_LEVEL68
RETURN 3

;ローション
@COM_KNOWLEDGE_LEVEL70
RETURN 2

;媚薬
@COM_KNOWLEDGE_LEVEL71
RETURN 3

;排卵誘発剤
@COM_KNOWLEDGE_LEVEL72
RETURN 3

;メイガスの夜
@COM_KNOWLEDGE_LEVEL73
RETURN 1

;麻薬
@COM_KNOWLEDGE_LEVEL74
RETURN 5

;桃源香
@COM_KNOWLEDGE_LEVEL76
RETURN 3

;自家受精
@COM_KNOWLEDGE_LEVEL77
RETURN 5

;ペニスリボン
@COM_KNOWLEDGE_LEVEL78
RETURN 4

;脅す
@COM_KNOWLEDGE_LEVEL80
RETURN 2

;スパンキング
@COM_KNOWLEDGE_LEVEL81
RETURN 2

;鞭
@COM_KNOWLEDGE_LEVEL82
RETURN 3

;針
@COM_KNOWLEDGE_LEVEL83
RETURN 4

;目隠し
@COM_KNOWLEDGE_LEVEL84
RETURN 3

;縄
@COM_KNOWLEDGE_LEVEL85
RETURN 3

;口枷
@COM_KNOWLEDGE_LEVEL86
RETURN 3

;フィストファック
@COM_KNOWLEDGE_LEVEL87
RETURN 4

;アナルフィスト
@COM_KNOWLEDGE_LEVEL88
RETURN 4

;平手打ち
@COM_KNOWLEDGE_LEVEL89
RETURN 1

;イラマチオ
@COM_KNOWLEDGE_LEVEL90
RETURN 3

;ピアシング
@COM_KNOWLEDGE_LEVEL91
RETURN 4

;タトゥー
@COM_KNOWLEDGE_LEVEL92
RETURN 4

;鼻フック
@COM_KNOWLEDGE_LEVEL93
RETURN 3

;首絞め
@COM_KNOWLEDGE_LEVEL94
RETURN 4

;腹パン
@COM_KNOWLEDGE_LEVEL97
RETURN 2

;遠隔調教
@COM_KNOWLEDGE_LEVEL98
RETURN 5

;自慰
@COM_KNOWLEDGE_LEVEL100
RETURN 1

;自慰
@COM_KNOWLEDGE_LEVEL120
RETURN 2

;顔面騎乗
@COM_KNOWLEDGE_LEVEL101
RETURN 3

;Ａ顔面騎乗
@COM_KNOWLEDGE_LEVEL102
RETURN 3

;電気按摩
@COM_KNOWLEDGE_LEVEL103
RETURN 3

;足を舐める
@COM_KNOWLEDGE_LEVEL104
RETURN 3

;Ｗ顔面騎乗
@COM_KNOWLEDGE_LEVEL105
RETURN 4

;亀頭責め手コキ
@COM_KNOWLEDGE_LEVEL106
RETURN 3

;亀頭責めフェラ
@COM_KNOWLEDGE_LEVEL107
RETURN 3

;セルフ挿入
@COM_KNOWLEDGE_LEVEL108
RETURN 5

;セルフ挿入アナル
@COM_KNOWLEDGE_LEVEL109
RETURN 5

;土下座
@COM_KNOWLEDGE_LEVEL110
RETURN 2

;おねだり
@COM_KNOWLEDGE_LEVEL111
RETURN 2

;露出プレイ
@COM_KNOWLEDGE_LEVEL112
RETURN 3

;陰毛管理
@COM_KNOWLEDGE_LEVEL113
RETURN 4

;身体に落書き
@COM_KNOWLEDGE_LEVEL114
RETURN 3

;撮影
@COM_KNOWLEDGE_LEVEL115
RETURN 3

;セルフ尾菜穂
@COM_KNOWLEDGE_LEVEL116
RETURN 3

;セルフフェラ
@COM_KNOWLEDGE_LEVEL117
RETURN 4

;秘貝拡張
@COM_KNOWLEDGE_LEVEL118
RETURN 3

;あなるくぱぁ
@COM_KNOWLEDGE_LEVEL119
RETURN 4

;放尿する
@COM_KNOWLEDGE_LEVEL130
RETURN 3

;尿を掛ける
@COM_KNOWLEDGE_LEVEL131
RETURN 4

;口内放尿
@COM_KNOWLEDGE_LEVEL132
RETURN 4

;利尿剤
@COM_KNOWLEDGE_LEVEL140
RETURN 3

;浣腸
@COM_KNOWLEDGE_LEVEL141
RETURN 4

;浣腸＆プラグ
@COM_KNOWLEDGE_LEVEL142
RETURN 4

;放屁する
@COM_KNOWLEDGE_LEVEL150
RETURN 4

;顔騎放屁
@COM_KNOWLEDGE_LEVEL151
RETURN 4

;尿道ブジー
@COM_KNOWLEDGE_LEVEL170
RETURN 5

;触手召喚
@COM_KNOWLEDGE_LEVEL200
RETURN 3

;触手挿入
@COM_KNOWLEDGE_LEVEL201
RETURN 3

;触手Ａ挿入
@COM_KNOWLEDGE_LEVEL202
RETURN 3

;触手クリ責め
@COM_KNOWLEDGE_LEVEL203
RETURN 3

;触手胸愛撫
@COM_KNOWLEDGE_LEVEL204
RETURN 3

;触手オナホ
@COM_KNOWLEDGE_LEVEL205
RETURN 3

;触手コキ
@COM_KNOWLEDGE_LEVEL206
RETURN 3

;触手搾乳
@COM_KNOWLEDGE_LEVEL207
RETURN 3

;触手緊縛
@COM_KNOWLEDGE_LEVEL208
RETURN 3

;触手口辱
@COM_KNOWLEDGE_LEVEL210
RETURN 3

;触手オナニー
@COM_KNOWLEDGE_LEVEL211
RETURN 3

;触手産卵
@COM_KNOWLEDGE_LEVEL212
RETURN 5

;触手Ａ産卵
@COM_KNOWLEDGE_LEVEL213
RETURN 5

;触手乳腺開発
@COM_KNOWLEDGE_LEVEL214
RETURN 5

;触手尿道挿入
@COM_KNOWLEDGE_LEVEL215
RETURN 5

;触手尿道産卵
@COM_KNOWLEDGE_LEVEL216
RETURN 5


code:
;-------------------------------------------------
;;; コマンドオプションメニュー
;;; じっと見るなどコマンドでオプションメニューを表示する
;-------------------------------------------------
@COM_OPTION(COM)
#DIM COM
VARS ATR
VARS TITLE
VARS TITLE_STR
VARS BODY
VARS HTML
; {
;     TITLE '= ""
;         + @"
"
;         + @"%TITLE_STR%"
;         + @"
"
; }

VARI I
VARI OPTIONNUM
VARS COM_NAME
VARI COM_OPTION_TEMP

TRYCCALLFORM COM_HAS_OPTION{COM}
    OPTIONNUM = RESULT
CATCH
    RETURN
ENDCATCH

IF !OPTIONNUM
    RETURN
ELSE
    OPTIONNUM ++
ENDIF

COM_OPTION_TEMP = COM_OPTION:COM
FOR I, 0, OPTIONNUM
    ;対象コマンドオプションが有効か判定
    TRYCCALLFORM COM_OPTION_ABLE{COM}(I)
        IF !RESULT
            CONTINUE
        ENDIF
    CATCH

    ENDCATCH
    ;名称取得用にCOM_OPTIONを設定
    COM_OPTION:COM = I
    CALLFORM COM_NAME{COM}()
    COM_NAME = %RESULTS%
    BODY += @"<button value = '[OPTION:{I}]'>[%COM_NAME%]</button>"
    BODY += "
"
NEXT
COM_OPTION:COM = COM_OPTION_TEMP

BODY += @"
"
BODY += @"<button value = '[EXIT:1]'>[閉じる]</button>"
BODY += @"

"

ATR += @"
"
HTML = %TITLE + ATR + BODY + "
"%
CLEARLINE 1
HTML_PRINT HTML, 1

WHILE 1
    INPUTS ,1
    VARS INPUT_VALUES
    VARI MOUSE_BTN = RESULT:1
    INPUT_VALUES = %RESULTS%

    IF INPUT_VALUES != ""
        CLEARLINE 1
    ELSE
        BREAK
    ENDIF
    ;クリック時処理
    IF MOUSE_BTN == 1
        IF DIC_CONTAINSKEY(INPUT_VALUES, "OPTION")
            CLEARLINE 1
            COM_OPTION_UI:COM = DIC_GETINT(INPUT_VALUES, "OPTION")
            BREAK
        ENDIF
        IF DIC_CONTAINSKEY(INPUT_VALUES, "EXIT")
            CLEARLINE 1
            BREAK
        ENDIF
        ;右クリック時処理
    ELSEIF MOUSE_BTN == 2
        CLEARLINE 1
        BREAK
    ENDIF
WEND

RETURN


code:
;コマンド関係の共通関数(特にソースに関わるもの)をまとめる

;-------------------------------------------------
;主導権に応じた優越・屈従のソースを加算する関数
;ARG:0=キャラ番号、ARG:1=優越の加算値、ARG:2=屈従の加算値
;-------------------------------------------------
@ADD_SOURCE_INITIATIVE_U(ARG:0, ARG:1, ARG:2)
;主導権をチェック
SELECTCASE GET_COM_INITIATIVE()
		;主導権がプレイヤー側
	CASE 0
		;ARG:0番のキャラがプレイヤー側
		IF IS_MPLY(ARG:0)
			LOCAL:3 = 0
		ELSE
			LOCAL:3 = 2
		ENDIF
		;主導権がターゲット側
	CASE 1
		;ARG:0番のキャラがプレイヤー側
		IF IS_MPLY(ARG:0)
			LOCAL:3 = 2
		ELSE
			LOCAL:3 = 0
		ENDIF
		;主導権が両方
	CASE 2
		LOCAL:3 = 1
		;主導権がどちらにもない
	CASE 3
		LOCAL:3 = 3
ENDSELECT

;主導権が両方・どちらにもない状況ではソース半減
IF LOCAL:3 == 1 || LOCAL:3 == 3
	LOCAL:0 = 2
ELSE
	LOCAL:0 = 1
ENDIF

;ARG:0番のキャラが主導権を持つ
IF LOCAL:3 == 0 || LOCAL:3 == 1
	SOURCE:(ARG:0):優越 += ARG:1 / LOCAL:0
ELSE
	SOURCE:(ARG:0):屈従 += ARG:2 / LOCAL:0
ENDIF

;-------------------------------------------------
;主導権に応じた主導・受動のソースを加算する関数
;ARG:0=キャラ番号、ARG:1=主導の加算値、ARG:2=受動の加算値
;-------------------------------------------------
@ADD_SOURCE_INITIATIVE_N(ARG:0, ARG:1, ARG:2)
;主導権をチェック
SELECTCASE GET_COM_INITIATIVE()
		;主導権がプレイヤー側
	CASE 0
		;ARG:0番のキャラがプレイヤー側
		IF IS_MPLY(ARG:0)
			LOCAL:3 = 0
		ELSE
			LOCAL:3 = 2
		ENDIF
		;主導権がターゲット側
	CASE 1
		;ARG:0番のキャラがプレイヤー側
		IF IS_MPLY(ARG:0)
			LOCAL:3 = 2
		ELSE
			LOCAL:3 = 0
		ENDIF
		;主導権が両方
	CASE 2
		LOCAL:3 = 1
		;主導権がどちらにもない
	CASE 3
		LOCAL:3 = 3
ENDSELECT

;主導権が両方・どちらにもない状況ではソース半減
IF LOCAL:3 == 1 || LOCAL:3 == 3
	LOCAL:0 = 2
ELSE
	LOCAL:0 = 1
ENDIF

;ARG:0番のキャラが主導権を持つ
IF LOCAL:3 == 0 || LOCAL:3 == 1
	SOURCE:(ARG:0):主導 += ARG:1 / LOCAL:0
ELSE
	SOURCE:(ARG:0):受動 += ARG:2 / LOCAL:0
ENDIF

;-------------------------------------------------
;好感度に応じた歓楽のソースを加算する関数
;ARG:0=キャラ番号、ARG:1=倍率
;-------------------------------------------------
@ADD_SOURCE_KANRAKU(ARG:0, ARG:1)
IF CFLAG:(ARG:0):好感度 < 100
	LOCAL:0 = MAX(CFLAG:(ARG:0):好感度 * 20 / 100, 0)
ELSEIF CFLAG:(ARG:0):好感度 < 300
	LOCAL:0 = 20 + (CFLAG:(ARG:0):好感度 - 100) * 10 / 200
ELSEIF CFLAG:(ARG:0):好感度 < 500
	LOCAL:0 = 30 + (CFLAG:(ARG:0):好感度 - 300) * 10 / 200
ELSEIF CFLAG:(ARG:0):好感度 < 800
	LOCAL:0 = 40 + (CFLAG:(ARG:0):好感度 - 500) * 10 / 300
ELSEIF CFLAG:(ARG:0):好感度 < 1500
	LOCAL:0 = 50 + (CFLAG:(ARG:0):好感度 - 800) * 10 / 700
ELSEIF CFLAG:(ARG:0):好感度 < 5000
	LOCAL:0 = 60 + (CFLAG:(ARG:0):好感度 - 1500) * 10 / 4500
ELSEIF CFLAG:(ARG:0):好感度 < 55000
	LOCAL:0 = 70 + (CFLAG:(ARG:0):好感度 - 5000) * 20 / 50000
ELSE
	LOCAL:0 = 90 + (CFLAG:(ARG:0):好感度 - 55000) / 20000
ENDIF

LOCAL:0 = MAX(LOCAL:0, 0)

;設定された倍率に応じた補正を掛け歓楽のソースを追加
SOURCE:(ARG:0):歓楽 += LOCAL:0 * ARG:1 / 100

;-------------------------------------------------
;好感度に応じた愛情のソースを加算する関数
;ARG:0=キャラ番号、ARG:1=倍率
;-------------------------------------------------
@ADD_SOURCE_AIZYOU(ARG:0, ARG:1)
LOCAL:1 = CFLAG:(ARG:0):好感度
IF LOCAL:1 < 100
	LOCAL:0 = MAX(LOCAL:1 / 50, 0)
ELSEIF LOCAL:1 < 300
	LOCAL:0 = 10 + (LOCAL:1 - 100) / 20
ELSEIF LOCAL:1 < 500
	LOCAL:0 = 30 + (LOCAL:1 - 300) / 20
ELSEIF LOCAL:1 < 800
	LOCAL:0 = 50 + (LOCAL:1 - 500) / 30
ELSEIF LOCAL:1 < 1500
	LOCAL:0 = 70 + (LOCAL:1 - 800) / 35
ELSEIF LOCAL:1 < 5000
	LOCAL:0 = 100 + (LOCAL:1 - 1500) / 100
ELSEIF LOCAL:1 < 55000
	LOCAL:0 = 135 + (LOCAL:1 - 5000) / 500
ELSE
	LOCAL:0 = 235 + (LOCAL:1 - 55000) / 20000
ENDIF

;設定された倍率に応じた補正を掛け愛情のソースを追加
SOURCE:(ARG:0):愛情 += LOCAL:0 * ARG:1 / 100

;-------------------------------------------------
;快感系ソースに必要な補正を掛けた値を返す関数(Ｐ以外への奉仕系)
;ARG:0=奉仕側のキャラ番号、ARG:1=相手のキャラ番号、ARG:2=快感ソースの基本値
;-------------------------------------------------
@SENSE_HOUSHI(ARG:0, ARG:1, ARG:2)
#FUNCTION
LOCAL:0 = ARG:2

;基礎補正
TIMES LOCAL:0, 0.75

SELECTCASE ABL:(ARG:0):性技
	CASE 0
		TIMES LOCAL:0, 0.5
	CASE 1
		TIMES LOCAL:0, 0.75
	CASE 2
		TIMES LOCAL:0, 0.90
	CASE 3
		TIMES LOCAL:0, 1.00
	CASE 4
		TIMES LOCAL:0, 1.05
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):性技 - 5) * 2 + 110) / 100
ENDSELECT

;DEBUGPRINTFORML SENSE_HOUSHI:{LOCAL}

SELECTCASE ABL:(ARG:0):奉仕
	CASE 0
		TIMES LOCAL:0, 0.80
	CASE 1
		TIMES LOCAL:0, 0.90
	CASE 2
		TIMES LOCAL:0, 1.00
	CASE 3
		TIMES LOCAL:0, 1.04
	CASE 4
		TIMES LOCAL:0, 1.08
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):奉仕 - 5) * 1 + 110) / 100
ENDSELECT

;DEBUGPRINTFORML SENSE_HOUSHI:{LOCAL}

;奉仕対象が主人公の場合
IF ARG:1 == MASTER
	;好感度と従属度と支配度のうち大きいほうが影響
	LOCAL:1 = MAX(CFLAG:(ARG:0):好感度, CFLAG:(ARG:0):従属度, CFLAG:(ARG:0):支配度)
	IF LOCAL:1 < 100
		TIMES LOCAL:0, 0.60
	ELSEIF LOCAL:1 < 300
		TIMES LOCAL:0, 0.70
	ELSEIF LOCAL:1 < 500
		TIMES LOCAL:0, 0.80
	ELSEIF LOCAL:1 < 800
		TIMES LOCAL:0, 0.85
	ELSEIF LOCAL:1 < 1500
		TIMES LOCAL:0, 0.95
	ELSEIF LOCAL:1 < 10000
		LOCAL:0 = LOCAL:0 * ((LOCAL:1 - 1500) / 85 + 10000) / 10000
	ELSE
		LOCAL:0 = LOCAL:0 * MIN((LOCAL:1 - 10000) / 10000 + 11000, 11000) / 10000
	ENDIF

	IF TALENT:(ARG:0):親愛 || TALENT:(ARG:0):隷属 || TALENT:(ARG:0):所有者
		TIMES LOCAL:0, 1.15
	ELSEIF TALENT:(ARG:0):恋慕 || TALENT:(ARG:0):服従 || TALENT:(ARG:0):主人
		TIMES LOCAL:0, 1.10
	ELSEIF TALENT:(ARG:0):親友
		TIMES LOCAL:0, 1.05
	ENDIF
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8
	;主人公による奉仕の場合
ELSEIF ARG:0 == MASTER
	;好感度と従属度と支配度のうち大きいほうが影響
	LOCAL:1 = MAX(CFLAG:(ARG:1):好感度, CFLAG:(ARG:1):従属度, CFLAG:(ARG:1):支配度)
	IF LOCAL:1 < 100
		TIMES LOCAL:0, 0.80
	ELSEIF LOCAL:1 < 300
		TIMES LOCAL:0, 0.84
	ELSEIF LOCAL:1 < 500
		TIMES LOCAL:0, 0.88
	ELSEIF LOCAL:1 < 800
		TIMES LOCAL:0, 0.92
	ELSEIF LOCAL:1 < 1500
		TIMES LOCAL:0, 0.96
	ELSEIF LOCAL:1 < 10000
		LOCAL:0 = LOCAL:0 * ((LOCAL:1 - 1500) / 85 + 10000) / 10000
	ELSE
		LOCAL:0 = LOCAL:0 * MIN((LOCAL:1 - 10000) / 10000 + 11000, 11000) / 10000
	ENDIF

	IF TALENT:(ARG:1):親愛 || TALENT:(ARG:1):隷属 || TALENT:(ARG:1):所有者
		TIMES LOCAL:0, 1.15
	ELSEIF TALENT:(ARG:1):恋慕 || TALENT:(ARG:1):服従 || TALENT:(ARG:1):主人
		TIMES LOCAL:0, 1.10
	ELSEIF TALENT:(ARG:1):親友
		TIMES LOCAL:0, 1.05
	ENDIF
	SIF GETBIT(TALENT:(ARG:1):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8
ELSE
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1
	SIF GETBIT(TALENT:(ARG:1):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1
ENDIF

SIF IS_ANIMAL(ARG:0)
	LOCAL:0 = ANIMAL_SOURCE_MULTIPLIER(ARG:1, LOCAL:0)

;DEBUGPRINTFORML SENSE_HOUSHI:{LOCAL}

RETURNF LOCAL:0

;-------------------------------------------------
;快感系ソースに必要な補正を掛けた値を返す関数(Ｐへの奉仕系)
;ARG:0=奉仕側のキャラ番号、ARG:1=相手のキャラ番号、ARG:2=快感ソースの基本値
;-------------------------------------------------
@SENSE_HOUSHI_P(ARG:0, ARG:1, ARG:2)
#FUNCTION
LOCAL:0 = ARG:2

SELECTCASE ABL:(ARG:0):性技
	CASE 0
		TIMES LOCAL:0, 0.50
	CASE 1
		TIMES LOCAL:0, 1.00
	CASE 2
		TIMES LOCAL:0, 1.60
	CASE 3
		TIMES LOCAL:0, 2.20
	CASE 4
		TIMES LOCAL:0, 2.80
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):性技 - 5) * 10 + 290) / 100
ENDSELECT

SELECTCASE ABL:(ARG:0):奉仕
	CASE 0
		TIMES LOCAL:0, 1.00
	CASE 1
		TIMES LOCAL:0, 1.07
	CASE 2
		TIMES LOCAL:0, 1.14
	CASE 3
		TIMES LOCAL:0, 1.21
	CASE 4
		TIMES LOCAL:0, 1.28
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):奉仕 - 5) * 1 + 135) / 100
ENDSELECT

;奉仕対象が主人公の場合
IF ARG:1 == MASTER
	;好感度と従属度と支配度のうち大きいほうが影響
	LOCAL:1 = MAX(CFLAG:(ARG:0):好感度, CFLAG:(ARG:0):従属度, CFLAG:(ARG:0):支配度)
	IF LOCAL:1 < 100
		TIMES LOCAL:0, 0.60
	ELSEIF LOCAL:1 < 300
		TIMES LOCAL:0, 0.70
	ELSEIF LOCAL:1 < 500
		TIMES LOCAL:0, 0.80
	ELSEIF LOCAL:1 < 800
		TIMES LOCAL:0, 0.85
	ELSEIF LOCAL:1 < 1500
		TIMES LOCAL:0, 0.95
	ELSEIF LOCAL:1 < 10000
		LOCAL:0 = LOCAL:0 * ((LOCAL:1 - 1500) / 85 + 1000) / 1000
	ELSE
		LOCAL:0 = LOCAL:0 * MIN((LOCAL:1 - 10000) / 1000 + 1100, 1500) / 1000
	ENDIF

	IF TALENT:(ARG:0):親愛 || TALENT:(ARG:0):隷属 || TALENT:(ARG:0):所有者
		TIMES LOCAL:0, 1.20
	ELSEIF TALENT:(ARG:0):恋慕 || TALENT:(ARG:0):服従 || TALENT:(ARG:0):主人
		TIMES LOCAL:0, 1.10
	ELSEIF TALENT:(ARG:0):親友
		TIMES LOCAL:0, 1.05
	ENDIF
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8

	;主人公による奉仕の場合
ELSEIF ARG:0 == MASTER
	;好感度と従属度と支配度のうち大きいほうが影響
	LOCAL:1 = MAX(CFLAG:(ARG:1):好感度, CFLAG:(ARG:1):従属度, CFLAG:(ARG:1):支配度)
	IF LOCAL:1 < 100
		TIMES LOCAL:0, 0.80
	ELSEIF LOCAL:1 < 300
		TIMES LOCAL:0, 0.84
	ELSEIF LOCAL:1 < 500
		TIMES LOCAL:0, 0.88
	ELSEIF LOCAL:1 < 800
		TIMES LOCAL:0, 0.92
	ELSEIF LOCAL:1 < 1500
		TIMES LOCAL:0, 0.96
	ELSEIF LOCAL:1 < 10000
		LOCAL:0 = LOCAL:0 * ((LOCAL:1 - 1500) / 85 + 1000) / 1000
	ELSE
		LOCAL:0 = LOCAL:0 * MIN((LOCAL:1 - 10000) / 1000 + 1100, 1500) / 1000
	ENDIF

	IF TALENT:(ARG:1):親愛 || TALENT:(ARG:1):隷属 || TALENT:(ARG:1):所有者
		TIMES LOCAL:0, 1.20
	ELSEIF TALENT:(ARG:1):恋慕 || TALENT:(ARG:1):服従 || TALENT:(ARG:1):主人
		TIMES LOCAL:0, 1.10
	ELSEIF TALENT:(ARG:1):親友
		TIMES LOCAL:0, 1.05
	ENDIF

	SIF GETBIT(TALENT:(ARG:1):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8

ELSE
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1
	SIF GETBIT(TALENT:(ARG:1):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1

ENDIF

SIF IS_ANIMAL(ARG:0)
	LOCAL:0 = ANIMAL_SOURCE_MULTIPLIER(ARG:1, LOCAL:0)

RETURNF LOCAL:0

;-------------------------------------------------
;快感系ソースに必要な補正を掛けた値を返す関数(性交系・プレイヤー側・Ｐ以外)
;ARG:0=奉仕側のキャラ番号、ARG:1=相手のキャラ番号、ARG:2=快感ソースの基本値
;-------------------------------------------------
@SENSE_SEX_PLAYER(ARG:0, ARG:1, ARG:2)
#FUNCTION
LOCAL:0 = ARG:2

SELECTCASE ABL:(ARG:0):性技
	CASE 0
		TIMES LOCAL:0, 0.7
	CASE 1
		TIMES LOCAL:0, 0.85
	CASE 2
		TIMES LOCAL:0, 1.00
	CASE 3
		TIMES LOCAL:0, 1.15
	CASE 4
		TIMES LOCAL:0, 1.30
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):性技 - 5) * 2 + 132) / 100
ENDSELECT

SELECTCASE ABL:(ARG:0):奉仕
	CASE 0
		TIMES LOCAL:0, 1.00
	CASE 1
		TIMES LOCAL:0, 1.05
	CASE 2
		TIMES LOCAL:0, 1.10
	CASE 3
		TIMES LOCAL:0, 1.15
	CASE 4
		TIMES LOCAL:0, 1.20
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):奉仕 - 5) * 1 + 123) / 100
ENDSELECT

SELECTCASE ABL:(ARG:0):性交
	CASE 0
		TIMES LOCAL:0, 1.00
	CASE 1
		TIMES LOCAL:0, 1.10
	CASE 2
		TIMES LOCAL:0, 1.15
	CASE 3
		TIMES LOCAL:0, 1.20
	CASE 4
		TIMES LOCAL:0, 1.25
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):性交 - 5) * 1 + 130) / 100
ENDSELECT

;奉仕対象が主人公の場合
IF ARG:1 == MASTER
	;好感度と従属度と支配度のうち大きいほうが影響
	LOCAL:1 = MAX(CFLAG:(ARG:0):好感度, CFLAG:(ARG:0):従属度, CFLAG:(ARG:0):支配度)
	IF LOCAL:1 < 100
		TIMES LOCAL:0, 0.80
	ELSEIF LOCAL:1 < 300
		TIMES LOCAL:0, 0.84
	ELSEIF LOCAL:1 < 500
		TIMES LOCAL:0, 0.88
	ELSEIF LOCAL:1 < 800
		TIMES LOCAL:0, 0.92
	ELSEIF LOCAL:1 < 1500
		TIMES LOCAL:0, 0.96
	ELSEIF LOCAL:1 < 10000
		LOCAL:0 = LOCAL:0 * ((LOCAL:1 - 1500) / 85 + 1000) / 1000
	ELSE
		LOCAL:0 = LOCAL:0 * MIN((LOCAL:1 - 10000) / 1000 + 1100, 1500) / 1000
	ENDIF

	IF TALENT:(ARG:0):親愛 || TALENT:(ARG:0):隷属 || TALENT:(ARG:0):所有者
		TIMES LOCAL:0, 1.20
	ELSEIF TALENT:(ARG:0):恋慕 || TALENT:(ARG:0):服従 || TALENT:(ARG:0):主人
		TIMES LOCAL:0, 1.10
	ELSEIF TALENT:(ARG:0):親友
		TIMES LOCAL:0, 1.05
	ENDIF

	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8

	;主人公による奉仕の場合
ELSEIF ARG:0 == MASTER
	;好感度と従属度と支配度のうち大きいほうが影響
	LOCAL:1 = MAX(CFLAG:(ARG:1):好感度, CFLAG:(ARG:1):従属度, CFLAG:(ARG:1):支配度)
	IF LOCAL:1 < 100
		TIMES LOCAL:0, 0.60
	ELSEIF LOCAL:1 < 300
		TIMES LOCAL:0, 0.70
	ELSEIF LOCAL:1 < 500
		TIMES LOCAL:0, 0.80
	ELSEIF LOCAL:1 < 800
		TIMES LOCAL:0, 0.85
	ELSEIF LOCAL:1 < 1500
		TIMES LOCAL:0, 0.95
	ELSEIF LOCAL:1 < 10000
		LOCAL:0 = LOCAL:0 * ((LOCAL:1 - 1500) / 85 + 1000) / 1000
	ELSE
		LOCAL:0 = LOCAL:0 * MIN((LOCAL:1 - 10000) / 1000 + 1100, 1500) / 1000
	ENDIF

	IF TALENT:(ARG:1):親愛 || TALENT:(ARG:1):隷属 || TALENT:(ARG:1):所有者
		TIMES LOCAL:0, 1.20
	ELSEIF TALENT:(ARG:1):恋慕 || TALENT:(ARG:1):服従 || TALENT:(ARG:1):主人
		TIMES LOCAL:0, 1.10
	ELSEIF TALENT:(ARG:1):親友
		TIMES LOCAL:0, 1.05
	ENDIF

	SIF GETBIT(TALENT:(ARG:1):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8

ELSE
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1
	SIF GETBIT(TALENT:(ARG:1):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1

ENDIF

RETURNF LOCAL:0

;-------------------------------------------------
;快感系ソースに必要な補正を掛けた値を返す関数(性交系・ターゲット側・Ｐ以外)
;ARG:0=奉仕側のキャラ番号、ARG:1=相手のキャラ番号、ARG:2=快感ソースの基本値
;-------------------------------------------------
@SENSE_SEX_TARGET(ARG:0, ARG:1, ARG:2)
#FUNCTION
LOCAL:0 = ARG:2

SELECTCASE ABL:(ARG:0):性技
	CASE 0
		TIMES LOCAL:0, 0.5
	CASE 1
		TIMES LOCAL:0, 0.75
	CASE 2
		TIMES LOCAL:0, 1.00
	CASE 3
		TIMES LOCAL:0, 1.30
	CASE 4
		TIMES LOCAL:0, 1.60
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):性技 - 5) * 3 + 163) / 100
ENDSELECT

SELECTCASE ABL:(ARG:0):奉仕
	CASE 0
		TIMES LOCAL:0, 1.00
	CASE 1
		TIMES LOCAL:0, 1.05
	CASE 2
		TIMES LOCAL:0, 1.10
	CASE 3
		TIMES LOCAL:0, 1.15
	CASE 4
		TIMES LOCAL:0, 1.20
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):奉仕 - 5) * 1 + 123) / 100
ENDSELECT

SELECTCASE ABL:(ARG:0):性交
	CASE 0
		TIMES LOCAL:0, 1.00
	CASE 1
		TIMES LOCAL:0, 1.10
	CASE 2
		TIMES LOCAL:0, 1.15
	CASE 3
		TIMES LOCAL:0, 1.20
	CASE 4
		TIMES LOCAL:0, 1.25
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):性交 - 5) * 1 + 130) / 100
ENDSELECT

;奉仕対象が主人公の場合
IF ARG:1 == MASTER
	;好感度と従属度と支配度のうち大きいほうが影響
	LOCAL:1 = MAX(CFLAG:(ARG:0):好感度, CFLAG:(ARG:0):従属度, CFLAG:(ARG:0):支配度)
	IF LOCAL:1 < 100
		TIMES LOCAL:0, 0.60
	ELSEIF LOCAL:1 < 300
		TIMES LOCAL:0, 0.70
	ELSEIF LOCAL:1 < 500
		TIMES LOCAL:0, 0.80
	ELSEIF LOCAL:1 < 800
		TIMES LOCAL:0, 0.85
	ELSEIF LOCAL:1 < 1500
		TIMES LOCAL:0, 0.95
	ELSEIF LOCAL:1 < 10000
		LOCAL:0 = LOCAL:0 * ((LOCAL:1 - 1500) / 85 + 1000) / 1000
	ELSE
		LOCAL:0 = LOCAL:0 * MIN((LOCAL:1 - 10000) / 1000 + 1100, 1500) / 1000
	ENDIF

	IF TALENT:(ARG:0):親愛 || TALENT:(ARG:0):隷属 || TALENT:(ARG:0):所有者
		TIMES LOCAL:0, 1.20
	ELSEIF TALENT:(ARG:0):恋慕 || TALENT:(ARG:0):服従 || TALENT:(ARG:0):主人
		TIMES LOCAL:0, 1.10
	ELSEIF TALENT:(ARG:0):親友
		TIMES LOCAL:0, 1.05
	ENDIF

	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8

	;主人公による奉仕の場合
ELSEIF ARG:0 == MASTER
	;好感度と従属度と支配度のうち大きいほうが影響
	LOCAL:1 = MAX(CFLAG:(ARG:1):好感度, CFLAG:(ARG:1):従属度, CFLAG:(ARG:1):支配度)
	IF LOCAL:1 < 100
		TIMES LOCAL:0, 0.80
	ELSEIF LOCAL:1 < 300
		TIMES LOCAL:0, 0.84
	ELSEIF LOCAL:1 < 500
		TIMES LOCAL:0, 0.88
	ELSEIF LOCAL:1 < 800
		TIMES LOCAL:0, 0.92
	ELSEIF LOCAL:1 < 1500
		TIMES LOCAL:0, 0.96
	ELSEIF LOCAL:1 < 10000
		LOCAL:0 = LOCAL:0 * ((LOCAL:1 - 1500) / 85 + 1000) / 1000
	ELSE
		LOCAL:0 = LOCAL:0 * MIN((LOCAL:1 - 10000) / 1000 + 1100, 1500) / 1000
	ENDIF

	IF TALENT:(ARG:1):親愛 || TALENT:(ARG:1):隷属 || TALENT:(ARG:1):所有者
		TIMES LOCAL:0, 1.20
	ELSEIF TALENT:(ARG:1):恋慕 || TALENT:(ARG:1):服従 || TALENT:(ARG:1):主人
		TIMES LOCAL:0, 1.10
	ELSEIF TALENT:(ARG:1):親友
		TIMES LOCAL:0, 1.05
	ENDIF
	SIF GETBIT(TALENT:(ARG:1):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8

ELSE
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1
	SIF GETBIT(TALENT:(ARG:1):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1

ENDIF

RETURNF LOCAL:0

;-------------------------------------------------
;快感系ソースに必要な補正を掛けた値を返す関数(性交系・プレイヤー側・快Ｐ専用)
;ARG:0=奉仕側のキャラ番号、ARG:1=相手のキャラ番号、ARG:2=快感ソースの基本値
;-------------------------------------------------
@SENSE_SEX_PLAYER_P(ARG:0, ARG:1, ARG:2)
#FUNCTION
LOCAL:0 = ARG:2

SELECTCASE ABL:(ARG:0):性技
	CASE 0
		TIMES LOCAL:0, 0.70
	CASE 1
		TIMES LOCAL:0, 0.85
	CASE 2
		TIMES LOCAL:0, 1.00
	CASE 3
		TIMES LOCAL:0, 1.20
	CASE 4
		TIMES LOCAL:0, 1.40
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):性技 - 5) * 3 + 143) / 100
ENDSELECT

SELECTCASE ABL:(ARG:0):奉仕
	CASE 0
		TIMES LOCAL:0, 1.00
	CASE 1
		TIMES LOCAL:0, 1.07
	CASE 2
		TIMES LOCAL:0, 1.14
	CASE 3
		TIMES LOCAL:0, 1.21
	CASE 4
		TIMES LOCAL:0, 1.28
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):奉仕 - 5) * 1 + 135) / 100
ENDSELECT

SELECTCASE ABL:(ARG:0):性交
	CASE 0
		TIMES LOCAL:0, 1.00
	CASE 1
		TIMES LOCAL:0, 1.10
	CASE 2
		TIMES LOCAL:0, 1.15
	CASE 3
		TIMES LOCAL:0, 1.20
	CASE 4
		TIMES LOCAL:0, 1.25
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):性交 - 5) * 1 + 130) / 100
ENDSELECT

;奉仕対象が主人公の場合
IF ARG:1 == MASTER
	;好感度と従属度と支配度のうち大きいほうが影響
	LOCAL:1 = MAX(CFLAG:(ARG:0):好感度, CFLAG:(ARG:0):従属度, CFLAG:(ARG:0):支配度)
	IF LOCAL:1 < 100
		TIMES LOCAL:0, 0.80
	ELSEIF LOCAL:1 < 300
		TIMES LOCAL:0, 0.84
	ELSEIF LOCAL:1 < 500
		TIMES LOCAL:0, 0.88
	ELSEIF LOCAL:1 < 800
		TIMES LOCAL:0, 0.92
	ELSEIF LOCAL:1 < 1500
		TIMES LOCAL:0, 0.96
	ELSEIF LOCAL:1 < 10000
		LOCAL:0 = LOCAL:0 * ((LOCAL:1 - 1500) / 85 + 1000) / 1000
	ELSE
		LOCAL:0 = LOCAL:0 * MIN((LOCAL:1 - 10000) / 1000 + 1100, 1500) / 1000
	ENDIF

	IF TALENT:(ARG:0):親愛 || TALENT:(ARG:0):隷属 || TALENT:(ARG:0):所有者
		TIMES LOCAL:0, 1.20
	ELSEIF TALENT:(ARG:0):恋慕 || TALENT:(ARG:0):服従 || TALENT:(ARG:0):主人
		TIMES LOCAL:0, 1.10
	ELSEIF TALENT:(ARG:0):親友
		TIMES LOCAL:0, 1.05
	ENDIF
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8

	;主人公による奉仕の場合
ELSEIF ARG:0 == MASTER
	;主人公には奉仕・性交の補正がないためデフォルトで快感量上昇
	TIMES LOCAL:0, 1.70

	;好感度と従属度と支配度のうち大きいほうが影響
	LOCAL:1 = MAX(CFLAG:(ARG:1):好感度, CFLAG:(ARG:1):従属度, CFLAG:(ARG:1):支配度)
	IF LOCAL:1 < 100
		TIMES LOCAL:0, 0.80
	ELSEIF LOCAL:1 < 300
		TIMES LOCAL:0, 0.84
	ELSEIF LOCAL:1 < 500
		TIMES LOCAL:0, 0.88
	ELSEIF LOCAL:1 < 800
		TIMES LOCAL:0, 0.92
	ELSEIF LOCAL:1 < 1500
		TIMES LOCAL:0, 0.96
	ELSEIF LOCAL:1 < 10000
		LOCAL:0 = LOCAL:0 * ((LOCAL:1 - 1500) / 85 + 1000) / 1000
	ELSE
		LOCAL:0 = LOCAL:0 * MIN((LOCAL:1 - 10000) / 1000 + 1100, 1500) / 1000
	ENDIF

	IF TALENT:(ARG:1):親愛 || TALENT:(ARG:1):隷属 || TALENT:(ARG:1):所有者
		TIMES LOCAL:0, 1.20
	ELSEIF TALENT:(ARG:1):恋慕 || TALENT:(ARG:1):服従 || TALENT:(ARG:1):主人
		TIMES LOCAL:0, 1.10
	ELSEIF TALENT:(ARG:1):親友
		TIMES LOCAL:0, 1.05
	ENDIF
	SIF GETBIT(TALENT:(ARG:1):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8

ELSE
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1
	SIF GETBIT(TALENT:(ARG:1):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1

ENDIF

RETURNF LOCAL:0

;-------------------------------------------------
;快感系ソースに必要な補正を掛けた値を返す関数(性交系・ターゲット側・快Ｐ専用)
;ARG:0=奉仕側のキャラ番号、ARG:1=相手のキャラ番号、ARG:2=快感ソースの基本値
;-------------------------------------------------
@SENSE_SEX_TARGET_P(ARG:0, ARG:1, ARG:2)
#FUNCTION
LOCAL:0 = ARG:2

SELECTCASE ABL:(ARG:0):性技
	CASE 0
		TIMES LOCAL:0, 0.5
	CASE 1
		TIMES LOCAL:0, 1.00
	CASE 2
		TIMES LOCAL:0, 1.50
	CASE 3
		TIMES LOCAL:0, 2.00
	CASE 4
		TIMES LOCAL:0, 2.50
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):性技 - 5) * 9 + 259) / 100
ENDSELECT

SELECTCASE ABL:(ARG:0):奉仕
	CASE 0
		TIMES LOCAL:0, 1.00
	CASE 1
		TIMES LOCAL:0, 1.07
	CASE 2
		TIMES LOCAL:0, 1.14
	CASE 3
		TIMES LOCAL:0, 1.21
	CASE 4
		TIMES LOCAL:0, 1.28
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):奉仕 - 5) * 1 + 135) / 100
ENDSELECT

SELECTCASE ABL:(ARG:0):性交
	CASE 0
		TIMES LOCAL:0, 1.00
	CASE 1
		TIMES LOCAL:0, 1.10
	CASE 2
		TIMES LOCAL:0, 1.15
	CASE 3
		TIMES LOCAL:0, 1.20
	CASE 4
		TIMES LOCAL:0, 1.25
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):性交 - 5) * 1 + 130) / 100
ENDSELECT

;奉仕対象が主人公の場合
IF ARG:1 == MASTER
	;好感度と従属度と支配度のうち大きいほうが影響
	LOCAL:1 = MAX(CFLAG:(ARG:0):好感度, CFLAG:(ARG:0):従属度, CFLAG:(ARG:0):支配度)
	IF LOCAL:1 < 100
		TIMES LOCAL:0, 0.60
	ELSEIF LOCAL:1 < 300
		TIMES LOCAL:0, 0.70
	ELSEIF LOCAL:1 < 500
		TIMES LOCAL:0, 0.80
	ELSEIF LOCAL:1 < 800
		TIMES LOCAL:0, 0.85
	ELSEIF LOCAL:1 < 1500
		TIMES LOCAL:0, 0.95
	ELSEIF LOCAL:1 < 10000
		LOCAL:0 = LOCAL:0 * ((LOCAL:1 - 1500) / 85 + 1000) / 1000
	ELSE
		LOCAL:0 = LOCAL:0 * MIN((LOCAL:1 - 10000) / 1000 + 1100, 1500) / 1000
	ENDIF

	IF TALENT:(ARG:0):親愛 || TALENT:(ARG:0):隷属 || TALENT:(ARG:0):所有者
		TIMES LOCAL:0, 1.20
	ELSEIF TALENT:(ARG:0):恋慕 || TALENT:(ARG:0):服従 || TALENT:(ARG:0):主人
		TIMES LOCAL:0, 1.10
	ELSEIF TALENT:(ARG:0):親友
		TIMES LOCAL:0, 1.05
	ENDIF
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8

	;主人公による奉仕の場合
ELSEIF ARG:0 == MASTER
	;好感度と従属度と支配度のうち大きいほうが影響
	LOCAL:1 = MAX(CFLAG:(ARG:1):好感度, CFLAG:(ARG:1):従属度, CFLAG:(ARG:1):支配度)
	IF LOCAL:1 < 100
		TIMES LOCAL:0, 0.80
	ELSEIF LOCAL:1 < 300
		TIMES LOCAL:0, 0.84
	ELSEIF LOCAL:1 < 500
		TIMES LOCAL:0, 0.88
	ELSEIF LOCAL:1 < 800
		TIMES LOCAL:0, 0.92
	ELSEIF LOCAL:1 < 1500
		TIMES LOCAL:0, 0.96
	ELSEIF LOCAL:1 < 10000
		LOCAL:0 = LOCAL:0 * ((LOCAL:1 - 1500) / 85 + 1000) / 1000
	ELSE
		LOCAL:0 = LOCAL:0 * MIN((LOCAL:1 - 10000) / 1000 + 1100, 1500) / 1000
	ENDIF

	IF TALENT:(ARG:1):親愛 || TALENT:(ARG:1):隷属 || TALENT:(ARG:1):所有者
		TIMES LOCAL:0, 1.20
	ELSEIF TALENT:(ARG:1):恋慕 || TALENT:(ARG:1):服従 || TALENT:(ARG:1):主人
		TIMES LOCAL:0, 1.10
	ELSEIF TALENT:(ARG:1):親友
		TIMES LOCAL:0, 1.05
	ENDIF
	SIF GETBIT(TALENT:(ARG:1):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8

ELSE
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1
	SIF GETBIT(TALENT:(ARG:1):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1

ENDIF

RETURNF LOCAL:0

;-------------------------------------------------
;奉仕のソースに、ARG:0番のキャラの奉仕・性技による補正値を掛けて返す関数(奉仕系)
;ARG:1=ソースの基本値
;-------------------------------------------------
@SERVE_HOUSHI(ARG:0, ARG:1)
#FUNCTION
LOCAL:0 = ARG:1

SELECTCASE ABL:(ARG:0):奉仕
	CASE 0
		TIMES LOCAL:0, 1.00
	CASE 1
		TIMES LOCAL:0, 1.15
	CASE 2
		TIMES LOCAL:0, 1.30
	CASE 3
		TIMES LOCAL:0, 1.45
	CASE 4
		TIMES LOCAL:0, 1.60
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):奉仕 - 5) * 2 + 170) / 100
ENDSELECT

SELECTCASE ABL:(ARG:0):性技
	CASE 0
		TIMES LOCAL:0, 0.40
	CASE 1
		TIMES LOCAL:0, 0.60
	CASE 2
		TIMES LOCAL:0, 0.80
	CASE 3
		TIMES LOCAL:0, 1.00
	CASE 4
		TIMES LOCAL:0, 1.20
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):性技 - 5) * 2 + 140) / 100
ENDSELECT

RETURNF LOCAL:0

;-------------------------------------------------
;奉仕・達成のソースに、ARG:0番のキャラの奉仕・性技による補正値を掛けて返す関数(性交系)
;ARG:1=ソースの基本値
;-------------------------------------------------
@SERVE_SEX(ARG:0, ARG:1)
#FUNCTION
LOCAL:0 = ARG:1

SELECTCASE ABL:(ARG:0):奉仕
	CASE 0
		TIMES LOCAL:0, 1.00
	CASE 1
		TIMES LOCAL:0, 1.20
	CASE 2
		TIMES LOCAL:0, 1.40
	CASE 3
		TIMES LOCAL:0, 1.60
	CASE 4
		TIMES LOCAL:0, 1.80
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):奉仕 - 5) * 1 + 20) / 10
ENDSELECT

SELECTCASE ABL:(ARG:0):性技
	CASE 0
		TIMES LOCAL:0, 0.50
	CASE 1
		TIMES LOCAL:0, 1.00
	CASE 2
		TIMES LOCAL:0, 1.50
	CASE 3
		TIMES LOCAL:0, 2.00
	CASE 4
		TIMES LOCAL:0, 2.50
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):性技 - 5) * 2 + 34) / 10
ENDSELECT

RETURNF LOCAL:0

;-------------------------------------------------
;性交の共通ソース補正(挿入側)  ARG:0は対象の、ARG:1は相手のキャラ番号
;-------------------------------------------------
@COM_COMMON_SEX_P(ARG:0, ARG:1)

SOURCE:(ARG:0):奉仕 = SERVE_SEX(ARG:0, 250)

SELECTCASE ABL:(ARG:1):Ｖ感
	CASE 0
		TIMES SOURCE:(ARG:0):愛情, 0.90
	CASE 1
		TIMES SOURCE:(ARG:0):愛情, 0.95
	CASE 2
		TIMES SOURCE:(ARG:0):愛情, 1.00
	CASE 3
		TIMES SOURCE:(ARG:0):愛情, 1.05
	CASE 4
		TIMES SOURCE:(ARG:0):愛情, 1.10
	CASEELSE
		SOURCE:(ARG:0):愛情 = SOURCE:(ARG:0):愛情 * MIN((ABL:(ARG:1):Ｖ感 - 5) * 1 + 115, 300) / 100
ENDSELECT

IF PALAM:(ARG:1):潤滑 < PALAMLV:1
	TIMES SOURCE:(ARG:0):快Ｐ, 0.30
	TIMES SOURCE:(ARG:0):愛情, 0.50
ELSEIF PALAM:(ARG:1):潤滑 < PALAMLV:3
	TIMES SOURCE:(ARG:0):快Ｐ, 0.60
	TIMES SOURCE:(ARG:0):愛情, 0.80
ELSEIF PALAM:(ARG:1):潤滑 < PALAMLV:5
	TIMES SOURCE:(ARG:0):快Ｐ, 0.80
	TIMES SOURCE:(ARG:0):愛情, 1.00
ELSEIF PALAM:(ARG:1):潤滑 < PALAMLV:7
	TIMES SOURCE:(ARG:0):快Ｐ, 0.90
	TIMES SOURCE:(ARG:0):愛情, 1.10
ELSE
	TIMES SOURCE:(ARG:0):快Ｐ, 1.00
	TIMES SOURCE:(ARG:0):愛情, 1.20
ENDIF

IF PALAM:(ARG:0):欲情 < PALAMLV:1
	TIMES SOURCE:(ARG:0):愛情, 0.40
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:3
	TIMES SOURCE:(ARG:0):愛情, 0.70
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:5
	TIMES SOURCE:(ARG:0):愛情, 1.00
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:7
	TIMES SOURCE:(ARG:0):愛情, 1.10
ELSE
	TIMES SOURCE:(ARG:0):愛情, 1.20
ENDIF

IF TALENT:(ARG:0):童貞
	TIMES SOURCE:(ARG:0):愛情, 2.50
ENDIF

IF TALENT:(ARG:1):処女
	TIMES SOURCE:(ARG:0):愛情, 2.50
ENDIF

IF ARG:0 != MASTER && ARG:1 == MASTER
	IF TALENT:(ARG:0):恋慕 || TALENT:(ARG:0):親友
		IF TALENT:(ARG:0):貞操観念
			TIMES SOURCE:(ARG:0):愛情, 1.50
		ELSEIF TALENT:(ARG:0):貞操無頓着
			TIMES SOURCE:(ARG:0):愛情, 0.60
		ENDIF
	ELSE
		IF TALENT:(ARG:0):貞操観念
			IF TALENT:(ARG:0):童貞
				SOURCE:(ARG:0):反感 = 2500
			ELSE
				SOURCE:(ARG:0):反感 = 500
			ENDIF
			TIMES SOURCE:(ARG:0):愛情, 0.60
		ELSEIF !TALENT:(ARG:0):貞操無頓着
			IF TALENT:(ARG:0):童貞
				SOURCE:(ARG:0):反感 = 500
			ENDIF
		ENDIF
		IF TALENT:(ARG:0):恋人
			TIMES SOURCE:(ARG:0):反感, 0.10
		ENDIF
	ENDIF

	;好感度と従属度と支配度のうち大きいほうが影響
	LOCAL:0 = MAX(CFLAG:(ARG:0):好感度, CFLAG:(ARG:0):従属度, CFLAG:(ARG:0):支配度)
	IF LOCAL:0 < 100
		TIMES SOURCE:(ARG:0):反感, 1.00
	ELSEIF LOCAL:0 < 300
		TIMES SOURCE:(ARG:0):反感, 0.90
	ELSEIF LOCAL:0 < 500
		TIMES SOURCE:(ARG:0):反感, 0.80
	ELSEIF LOCAL:0 < 800
		TIMES SOURCE:(ARG:0):反感, 0.40
	ELSEIF LOCAL:0 < 1500
		TIMES SOURCE:(ARG:0):反感, 0.15
	ELSE
		SOURCE:(ARG:0):反感 = SOURCE:(ARG:0):反感 / ((LOCAL:0 - 1500) / 50 + 10)
	ENDIF
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8
ELSE
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1
ENDIF

CALL DOUTEI_COMMON(ARG:0, @"%ANAME(ARG:1)%の膣", GET_SITUATION_BY_TRAIN_MODE())

EXP:(ARG:0):Ｖ挿入経験 ++

IF TALENT:(ARG:0):童貞 && HAS_PENIS(ARG:0)
	IF ARG:1 == MASTER
		;童貞喪失フラグ(主人との性交)
		TCVAR:(ARG:0):童貞喪失フラグ = 1
	ELSE
		;童貞喪失フラグ(主人以外との性交)
		TCVAR:(ARG:0):童貞喪失フラグ = 3
	ENDIF
ENDIF

;-------------------------------------------------
;性交の共通ソース補正(被挿入側)  ARG:0は対象の、ARG:1は相手のキャラ番号
;-------------------------------------------------
@COM_COMMON_SEX_V(ARG:0, ARG:1)
SOURCE:(ARG:0):奉仕 = SERVE_SEX(ARG:0, 200)

SELECTCASE ABL:(ARG:0):Ｖ感
	CASE 0
		SOURCE:(ARG:0):苦痛 += 300
	CASE 1
		SOURCE:(ARG:0):苦痛 += 100
	CASE 2
		SOURCE:(ARG:0):苦痛 += 30
ENDSELECT

IF PALAM:(ARG:0):潤滑 < PALAMLV:1
	TIMES SOURCE:(ARG:0):快Ｖ, 0.05
	SOURCE:(ARG:0):苦痛 = SOURCE:(ARG:0):苦痛 * 4 + 1000
ELSEIF PALAM:(ARG:0):潤滑 < PALAMLV:3
	TIMES SOURCE:(ARG:0):快Ｖ, 0.20
	SOURCE:(ARG:0):苦痛 = SOURCE:(ARG:0):苦痛 * 2 + 300
ELSEIF PALAM:(ARG:0):潤滑 < PALAMLV:5
	TIMES SOURCE:(ARG:0):快Ｖ, 0.60
	TIMES SOURCE:(ARG:0):苦痛, 1.00
ELSEIF PALAM:(ARG:0):潤滑 < PALAMLV:7
	TIMES SOURCE:(ARG:0):快Ｖ, 0.85
	TIMES SOURCE:(ARG:0):苦痛, 0.70
ELSE
	TIMES SOURCE:(ARG:0):快Ｖ, 1.00
	TIMES SOURCE:(ARG:0):苦痛, 0.50
ENDIF

IF TALENT:(ARG:0):体格 == 体格_子供 && TALENT:(ARG:1):体格 != 体格_子供
	IF TALENT:(ARG:1):体格 == 体格_小柄
		TIMES SOURCE:(ARG:0):苦痛, 1.50
	ELSE
		TIMES SOURCE:(ARG:0):苦痛, 2.50
	ENDIF
ELSEIF TALENT:(ARG:0):体格 == 体格_小柄 && TALENT:(ARG:1):体格 != 体格_小柄 && TALENT:(ARG:1):体格 != 体格_子供
	TIMES SOURCE:(ARG:0):苦痛, 1.50
ENDIF

;竿サイズで痛みと快感の変動
SELECTCASE GET_PENISSIZE(ARG:1)
	CASE -2
		TIMES SOURCE:(ARG:0):快Ｖ, 0.50
		TIMES SOURCE:(ARG:0):苦痛, 0.50
	CASE -1
		TIMES SOURCE:(ARG:0):快Ｖ, 0.75
		TIMES SOURCE:(ARG:0):苦痛, 0.75
	CASE 1
		TIMES SOURCE:(ARG:0):快Ｖ, 1.25
		TIMES SOURCE:(ARG:0):苦痛, 1.50
	CASE 2
		TIMES SOURCE:(ARG:0):快Ｖ, 1.50
		TIMES SOURCE:(ARG:0):苦痛, 2.00
ENDSELECT

;挿入側のABL性交で痛み軽減　ただし1～3までは痛み増加　4でやっと等倍　100からは減少しない
SELECTCASE ABL:(ARG:1):性交
	CASE 0 TO 100
		SOURCE:(ARG:0):苦痛 = SOURCE:(ARG:0):苦痛 * (120 - SQRT(100 * ABL:(ARG:1):性交)) / 100
	CASEELSE
		TIMES SOURCE:(ARG:0):苦痛, 0.20
ENDSELECT

IF TALENT:(ARG:0):処女 == 1
	SOURCE:(ARG:0):苦痛 = SOURCE:(ARG:0):苦痛 * 2 + 500
ENDIF

IF IS_ANIMAL(ARG:1)
	SOURCE:(ARG:0):苦痛 = ANIMAL_SOURCE_MULTIPLIER_REVERSED(ARG:0, SOURCE:(ARG:0):苦痛)
	SOURCE:(ARG:0):快Ｖ = ANIMAL_SOURCE_MULTIPLIER(ARG:0, SOURCE:(ARG:0):快Ｖ)
	IF TALENT:(ARG:1):動物 == 動物_馬
		EXP:(ARG:0):Ｖ拡張経験 += 1
		CALL TIGHTNESS_DECREASE_V(ARG:0, RAND(3, 8))
	ENDIF
ENDIF

IF ARG:0 != MASTER && ARG:1 == MASTER
	IF TALENT:(ARG:0):恋慕 || TALENT:(ARG:0):親友
		IF TALENT:(ARG:0):貞操観念
			TIMES SOURCE:(ARG:0):愛情, 1.50
		ELSEIF TALENT:(ARG:0):貞操無頓着
			TIMES SOURCE:(ARG:0):愛情, 0.60
		ENDIF
		IF TALENT:(ARG:0):処女
			SOURCE:(ARG:0):歓喜 += 1000
			SIF TALENT:(ARG:0):恋人
				SOURCE:(ARG:0):歓喜 += 1500
			SIF TALENT:(ARG:0):親愛
				SOURCE:(ARG:0):歓喜 += 2500
		ENDIF
	ELSE
		IF TALENT:(ARG:0):貞操観念
			IF TALENT:(ARG:0):処女
				SOURCE:(ARG:0):反感 = 5000
			ELSE
				SOURCE:(ARG:0):反感 = 1000
			ENDIF
			TIMES SOURCE:(ARG:0):愛情, 0.60
		ELSEIF TALENT:(ARG:0):貞操無頓着
			IF TALENT:(ARG:0):処女
				SOURCE:(ARG:0):反感 = 300
			ENDIF
		ELSE
			IF TALENT:(ARG:0):処女
				SOURCE:(ARG:0):反感 = 2500
			ENDIF
		ENDIF
		IF TALENT:(ARG:0):恋人
			TIMES SOURCE:(ARG:0):反感, 0.10
		ENDIF
	ENDIF

	;好感度と従属度と支配度のうち大きいほうが影響
	LOCAL:0 = MAX(CFLAG:(ARG:0):好感度, CFLAG:(ARG:0):従属度, CFLAG:(ARG:0):支配度)
	IF LOCAL:0 < 100
		TIMES SOURCE:(ARG:0):反感, 1.00
	ELSEIF LOCAL:0 < 300
		TIMES SOURCE:(ARG:0):反感, 0.90
	ELSEIF LOCAL:0 < 500
		TIMES SOURCE:(ARG:0):反感, 0.80
	ELSEIF LOCAL:0 < 800
		TIMES SOURCE:(ARG:0):反感, 0.40
	ELSEIF LOCAL:0 < 1500
		TIMES SOURCE:(ARG:0):反感, 0.15
	ELSE
		SOURCE:(ARG:0):反感 = SOURCE:(ARG:0):反感 / ((LOCAL:0 - 1500) / 50 + 10)
	ENDIF
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8
ELSE
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1
ENDIF

IF !IS_EQUIP_PLAYER(ARG:1, 75) && GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_生ハメ依存)
	SOURCE:(ARG:0):歓喜 += 500
ENDIF

CALL VIRGIN_COMMON(ARG:0, @"%ANAME(ARG:1)%", GET_SITUATION_BY_TRAIN_MODE())

;バイブ挿入時は輪姦経験を加算しない
IF !IS_EQUIP_TARGET(ARG:0, 61)
	SIF GET_SITUATION_BY_TRAIN_MODE() == "調教" && IS_INSERT_SINGLE(ARG:0, "Ａ")
		EXP:(ARG:0):輪姦経験 ++
	{
		SIF GET_SITUATION_BY_TRAIN_MODE() == "調教" && (
			IS_EQUIP_PLAYER(ARG:0, GETNUM(TRAINNAME, "フェラチオ")) ||
			IS_EQUIP_PLAYER(ARG:0, GETNUM(TRAINNAME, "玉舐め")) ||
			IS_EQUIP_PLAYER(ARG:0, GETNUM(TRAINNAME, "パイズリ")) ||
			IS_EQUIP_TARGET(ARG:0, GETNUM(TRAINNAME, "顔面騎乗")) ||
			IS_EQUIP_TARGET(ARG:0, GETNUM(TRAINNAME, "Ａ顔面騎乗")) ||
			IS_EQUIP_TARGET(ARG:0, GETNUM(TRAINNAME, "イラマチオ"))
			)
	}
		EXP:(ARG:0):輪姦経験 ++
ENDIF

;対象の膣が緩む(竿のサイズで変動)
;超短小(0～1) 短小(0～2) 普通(1～3) 巨根(2～4) 超巨根(3～4)
SELECTCASE GET_PENISSIZE(ARG:1)
	CASE -2
		LOCAL:1 = RAND(0, 2)
	CASE -1
		LOCAL:1 = RAND(0, 3)
	CASE 0
		LOCAL:1 = RAND(1, 4)
	CASE 1
		LOCAL:1 = RAND(2, 5)
	CASE 2
		LOCAL:1 = RAND(3, 5)
ENDSELECT

;★if difference between sizes is big, increase the stretching
SELECTCASE TALENT:(ARG:0):Ｖ締まり
	CASE IS >= 締まり_ぎちぎち ;unused
		IF GET_PENISSIZE(ARG:1) == 2
			;3.5 + 7.5 = 11
			LOCAL:1 += RAND(5, 11)
			EXP:(ARG:0):Ｖ拡張経験 ++
		ELSEIF GET_PENISSIZE(ARG:1) == 1
			;3 + 5 = 8
			LOCAL:1 += RAND(3, 8)
		ELSEIF GET_PENISSIZE(ARG:1) == 0
			;2 + 3 = 5
			LOCAL:1 += RAND(2, 5)
		ENDIF
	CASE IS >= 締まり_きつきつ ;shut tight
		IF GET_PENISSIZE(ARG:1) == 2
			;3.5 + 5 = 8.5
			LOCAL:1 += RAND(3, 8)
			EXP:(ARG:0):Ｖ拡張経験 ++
		ELSEIF GET_PENISSIZE(ARG:1) == 1
			;3 + 3 = 6
			LOCAL:1 += RAND(2, 5)
		ENDIF
	CASE IS >= 締まり_きゅっきゅっ ;very tight
		IF GET_PENISSIZE(ARG:1) == 2
			;3.5 + 1 = 4.5
			LOCAL:1 += RAND(0, 3)
		ELSEIF GET_PENISSIZE(ARG:1) == 1
			;3 + 0.5 = 3.5
			LOCAL:1 += RAND:2
		ENDIF
	CASE IS >= 締まり_名器 ;tight
		IF GET_PENISSIZE(ARG:1) == 2
			;3.5 + 0.5 = 4
			LOCAL:1 += RAND:2
		ENDIF
ENDSELECT
CALL TIGHTNESS_DECREASE_V(ARG:0, LOCAL:1)

EXP:(ARG:0):Ｖ性交経験 ++

IF TALENT:(ARG:0):処女
	IF ARG:1 == MASTER
		;処女喪失フラグ(主人との性交)
		TCVAR:(ARG:0):処女喪失フラグ = 1
	ELSE
		;処女喪失フラグ(主人以外との性交)
		TCVAR:(ARG:0):処女喪失フラグ = 3
	ENDIF
ENDIF

;-------------------------------------------------
;Ａ性交の共通ソース補正(挿入側)  ARG:0は対象の、ARG:1は相手のキャラ番号
;-------------------------------------------------
@COM_COMMON_ASEX_P(ARG:0, ARG:1)

SOURCE:(ARG:0):奉仕 = SERVE_SEX(ARG:0, 250)

SELECTCASE ABL:(ARG:1):Ａ感
	CASE 0
		TIMES SOURCE:(ARG:0):愛情, 0.60
	CASE 1
		TIMES SOURCE:(ARG:0):愛情, 0.80
	CASE 2
		TIMES SOURCE:(ARG:0):愛情, 0.90
	CASE 3
		TIMES SOURCE:(ARG:0):愛情, 1.00
	CASE 4
		TIMES SOURCE:(ARG:0):愛情, 1.10
	CASEELSE
		SOURCE:(ARG:0):愛情 = SOURCE:(ARG:0):愛情 * ((ABL:(ARG:1):Ｖ感 - 5) * 1 + 115) / 100
ENDSELECT

IF PALAM:(ARG:1):潤滑 < PALAMLV:1
	TIMES SOURCE:(ARG:0):快Ｐ, 0.30
	TIMES SOURCE:(ARG:0):愛情, 0.50
ELSEIF PALAM:(ARG:1):潤滑 < PALAMLV:3
	TIMES SOURCE:(ARG:0):快Ｐ, 0.60
	TIMES SOURCE:(ARG:0):愛情, 0.80
ELSEIF PALAM:(ARG:1):潤滑 < PALAMLV:5
	TIMES SOURCE:(ARG:0):快Ｐ, 0.80
	TIMES SOURCE:(ARG:0):愛情, 1.00
ELSEIF PALAM:(ARG:1):潤滑 < PALAMLV:7
	TIMES SOURCE:(ARG:0):快Ｐ, 0.90
	TIMES SOURCE:(ARG:0):愛情, 1.10
ELSE
	TIMES SOURCE:(ARG:0):快Ｐ, 1.00
	TIMES SOURCE:(ARG:0):愛情, 1.20
ENDIF

IF PALAM:(ARG:0):欲情 < PALAMLV:1
	TIMES SOURCE:(ARG:0):愛情, 0.40
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:3
	TIMES SOURCE:(ARG:0):愛情, 0.70
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:5
	TIMES SOURCE:(ARG:0):愛情, 1.00
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:7
	TIMES SOURCE:(ARG:0):愛情, 1.10
ELSE
	TIMES SOURCE:(ARG:0):愛情, 1.20
ENDIF

IF TALENT:(ARG:0):童貞
	TIMES SOURCE:(ARG:0):愛情, 2.50
ENDIF

IF TALENT:(ARG:1):処女
	TIMES SOURCE:(ARG:0):愛情, 2.50
ENDIF

IF ARG:0 != MASTER && ARG:1 == MASTER
	IF TALENT:(ARG:0):恋慕 || TALENT:(ARG:0):親友
		IF TALENT:(ARG:0):貞操観念
			TIMES SOURCE:(ARG:0):愛情, 1.50
		ELSEIF TALENT:(ARG:0):貞操無頓着
			TIMES SOURCE:(ARG:0):愛情, 0.60
		ENDIF
	ELSE
		IF TALENT:(ARG:0):貞操観念
			IF TALENT:(ARG:0):童貞
				SOURCE:(ARG:0):反感 = 2500
			ELSE
				SOURCE:(ARG:0):反感 = 500
			ENDIF
			TIMES SOURCE:(ARG:0):愛情, 0.60
		ELSEIF !TALENT:(ARG:0):貞操無頓着
			IF TALENT:(ARG:0):童貞
				SOURCE:(ARG:0):反感 = 500
			ENDIF
		ENDIF
		IF TALENT:(ARG:0):恋人
			TIMES SOURCE:(ARG:0):反感, 0.10
		ENDIF
	ENDIF

	;好感度と従属度と支配度のうち大きいほうが影響
	LOCAL:0 = MAX(CFLAG:(ARG:0):好感度, CFLAG:(ARG:0):従属度, CFLAG:(ARG:0):支配度)
	IF LOCAL:0 < 100
		TIMES SOURCE:(ARG:0):反感, 1.00
	ELSEIF LOCAL:0 < 300
		TIMES SOURCE:(ARG:0):反感, 0.90
	ELSEIF LOCAL:0 < 500
		TIMES SOURCE:(ARG:0):反感, 0.80
	ELSEIF LOCAL:0 < 800
		TIMES SOURCE:(ARG:0):反感, 0.40
	ELSEIF LOCAL:0 < 1500
		TIMES SOURCE:(ARG:0):反感, 0.15
	ELSE
		SOURCE:(ARG:0):反感 = SOURCE:(ARG:0):反感 / ((LOCAL:0 - 1500) / 50 + 10)
	ENDIF
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8
ELSE
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1
ENDIF

CALL DOUTEI_COMMON(ARG:0, @"%ANAME(ARG:1)%のアナル", GET_SITUATION_BY_TRAIN_MODE())

EXP:(ARG:0):Ａ挿入経験 ++

IF TALENT:(ARG:0):童貞 && HAS_PENIS(ARG:0)
	IF ARG:1 == MASTER
		;童貞喪失フラグ(主人との性交)
		TCVAR:(ARG:0):童貞喪失フラグ = 1
	ELSE
		;童貞喪失フラグ(主人以外との性交)
		TCVAR:(ARG:0):童貞喪失フラグ = 3
	ENDIF
ENDIF

;-------------------------------------------------
;Ａ性交の共通ソース補正(被挿入側)  ARG:0は対象の、ARG:1は相手のキャラ番号
;-------------------------------------------------
@COM_COMMON_ASEX_A(ARG:0, ARG:1)
SOURCE:(ARG:0):奉仕 = SERVE_SEX(ARG:0, 150)

SELECTCASE ABL:(ARG:0):Ａ感
	CASE 0
		TIMES SOURCE:(ARG:0):愛情, 0.30
		SOURCE:(ARG:0):苦痛 += 1200
	CASE 1
		TIMES SOURCE:(ARG:0):愛情, 0.60
		SOURCE:(ARG:0):苦痛 += 500
	CASE 2
		TIMES SOURCE:(ARG:0):愛情, 0.90
		SOURCE:(ARG:0):苦痛 += 200
	CASE 3
		TIMES SOURCE:(ARG:0):愛情, 1.10
		SOURCE:(ARG:0):苦痛 += 80
	CASE 4
		TIMES SOURCE:(ARG:0):愛情, 1.20
		SOURCE:(ARG:0):苦痛 += 30
	CASEELSE
		SOURCE:(ARG:0):愛情 = SOURCE:(ARG:0):愛情 * ((ABL:(ARG:0):Ａ感 - 5) * 2 + 130) / 100
ENDSELECT

IF PALAM:(ARG:0):潤滑 < PALAMLV:1
	TIMES SOURCE:(ARG:0):快Ａ, 0.05
	SOURCE:(ARG:0):苦痛 = SOURCE:(ARG:0):苦痛 * 3 + 1000
ELSEIF PALAM:(ARG:0):潤滑 < PALAMLV:3
	TIMES SOURCE:(ARG:0):快Ａ, 0.20
	SOURCE:(ARG:0):苦痛 = SOURCE:(ARG:0):苦痛 * 3 / 2 + 300
ELSEIF PALAM:(ARG:0):潤滑 < PALAMLV:5
	TIMES SOURCE:(ARG:0):快Ａ, 0.60
	TIMES SOURCE:(ARG:0):苦痛, 1.00
ELSEIF PALAM:(ARG:0):潤滑 < PALAMLV:7
	TIMES SOURCE:(ARG:0):快Ａ, 0.85
	TIMES SOURCE:(ARG:0):苦痛, 0.70
ELSE
	TIMES SOURCE:(ARG:0):快Ａ, 1.00
	TIMES SOURCE:(ARG:0):苦痛, 0.50
ENDIF

IF TALENT:(ARG:0):体格 == 体格_子供 && TALENT:(ARG:1):体格 != 体格_子供
	IF TALENT:(ARG:1):体格 == 体格_小柄
		TIMES SOURCE:(ARG:0):苦痛, 1.50
	ELSE
		TIMES SOURCE:(ARG:0):苦痛, 2.50
	ENDIF
ELSEIF TALENT:(ARG:0):体格 == 体格_小柄 && TALENT:(ARG:1):体格 != 体格_小柄 && TALENT:(ARG:1):体格 != 体格_子供
	TIMES SOURCE:(ARG:0):苦痛, 1.50
ENDIF

;竿サイズで痛みと快感の変動
SELECTCASE GET_PENISSIZE(ARG:1)
	CASE -2
		TIMES SOURCE:(ARG:0):快Ａ, 0.50
		TIMES SOURCE:(ARG:0):苦痛, 0.50
	CASE -1
		TIMES SOURCE:(ARG:0):快Ａ, 0.75
		TIMES SOURCE:(ARG:0):苦痛, 0.75
	CASE 1
		TIMES SOURCE:(ARG:0):快Ａ, 1.25
		TIMES SOURCE:(ARG:0):苦痛, 1.50
	CASE 2
		TIMES SOURCE:(ARG:0):快Ａ, 1.50
		TIMES SOURCE:(ARG:0):苦痛, 2.00
ENDSELECT

;挿入側のABL性交で痛み軽減　ただし1～3までは痛み増加　4でやっと等倍　100からは減少しない
SELECTCASE ABL:(ARG:1):性交
	CASE 0 TO 100
		SOURCE:(ARG:0):苦痛 = SOURCE:(ARG:0):苦痛 * (120 - SQRT(100 * ABL:(ARG:1):性交)) / 100
	CASEELSE
		TIMES SOURCE:(ARG:0):苦痛, 0.20
ENDSELECT

IF IS_ANIMAL(ARG:1)
	SOURCE:(ARG:0):苦痛 = ANIMAL_SOURCE_MULTIPLIER_REVERSED(ARG:0, SOURCE:(ARG:0):苦痛)
	SOURCE:(ARG:0):快Ａ = ANIMAL_SOURCE_MULTIPLIER(ARG:0, SOURCE:(ARG:0):快Ａ)
	IF TALENT:(ARG:1):動物 == 動物_馬
		EXP:(ARG:0):Ａ拡張経験 += 1
		CALL TIGHTNESS_DECREASE_A(ARG:0, RAND(5, 10))
	ENDIF
ENDIF

IF PALAM:(ARG:0):欲情 < PALAMLV:1
	TIMES SOURCE:(ARG:0):愛情, 0.40
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:3
	TIMES SOURCE:(ARG:0):愛情, 0.70
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:5
	TIMES SOURCE:(ARG:0):愛情, 1.00
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:7
	TIMES SOURCE:(ARG:0):愛情, 1.10
ELSE
	TIMES SOURCE:(ARG:0):愛情, 1.20
ENDIF

IF ARG:0 != MASTER && ARG:1 == MASTER
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8
ELSE
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1
ENDIF

IF !IS_EQUIP_PLAYER(ARG:1, 75) && GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_生ハメ依存)
	SOURCE:(ARG:0):歓喜 += 500
ENDIF

CALL VIRGIN_COMMON_A(ARG:0, @"%ANAME(ARG:1)%", GET_SITUATION_BY_TRAIN_MODE())

;Aバイブ挿入時は輪姦経験を加算しない
IF !IS_EQUIP_TARGET(ARG:0, 62)
	;V-AのケースはV側で記述してあるため、ここで記載する必要なし
	{
		SIF !IS_INSERT_SINGLE(ARG:0, "Ｖ") &&
			GET_SITUATION_BY_TRAIN_MODE() == "調教" && (
			IS_EQUIP_PLAYER(ARG:0, GETNUM(TRAINNAME, "フェラチオ")) ||
			IS_EQUIP_PLAYER(ARG:0, GETNUM(TRAINNAME, "玉舐め")) ||
			IS_EQUIP_PLAYER(ARG:0, GETNUM(TRAINNAME, "パイズリ")) ||
			IS_EQUIP_TARGET(ARG:0, GETNUM(TRAINNAME, "顔面騎乗")) ||
			IS_EQUIP_TARGET(ARG:0, GETNUM(TRAINNAME, "Ａ顔面騎乗")) ||
			IS_EQUIP_TARGET(ARG:0, GETNUM(TRAINNAME, "イラマチオ"))
			)
	}
		EXP:(ARG:0):輪姦経験 ++
ENDIF

EXP:(ARG:0):Ａ性交経験 ++

;対象のアナルが緩む(竿のサイズで変動)
;超短小(0～1) 短小(0～2) 普通(1～3) 巨根(2～4) 超巨根(3～4)
SELECTCASE GET_PENISSIZE(ARG:1)
	CASE -2
		LOCAL:1 = RAND(0, 2)
	CASE -1
		LOCAL:1 = RAND(0, 3)
	CASE 0
		LOCAL:1 = RAND(1, 4)
	CASE 1
		LOCAL:1 = RAND(2, 5)
	CASE 2
		LOCAL:1 = RAND(3, 5)
ENDSELECT

;★if difference between sizes is big, increase the stretching
SELECTCASE TALENT:(ARG:0):Ａ締まり
	CASE IS >= 締まり_ぎちぎち ;unused
		IF GET_PENISSIZE(ARG:1) == 2
			;3.5 + 7.5 = 11
			LOCAL:1 += RAND(5, 11)
			EXP:(ARG:0):Ａ拡張経験 ++
		ELSEIF GET_PENISSIZE(ARG:1) == 1
			;3 + 5 = 8
			LOCAL:1 += RAND(3, 8)
		ELSEIF GET_PENISSIZE(ARG:1) == 0
			;2 + 3 = 5
			LOCAL:1 += RAND(2, 5)
		ENDIF
	CASE IS >= 締まり_きつきつ ;shut tight
		IF GET_PENISSIZE(ARG:1) == 2
			;3.5 + 5 = 8.5
			LOCAL:1 += RAND(3, 8)
			EXP:(ARG:0):Ａ拡張経験 ++
		ELSEIF GET_PENISSIZE(ARG:1) == 1
			;3 + 3 = 6
			LOCAL:1 += RAND(2, 5)
		ENDIF
	CASE IS >= 締まり_きゅっきゅっ ;very tight
		IF GET_PENISSIZE(ARG:1) == 2
			;3.5 + 1 = 4.5
			LOCAL:1 += RAND(0, 3)
		ELSEIF GET_PENISSIZE(ARG:1) == 1
			;3 + 0.5 = 3.5
			LOCAL:1 += RAND:2
		ENDIF
	CASE IS >= 締まり_名器 ;tight
		IF GET_PENISSIZE(ARG:1) == 2
			;3.5 + 0.5 = 4
			LOCAL:1 += RAND:2
		ENDIF
ENDSELECT

CALL TIGHTNESS_DECREASE_A(ARG:0, LOCAL:1)

;-------------------------------------------------
;Ｕ性交の共通ソース補正(挿入側)  ARG:0は対象の、ARG:1は相手のキャラ番号
;-------------------------------------------------
@COM_COMMON_USEX_P(ARG:0, ARG:1)

SOURCE:(ARG:0):奉仕 = SERVE_SEX(ARG:0, 250)

SELECTCASE ABL:(ARG:1):Ｕ感
	CASE 0
		TIMES SOURCE:(ARG:0):愛情, 0.90
	CASE 1
		TIMES SOURCE:(ARG:0):愛情, 0.95
	CASE 2
		TIMES SOURCE:(ARG:0):愛情, 1.00
	CASE 3
		TIMES SOURCE:(ARG:0):愛情, 1.05
	CASE 4
		TIMES SOURCE:(ARG:0):愛情, 1.10
	CASEELSE
		SOURCE:(ARG:0):愛情 = SOURCE:(ARG:0):愛情 * MIN((ABL:(ARG:1):Ｖ感 - 5) * 1 + 115, 300) / 100
ENDSELECT

IF PALAM:(ARG:1):潤滑 < PALAMLV:1
	TIMES SOURCE:(ARG:0):快Ｐ, 0.30
	TIMES SOURCE:(ARG:0):愛情, 0.50
ELSEIF PALAM:(ARG:1):潤滑 < PALAMLV:3
	TIMES SOURCE:(ARG:0):快Ｐ, 0.60
	TIMES SOURCE:(ARG:0):愛情, 0.80
ELSEIF PALAM:(ARG:1):潤滑 < PALAMLV:5
	TIMES SOURCE:(ARG:0):快Ｐ, 0.80
	TIMES SOURCE:(ARG:0):愛情, 1.00
ELSEIF PALAM:(ARG:1):潤滑 < PALAMLV:7
	TIMES SOURCE:(ARG:0):快Ｐ, 0.90
	TIMES SOURCE:(ARG:0):愛情, 1.10
ELSE
	TIMES SOURCE:(ARG:0):快Ｐ, 1.00
	TIMES SOURCE:(ARG:0):愛情, 1.20
ENDIF

IF PALAM:(ARG:0):欲情 < PALAMLV:1
	TIMES SOURCE:(ARG:0):愛情, 0.40
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:3
	TIMES SOURCE:(ARG:0):愛情, 0.70
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:5
	TIMES SOURCE:(ARG:0):愛情, 1.00
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:7
	TIMES SOURCE:(ARG:0):愛情, 1.10
ELSE
	TIMES SOURCE:(ARG:0):愛情, 1.20
ENDIF

IF TALENT:(ARG:0):童貞
	TIMES SOURCE:(ARG:0):愛情, 2.50
ENDIF

IF ARG:0 != MASTER && ARG:1 == MASTER
	IF TALENT:(ARG:0):恋慕 || TALENT:(ARG:0):親友
		IF TALENT:(ARG:0):貞操観念
			TIMES SOURCE:(ARG:0):愛情, 1.50
		ELSEIF TALENT:(ARG:0):貞操無頓着
			TIMES SOURCE:(ARG:0):愛情, 0.60
		ENDIF
	ELSE
		IF TALENT:(ARG:0):貞操観念
			IF TALENT:(ARG:0):童貞
				SOURCE:(ARG:0):反感 = 2500
			ELSE
				SOURCE:(ARG:0):反感 = 500
			ENDIF
			TIMES SOURCE:(ARG:0):愛情, 0.60
		ELSEIF !TALENT:(ARG:0):貞操無頓着
			IF TALENT:(ARG:0):童貞
				SOURCE:(ARG:0):反感 = 500
			ENDIF
		ENDIF
		IF TALENT:(ARG:0):恋人
			TIMES SOURCE:(ARG:0):反感, 0.10
		ENDIF
	ENDIF

	;好感度と従属度と支配度のうち大きいほうが影響
	LOCAL:0 = MAX(CFLAG:(ARG:0):好感度, CFLAG:(ARG:0):従属度, CFLAG:(ARG:0):支配度)
	IF LOCAL:0 < 100
		TIMES SOURCE:(ARG:0):反感, 1.00
	ELSEIF LOCAL:0 < 300
		TIMES SOURCE:(ARG:0):反感, 0.90
	ELSEIF LOCAL:0 < 500
		TIMES SOURCE:(ARG:0):反感, 0.80
	ELSEIF LOCAL:0 < 800
		TIMES SOURCE:(ARG:0):反感, 0.40
	ELSEIF LOCAL:0 < 1500
		TIMES SOURCE:(ARG:0):反感, 0.15
	ELSE
		SOURCE:(ARG:0):反感 = SOURCE:(ARG:0):反感 / ((LOCAL:0 - 1500) / 50 + 10)
	ENDIF
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8
ELSE
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1
ENDIF

CALL DOUTEI_COMMON(ARG:0, @"%ANAME(ARG:1)%の尿道", GET_SITUATION_BY_TRAIN_MODE())

EXP:(ARG:0):Ｕ挿入経験 ++

IF TALENT:(ARG:0):童貞 && HAS_PENIS(ARG:0)
	IF ARG:1 == MASTER
		;童貞喪失フラグ(主人との性交)
		TCVAR:(ARG:0):童貞喪失フラグ = 1
	ELSE
		;童貞喪失フラグ(主人以外との性交)
		TCVAR:(ARG:0):童貞喪失フラグ = 3
	ENDIF
ENDIF

;-------------------------------------------------
;Ｕ性交の共通ソース補正(被挿入側)  ARG:0は対象の、ARG:1は相手のキャラ番号
;-------------------------------------------------
@COM_COMMON_USEX_U(ARG:0, ARG:1)
SOURCE:(ARG:0):奉仕 = SERVE_SEX(ARG:0, 150)

SELECTCASE ABL:(ARG:0):Ｕ感
	CASE 0
		TIMES SOURCE:(ARG:0):愛情, 0.20
		SOURCE:(ARG:0):苦痛 += 1500
	CASE 1
		TIMES SOURCE:(ARG:0):愛情, 0.40
		SOURCE:(ARG:0):苦痛 += 500
	CASE 2
		TIMES SOURCE:(ARG:0):愛情, 0.70
		SOURCE:(ARG:0):苦痛 += 200
	CASE 3
		TIMES SOURCE:(ARG:0):愛情, 0.90
		SOURCE:(ARG:0):苦痛 += 80
	CASE 4
		TIMES SOURCE:(ARG:0):愛情, 1.00
		SOURCE:(ARG:0):苦痛 += 30
	CASEELSE
		SOURCE:(ARG:0):愛情 = SOURCE:(ARG:0):愛情 * ((ABL:(ARG:0):Ｕ感 - 5) * 2 + 110) / 100
ENDSELECT

IF PALAM:(ARG:0):潤滑 < PALAMLV:1
	TIMES SOURCE:(ARG:0):快Ｕ, 0.05
	SOURCE:(ARG:0):苦痛 = SOURCE:(ARG:0):苦痛 * 3 + 1000
ELSEIF PALAM:(ARG:0):潤滑 < PALAMLV:3
	TIMES SOURCE:(ARG:0):快Ｕ, 0.20
	SOURCE:(ARG:0):苦痛 = SOURCE:(ARG:0):苦痛 * 3 / 2 + 300
ELSEIF PALAM:(ARG:0):潤滑 < PALAMLV:5
	TIMES SOURCE:(ARG:0):快Ｕ, 0.60
	TIMES SOURCE:(ARG:0):苦痛, 1.00
ELSEIF PALAM:(ARG:0):潤滑 < PALAMLV:7
	TIMES SOURCE:(ARG:0):快Ｕ, 0.85
	TIMES SOURCE:(ARG:0):苦痛, 0.70
ELSE
	TIMES SOURCE:(ARG:0):快Ｕ, 1.00
	TIMES SOURCE:(ARG:0):苦痛, 0.50
ENDIF

IF TALENT:(ARG:0):体格 == 体格_子供 && TALENT:(ARG:1):体格 != 体格_子供
	IF TALENT:(ARG:1):体格 == 体格_小柄
		TIMES SOURCE:(ARG:0):苦痛, 1.50
	ELSE
		TIMES SOURCE:(ARG:0):苦痛, 2.50
	ENDIF
ELSEIF TALENT:(ARG:0):体格 == 体格_小柄 && TALENT:(ARG:1):体格 != 体格_小柄 && TALENT:(ARG:1):体格 != 体格_子供
	TIMES SOURCE:(ARG:0):苦痛, 1.50
ENDIF

;竿サイズで痛みと快感の変動
SELECTCASE GET_PENISSIZE(ARG:1)
	CASE -2
		TIMES SOURCE:(ARG:0):快Ｕ, 0.50
		TIMES SOURCE:(ARG:0):苦痛, 0.50
	CASE -1
		TIMES SOURCE:(ARG:0):快Ｕ, 0.75
		TIMES SOURCE:(ARG:0):苦痛, 0.75
	CASE 1
		TIMES SOURCE:(ARG:0):快Ｕ, 1.25
		TIMES SOURCE:(ARG:0):苦痛, 1.50
	CASE 2
		TIMES SOURCE:(ARG:0):快Ｕ, 1.50
		TIMES SOURCE:(ARG:0):苦痛, 2.00
ENDSELECT

;挿入側のABL性交で痛み軽減　ただし1～3までは痛み増加　4でやっと等倍　100からは減少しない
SELECTCASE ABL:(ARG:1):性交
	CASE 0 TO 100
		SOURCE:(ARG:0):苦痛 = SOURCE:(ARG:0):苦痛 * (120 - SQRT(100 * ABL:(ARG:1):性交)) / 100
	CASEELSE
		TIMES SOURCE:(ARG:0):苦痛, 0.20
ENDSELECT

IF IS_ANIMAL(ARG:1)
	SOURCE:(ARG:0):苦痛 = ANIMAL_SOURCE_MULTIPLIER_REVERSED(ARG:0, SOURCE:(ARG:0):苦痛)
	SOURCE:(ARG:0):快Ｕ = ANIMAL_SOURCE_MULTIPLIER(ARG:0, SOURCE:(ARG:0):快Ｕ)
ENDIF

IF PALAM:(ARG:0):欲情 < PALAMLV:1
	TIMES SOURCE:(ARG:0):愛情, 0.30
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:3
	TIMES SOURCE:(ARG:0):愛情, 0.50
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:5
	TIMES SOURCE:(ARG:0):愛情, 0.80
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:7
	TIMES SOURCE:(ARG:0):愛情, 1.00
ELSE
	TIMES SOURCE:(ARG:0):愛情, 1.10
ENDIF

IF ARG:0 != MASTER && ARG:1 == MASTER
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 0.8
ELSE
	SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_浮気癖)
		TIMES LOCAL:0, 1.1
ENDIF

IF !IS_EQUIP_PLAYER(ARG:1, 75) && GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_生ハメ依存)
	SOURCE:(ARG:0):歓喜 += 500
ENDIF

{
	SIF !IS_INSERT_SINGLE(ARG:0, "Ｖ") &&
		GET_SITUATION_BY_TRAIN_MODE() == "調教" && (
		IS_EQUIP_PLAYER(ARG:0, GETNUM(TRAINNAME, "フェラチオ")) ||
		IS_EQUIP_PLAYER(ARG:0, GETNUM(TRAINNAME, "玉舐め")) ||
		IS_EQUIP_PLAYER(ARG:0, GETNUM(TRAINNAME, "パイズリ")) ||
		IS_EQUIP_TARGET(ARG:0, GETNUM(TRAINNAME, "顔面騎乗")) ||
		IS_EQUIP_TARGET(ARG:0, GETNUM(TRAINNAME, "Ａ顔面騎乗")) ||
		IS_EQUIP_TARGET(ARG:0, GETNUM(TRAINNAME, "イラマチオ"))
		)
}
	EXP:(ARG:0):輪姦経験 ++

EXP:(ARG:0):Ｕ性交経験 ++

;------------------
;動物キャラに何かされるor何かするときの、獣姦経験による補正計算
;ARG:0がキャラ、ARG:1が計算したい数値
;-----------------
@ANIMAL_SOURCE_MULTIPLIER(ARG:0, ARG:1)
#FUNCTION
SELECTCASE EXP:(ARG:0):獣姦経験
	CASE IS < 50
		TIMES ARG:1, 0.50
	CASE IS < 100
		TIMES ARG:1, 0.70
	CASE IS < 150
		TIMES ARG:1, 1.00
	CASE IS < 200
		TIMES ARG:1, 1.10
	CASE IS < 300
		TIMES ARG:1, 1.20
	CASEELSE
		TIMES ARG:1, 1.30
ENDSELECT
SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_雌犬)
	TIMES ARG:1, 1.10
RETURNF ARG:1

;------------------
;動物キャラに何かされるor何かするときの、獣姦経験による逆補正計算
;ARG:0がキャラ、ARG:1が計算したい数値
;-----------------
@ANIMAL_SOURCE_MULTIPLIER_REVERSED(ARG:0, ARG:1)
#FUNCTION
SELECTCASE EXP:(ARG:0):獣姦経験
	CASE IS < 50
		TIMES ARG:1, 1.50
	CASE IS < 100
		TIMES ARG:1, 1.25
	CASE IS < 150
		TIMES ARG:1, 1.00
	CASE IS < 200
		TIMES ARG:1, 0.90
	CASE IS < 300
		TIMES ARG:1, 0.80
	CASEELSE
		TIMES ARG:1, 0.70
ENDSELECT
SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_雌犬)
	TIMES ARG:1, 0.8
RETURNF ARG:1