code:
;各ソースによる影響の計算

;-------------------------------------------------
;快Ｃのソース
;-------------------------------------------------
@CALC_SOURCE0(ARG:0)
#DIM DYNAMIC 快楽加算値
#DIM DYNAMIC 欲情加算値
#DIM DYNAMIC 感情加算値
#DIM DYNAMIC 射精加算値

快楽加算値 = SOURCE:(ARG:0):快Ｃ
欲情加算値 = SOURCE:(ARG:0):快Ｃ
感情加算値 = SOURCE:(ARG:0):快Ｃ / 5
射精加算値 = SOURCE:(ARG:0):快Ｃ

快楽加算値 = CALC_SOURCE_SENSE_BASE(ABL:(ARG:0):Ｃ感, 快楽加算値)
欲情加算値 = CALC_SOURCE_SENSE_BASE(ABL:(ARG:0):Ｃ感, 欲情加算値)

;欲情による共通補正
快楽加算値 = CALC_SOURCE_SENSE_ESTRUS(ARG:0, 快楽加算値)

SELECTCASE ABL:(ARG:0):欲望
	CASE 0
		TIMES 欲情加算値, 0.10
		TIMES 感情加算値, 1.00
	CASE 1
		TIMES 欲情加算値, 0.15
		TIMES 感情加算値, 0.85
	CASE 2
		TIMES 欲情加算値, 0.20
		TIMES 感情加算値, 0.70
	CASE 3
		TIMES 欲情加算値, 0.25
		TIMES 感情加算値, 0.40
	CASE 4
		TIMES 欲情加算値, 0.30
		TIMES 感情加算値, 0.30
	CASEELSE
		欲情加算値 = 欲情加算値 * ((ABL:(ARG:0):欲望 - 5) * 5 + 40) / 100
		TIMES 感情加算値, 0.10
ENDSELECT

IF TALENT:(ARG:0):Ｃ敏感
	TIMES 快楽加算値, 1.5
	TIMES 欲情加算値, 2.00
	TIMES 射精加算値, 1.50
ENDIF

IF TALENT:(ARG:0):Ｃ鈍感
	TIMES 快楽加算値, 0.75
	TIMES 欲情加算値, 0.50
	TIMES 射精加算値, 0.75
ENDIF

IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫核)
	TIMES 快楽加算値, 1.50
	TIMES 欲情加算値, 1.20
	TIMES 感情加算値, 0.50
	TIMES 射精加算値, 1.50
ENDIF

;媚薬使用中
IF TCVAR:(ARG:0):媚薬
	TIMES 快楽加算値, 1.5
	TIMES 欲情加算値, 1.5
	TIMES 射精加算値, 1.50
ENDIF

;桃源香使用中
IF TFLAG:桃源香使用中
	TIMES 快楽加算値, 1.25
	TIMES 欲情加算値, 1.5
	TIMES 射精加算値, 1.25
ENDIF

;体力0による行動不能
IF TCVAR:(ARG:0):行動不能フラグ
	TIMES 快楽加算値, 0.20
	TIMES 欲情加算値, 0.20
	TIMES 射精加算値, 0.20
ENDIF

;気力0による失神中
IF TCVAR:(ARG:0):失神フラグ
	TIMES 快楽加算値, 0.20
	TIMES 欲情加算値, 0.20
	TIMES 射精加算値, 0.20
ENDIF

;睡眠中
IF TCVAR:(ARG:0):離脱フラグ == 1
	TIMES 快楽加算値, 0.50
	TIMES 欲情加算値, 0.50
	TIMES 射精加算値, 0.50
ENDIF

; ;逓減補正
; 快楽加算値 = SQRT(快楽加算値 * 10000) * 5 / 100
; 射精加算値 = SQRT(欲情加算値 * 10000) * 5 / 100

CUP:(ARG:0):欲情 += 欲情加算値

IF TALENT:(ARG:0):恋慕 && TALENT:(ARG:0):恋人 && TALENT:(ARG:0):合意
	TIMES 感情加算値, 0.25
ELSEIF (TALENT:(ARG:0):恋慕 || TALENT:(ARG:0):恋人) && TALENT:(ARG:0):合意
	TIMES 感情加算値, 0.50
ENDIF

IF ARG:0 != MASTER
	IF TALENT:(ARG:0):孤高
		CUP:(ARG:0):怒主 += 感情加算値
	ENDIF

	IF TALENT:(ARG:0):抑圧 || TALENT:(ARG:0):快感の否定
		CUP:(ARG:0):哀主 += 感情加算値
	ENDIF
ENDIF

IF HAS_PENIS(ARG:0)
	CUP:(ARG:0):射精 += 射精加算値 / 5
ENDIF

CUP:(ARG:0):快Ｃ += 快楽加算値
CUP:(ARG:0):潮吹き += SQRT(LOCAL:0 * 400)

IF TALENT:(ARG:0):母乳体質
	CUP:(ARG:0):噴乳 += CALC_SOURCE_MILK(ARG:0, 射精加算値 / 5)
ENDIF

;-------------------------------------------------
;快Ｐのソース
;-------------------------------------------------
@CALC_SOURCE9(ARG:0)
#DIM DYNAMIC 快楽加算値
#DIM DYNAMIC 欲情加算値
#DIM DYNAMIC 感情加算値
#DIM DYNAMIC 射精加算値

快楽加算値 = SOURCE:(ARG:0):快Ｐ
欲情加算値 = SOURCE:(ARG:0):快Ｐ
感情加算値 = SOURCE:(ARG:0):快Ｐ / 5
射精加算値 = SOURCE:(ARG:0):快Ｐ

快楽加算値 = CALC_SOURCE_SENSE_BASE(ABL:(ARG:0):Ｃ感, 快楽加算値)
欲情加算値 = CALC_SOURCE_SENSE_BASE(ABL:(ARG:0):Ｃ感, 欲情加算値)

;欲情による共通補正
快楽加算値 = CALC_SOURCE_SENSE_ESTRUS(ARG:0, 快楽加算値)

SELECTCASE ABL:(ARG:0):欲望
	CASE 0
		TIMES 欲情加算値, 0.10
		TIMES 感情加算値, 1.00
	CASE 1
		TIMES 欲情加算値, 0.15
		TIMES 感情加算値, 0.85
	CASE 2
		TIMES 欲情加算値, 0.20
		TIMES 感情加算値, 0.70
	CASE 3
		TIMES 欲情加算値, 0.25
		TIMES 感情加算値, 0.40
	CASE 4
		TIMES 欲情加算値, 0.30
		TIMES 感情加算値, 0.30
	CASEELSE
		欲情加算値 = 欲情加算値 * ((ABL:(ARG:0):欲望 - 5) * 5 + 40) / 100
		TIMES 感情加算値, 0.10
ENDSELECT

IF TALENT:(ARG:0):Ｃ敏感
	TIMES 快楽加算値, 1.50
	TIMES 欲情加算値, 2.00
	TIMES 射精加算値, 1.50
ENDIF

IF TALENT:(ARG:0):Ｃ鈍感
	TIMES 快楽加算値, 0.75
	TIMES 欲情加算値, 0.50
	TIMES 射精加算値, 0.75
ENDIF

IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫核)
	TIMES 快楽加算値, 1.50
	TIMES 欲情加算値, 1.20
	TIMES 感情加算値, 0.50
	TIMES 射精加算値, 1.50
ENDIF

;媚薬使用中
IF TCVAR:(ARG:0):媚薬
	TIMES 快楽加算値, 1.5
	TIMES 欲情加算値, 1.5
	TIMES 射精加算値, 1.50
ENDIF

;桃源香使用中
IF TFLAG:桃源香使用中
	TIMES 快楽加算値, 1.25
	TIMES 欲情加算値, 1.5
	TIMES 射精加算値, 1.25
ENDIF

;体力0による行動不能
IF TCVAR:(ARG:0):行動不能フラグ
	TIMES 快楽加算値, 0.20
	TIMES 欲情加算値, 0.20
	TIMES 射精加算値, 0.20
ENDIF

;気力0による失神中
IF TCVAR:(ARG:0):失神フラグ
	TIMES 快楽加算値, 0.20
	TIMES 欲情加算値, 0.20
	TIMES 射精加算値, 0.20
ENDIF

;睡眠中
IF TCVAR:(ARG:0):離脱フラグ == 1
	TIMES 快楽加算値, 0.50
	TIMES 欲情加算値, 0.50
	TIMES 射精加算値, 0.50
ENDIF

;逓減補正
; 快楽加算値 = SQRT(快楽加算値 * 1000) * 50 / 100
; 射精加算値 = SQRT(欲情加算値 * 1000) * 50 / 100

CUP:(ARG:0):欲情 += 欲情加算値

IF HAS_PENIS(ARG:0)
	CUP:(ARG:0):射精 += 射精加算値
ENDIF

CUP:(ARG:0):快Ｃ += 快楽加算値 / 15

IF TALENT:(ARG:0):母乳体質
	CUP:(ARG:0):噴乳 += CALC_SOURCE_MILK(ARG:0, 射精加算値 / 5)
ENDIF

IF ARG:0 != MASTER
	IF TALENT:(ARG:0):恋慕 || TALENT:(ARG:0):恋人
		TIMES 感情加算値, 0.50
	ENDIF

	IF TALENT:(ARG:0):孤高
		CUP:(ARG:0):怒主 += 感情加算値
	ENDIF

	IF TALENT:(ARG:0):抑圧 || TALENT:(ARG:0):快感の否定
		CUP:(ARG:0):哀主 += 感情加算値
	ENDIF
	;獣変化中
	IF TALENT:(ARG:0):動物耳 || TALENT:(ARG:0):しっぽ
		;好感度上昇
		IF 快楽加算値 >= 100000
			TCVAR:(ARG:0):好感度上昇値 += 2500
		ELSEIF 快楽加算値 >= 20000
			TCVAR:(ARG:0):好感度上昇値 += 1700
		ELSEIF 快楽加算値 >= 10000
			TCVAR:(ARG:0):好感度上昇値 += 1200
		ELSEIF 快楽加算値 >= 3000
			TCVAR:(ARG:0):好感度上昇値 += 800
		ELSEIF 快楽加算値 >= 500
			TCVAR:(ARG:0):好感度上昇値 += 600
		ENDIF

		;依存度上昇
		IF 快楽加算値 >= 100000
			TCVAR:(ARG:0):依存度上昇値 += 2500
		ELSEIF 快楽加算値 >= 20000
			TCVAR:(ARG:0):依存度上昇値 += 1700
		ELSEIF 快楽加算値 >= 10000
			TCVAR:(ARG:0):依存度上昇値 += 1200
		ELSEIF 快楽加算値 >= 3000
			TCVAR:(ARG:0):依存度上昇値 += 800
		ELSEIF 快楽加算値 >= 500
			TCVAR:(ARG:0):依存度上昇値 += 600
		ENDIF
	ENDIF
ENDIF

;-------------------------------------------------
;快Ｖのソース
;-------------------------------------------------
@CALC_SOURCE1(ARG:0)
#DIM DYNAMIC 快楽加算値
#DIM DYNAMIC 欲情加算値
#DIM DYNAMIC 感情加算値
#DIM DYNAMIC 射精加算値

快楽加算値 = SOURCE:(ARG:0):快Ｖ
欲情加算値 = SOURCE:(ARG:0):快Ｖ
感情加算値 = SOURCE:(ARG:0):快Ｖ / 5
射精加算値 = SOURCE:(ARG:0):快Ｖ

快楽加算値 = CALC_SOURCE_SENSE_BASE(ABL:(ARG:0):Ｖ感, 快楽加算値)
欲情加算値 = CALC_SOURCE_SENSE_BASE(ABL:(ARG:0):Ｖ感, 欲情加算値)

;欲情による共通補正
快楽加算値 = CALC_SOURCE_SENSE_ESTRUS(ARG:0, 快楽加算値)

SELECTCASE ABL:(ARG:0):欲望
	CASE 0
		TIMES 欲情加算値, 0.10
		TIMES 感情加算値, 1.00
	CASE 1
		TIMES 欲情加算値, 0.15
		TIMES 感情加算値, 0.85
	CASE 2
		TIMES 欲情加算値, 0.20
		TIMES 感情加算値, 0.70
	CASE 3
		TIMES 欲情加算値, 0.25
		TIMES 感情加算値, 0.40
	CASE 4
		TIMES 欲情加算値, 0.30
		TIMES 感情加算値, 0.30
	CASEELSE
		欲情加算値 = 欲情加算値 * ((ABL:(ARG:0):欲望 - 5) * 5 + 40) / 100
		TIMES 感情加算値, 0.10
ENDSELECT

IF TALENT:(ARG:0):Ｖ敏感
	TIMES 快楽加算値, 1.50
	TIMES 欲情加算値, 2.00
	TIMES 射精加算値, 1.50
ENDIF

IF TALENT:(ARG:0):Ｖ鈍感
	TIMES 快楽加算値, 0.75
	TIMES 欲情加算値, 0.50
	TIMES 射精加算値, 0.75
ENDIF

IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫壷)
	TIMES 快楽加算値, 1.50
	TIMES 欲情加算値, 1.50
	TIMES 感情加算値, 0.50
	TIMES 射精加算値, 1.50
ENDIF

;媚薬使用中
IF TCVAR:(ARG:0):媚薬
	TIMES 快楽加算値, 1.5
	TIMES 欲情加算値, 1.5
	TIMES 射精加算値, 1.50
ENDIF

;桃源香使用中
IF TFLAG:桃源香使用中
	TIMES 快楽加算値, 1.25
	TIMES 欲情加算値, 1.5
	TIMES 射精加算値, 1.25
ENDIF

;体力0による行動不能
IF TCVAR:(ARG:0):行動不能フラグ
	TIMES 快楽加算値, 0.20
	TIMES 欲情加算値, 0.20
	TIMES 射精加算値, 0.20
ENDIF

;気力0による失神中
IF TCVAR:(ARG:0):失神フラグ
	TIMES 快楽加算値, 0.20
	TIMES 欲情加算値, 0.20
	TIMES 射精加算値, 0.20
ENDIF

;睡眠中
IF TCVAR:(ARG:0):離脱フラグ == 1
	TIMES 快楽加算値, 0.50
	TIMES 欲情加算値, 0.50
	TIMES 射精加算値, 0.50
ENDIF

;逓減補正
; 快楽加算値 = SQRT(快楽加算値 * 1000) * 50 / 100
; 射精加算値 = SQRT(欲情加算値 * 1000) * 50 / 100

CUP:(ARG:0):快Ｖ += 快楽加算値
CUP:(ARG:0):欲情 += 欲情加算値
CUP:(ARG:0):潮吹き += SQRT(快楽加算値 * 400)

IF HAS_PENIS(ARG:0)
	CUP:(ARG:0):射精 += 射精加算値 / 2
ENDIF

IF TALENT:(ARG:0):母乳体質
	CUP:(ARG:0):噴乳 += CALC_SOURCE_MILK(ARG:0, 射精加算値 / 5)
ENDIF

IF ARG:0 != MASTER
	CUP:(ARG:0):哀主 -= 欲情加算値 / 5

	SIF TALENT:(ARG:0):恋慕 && TALENT:(ARG:0):恋人 && TALENT:(ARG:0):合意
		TIMES 感情加算値, 0.50

	SIF !TALENT:(ARG:0):処女
		TIMES 感情加算値, 0.50

	IF TALENT:(ARG:0):孤高
		CUP:(ARG:0):怒主 += 感情加算値
	ENDIF

	IF TALENT:(ARG:0):抑圧 || TALENT:(ARG:0):快感の否定
		CUP:(ARG:0):哀主 += 感情加算値
	ENDIF

	IF TALENT:(ARG:0):処女
		CUP:(ARG:0):怖主 += 感情加算値
	ENDIF

	;獣変化中
	IF TALENT:(ARG:0):動物耳 || TALENT:(ARG:0):しっぽ
		;好感度上昇
		IF 快楽加算値 >= 100000
			TCVAR:(ARG:0):好感度上昇値 += 2500
		ELSEIF 快楽加算値 >= 20000
			TCVAR:(ARG:0):好感度上昇値 += 1700
		ELSEIF 快楽加算値 >= 10000
			TCVAR:(ARG:0):好感度上昇値 += 1200
		ELSEIF 快楽加算値 >= 3000
			TCVAR:(ARG:0):好感度上昇値 += 800
		ELSEIF 快楽加算値 >= 500
			TCVAR:(ARG:0):好感度上昇値 += 600
		ENDIF

		;依存度上昇
		IF 快楽加算値 >= 100000
			TCVAR:(ARG:0):依存度上昇値 += 2500
		ELSEIF 快楽加算値 >= 20000
			TCVAR:(ARG:0):依存度上昇値 += 1700
		ELSEIF 快楽加算値 >= 10000
			TCVAR:(ARG:0):依存度上昇値 += 1200
		ELSEIF 快楽加算値 >= 3000
			TCVAR:(ARG:0):依存度上昇値 += 800
		ELSEIF 快楽加算値 >= 500
			TCVAR:(ARG:0):依存度上昇値 += 600
		ENDIF

		;従属度上昇
		IF 快楽加算値 >= 100000
			TCVAR:(ARG:0):従属度上昇値 += 1200
		ELSEIF 快楽加算値 >= 20000
			TCVAR:(ARG:0):従属度上昇値 += 900
		ELSEIF 快楽加算値 >= 10000
			TCVAR:(ARG:0):従属度上昇値 += 700
		ELSEIF 快楽加算値 >= 3000
			TCVAR:(ARG:0):従属度上昇値 += 500
		ELSEIF 快楽加算値 >= 500
			TCVAR:(ARG:0):従属度上昇値 += 300
		ENDIF

		;支配度上昇
		IF 快楽加算値 >= 100000
			TCVAR:(ARG:0):支配度上昇値 += 1200
		ELSEIF 快楽加算値 >= 20000
			TCVAR:(ARG:0):支配度上昇値 += 900
		ELSEIF 快楽加算値 >= 10000
			TCVAR:(ARG:0):支配度上昇値 += 700
		ELSEIF 快楽加算値 >= 3000
			TCVAR:(ARG:0):支配度上昇値 += 500
		ELSEIF 快楽加算値 >= 500
			TCVAR:(ARG:0):支配度上昇値 += 300
		ENDIF

	ELSE
		;好感度上昇
		IF 快楽加算値 >= 100000
			TCVAR:(ARG:0):好感度上昇値 += 700
		ELSEIF 快楽加算値 >= 20000
			TCVAR:(ARG:0):好感度上昇値 += 500
		ELSEIF 快楽加算値 >= 10000
			TCVAR:(ARG:0):好感度上昇値 += 300
		ELSEIF 快楽加算値 >= 3000
			TCVAR:(ARG:0):好感度上昇値 += 200
		ELSEIF 快楽加算値 >= 500
			TCVAR:(ARG:0):好感度上昇値 += 100
		ENDIF

		;依存度上昇
		IF 快楽加算値 >= 100000
			TCVAR:(ARG:0):依存度上昇値 += 700
		ELSEIF 快楽加算値 >= 20000
			TCVAR:(ARG:0):依存度上昇値 += 500
		ELSEIF 快楽加算値 >= 10000
			TCVAR:(ARG:0):依存度上昇値 += 300
		ELSEIF 快楽加算値 >= 3000
			TCVAR:(ARG:0):依存度上昇値 += 200
		ELSEIF 快楽加算値 >= 500
			TCVAR:(ARG:0):依存度上昇値 += 100
		ENDIF
	ENDIF

ENDIF
;-------------------------------------------------
;快Ａのソース
;-------------------------------------------------
@CALC_SOURCE2(ARG:0)
#DIM DYNAMIC 快楽加算値
#DIM DYNAMIC 欲情加算値
#DIM DYNAMIC 感情加算値
#DIM DYNAMIC 射精加算値

快楽加算値 = SOURCE:(ARG:0):快Ａ
欲情加算値 = SOURCE:(ARG:0):快Ａ
感情加算値 = SOURCE:(ARG:0):快Ａ / 5
射精加算値 = SOURCE:(ARG:0):快Ａ

快楽加算値 = CALC_SOURCE_SENSE_BASE(ABL:(ARG:0):Ａ感, 快楽加算値)
欲情加算値 = CALC_SOURCE_SENSE_BASE(ABL:(ARG:0):Ａ感, 欲情加算値)

;欲情による共通補正
快楽加算値 = CALC_SOURCE_SENSE_ESTRUS(ARG:0, 快楽加算値)

SELECTCASE ABL:(ARG:0):欲望
	CASE 0
		TIMES 欲情加算値, 0.10
		TIMES 感情加算値, 1.00
	CASE 1
		TIMES 欲情加算値, 0.15
		TIMES 感情加算値, 0.85
	CASE 2
		TIMES 欲情加算値, 0.20
		TIMES 感情加算値, 0.70
	CASE 3
		TIMES 欲情加算値, 0.25
		TIMES 感情加算値, 0.40
	CASE 4
		TIMES 欲情加算値, 0.30
		TIMES 感情加算値, 0.30
	CASEELSE
		欲情加算値 = 欲情加算値 * ((ABL:(ARG:0):欲望 - 5) * 5 + 40) / 100
		TIMES 感情加算値, 0.10
ENDSELECT

IF TALENT:(ARG:0):Ａ敏感
	TIMES 快楽加算値, 1.50
	TIMES 欲情加算値, 2.00
	TIMES 射精加算値, 1.50
ENDIF

IF TALENT:(ARG:0):Ａ鈍感
	TIMES 快楽加算値, 0.75
	TIMES 欲情加算値, 0.50
	TIMES 射精加算値, 0.75
ENDIF

IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_尻穴狂い)
	TIMES 快楽加算値, 1.50
	TIMES 欲情加算値, 1.20
	TIMES 感情加算値, 0.50
	TIMES 射精加算値, 1.50
ENDIF

;媚薬使用中
IF TCVAR:(ARG:0):媚薬
	TIMES 快楽加算値, 1.5
	TIMES 欲情加算値, 1.5
	TIMES 射精加算値, 1.50
ENDIF

;桃源香使用中
IF TFLAG:桃源香使用中
	TIMES 快楽加算値, 1.25
	TIMES 欲情加算値, 1.5
	TIMES 射精加算値, 1.25
ENDIF

;体力0による行動不能
IF TCVAR:(ARG:0):行動不能フラグ
	TIMES 快楽加算値, 0.20
	TIMES 欲情加算値, 0.20
	TIMES 射精加算値, 0.20
ENDIF

;気力0による失神中
IF TCVAR:(ARG:0):失神フラグ
	TIMES 快楽加算値, 0.20
	TIMES 欲情加算値, 0.20
	TIMES 射精加算値, 0.20
ENDIF

;睡眠中
IF TCVAR:(ARG:0):離脱フラグ == 1
	TIMES 快楽加算値, 0.50
	TIMES 欲情加算値, 0.50
	TIMES 射精加算値, 0.50
ENDIF

;逓減補正
; 快楽加算値 = SQRT(快楽加算値 * 1000) * 50 / 100
; 射精加算値 = SQRT(欲情加算値 * 1000) * 50 / 100

CUP:(ARG:0):快Ａ += 快楽加算値
CUP:(ARG:0):欲情 += 欲情加算値
IF HAS_PENIS(ARG:0)
	CUP:(ARG:0):射精 += 射精加算値 / 2
ENDIF

IF TALENT:(ARG:0):母乳体質
	CUP:(ARG:0):噴乳 += CALC_SOURCE_MILK(ARG:0, 射精加算値 / 5)
ENDIF

IF ARG:0 != MASTER
	CUP:(ARG:0):怒主 -= 欲情加算値 / 5

	IF TALENT:(ARG:0):孤高
		CUP:(ARG:0):怒主 += 感情加算値
	ENDIF

	IF TALENT:(ARG:0):抑圧 || TALENT:(ARG:0):快感の否定
		CUP:(ARG:0):哀主 += 感情加算値
	ENDIF

	;従属度上昇
	IF 快楽加算値 >= 100000
		TCVAR:(ARG:0):従属度上昇値 += 900
	ELSEIF 快楽加算値 >= 20000
		TCVAR:(ARG:0):従属度上昇値 += 700
	ELSEIF 快楽加算値 >= 10000
		TCVAR:(ARG:0):従属度上昇値 += 500
	ELSEIF 快楽加算値 >= 6000
		TCVAR:(ARG:0):従属度上昇値 += 400
	ELSEIF 快楽加算値 >= 3000
		TCVAR:(ARG:0):従属度上昇値 += 300
	ELSEIF 快楽加算値 >= 500
		TCVAR:(ARG:0):従属度上昇値 += 200
	ELSEIF 快楽加算値 >= 100
		TCVAR:(ARG:0):従属度上昇値 += 100
	ENDIF

	;支配度上昇
	IF 快楽加算値 >= 100000
		TCVAR:(ARG:0):支配度上昇値 += 900
	ELSEIF 快楽加算値 >= 20000
		TCVAR:(ARG:0):支配度上昇値 += 700
	ELSEIF 快楽加算値 >= 10000
		TCVAR:(ARG:0):支配度上昇値 += 500
	ELSEIF 快楽加算値 >= 6000
		TCVAR:(ARG:0):支配度上昇値 += 400
	ELSEIF 快楽加算値 >= 3000
		TCVAR:(ARG:0):支配度上昇値 += 300
	ELSEIF 快楽加算値 >= 500
		TCVAR:(ARG:0):支配度上昇値 += 200
	ELSEIF 快楽加算値 >= 100
		TCVAR:(ARG:0):支配度上昇値 += 100
	ENDIF

	;依存度上昇
	IF 快楽加算値 >= 100000
		TCVAR:(ARG:0):依存度上昇値 += 900
	ELSEIF 快楽加算値 >= 20000
		TCVAR:(ARG:0):依存度上昇値 += 700
	ELSEIF 快楽加算値 >= 10000
		TCVAR:(ARG:0):依存度上昇値 += 500
	ELSEIF 快楽加算値 >= 6000
		TCVAR:(ARG:0):依存度上昇値 += 400
	ELSEIF 快楽加算値 >= 3000
		TCVAR:(ARG:0):依存度上昇値 += 300
	ELSEIF 快楽加算値 >= 500
		TCVAR:(ARG:0):依存度上昇値 += 200
	ELSEIF 快楽加算値 >= 100
		TCVAR:(ARG:0):依存度上昇値 += 100
	ENDIF
ENDIF

;-------------------------------------------------
;快Ｂのソース
;-------------------------------------------------
@CALC_SOURCE3(ARG:0)
; #region 快Ｂ
#DIM DYNAMIC 快楽加算値
#DIM DYNAMIC 欲情加算値
#DIM DYNAMIC 感情加算値
#DIM DYNAMIC 射精加算値

快楽加算値 = SOURCE:(ARG:0):快Ｂ
欲情加算値 = SOURCE:(ARG:0):快Ｂ
感情加算値 = SOURCE:(ARG:0):快Ｂ / 5
射精加算値 = SOURCE:(ARG:0):快Ｂ

快楽加算値 = CALC_SOURCE_SENSE_BASE(ABL:(ARG:0):Ｂ感, 快楽加算値)
欲情加算値 = CALC_SOURCE_SENSE_BASE(ABL:(ARG:0):Ｂ感, 欲情加算値)

;欲情による共通補正
快楽加算値 = CALC_SOURCE_SENSE_ESTRUS(ARG:0, 快楽加算値)

SELECTCASE ABL:(ARG:0):欲望
	CASE 0
		TIMES 欲情加算値, 0.10
		TIMES 感情加算値, 1.00
	CASE 1
		TIMES 欲情加算値, 0.15
		TIMES 感情加算値, 0.85
	CASE 2
		TIMES 欲情加算値, 0.20
		TIMES 感情加算値, 0.70
	CASE 3
		TIMES 欲情加算値, 0.25
		TIMES 感情加算値, 0.40
	CASE 4
		TIMES 欲情加算値, 0.30
		TIMES 感情加算値, 0.30
	CASEELSE
		欲情加算値 = 欲情加算値 * ((ABL:(ARG:0):欲望 - 5) * 5 + 40) / 100
		TIMES 感情加算値, 0.10
ENDSELECT

IF TALENT:(ARG:0):Ｂ敏感
	TIMES 快楽加算値, 1.50
	TIMES 欲情加算値, 2.00
	TIMES 射精加算値, 1.50
ENDIF

IF TALENT:(ARG:0):Ｂ鈍感
	TIMES 快楽加算値, 0.75
	TIMES 欲情加算値, 0.50
	TIMES 射精加算値, 0.75
ENDIF

IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫乳)
	TIMES 快楽加算値, 1.50
	TIMES 欲情加算値, 1.20
	TIMES 感情加算値, 0.50
	TIMES 射精加算値, 1.50
ENDIF

;媚薬使用中
IF TCVAR:(ARG:0):媚薬
	TIMES 快楽加算値, 1.5
	TIMES 欲情加算値, 1.5
	TIMES 射精加算値, 1.50
ENDIF

;桃源香使用中
IF TFLAG:桃源香使用中
	TIMES 快楽加算値, 1.25
	TIMES 欲情加算値, 1.5
	TIMES 射精加算値, 1.25
ENDIF

;体力0による行動不能
IF TCVAR:(ARG:0):行動不能フラグ
	TIMES 快楽加算値, 0.20
	TIMES 欲情加算値, 0.20
	TIMES 射精加算値, 0.20
ENDIF

;気力0による失神中
IF TCVAR:(ARG:0):失神フラグ
	TIMES 快楽加算値, 0.20
	TIMES 欲情加算値, 0.20
	TIMES 射精加算値, 0.20
ENDIF

;睡眠中
IF TCVAR:(ARG:0):離脱フラグ == 1
	TIMES 快楽加算値, 0.50
	TIMES 欲情加算値, 0.50
	TIMES 射精加算値, 0.50
ENDIF

;逓減補正
; 快楽加算値 = SQRT(快楽加算値 * 1000) * 50 / 100
; 射精加算値 = SQRT(欲情加算値 * 1000) * 50 / 100

CUP:(ARG:0):快Ｂ += 快楽加算値
CUP:(ARG:0):欲情 += 欲情加算値

IF HAS_PENIS(ARG:0)
	CUP:(ARG:0):射精 += 射精加算値 / 5
ENDIF

IF TALENT:(ARG:0):母乳体質
	CUP:(ARG:0):噴乳 += CALC_SOURCE_MILK(ARG:0, 射精加算値)
ENDIF

IF ARG:0 != MASTER
	IF TALENT:(ARG:0):恋慕 && TALENT:(ARG:0):恋人
		TIMES 感情加算値, 0.25
	ELSEIF TALENT:(ARG:0):恋慕 || TALENT:(ARG:0):恋人
		TIMES 感情加算値, 0.50
	ENDIF

	SIF TALENT:(ARG:0):合意
		TIMES 感情加算値, 0.50

	IF TALENT:(ARG:0):孤高
		CUP:(ARG:0):怒主 += 感情加算値
	ENDIF

	IF TALENT:(ARG:0):抑圧 || TALENT:(ARG:0):快感の否定
		CUP:(ARG:0):哀主 += 感情加算値
	ENDIF
ENDIF
; #endregion

;-------------------------------------------------
;搾乳のソース
;-------------------------------------------------
@CALC_SOURCE8(ARG:0)
#DIM DYNAMIC 快楽加算値
#DIM DYNAMIC 欲情加算値
#DIM DYNAMIC 感情加算値
#DIM DYNAMIC 射精加算値

快楽加算値 = SOURCE:(ARG:0):搾乳
欲情加算値 = SOURCE:(ARG:0):搾乳
感情加算値 = SOURCE:(ARG:0):搾乳 / 5
射精加算値 = SOURCE:(ARG:0):搾乳

快楽加算値 = CALC_SOURCE_SENSE_BASE(ABL:(ARG:0):Ｂ感, 快楽加算値)
欲情加算値 = CALC_SOURCE_SENSE_BASE(ABL:(ARG:0):Ｂ感, 欲情加算値)

;欲情による共通補正
快楽加算値 = CALC_SOURCE_SENSE_ESTRUS(ARG:0, 快楽加算値)

SELECTCASE ABL:(ARG:0):欲望
	CASE 0
		TIMES 欲情加算値, 0.10
		TIMES 感情加算値, 1.00
	CASE 1
		TIMES 欲情加算値, 0.15
		TIMES 感情加算値, 0.85
	CASE 2
		TIMES 欲情加算値, 0.20
		TIMES 感情加算値, 0.70
	CASE 3
		TIMES 欲情加算値, 0.25
		TIMES 感情加算値, 0.40
	CASE 4
		TIMES 欲情加算値, 0.30
		TIMES 感情加算値, 0.30
	CASEELSE
		欲情加算値 = 欲情加算値 * ((ABL:(ARG:0):欲望 - 5) * 5 + 40) / 100
		TIMES 感情加算値, 0.10
ENDSELECT

IF TALENT:(ARG:0):Ｂ敏感
	TIMES 快楽加算値, 1.50
	TIMES 欲情加算値, 2.00
	TIMES 射精加算値, 1.50
ENDIF

IF TALENT:(ARG:0):Ｂ鈍感
	TIMES 快楽加算値, 0.75
	TIMES 欲情加算値, 0.50
	TIMES 射精加算値, 0.75
ENDIF

IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫乳)
	TIMES 快楽加算値, 1.50
	TIMES 欲情加算値, 1.20
	TIMES 感情加算値, 0.50
	TIMES 射精加算値, 1.50
ENDIF

;媚薬使用中
IF TCVAR:(ARG:0):媚薬
	TIMES 快楽加算値, 1.5
	TIMES 欲情加算値, 1.5
	TIMES 射精加算値, 1.50
ENDIF

;桃源香使用中
IF TFLAG:桃源香使用中
	TIMES 快楽加算値, 1.25
	TIMES 欲情加算値, 1.5
	TIMES 射精加算値, 1.25
ENDIF

;体力0による行動不能
IF TCVAR:(ARG:0):行動不能フラグ
	TIMES 快楽加算値, 0.20
	TIMES 欲情加算値, 0.20
	TIMES 射精加算値, 0.20
ENDIF

;気力0による失神中
IF TCVAR:(ARG:0):失神フラグ
	TIMES 快楽加算値, 0.20
	TIMES 欲情加算値, 0.20
	TIMES 射精加算値, 0.20
ENDIF

;睡眠中
IF TCVAR:(ARG:0):離脱フラグ == 1
	TIMES 快楽加算値, 0.50
	TIMES 欲情加算値, 0.50
	TIMES 射精加算値, 0.50
ENDIF

;逓減補正
; 快楽加算値 = SQRT(快楽加算値 * 1000) * 50 / 100
; 射精加算値 = SQRT(欲情加算値 * 1000) * 50 / 100

CUP:(ARG:0):快Ｂ += 快楽加算値 / 2
CUP:(ARG:0):欲情 += 欲情加算値

IF TALENT:(ARG:0):孤高
	CUP:(ARG:0):怒主 += 感情加算値
ENDIF

IF TALENT:(ARG:0):抑圧 || TALENT:(ARG:0):快感の否定
	CUP:(ARG:0):哀主 += 感情加算値
ENDIF

IF HAS_PENIS(ARG:0)
	CUP:(ARG:0):射精 += 射精加算値 / 10
ENDIF

IF TALENT:(ARG:0):母乳体質
	CUP:(ARG:0):噴乳 += CALC_SOURCE_MILK(ARG:0, 射精加算値 * 5)
ENDIF

;-------------------------------------------------
;快Ｍのソース
;-------------------------------------------------
@CALC_SOURCE4(ARG:0)
#DIM DYNAMIC 快楽加算値
#DIM DYNAMIC 欲情加算値
#DIM DYNAMIC 感情加算値
#DIM DYNAMIC 射精加算値

快楽加算値 = SOURCE:(ARG:0):快Ｍ
欲情加算値 = SOURCE:(ARG:0):快Ｍ
感情加算値 = SOURCE:(ARG:0):快Ｍ / 5
射精加算値 = SOURCE:(ARG:0):快Ｍ

快楽加算値 = CALC_SOURCE_SENSE_BASE(ABL:(ARG:0):Ｍ感, 快楽加算値)
欲情加算値 = CALC_SOURCE_SENSE_BASE(ABL:(ARG:0):Ｍ感, 欲情加算値)

;欲情による共通補正
快楽加算値 = CALC_SOURCE_SENSE_ESTRUS(ARG:0, 快楽加算値)

SELECTCASE ABL:(ARG:0):欲望
	CASE 0
		TIMES 欲情加算値, 0.10
		TIMES 感情加算値, 1.00
	CASE 1
		TIMES 欲情加算値, 0.15
		TIMES 感情加算値, 0.85
	CASE 2
		TIMES 欲情加算値, 0.20
		TIMES 感情加算値, 0.70
	CASE 3
		TIMES 欲情加算値, 0.25
		TIMES 感情加算値, 0.40
	CASE 4
		TIMES 欲情加算値, 0.30
		TIMES 感情加算値, 0.30
	CASEELSE
		欲情加算値 = 欲情加算値 * ((ABL:(ARG:0):欲望 - 5) * 5 + 40) / 100
		TIMES 感情加算値, 0.10
ENDSELECT

IF TALENT:(ARG:0):恋慕
	TIMES 快楽加算値, 1.20
	TIMES 欲情加算値, 1.20
	TIMES 感情加算値, 1.20
ELSEIF TALENT:(ARG:0):親友
	TIMES 快楽加算値, 1.10
	TIMES 欲情加算値, 1.10
	TIMES 感情加算値, 1.10
ELSEIF TALENT:(ARG:0):恋人
	TIMES 快楽加算値, 1.25
	TIMES 欲情加算値, 1.25
	TIMES 感情加算値, 1.25
ELSEIF TALENT:(ARG:0):親愛
	TIMES 快楽加算値, 1.25
	TIMES 欲情加算値, 1.25
	TIMES 感情加算値, 1.25
ELSEIF TALENT:(ARG:0):Ｍ敏感
	TIMES 快楽加算値, 2.00
	TIMES 欲情加算値, 2.00
	TIMES 射精加算値, 1.50
ELSEIF TALENT:(ARG:0):Ｍ鈍感
	TIMES 快楽加算値, 0.75
	TIMES 欲情加算値, 0.50
	TIMES 射精加算値, 0.75
ENDIF

IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_蕩唇)
	TIMES 快楽加算値, 1.50
	TIMES 欲情加算値, 1.20
	TIMES 感情加算値, 0.50
	TIMES 射精加算値, 1.50
ENDIF

;媚薬使用中
IF TCVAR:(ARG:0):媚薬
	TIMES 快楽加算値, 1.5
	TIMES 欲情加算値, 1.5
	TIMES 射精加算値, 1.50
ENDIF

;桃源香使用中
IF TFLAG:桃源香使用中
	TIMES 快楽加算値, 1.25
	TIMES 欲情加算値, 1.5
	TIMES 射精加算値, 1.25
ENDIF

;体力0による行動不能
IF TCVAR:(ARG:0):行動不能フラグ
	TIMES 快楽加算値, 0.20
	TIMES 欲情加算値, 0.20
	TIMES 射精加算値, 0.20
ENDIF

;気力0による失神中
IF TCVAR:(ARG:0):失神フラグ
	TIMES 快楽加算値, 0.20
	TIMES 欲情加算値, 0.20
	TIMES 射精加算値, 0.20
ENDIF

;睡眠中
IF TCVAR:(ARG:0):離脱フラグ == 1
	TIMES 快楽加算値, 0.50
	TIMES 欲情加算値, 0.50
	TIMES 射精加算値, 0.50
ENDIF

;逓減補正
; 快楽加算値 = SQRT(快楽加算値 * 1000) * 50 / 100
; 射精加算値 = SQRT(欲情加算値 * 1000) * 50 / 100

CUP:(ARG:0):快Ｍ += 快楽加算値
CUP:(ARG:0):欲情 += 欲情加算値

IF HAS_PENIS(ARG:0)
	CUP:(ARG:0):射精 += 射精加算値 / 5
ENDIF

IF TALENT:(ARG:0):母乳体質
	CUP:(ARG:0):噴乳 += CALC_SOURCE_MILK(ARG:0, 射精加算値 / 5)
ENDIF

IF ARG:0 != MASTER
	IF TALENT:(ARG:0):恋慕 && TALENT:(ARG:0):恋人
		TIMES 感情加算値, 0.10
	ELSEIF TALENT:(ARG:0):恋慕 || TALENT:(ARG:0):恋人
		TIMES 感情加算値, 0.50
	ENDIF

	IF TALENT:(ARG:0):孤高
		CUP:(ARG:0):怒主 += 感情加算値
	ENDIF

	IF TALENT:(ARG:0):抑圧 || TALENT:(ARG:0):快感の否定
		CUP:(ARG:0):哀主 += 感情加算値
	ENDIF

	CUP:(ARG:0):怒主 -= 欲情加算値 / 3
	CUP:(ARG:0):哀主 -= 欲情加算値 / 3
	CUP:(ARG:0):怖主 -= 欲情加算値 / 3

	;ムードの上昇
	IF 快楽加算値 >= 30000
		TFLAG:ムード += 9
		TCVAR:(ARG:0):HOムード値 += 9
	ELSEIF 快楽加算値 >= 10000
		TFLAG:ムード += 7
		TCVAR:(ARG:0):HOムード値 += 7
	ELSEIF 快楽加算値 >= 3000
		TFLAG:ムード += 5
		TCVAR:(ARG:0):HOムード値 += 5
	ELSEIF 快楽加算値 >= 500
		TFLAG:ムード += 3
		TCVAR:(ARG:0):HOムード値 += 3
	ELSEIF 快楽加算値 >= 100
		TFLAG:ムード += 2
		TCVAR:(ARG:0):HOムード値 += 2
	ELSEIF 快楽加算値 >= 10
		TFLAG:ムード += 1
		TCVAR:(ARG:0):HOムード値 += 1
	ENDIF
ENDIF

;-------------------------------------------------
;快Ｕのソース
;-------------------------------------------------
@CALC_SOURCE5(ARG:0)
#DIM DYNAMIC 快楽加算値
#DIM DYNAMIC 欲情加算値
#DIM DYNAMIC 感情加算値
#DIM DYNAMIC 射精加算値

快楽加算値 = SOURCE:(ARG:0):快Ｕ
欲情加算値 = SOURCE:(ARG:0):快Ｕ
感情加算値 = SOURCE:(ARG:0):快Ｕ / 5
射精加算値 = SOURCE:(ARG:0):快Ｕ

快楽加算値 = CALC_SOURCE_SENSE_BASE(ABL:(ARG:0):Ｕ感, 快楽加算値)
欲情加算値 = CALC_SOURCE_SENSE_BASE(ABL:(ARG:0):Ｕ感, 欲情加算値)

;欲情による共通補正
快楽加算値 = CALC_SOURCE_SENSE_ESTRUS(ARG:0, 快楽加算値)

IF TALENT:(ARG:0):Ｕ敏感
	TIMES 快楽加算値, 1.5
	TIMES 欲情加算値, 2.00
	TIMES 射精加算値, 1.50
ENDIF

IF TALENT:(ARG:0):Ｕ鈍感
	TIMES 快楽加算値, 0.75
	TIMES 欲情加算値, 0.50
	TIMES 射精加算値, 0.75
ENDIF

SELECTCASE ABL:(ARG:0):欲望
	CASE 0
		TIMES 欲情加算値, 0.10
		TIMES 感情加算値, 1.00
	CASE 1
		TIMES 欲情加算値, 0.15
		TIMES 感情加算値, 0.85
	CASE 2
		TIMES 欲情加算値, 0.20
		TIMES 感情加算値, 0.70
	CASE 3
		TIMES 欲情加算値, 0.25
		TIMES 感情加算値, 0.40
	CASE 4
		TIMES 欲情加算値, 0.30
		TIMES 感情加算値, 0.30
	CASEELSE
		欲情加算値 = 欲情加算値 * ((ABL:(ARG:0):欲望 - 5) * 5 + 40) / 100
		TIMES 感情加算値, 0.10
ENDSELECT

IF TALENT:(ARG:0):恋慕
	TIMES 快楽加算値, 1.20
	TIMES 欲情加算値, 1.20
	TIMES 感情加算値, 1.20
ELSEIF TALENT:(ARG:0):親友
	TIMES 快楽加算値, 1.10
	TIMES 欲情加算値, 1.10
	TIMES 感情加算値, 1.10
ELSEIF TALENT:(ARG:0):恋人
	TIMES 快楽加算値, 1.25
	TIMES 欲情加算値, 1.25
	TIMES 感情加算値, 1.25
ELSEIF TALENT:(ARG:0):親愛
	TIMES 快楽加算値, 1.25
	TIMES 欲情加算値, 1.25
	TIMES 感情加算値, 1.25
ENDIF

IF TALENT:(ARG:0):主人
	TIMES 快楽加算値, 1.20
	TIMES 欲情加算値, 1.20
	TIMES 感情加算値, 1.20
ELSEIF TALENT:(ARG:0):所有者
	TIMES 快楽加算値, 1.25
	TIMES 欲情加算値, 1.25
	TIMES 感情加算値, 1.25
ENDIF

IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_尿道狂い)
	TIMES 快楽加算値, 1.50
	TIMES 欲情加算値, 1.20
	TIMES 感情加算値, 0.50
	TIMES 射精加算値, 1.50
ENDIF

;体力0による行動不能
IF TCVAR:(ARG:0):行動不能フラグ
	TIMES 快楽加算値, 0.20
	TIMES 欲情加算値, 0.20
	TIMES 射精加算値, 0.20
ENDIF

;気力0による失神中
IF TCVAR:(ARG:0):失神フラグ
	TIMES 快楽加算値, 0.20
	TIMES 欲情加算値, 0.20
	TIMES 射精加算値, 0.20
ENDIF

;睡眠中
IF TCVAR:(ARG:0):離脱フラグ == 1
	TIMES 快楽加算値, 0.50
	TIMES 欲情加算値, 0.50
	TIMES 射精加算値, 0.50
ENDIF

;逓減補正
; 快楽加算値 = SQRT(快楽加算値 * 1000) * 50 / 100
; 射精加算値 = SQRT(欲情加算値 * 1000) * 50 / 100

CUP:(ARG:0):快Ｕ += 快楽加算値
CUP:(ARG:0):欲情 += 欲情加算値

IF HAS_PENIS(ARG:0)
	CUP:(ARG:0):射精 += 射精加算値 / 5
ENDIF

IF TALENT:(ARG:0):恋慕 && TALENT:(ARG:0):恋人
	TIMES 感情加算値, 0.10
ELSEIF TALENT:(ARG:0):恋慕 || TALENT:(ARG:0):恋人
	TIMES 感情加算値, 0.50
ENDIF

IF ARG:0 != MASTER
	IF TALENT:(ARG:0):孤高
		CUP:(ARG:0):怒主 += 感情加算値
	ENDIF

	IF TALENT:(ARG:0):抑圧 || TALENT:(ARG:0):快感の否定
		CUP:(ARG:0):哀主 += 感情加算値
	ENDIF

	CUP:(ARG:0):怒主 -= 欲情加算値 / 3
	CUP:(ARG:0):哀主 -= 欲情加算値 / 3
	CUP:(ARG:0):怖主 -= 欲情加算値 / 3
ENDIF

;-------------------------------------------------
;歓楽のソース
;-------------------------------------------------
@CALC_SOURCE10(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):歓楽

IF TALENT:(ARG:0):恋慕 || TALENT:(ARG:0):親友
	TIMES LOCAL:0, 1.30
ENDIF

IF TALENT:(ARG:0):親愛
	TIMES LOCAL:0, 1.30
ENDIF

IF TALENT:(ARG:0):恋人
	TIMES LOCAL:0, 1.15
ENDIF

CUP:(ARG:0):怒主 -= LOCAL:0
CUP:(ARG:0):哀主 -= LOCAL:0
CUP:(ARG:0):怖主 -= LOCAL:0

;好感度上昇
TCVAR:(ARG:0):好感度上昇値 += LOCAL:0 * 100 / 6

;ムードの上昇
TFLAG:ムード += LOCAL:0 / 60
TCVAR:(ARG:0):HOムード値 += LOCAL:0 / 60

;-------------------------------------------------
;愛情のソース
;-------------------------------------------------
@CALC_SOURCE11(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):愛情
LOCAL:1 = SOURCE:(ARG:0):愛情
LOCAL:2 = SOURCE:(ARG:0):愛情

IF TALENT:(ARG:0):恋慕
	TIMES LOCAL:0, 1.30
	TIMES LOCAL:1, 1.25
ENDIF

IF TALENT:(ARG:0):親友
	TIMES LOCAL:0, 1.30
	TIMES LOCAL:1, 1.50
ENDIF

IF TALENT:(ARG:0):親愛
	TIMES LOCAL:0, 1.30
	TIMES LOCAL:1, 2.00
ENDIF

IF TALENT:(ARG:0):恋人
	TIMES LOCAL:0, 1.15
	TIMES LOCAL:1, 1.50
ENDIF

;欲望による欲情の補正
LOCAL:1 = CALC_SOURCE_YOKUBOU(ARG:0, LOCAL:1)

;ウフフ中以外
IF !FLAG:ウフフフラグ
	TIMES LOCAL:1, 0.20
ENDIF

CUP:(ARG:0):怒主 -= LOCAL:0
CUP:(ARG:0):哀主 -= LOCAL:0
CUP:(ARG:0):怖主 -= LOCAL:0
CUP:(ARG:0):欲情 += LOCAL:1

;好感度上昇
TCVAR:(ARG:0):好感度上昇値 += LOCAL:2 * 100 / 8

;依存度上昇
TCVAR:(ARG:0):依存度上昇値 += LOCAL:2 * 100 / 12

;ムードの上昇
TFLAG:ムード += LOCAL:0 / 15
TCVAR:(ARG:0):HOムード値 += LOCAL:0 / 15

;-------------------------------------------------
;優越のソース
;-------------------------------------------------
@CALC_SOURCE12(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):優越
LOCAL:1 = SOURCE:(ARG:0):優越
LOCAL:2 = SOURCE:(ARG:0):優越
LOCAL:3 = SOURCE:(ARG:0):優越

LOCAL:5 = ABL:(ARG:0):主導度Ｕ
IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_サド)
	TIMES LOCAL:0, 1.50
	TIMES LOCAL:1, 1.50
	TIMES LOCAL:2, 0.00
	TIMES LOCAL:3, 1.50
ELSEIF LOCAL:5 >= 500
	TIMES LOCAL:0, 1.00
	TIMES LOCAL:1, 1.00
	TIMES LOCAL:2, 0.00
	TIMES LOCAL:3, 1.50
ELSEIF LOCAL:5 >= 300
	TIMES LOCAL:0, 0.80
	TIMES LOCAL:1, 0.90
	TIMES LOCAL:2, 0.00
	TIMES LOCAL:3, 1.30
ELSEIF LOCAL:5 >= 100
	TIMES LOCAL:0, 0.60
	TIMES LOCAL:1, 0.70
	TIMES LOCAL:2, 0.00
	TIMES LOCAL:3, 1.10
ELSEIF LOCAL:5 < -100
	TIMES LOCAL:0, 0.30
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 0.00
	TIMES LOCAL:3, 1.00
ELSEIF LOCAL:5 < -300
	TIMES LOCAL:0, 0.20
	TIMES LOCAL:1, 0.20
	TIMES LOCAL:2, 0.30
	TIMES LOCAL:3, 0.90
ELSEIF LOCAL:5 < -500
	TIMES LOCAL:0, 0.10
	TIMES LOCAL:1, 0.10
	TIMES LOCAL:2, 0.60
	TIMES LOCAL:3, 0.80
ELSE
	TIMES LOCAL:0, 0.05
	TIMES LOCAL:1, 0.05
	TIMES LOCAL:2, 1.00
	TIMES LOCAL:3, 0.70
ENDIF

;欲望による欲情の補正
LOCAL:0 = CALC_SOURCE_YOKUBOU(ARG:0, LOCAL:0)

CUP:(ARG:0):欲情 += LOCAL:0
CUP:(ARG:0):怒主 -= LOCAL:1
CUP:(ARG:0):哀主 -= LOCAL:1

;好感度上昇
TCVAR:(ARG:0):好感度上昇値 += LOCAL:1 * 10

;依存度上昇
TCVAR:(ARG:0):依存度上昇値 += LOCAL:1 * 10 / 3

;従属度減少
TCVAR:(ARG:0):従属度減少値 += LOCAL:3 * 10 / 2

;支配度上昇
TCVAR:(ARG:0):支配度上昇値 += LOCAL:1 * 10 * 2 / 3

;-------------------------------------------------
;屈従のソース
;-------------------------------------------------
@CALC_SOURCE13(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):屈従
LOCAL:1 = SOURCE:(ARG:0):屈従
LOCAL:2 = SOURCE:(ARG:0):屈従
LOCAL:3 = SOURCE:(ARG:0):屈従

LOCAL:5 = ABL:(ARG:0):主導度Ｕ
IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_マゾ)
	TIMES LOCAL:0, 1.50
	TIMES LOCAL:1, 1.50
	TIMES LOCAL:2, 0.10
	TIMES LOCAL:3, 1.50
ELSEIF LOCAL:5 <= -500
	TIMES LOCAL:0, 1.00
	TIMES LOCAL:1, 1.00
	TIMES LOCAL:2, 0.50
	TIMES LOCAL:3, 1.50
ELSEIF LOCAL:5 <= -300
	TIMES LOCAL:0, 0.60
	TIMES LOCAL:1, 0.90
	TIMES LOCAL:2, 0.60
	TIMES LOCAL:3, 1.30
ELSEIF LOCAL:5 <= -100
	TIMES LOCAL:0, 0.40
	TIMES LOCAL:1, 0.80
	TIMES LOCAL:2, 0.70
	TIMES LOCAL:3, 1.10
ELSEIF LOCAL:5 < 100
	TIMES LOCAL:0, 0.20
	TIMES LOCAL:1, 0.60
	TIMES LOCAL:2, 0.80
	TIMES LOCAL:3, 1.00
ELSEIF LOCAL:5 < 300
	TIMES LOCAL:0, 0.00
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 0.90
	TIMES LOCAL:3, 0.90
ELSEIF LOCAL:5 < 500
	TIMES LOCAL:0, 0.00
	TIMES LOCAL:1, 0.40
	TIMES LOCAL:2, 1.00
	TIMES LOCAL:3, 0.80
ELSE
	TIMES LOCAL:0, 0.00
	TIMES LOCAL:1, 0.20
	TIMES LOCAL:2, 1.00
	TIMES LOCAL:3, 0.70
ENDIF

;欲望による欲情の補正
LOCAL:0 = CALC_SOURCE_YOKUBOU(ARG:0, LOCAL:0)

IF TALENT:(ARG:0):服従
	TIMES LOCAL:0, 1.30
	TIMES LOCAL:1, 1.30
ENDIF
IF TALENT:(ARG:0):隷属
	TIMES LOCAL:0, 1.30
	TIMES LOCAL:1, 1.30
ENDIF
IF TALENT:(ARG:0):烙印
	TIMES LOCAL:0, 1.30
	TIMES LOCAL:1, 1.30
ENDIF

CUP:(ARG:0):欲情 += LOCAL:0
CUP:(ARG:0):怒主 -= LOCAL:1

IF TALENT:(ARG:0):服従 || TALENT:(ARG:0):烙印
	CUP:(ARG:0):哀主 -= LOCAL:1
ENDIF

IF TALENT:(ARG:0):抑圧
	CUP:(ARG:0):哀主 += LOCAL:2
ENDIF

;依存度上昇
TCVAR:(ARG:0):依存度上昇値 += LOCAL:3 * 10 / 3

;従属度上昇
TCVAR:(ARG:0):従属度上昇値 += LOCAL:3 * 10

;支配度現象
TCVAR:(ARG:0):支配度減少値 += LOCAL:3 * 10 / 2

;-------------------------------------------------
;恐怖のソース
;-------------------------------------------------
@CALC_SOURCE14(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):恐怖

CUP:(ARG:0):怒主 += LOCAL:0 * 3 / 10
CUP:(ARG:0):怖主 += LOCAL:0

;好感度減少
TCVAR:(ARG:0):好感度減少値 += LOCAL:0

;従属度上昇
TCVAR:(ARG:0):従属度上昇値 += LOCAL:0
;支配度現象
TCVAR:(ARG:0):支配度減少値 += LOCAL:0 * 10 / 2

;-------------------------------------------------
;反感のソース
;-------------------------------------------------
@CALC_SOURCE15(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):反感

CUP:(ARG:0):怒主 += LOCAL:0
CUP:(ARG:0):哀主 += LOCAL:0 * 3 / 10

;好感度減少
TCVAR:(ARG:0):好感度減少値 += LOCAL:0

;依存度減少
TCVAR:(ARG:0):依存度減少値 += LOCAL:0

;従属度減少
TCVAR:(ARG:0):従属度減少値 += LOCAL:0

;-------------------------------------------------
;不安のソース
;-------------------------------------------------
@CALC_SOURCE16(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):不安

CUP:(ARG:0):怒主 += LOCAL:0 * 3 / 10
CUP:(ARG:0):哀主 += LOCAL:0
CUP:(ARG:0):怖主 += LOCAL:0 * 7 / 10

;好感度減少
TCVAR:(ARG:0):好感度減少値 += LOCAL:0

;-------------------------------------------------
;接触のソース
;-------------------------------------------------
@CALC_SOURCE17(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):接触
LOCAL:1 = SOURCE:(ARG:0):接触
LOCAL:2 = SOURCE:(ARG:0):接触 / 2
LOCAL:3 = SOURCE:(ARG:0):接触 * 2 / 3

;好感度・従属度・支配度の大きい方を見る
IF ARG:0 != MASTER

	LOCAL:5 = MAX(CFLAG:(ARG:0):好感度, CFLAG:(ARG:0):従属度, CFLAG:(ARG:0):支配度)
	IF LOCAL:5 < 100
		TIMES LOCAL:0, 0.00
		TIMES LOCAL:1, 1.20
	ELSEIF LOCAL:5 < 300
		TIMES LOCAL:0, 0.10
		TIMES LOCAL:1, 1.00
	ELSEIF LOCAL:5 < 500
		TIMES LOCAL:0, 0.30
		TIMES LOCAL:1, 0.70
	ELSEIF LOCAL:5 < 800
		TIMES LOCAL:0, 0.50
		TIMES LOCAL:1, 0.30
	ELSEIF LOCAL:5 < 1500
		TIMES LOCAL:0, 0.80
		TIMES LOCAL:1, 0.10
	ELSEIF LOCAL:5 < 3000
		TIMES LOCAL:0, 1.50
		TIMES LOCAL:1, 0.00
	ELSEIF LOCAL:5 < 5000
		TIMES LOCAL:0, 1.40
		TIMES LOCAL:1, 0.00
	ELSE
		TIMES LOCAL:0, 1.50
		TIMES LOCAL:1, 0.00
	ENDIF
ENDIF

;好感度を見る
IF ARG:0 != MASTER
	IF CFLAG:(ARG:0):好感度 < 100
		TIMES LOCAL:2, 1.00
		TIMES LOCAL:3, 1.00
	ELSEIF CFLAG:(ARG:0):好感度 < 300
		TIMES LOCAL:2, 0.90
		TIMES LOCAL:3, 0.90
	ELSEIF CFLAG:(ARG:0):好感度 < 500
		TIMES LOCAL:2, 0.70
		TIMES LOCAL:3, 0.70
	ELSEIF CFLAG:(ARG:0):好感度 < 800
		TIMES LOCAL:2, 0.30
		TIMES LOCAL:3, 0.30
	ELSEIF CFLAG:(ARG:0):好感度 < 1500
		TIMES LOCAL:2, 0.15
		TIMES LOCAL:3, 0.15
	ELSE
		TIMES LOCAL:2, 0.00
		TIMES LOCAL:3, 0.00
	ENDIF
ENDIF

IF TALENT:(ARG:0):恥じらい
	TIMES LOCAL:1, 1.50
	TIMES LOCAL:2, 2.00
	TIMES LOCAL:3, 2.00
ENDIF

IF TALENT:(ARG:0):恥薄い
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 0.50
	TIMES LOCAL:3, 0.50
ENDIF

IF TALENT:(ARG:0):恋慕
	TIMES LOCAL:0, 1.50
	TIMES LOCAL:1, 0.20
	TIMES LOCAL:2, 0.10
	TIMES LOCAL:3, 0.20
ENDIF
IF TALENT:(ARG:0):親友
	TIMES LOCAL:1, 0.20
	TIMES LOCAL:2, 0.10
	TIMES LOCAL:3, 0.20
ENDIF
IF TALENT:(ARG:0):親愛
	TIMES LOCAL:0, 2.00
	TIMES LOCAL:1, 0.00
	TIMES LOCAL:2, 0.10
	TIMES LOCAL:3, 0.20
ENDIF
IF TALENT:(ARG:0):恋人
	TIMES LOCAL:0, 1.50
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 0.10
	TIMES LOCAL:3, 0.20
ENDIF

IF IS_MALE(ARG:0)
	TIMES LOCAL:1, 0.75
	TIMES LOCAL:2, 0.75
	TIMES LOCAL:3, 0.75
ENDIF

LOCAL:11 = 1
IF IS_MPLY(ARG:0)
	FOR LOCAL:10, 0, MTAR_NUM
		IF !IS_SAMESEX(ARG:0, MTAR:(LOCAL:10))
			LOCAL:11 = 0
			BREAK
		ENDIF
	NEXT
ELSEIF IS_MTAR(ARG:0)
	FOR LOCAL:10, 0, MPLY_NUM
		IF !IS_SAMESEX(ARG:0, MPLY:(LOCAL:10))
			LOCAL:11 = 0
			BREAK
		ENDIF
	NEXT
ENDIF
IF LOCAL:11
	IF !TALENT:(ARG:0):両刀
		TIMES LOCAL:0, 0.80
	ENDIF
	TIMES LOCAL:1, 0.60
	TIMES LOCAL:2, 0.60
	TIMES LOCAL:3, 0.60
ENDIF

IF IS_SAMESEX(MASTER, ARG:0) || ABL:(ARG:0):性知識 == 0
	IF (!TALENT:(ARG:0):合意 && !FLAG:ウフフフラグ) || ABL:(ARG:0):性知識 == 0
		TIMES LOCAL:0, 0.30
	ENDIF
	TIMES LOCAL:1, 0.30
	TIMES LOCAL:2, 0.30
	TIMES LOCAL:3, 0.50
ENDIF
;好感度上昇
TCVAR:(ARG:0):好感度上昇値 += LOCAL:0

CUP:(ARG:0):欲情 += LOCAL:0
CUP:(ARG:0):怒主 += LOCAL:1
CUP:(ARG:0):哀主 += LOCAL:2
CUP:(ARG:0):怖主 += LOCAL:3

;-------------------------------------------------
;奉仕のソース
;-------------------------------------------------
@CALC_SOURCE18(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):奉仕
LOCAL:1 = SOURCE:(ARG:0):奉仕
LOCAL:2 = SOURCE:(ARG:0):奉仕

;欲望による欲情の補正
LOCAL:0 = CALC_SOURCE_YOKUBOU(ARG:0, LOCAL:0)

SELECTCASE ABL:(ARG:0):奉仕
	CASE 0
		TIMES LOCAL:1, 1.00
	CASE 1
		TIMES LOCAL:1, 0.80
	CASE 2
		TIMES LOCAL:1, 0.60
	CASE 3
		TIMES LOCAL:1, 0.40
	CASE 4
		TIMES LOCAL:1, 0.20
	CASEELSE
		TIMES LOCAL:1, 0.10
ENDSELECT

CUP:(ARG:0):欲情 += LOCAL:0
;好感度上昇
TCVAR:(ARG:0):好感度上昇値 += LOCAL:0 / 3

IF TALENT:(ARG:0):抑圧 || TALENT:(ARG:0):孤高
	CUP:(ARG:0):哀主 += LOCAL:1
ENDIF

;-------------------------------------------------
;苦痛のソース
;-------------------------------------------------
@CALC_SOURCE19(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):苦痛
LOCAL:1 = SOURCE:(ARG:0):苦痛
LOCAL:2 = SOURCE:(ARG:0):苦痛
LOCAL:3 = SOURCE:(ARG:0):苦痛
LOCAL:4 = SOURCE:(ARG:0):苦痛 / 5

;好感度と従属度の大きい方を見る
IF ARG:0 != MASTER
	LOCAL:5 = MAX(CFLAG:(ARG:0):好感度, CFLAG:(ARG:0):従属度, CFLAG:(ARG:0):支配度)
	IF LOCAL:5 < 100
		TIMES LOCAL:0, 0.50
		TIMES LOCAL:1, 2.00
		TIMES LOCAL:2, 1.00
		TIMES LOCAL:3, 2.00
	ELSEIF LOCAL:5 < 300
		TIMES LOCAL:0, 0.60
		TIMES LOCAL:1, 1.60
		TIMES LOCAL:2, 0.90
		TIMES LOCAL:3, 1.90
	ELSEIF LOCAL:5 < 500
		TIMES LOCAL:0, 0.70
		TIMES LOCAL:1, 1.30
		TIMES LOCAL:2, 0.80
		TIMES LOCAL:3, 1.80
	ELSEIF LOCAL:5 < 800
		TIMES LOCAL:0, 0.80
		TIMES LOCAL:1, 1.00
		TIMES LOCAL:2, 0.70
		TIMES LOCAL:3, 1.60
	ELSEIF LOCAL:5 < 1500
		TIMES LOCAL:0, 1.00
		TIMES LOCAL:1, 0.60
		TIMES LOCAL:2, 0.50
		TIMES LOCAL:3, 1.40
	ELSE
		TIMES LOCAL:0, 1.20
		TIMES LOCAL:1, 0.30
		TIMES LOCAL:2, 0.30
		TIMES LOCAL:3, 1.00
	ENDIF
ENDIF

;倒錯度を見る
LOCAL:5 = ABL:(ARG:0):倒錯度
IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_マゾ)
	TIMES LOCAL:0, 1.20
	TIMES LOCAL:1, 0.10
	TIMES LOCAL:2, 0.10
	TIMES LOCAL:4, 0.50
ELSEIF LOCAL:5 >= 800
	TIMES LOCAL:0, 1.00
	TIMES LOCAL:1, 0.20
	TIMES LOCAL:2, 0.20
	TIMES LOCAL:4, 0.60
ELSEIF LOCAL:5 >= 500
	TIMES LOCAL:0, 0.70
	TIMES LOCAL:1, 0.40
	TIMES LOCAL:2, 0.40
	TIMES LOCAL:4, 0.70
ELSEIF LOCAL:5 >= 300
	TIMES LOCAL:0, 0.30
	TIMES LOCAL:1, 0.60
	TIMES LOCAL:2, 0.60
	TIMES LOCAL:4, 0.80
ELSEIF LOCAL:5 >= 100
	TIMES LOCAL:0, 0.10
	TIMES LOCAL:1, 0.80
	TIMES LOCAL:2, 0.80
	TIMES LOCAL:4, 0.90
ELSE
	TIMES LOCAL:0, 0.00
	TIMES LOCAL:1, 1.00
	TIMES LOCAL:2, 1.00
ENDIF

;ウフフ主導度を見る
LOCAL:5 = ABL:(ARG:0):主導度Ｕ
IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_マゾ)
	TIMES LOCAL:0, 2.00
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 0.50
ELSEIF LOCAL:5 <= -500
	TIMES LOCAL:0, 1.60
	TIMES LOCAL:1, 0.70
	TIMES LOCAL:2, 0.70
ELSEIF LOCAL:5 <= -300
	TIMES LOCAL:0, 1.40
	TIMES LOCAL:1, 0.80
	TIMES LOCAL:2, 0.80
ELSEIF LOCAL:5 <= -100
	TIMES LOCAL:0, 1.20
	TIMES LOCAL:1, 0.90
	TIMES LOCAL:2, 0.90
ELSEIF LOCAL:5 < 100
	TIMES LOCAL:0, 1.00
	TIMES LOCAL:1, 1.00
	TIMES LOCAL:2, 1.00
ELSEIF LOCAL:5 < 300
	TIMES LOCAL:0, 0.90
	TIMES LOCAL:1, 1.10
	TIMES LOCAL:2, 1.10
ELSEIF LOCAL:5 < 500
	TIMES LOCAL:0, 0.80
	TIMES LOCAL:1, 1.20
	TIMES LOCAL:2, 1.20
ELSE
	TIMES LOCAL:0, 0.60
	TIMES LOCAL:1, 1.30
	TIMES LOCAL:2, 1.30
ENDIF

;マゾを見る
SELECTCASE ABL:(ARG:0):マゾ
	CASE 0
		TIMES LOCAL:0, 0.50
		TIMES LOCAL:1, 1.10
		TIMES LOCAL:2, 1.10
		TIMES LOCAL:3, 1.10
	CASE 1
		TIMES LOCAL:0, 0.80
		TIMES LOCAL:1, 1.05
		TIMES LOCAL:2, 1.05
		TIMES LOCAL:3, 1.05
	CASE 2
		TIMES LOCAL:0, 1.0
		TIMES LOCAL:1, 1.0
		TIMES LOCAL:2, 1.0
		TIMES LOCAL:3, 1.0
	CASE 3
		TIMES LOCAL:0, 1.1
		TIMES LOCAL:1, 0.80
		TIMES LOCAL:2, 0.80
		TIMES LOCAL:3, 0.80
	CASE 4
		TIMES LOCAL:0, 1.2
		TIMES LOCAL:1, 0.60
		TIMES LOCAL:2, 0.60
		TIMES LOCAL:3, 0.60
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):マゾ - 5) * 5 + 140) / 100
		TIMES LOCAL:1, 0.20
		TIMES LOCAL:3, 0.20
		IF TALENT:(ARG:0):抑圧
			TIMES LOCAL:2, 0.50
		ELSE
			TIMES LOCAL:2, 0.20
		ENDIF
ENDSELECT

IF TALENT:(ARG:0):痛みに強い
	TIMES LOCAL:2, 0.80
	TIMES LOCAL:3, 0.70
	TIMES LOCAL:4, 0.70
ENDIF

;痛みに弱い
IF TALENT:(ARG:0):痛みに弱い
	TIMES LOCAL:2, 2.00
	TIMES LOCAL:3, 2.00
	TIMES LOCAL:4, 1.25
ENDIF

;苦痛快楽経験1につき0.1%カット、最大700で70%
LOCAL:4 = LOCAL:4 - LOCAL:4 * MIN(EXP:(ARG:0):苦痛快楽経験, 700) / 1000

;消費量が高すぎる場合の軽減措置(400以降、200おきに超過分を20%減衰)
FOR LOCAL:10, 0, 30
	LOCAL:11 = LOCAL:10 * 200 + 400
	IF LOCAL:4 < LOCAL:11
		BREAK
	ENDIF
	LOCAL:4 = LOCAL:11 + (LOCAL:4 - LOCAL:11) * 4 / 5
NEXT

CUP:(ARG:0):欲情 += LOCAL:0
CUP:(ARG:0):怒主 += LOCAL:1
CUP:(ARG:0):哀主 += LOCAL:2
CUP:(ARG:0):怖主 += LOCAL:3

DOWNBASE:(ARG:0):体力 += LOCAL:4

;-------------------------------------------------
;露出のソース
;-------------------------------------------------
@CALC_SOURCE20(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):露出
LOCAL:1 = SOURCE:(ARG:0):露出
LOCAL:2 = SOURCE:(ARG:0):露出
LOCAL:3 = SOURCE:(ARG:0):露出 / 2

SELECTCASE ABL:(ARG:0):露出
	CASE 0
		TIMES LOCAL:0, 0.00
		TIMES LOCAL:1, 1.00
		TIMES LOCAL:2, 1.00
		TIMES LOCAL:3, 1.00
	CASE 1
		TIMES LOCAL:0, 0.20
		TIMES LOCAL:1, 0.80
		TIMES LOCAL:2, 0.80
		TIMES LOCAL:3, 0.70
	CASE 2
		TIMES LOCAL:0, 0.40
		TIMES LOCAL:1, 0.60
		TIMES LOCAL:2, 0.60
		TIMES LOCAL:3, 0.40
	CASE 3
		TIMES LOCAL:0, 0.70
		TIMES LOCAL:1, 0.40
		TIMES LOCAL:2, 0.40
		TIMES LOCAL:3, 0.20
	CASE 4
		TIMES LOCAL:0, 1.00
		TIMES LOCAL:1, 0.15
		TIMES LOCAL:2, 0.15
		TIMES LOCAL:3, 0.05
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):露出 - 5) * 5 + 140) / 100
		TIMES LOCAL:1, 0.05
		TIMES LOCAL:3, 0.00
		IF TALENT:(ARG:0):抑圧
			TIMES LOCAL:2, 0.10
		ELSE
			TIMES LOCAL:2, 0.00
		ENDIF
ENDSELECT

;親密度と依存度の大きい方を見る
LOCAL:5 = MAX(CFLAG:(ARG:0):好感度, CFLAG:(ARG:0):依存度)
IF LOCAL:5 < 100
	TIMES LOCAL:1, 1.00
	TIMES LOCAL:2, 1.00
	TIMES LOCAL:3, 1.00
ELSEIF LOCAL:5 < 300
	TIMES LOCAL:1, 0.90
	TIMES LOCAL:2, 0.90
	TIMES LOCAL:3, 0.90
ELSEIF LOCAL:5 < 500
	TIMES LOCAL:1, 0.70
	TIMES LOCAL:2, 0.70
	TIMES LOCAL:3, 0.80
ELSEIF LOCAL:5 < 800
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 0.50
	TIMES LOCAL:3, 0.60
ELSEIF LOCAL:5 < 1500
	TIMES LOCAL:1, 0.20
	TIMES LOCAL:2, 0.20
	TIMES LOCAL:3, 0.50
ELSEIF LOCAL:5 < 3000
	TIMES LOCAL:1, 0.10
	TIMES LOCAL:2, 0.10
	TIMES LOCAL:3, 0.40
ELSE
	TIMES LOCAL:1, 0.05
	TIMES LOCAL:2, 0.05
	TIMES LOCAL:3, 0.30
ENDIF

;恥じらいと恥薄いはここで処理
IF TALENT:(ARG:0):恥じらい
	TIMES LOCAL:1, 1.50
	TIMES LOCAL:2, 1.50
	TIMES LOCAL:3, 2.00
ENDIF
IF TALENT:(ARG:0):恥薄い
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 0.50
	TIMES LOCAL:3, 0.50
ENDIF

IF !TALENT:(ARG:0):抑圧
	TIMES LOCAL:2, 0.30
ENDIF

IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_露出狂)
	TIMES LOCAL:0, 1.25
	TIMES LOCAL:1, 0.1
	TIMES LOCAL:2, 0.1
	TIMES LOCAL:3, 0.1
ENDIF

CUP:(ARG:0):欲情 += LOCAL:0
CUP:(ARG:0):怒主 += LOCAL:1
CUP:(ARG:0):哀主 += LOCAL:2
CUP:(ARG:0):怖主 += LOCAL:3

;-------------------------------------------------
;不潔のソース
;-------------------------------------------------
@CALC_SOURCE21(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):不潔

;親密度と依存度の大きい方を見る
LOCAL:5 = MAX(CFLAG:(ARG:0):好感度, CFLAG:(ARG:0):依存度)
IF LOCAL:5 < 100
	TIMES LOCAL:0, 1.00
ELSEIF LOCAL:5 < 300
	TIMES LOCAL:0, 0.90
ELSEIF LOCAL:5 < 500
	TIMES LOCAL:0, 0.70
ELSEIF LOCAL:5 < 800
	TIMES LOCAL:0, 0.50
ELSEIF LOCAL:5 < 1500
	TIMES LOCAL:0, 0.20
ELSEIF LOCAL:5 < 3000
	TIMES LOCAL:0, 0.10
ELSE
	TIMES LOCAL:0, 0.05
ENDIF

IF TALENT:(ARG:0):汚れ無視
	TIMES LOCAL:0, 0.00
ELSE
	IF TALENT:(ARG:0):汚臭敏感
		TIMES LOCAL:0, 2.00
	ENDIF
	IF TALENT:(ARG:0):汚臭鈍感
		TIMES LOCAL:0, 0.50
	ENDIF
ENDIF

CUP:(ARG:0):怒主 += LOCAL:0
CUP:(ARG:0):哀主 += LOCAL:0

;好感度減少
TCVAR:(ARG:0):好感度減少値 += LOCAL:0

;-------------------------------------------------
;逸脱のソース
;-------------------------------------------------
@CALC_SOURCE22(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):逸脱
LOCAL:1 = SOURCE:(ARG:0):逸脱 / 2
LOCAL:2 = SOURCE:(ARG:0):逸脱

;親密度と依存度の大きい方を見る
LOCAL:5 = MAX(CFLAG:(ARG:0):好感度, CFLAG:(ARG:0):依存度)
IF LOCAL:5 < 100
	TIMES LOCAL:0, 1.00
	TIMES LOCAL:1, 1.00
	TIMES LOCAL:2, 1.00
ELSEIF LOCAL:5 < 300
	TIMES LOCAL:0, 0.90
	TIMES LOCAL:1, 0.90
	TIMES LOCAL:2, 0.90
ELSEIF LOCAL:5 < 500
	TIMES LOCAL:0, 0.70
	TIMES LOCAL:1, 0.70
	TIMES LOCAL:2, 0.80
ELSEIF LOCAL:5 < 800
	TIMES LOCAL:0, 0.50
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 0.60
ELSEIF LOCAL:5 < 1500
	TIMES LOCAL:0, 0.20
	TIMES LOCAL:1, 0.20
	TIMES LOCAL:2, 0.50
ELSEIF LOCAL:5 < 3000
	TIMES LOCAL:0, 0.10
	TIMES LOCAL:1, 0.10
	TIMES LOCAL:2, 0.40
ELSE
	TIMES LOCAL:0, 0.05
	TIMES LOCAL:1, 0.05
	TIMES LOCAL:2, 0.30
ENDIF

;倒錯度を見る
LOCAL:5 = ABL:(ARG:0):倒錯度
IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_マゾ)
	TIMES LOCAL:0, 0.00
	TIMES LOCAL:1, 0.00
	TIMES LOCAL:2, 0.05
ELSEIF LOCAL:5 >= 800
	TIMES LOCAL:0, 0.15
	TIMES LOCAL:1, 0.15
	TIMES LOCAL:2, 0.30
ELSEIF LOCAL:5 >= 500
	TIMES LOCAL:0, 0.40
	TIMES LOCAL:1, 0.40
	TIMES LOCAL:2, 0.60
ELSEIF LOCAL:5 >= 300
	TIMES LOCAL:0, 0.60
	TIMES LOCAL:1, 0.60
	TIMES LOCAL:2, 0.80
ELSEIF LOCAL:5 >= 100
	TIMES LOCAL:0, 0.80
	TIMES LOCAL:1, 0.80
	TIMES LOCAL:2, 0.90
ELSE
	TIMES LOCAL:0, 1.00
	TIMES LOCAL:1, 1.00
	TIMES LOCAL:2, 1.00
ENDIF

IF TALENT:(ARG:0):好奇心
	TIMES LOCAL:0, 0.50
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 0.50
ENDIF

IF TALENT:(ARG:0):保守的
	TIMES LOCAL:0, 2.00
	TIMES LOCAL:1, 2.00
	TIMES LOCAL:2, 2.00
ENDIF

IF TALENT:(ARG:0):倒錯的
	TIMES LOCAL:0, 0.50
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 0.50
ENDIF

CUP:(ARG:0):怒主 += LOCAL:0
CUP:(ARG:0):哀主 += LOCAL:1
CUP:(ARG:0):怖主 += LOCAL:2

;-------------------------------------------------
;嗜虐のソース
;-------------------------------------------------
@CALC_SOURCE23(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):嗜虐 * 2
LOCAL:1 = SOURCE:(ARG:0):嗜虐
LOCAL:2 = SOURCE:(ARG:0):嗜虐
LOCAL:3 = SOURCE:(ARG:0):嗜虐

LOCAL:5 = ABL:(ARG:0):主導度Ｕ
IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_サド)
	TIMES LOCAL:0, 1.50
	TIMES LOCAL:1, 1.50
	TIMES LOCAL:2, 0.00
	TIMES LOCAL:3, 1.80
ELSEIF LOCAL:5 <= -500
	TIMES LOCAL:0, 0.00
	TIMES LOCAL:1, 0.00
	TIMES LOCAL:2, 1.00
	TIMES LOCAL:3, 0.70
ELSEIF LOCAL:5 <= -300
	TIMES LOCAL:0, 0.00
	TIMES LOCAL:1, 0.00
	TIMES LOCAL:2, 1.00
	TIMES LOCAL:3, 0.80
ELSEIF LOCAL:5 <= -100
	TIMES LOCAL:0, 0.05
	TIMES LOCAL:1, 0.05
	TIMES LOCAL:2, 1.00
	TIMES LOCAL:3, 0.90
ELSEIF LOCAL:5 < 100
	TIMES LOCAL:0, 0.10
	TIMES LOCAL:1, 0.10
	TIMES LOCAL:2, 0.70
	TIMES LOCAL:3, 1.00
ELSEIF LOCAL:5 < 300
	TIMES LOCAL:0, 0.30
	TIMES LOCAL:1, 0.30
	TIMES LOCAL:2, 0.30
	TIMES LOCAL:3, 1.10
ELSEIF LOCAL:5 < 500
	TIMES LOCAL:0, 0.60
	TIMES LOCAL:1, 0.60
	TIMES LOCAL:2, 0.05
	TIMES LOCAL:3, 1.30
ELSE
	TIMES LOCAL:0, 1.00
	TIMES LOCAL:1, 1.00
	TIMES LOCAL:2, 0.00
	TIMES LOCAL:3, 1.50
ENDIF

LOCAL:5 = ABL:(ARG:0):倒錯度
IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_サド) || LOCAL:5 >= 800
	TIMES LOCAL:0, 1.00
	TIMES LOCAL:1, 1.00
	TIMES LOCAL:2, 0.10
ELSEIF LOCAL:5 >= 500
	TIMES LOCAL:0, 0.90
	TIMES LOCAL:1, 0.90
	TIMES LOCAL:2, 0.30
ELSEIF LOCAL:5 >= 300
	TIMES LOCAL:0, 0.80
	TIMES LOCAL:1, 0.80
	TIMES LOCAL:2, 0.50
ELSEIF LOCAL:5 >= 100
	TIMES LOCAL:0, 0.60
	TIMES LOCAL:1, 0.60
	TIMES LOCAL:2, 0.80
ELSE
	TIMES LOCAL:0, 0.40
	TIMES LOCAL:1, 0.40
	TIMES LOCAL:2, 1.00
ENDIF

;サドを見る
SELECTCASE ABL:(ARG:0):サド
	CASE 0
		TIMES LOCAL:0, 0.50
		TIMES LOCAL:1, 1.10
		TIMES LOCAL:2, 1.10
		TIMES LOCAL:3, 1.10
	CASE 1
		TIMES LOCAL:0, 0.80
		TIMES LOCAL:1, 1.05
		TIMES LOCAL:2, 1.05
		TIMES LOCAL:3, 1.05
	CASE 2
		TIMES LOCAL:0, 1.0
		TIMES LOCAL:1, 1.0
		TIMES LOCAL:2, 1.0
		TIMES LOCAL:3, 1.0
	CASE 3
		TIMES LOCAL:0, 1.1
		TIMES LOCAL:1, 0.80
		TIMES LOCAL:2, 0.80
		TIMES LOCAL:3, 0.80
	CASE 4
		TIMES LOCAL:0, 1.2
		TIMES LOCAL:1, 0.60
		TIMES LOCAL:2, 0.60
		TIMES LOCAL:3, 0.60
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):マゾ - 5) * 5 + 140) / 100
		TIMES LOCAL:1, 0.20
		TIMES LOCAL:3, 0.20
		IF TALENT:(ARG:0):抑圧
			TIMES LOCAL:2, 0.50
		ELSE
			TIMES LOCAL:2, 0.20
		ENDIF
ENDSELECT

IF TALENT:(ARG:0):主人
	TIMES LOCAL:0, 1.30
	TIMES LOCAL:1, 1.30
ENDIF
IF TALENT:(ARG:0):所有者
	TIMES LOCAL:0, 1.30
	TIMES LOCAL:1, 1.30
ENDIF

;欲望による欲情の補正
LOCAL:0 = CALC_SOURCE_YOKUBOU(ARG:0, LOCAL:0)

CUP:(ARG:0):欲情 += LOCAL:0
CUP:(ARG:0):怒主 -= LOCAL:1
CUP:(ARG:0):哀主 -= LOCAL:1
CUP:(ARG:0):怖主 += LOCAL:2

;好感度上昇
TCVAR:(ARG:0):好感度上昇値 += LOCAL:1 * 10

;依存度上昇
TCVAR:(ARG:0):依存度上昇値 += LOCAL:1 * 4

;従属度減少
TCVAR:(ARG:0):従属度減少値 += LOCAL:3 * 10

;支配度上昇
TCVAR:(ARG:0):支配度上昇値 += LOCAL:1 * 15

;-------------------------------------------------
;感応のソース
;-------------------------------------------------
@CALC_SOURCE24(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):感応
LOCAL:1 = SOURCE:(ARG:0):感応
LOCAL:2 = SOURCE:(ARG:0):感応
LOCAL:3 = SOURCE:(ARG:0):感応

LOCAL:0 = CALC_SOURCE_YOKUBOU(ARG:0, LOCAL:0)

SELECTCASE ABL:(ARG:0):欲望
	CASE 0
		TIMES LOCAL:1, 1.00
		TIMES LOCAL:2, 1.00
		TIMES LOCAL:3, 1.00
	CASE 1
		TIMES LOCAL:1, 0.85
		TIMES LOCAL:2, 0.85
		TIMES LOCAL:3, 0.85
	CASE 2
		TIMES LOCAL:1, 0.70
		TIMES LOCAL:2, 0.70
		TIMES LOCAL:3, 0.70
	CASE 3
		TIMES LOCAL:1, 0.40
		TIMES LOCAL:2, 0.40
		TIMES LOCAL:3, 0.40
	CASE 4
		TIMES LOCAL:1, 0.30
		TIMES LOCAL:2, 0.30
		TIMES LOCAL:3, 0.30
	CASEELSE
		LOCAL:1 = LOCAL:1 * 2 / (ABL:(ARG:0):欲望 + 15)
		LOCAL:2 = LOCAL:2 * 2 / (ABL:(ARG:0):欲望 + 15)
		LOCAL:3 = LOCAL:3 * 2 / (ABL:(ARG:0):欲望 + 15)
ENDSELECT

IF TALENT:(ARG:0):好奇心
	TIMES LOCAL:0, 1.50
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 0.50
ENDIF

IF TALENT:(ARG:0):保守的
	TIMES LOCAL:0, 0.75
	TIMES LOCAL:1, 1.50
ENDIF

IF TALENT:(ARG:0):無関心
	TIMES LOCAL:0, 0.30
	TIMES LOCAL:1, 0.30
	TIMES LOCAL:2, 0.30
	TIMES LOCAL:3, 0.30
ENDIF

IF TALENT:(ARG:0):孤高
	TIMES LOCAL:1, 1.50
	TIMES LOCAL:2, 1.50
ENDIF

IF TALENT:(ARG:0):抑圧
	TIMES LOCAL:2, 2.00
ENDIF

IF TALENT:(ARG:0):快感の否定
	TIMES LOCAL:1, 1.30
	TIMES LOCAL:3, 1.30
ENDIF

IF !(TALENT:(ARG:0):孤高 || TALENT:(ARG:0):抑圧 || TALENT:(ARG:0):快感の否定)
	LOCAL:2 = 0
ENDIF

CUP:(ARG:0):欲情 += LOCAL:0
CUP:(ARG:0):怒主 += LOCAL:1 / 6
CUP:(ARG:0):哀主 += LOCAL:2 / 4
CUP:(ARG:0):怖主 += LOCAL:3 / 8

;-------------------------------------------------
;解消のソース
;-------------------------------------------------
@CALC_SOURCE25(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):解消

LOCAL:5 = MAX(PALAM:(ARG:0):怒外, PALAM:(ARG:0):哀外, PALAM:(ARG:0):怖外)

IF LOCAL:5 == PALAM:(ARG:0):怒外
	CUP:(ARG:0):怒外 -= LOCAL:0
ELSEIF LOCAL:5 == PALAM:(ARG:0):哀外
	CUP:(ARG:0):哀外 -= LOCAL:0
ELSE
	CUP:(ARG:0):怖外 -= LOCAL:0
ENDIF

;好感度上昇
TCVAR:(ARG:0):好感度上昇値 += LOCAL:0 * 100 / 15

;依存度上昇
TCVAR:(ARG:0):依存度上昇値 += LOCAL:0 * 100 / 15

;ムードの上昇
TFLAG:ムード += LOCAL:0 / 100
TCVAR:(ARG:0):HOムード値 += LOCAL:0 / 100

;-------------------------------------------------
;歓喜のソース
;-------------------------------------------------
@CALC_SOURCE26(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):歓喜

CUP:(ARG:0):怒主 -= LOCAL:0
CUP:(ARG:0):哀主 -= LOCAL:0
CUP:(ARG:0):怖主 -= LOCAL:0

;-------------------------------------------------
;触手のソース
;-------------------------------------------------
@CALC_SOURCE27(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):触手
LOCAL:1 = SOURCE:(ARG:0):触手 * 2
LOCAL:2 = SOURCE:(ARG:0):触手

SELECTCASE ABL:(ARG:0):触手
	CASE 0
		TIMES LOCAL:0, 1.00
		TIMES LOCAL:1, 1.00
		TIMES LOCAL:2, 0.05
	CASE 1
		TIMES LOCAL:0, 0.80
		TIMES LOCAL:1, 0.90
		TIMES LOCAL:2, 0.15
	CASE 2
		TIMES LOCAL:0, 0.50
		TIMES LOCAL:1, 0.65
		TIMES LOCAL:2, 0.40
	CASE 3
		TIMES LOCAL:0, 0.20
		TIMES LOCAL:1, 0.40
		TIMES LOCAL:2, 0.70
	CASE 4
		TIMES LOCAL:0, 0.05
		TIMES LOCAL:1, 0.20
		TIMES LOCAL:2, 1.00
	CASEELSE
		LOCAL:0 = LOCAL:0 / ((ABL:(ARG:0):触手 - 5) * 100 + 500)
		LOCAL:1 = LOCAL:1 / ((ABL:(ARG:0):触手 - 5) * 50 + 150)
		LOCAL:2 = LOCAL:2 * ((ABL:(ARG:0):触手 - 5) * 10 + 180) / 100
ENDSELECT

SELECTCASE ABL:(ARG:0):欲望
	CASE 0
		TIMES LOCAL:0, 1.00
	CASE 1
		TIMES LOCAL:0, 0.95
	CASE 2
		TIMES LOCAL:0, 0.90
	CASE 3
		TIMES LOCAL:0, 0.80
	CASE 4
		TIMES LOCAL:0, 0.70
	CASEELSE
		LOCAL:0 = LOCAL:0 * 10 / ((ABL:(ARG:0):欲望 - 5) * 3 + 18)
ENDSELECT

LOCAL:5 = ABL:(ARG:0):倒錯度
IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_マゾ) || LOCAL:5 >= 800
	TIMES LOCAL:0, 0.30
	TIMES LOCAL:1, 0.30
	TIMES LOCAL:2, 1.80
ELSEIF LOCAL:5 >= 500
	TIMES LOCAL:0, 0.50
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 1.50
ELSEIF LOCAL:5 >= 300
	TIMES LOCAL:0, 0.70
	TIMES LOCAL:1, 0.70
	TIMES LOCAL:2, 1.30
ELSEIF LOCAL:5 >= 100
	TIMES LOCAL:0, 0.90
	TIMES LOCAL:1, 0.90
	TIMES LOCAL:2, 1.10
ELSE
	TIMES LOCAL:0, 1.00
	TIMES LOCAL:1, 1.00
	TIMES LOCAL:2, 1.00
ENDIF

CUP:(ARG:0):怒主 += LOCAL:0
CUP:(ARG:0):哀主 += LOCAL:0 / 2
CUP:(ARG:0):怖主 += LOCAL:1
CUP:(ARG:0):欲情 += CALC_SOURCE_YOKUBOU(ARG:0, LOCAL:2)

;-------------------------------------------------
;主導のソース
;-------------------------------------------------
@CALC_SOURCE28(ARG:0)
;主導度が低いと「悲」が上がる
LOCAL:0 = SOURCE:(ARG:0):主導
LOCAL:1 = SOURCE:(ARG:0):主導
LOCAL:2 = SOURCE:(ARG:0):主導

LOCAL:5 = ABL:(ARG:0):主導度Ｎ
IF LOCAL:5 >= 500 || GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_サド)
	TIMES LOCAL:0, 1.50
	TIMES LOCAL:1, 1.00
	TIMES LOCAL:2, 1.50
ELSEIF LOCAL:5 >= 300
	TIMES LOCAL:0, 1.00
	TIMES LOCAL:1, 0.60
	TIMES LOCAL:2, 1.30
ELSEIF LOCAL:5 >= 100
	TIMES LOCAL:0, 0.50
	TIMES LOCAL:1, 0.30
	TIMES LOCAL:2, 1.10
ELSEIF LOCAL:5 > -100
	TIMES LOCAL:0, 0.00
	TIMES LOCAL:1, 0.00
	TIMES LOCAL:2, 1.00
ELSEIF LOCAL:5 > -300
	TIMES LOCAL:0, 0.00
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 0.90
	LOCAL:1 *= -1
ELSEIF LOCAL:5 > -500
	TIMES LOCAL:0, 0.00
	TIMES LOCAL:1, 1.00
	TIMES LOCAL:2, 0.80
	LOCAL:1 *= -1
ELSE
	TIMES LOCAL:0, 0.00
	TIMES LOCAL:1, 1.50
	TIMES LOCAL:2, 0.70
	LOCAL:1 *= -1
ENDIF

IF TALENT:(ARG:0):主人
	TIMES LOCAL:0, 1.30
	TIMES LOCAL:1, 1.30
ENDIF
IF TALENT:(ARG:0):所有者
	TIMES LOCAL:0, 1.30
	TIMES LOCAL:1, 1.30
ENDIF

CUP:(ARG:0):怒主 -= LOCAL:0
CUP:(ARG:0):哀主 -= LOCAL:1

;好感度上昇
TCVAR:(ARG:0):好感度上昇値 += (LOCAL:0 + LOCAL:1)

;従属度減少
TCVAR:(ARG:0):従属度減少値 += LOCAL:2 * 2

;支配度上昇
TCVAR:(ARG:0):支配度上昇値 += (LOCAL:0 + LOCAL:1) * 2

;-------------------------------------------------
;受動のソース
;-------------------------------------------------
@CALC_SOURCE29(ARG:0)
;主導度が高いと「怒」が上がる
LOCAL:0 = SOURCE:(ARG:0):受動
LOCAL:1 = SOURCE:(ARG:0):受動
LOCAL:2 = SOURCE:(ARG:0):受動

LOCAL:5 = ABL:(ARG:0):主導度Ｎ
IF LOCAL:5 <= -500 || GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_マゾ)
	TIMES LOCAL:0, 1.50
	TIMES LOCAL:1, 1.00
	TIMES LOCAL:2, 1.50
ELSEIF LOCAL:5 <= -300
	TIMES LOCAL:0, 1.00
	TIMES LOCAL:1, 0.60
	TIMES LOCAL:2, 1.30
ELSEIF LOCAL:5 <= -100
	TIMES LOCAL:0, 0.50
	TIMES LOCAL:1, 0.30
	TIMES LOCAL:2, 1.10
ELSEIF LOCAL:5 < 100
	TIMES LOCAL:0, 0.00
	TIMES LOCAL:1, 0.00
	TIMES LOCAL:2, 1.00
ELSEIF LOCAL:5 < 300
	TIMES LOCAL:0, 0.00
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 0.90
	LOCAL:1 *= -1
ELSEIF LOCAL:5 < 500
	TIMES LOCAL:0, 0.00
	TIMES LOCAL:1, 1.00
	TIMES LOCAL:2, 0.80
	LOCAL:1 *= -1
ELSE
	TIMES LOCAL:0, 0.00
	TIMES LOCAL:1, 1.50
	TIMES LOCAL:2, 0.70
	LOCAL:1 *= -1
ENDIF

CUP:(ARG:0):怒主 -= LOCAL:1
CUP:(ARG:0):哀主 -= LOCAL:0

;好感度上昇
TCVAR:(ARG:0):好感度上昇値 += (LOCAL:0 + LOCAL:1) * 2

;従属度上昇
TCVAR:(ARG:0):従属度上昇値 += LOCAL:2 * 2

;支配度減少
TCVAR:(ARG:0):支配度減少値 += LOCAL:2 / 3

;-------------------------------------------------
;中毒充足のソース
;-------------------------------------------------
@CALC_SOURCE30(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):中毒充足 * 5
LOCAL:1 = SOURCE:(ARG:0):中毒充足

LOCAL:0 = CALC_SOURCE_YOKUBOU(ARG:0, LOCAL:0)

CUP:(ARG:0):欲情 += LOCAL:0
CUP:(ARG:0):怒主 -= LOCAL:1
CUP:(ARG:0):哀主 -= LOCAL:1
CUP:(ARG:0):怖主 -= LOCAL:1 * 2 / 3

;好感度上昇
TCVAR:(ARG:0):好感度上昇値 += LOCAL:1 / 6

;依存度上昇
TCVAR:(ARG:0):依存度上昇値 += LOCAL:1 / 2

;-------------------------------------------------
;悲哀のソース
;-------------------------------------------------
@CALC_SOURCE31(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):悲哀

CUP:(ARG:0):怒主 += LOCAL:0 / 5
CUP:(ARG:0):哀主 += LOCAL:0

;好感度減少
TCVAR:(ARG:0):好感度減少値 += LOCAL:0 / 5

;依存度減少
TCVAR:(ARG:0):依存度減少値 += LOCAL:0 / 3

;従属度減少
TCVAR:(ARG:0):従属度減少値 += LOCAL:0 / 5

;支配度減少
TCVAR:(ARG:0):支配度減少値 += LOCAL:0 / 6

;-------------------------------------------------
;不満のソース
;-------------------------------------------------
@CALC_SOURCE32(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):不満

CUP:(ARG:0):怒主 += LOCAL:0 / 10
CUP:(ARG:0):哀主 += LOCAL:0 / 10

;好感度減少
TCVAR:(ARG:0):好感度減少値 += LOCAL:0

;依存度減少
TCVAR:(ARG:0):依存度減少値 += LOCAL:0 / 2

;従属度減少
TCVAR:(ARG:0):従属度減少値 += LOCAL:0 / 3

;支配度減少
TCVAR:(ARG:0):支配度減少値 += LOCAL:0 / 4

;-------------------------------------------------
;性行動のソース
;-------------------------------------------------
@CALC_SOURCE33(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):性行動
LOCAL:1 = SOURCE:(ARG:0):性行動
LOCAL:2 = SOURCE:(ARG:0):性行動
LOCAL:3 = SOURCE:(ARG:0):性行動

SELECTCASE ABL:(ARG:0):欲望
	CASE 0
		TIMES LOCAL:0, 1.00
		TIMES LOCAL:1, 1.00
	CASE 1
		TIMES LOCAL:0, 0.90
		TIMES LOCAL:1, 0.80
	CASE 2
		TIMES LOCAL:0, 0.75
		TIMES LOCAL:1, 0.50
	CASE 3
		TIMES LOCAL:0, 0.60
		TIMES LOCAL:1, 0.25
	CASE 4
		TIMES LOCAL:0, 0.50
		TIMES LOCAL:1, 0.10
	CASEELSE
		LOCAL:0 = LOCAL:0 * 4 / (ABL:(ARG:0):欲望 + 5)
		LOCAL:1 = LOCAL:1 / ((ABL:(ARG:0):欲望 + 5) * 2)
ENDSELECT

;親密度と依存度の大きい方を見る
LOCAL:5 = MAX(CFLAG:(ARG:0):好感度, CFLAG:(ARG:0):依存度)
IF LOCAL:5 < 100
	TIMES LOCAL:0, 1.00
	TIMES LOCAL:1, 1.00
	TIMES LOCAL:2, 1.00
ELSEIF LOCAL:5 < 300
	TIMES LOCAL:0, 0.90
	TIMES LOCAL:1, 0.90
	TIMES LOCAL:2, 0.90
ELSEIF LOCAL:5 < 500
	TIMES LOCAL:0, 0.70
	TIMES LOCAL:1, 0.70
	TIMES LOCAL:2, 0.80
ELSEIF LOCAL:5 < 800
	TIMES LOCAL:0, 0.50
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 0.60
ELSEIF LOCAL:5 < 1500
	TIMES LOCAL:0, 0.20
	TIMES LOCAL:1, 0.20
	TIMES LOCAL:2, 0.50
ELSEIF LOCAL:5 < 3000
	TIMES LOCAL:0, 0.10
	TIMES LOCAL:1, 0.10
	TIMES LOCAL:2, 0.40
ELSE
	TIMES LOCAL:0, 0.05
	TIMES LOCAL:1, 0.05
	TIMES LOCAL:2, 0.30
ENDIF

IF TALENT:(ARG:0):快感の否定
	TIMES LOCAL:0, 1.50
	TIMES LOCAL:2, 1.50
ENDIF

IF TALENT:(ARG:0):保守的
	TIMES LOCAL:0, 1.50
	TIMES LOCAL:2, 1.50
ENDIF

IF TALENT:(ARG:0):好奇心
	TIMES LOCAL:0, 0.80
	TIMES LOCAL:2, 0.80
ENDIF

IF TALENT:(ARG:0):プライド高い
	TIMES LOCAL:0, 1.20
ELSEIF TALENT:(ARG:0):プライド低い
	TIMES LOCAL:0, 0.80
ENDIF

IF TALENT:(ARG:0):親愛
	TIMES LOCAL:0, 0.20
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 0.20
ELSEIF TALENT:(ARG:0):恋慕
	TIMES LOCAL:0, 0.40
	TIMES LOCAL:1, 0.75
	TIMES LOCAL:2, 0.40
ENDIF

IF TALENT:(ARG:0):恋人
	TIMES LOCAL:0, 0.70
	TIMES LOCAL:1, 0.80
	TIMES LOCAL:2, 0.70
ENDIF

IF TALENT:(ARG:0):隷属
	TIMES LOCAL:0, 0.20
	TIMES LOCAL:2, 0.10
ELSEIF TALENT:(ARG:0):服従
	TIMES LOCAL:0, 0.40
	TIMES LOCAL:2, 0.25
ENDIF

IF TALENT:(ARG:0):烙印
	TIMES LOCAL:0, 0.70
	TIMES LOCAL:2, 0.70
ENDIF

IF IS_FALLEN_TO_SP_COUNTRY(ARG:0)
	TIMES LOCAL:0, 0.20
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 0.30
ENDIF

IF TALENT:(ARG:0):合意
	TIMES LOCAL:0, 0.40
	TIMES LOCAL:1, 0.50
	TIMES LOCAL:2, 0.40
ELSE
	IF TALENT:(ARG:0):貞操観念
		TIMES LOCAL:0, 1.50
		TIMES LOCAL:2, 1.50
	ENDIF
	IF TALENT:(ARG:0):貞操無頓着
		TIMES LOCAL:0, 0.75
		TIMES LOCAL:2, 0.75
	ENDIF
ENDIF

IF TALENT:(ARG:0):性別 == 0
	TIMES LOCAL:0, 0.50
	TIMES LOCAL:1, 0.50
ELSEIF GROUPMATCH(TALENT:(ARG:0):性別, 3, 4, 5)
	TIMES LOCAL:0, 0.80
	TIMES LOCAL:1, 0.80
ENDIF

;桃源香使用中
IF TFLAG:桃源香使用中
	TIMES LOCAL:0, 0.80
	TIMES LOCAL:1, 0.90
	TIMES LOCAL:2, 0.80
ENDIF

IF ABL:(ARG:0):性知識 == 0
	LOCAL:0 = 0
ENDIF

IF !TALENT:(ARG:0):孤高 && !TALENT:(ARG:0):抑圧
	LOCAL:2 = 0
ENDIF

CUP:(ARG:0):欲情 += CALC_SOURCE_YOKUBOU(ARG:0, LOCAL:3 / 2)

CUP:(ARG:0):怒主 += LOCAL:0
CUP:(ARG:0):哀主 += LOCAL:0
CUP:(ARG:0):怖主 += LOCAL:1

;好感度減少
TCVAR:(ARG:0):好感度減少値 += LOCAL:0

;依存度減少
TCVAR:(ARG:0):依存度減少値 += LOCAL:2 / 3

;従属度減少
TCVAR:(ARG:0):従属度減少値 += LOCAL:2 / 2

;支配度減少
TCVAR:(ARG:0):支配度減少値 += LOCAL:2 / 2

;-------------------------------------------------
;液体追加のソース
;-------------------------------------------------
@CALC_SOURCE40(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):液体追加

CUP:(ARG:0):潤滑 += LOCAL:0

;-------------------------------------------------
;欲情追加のソース
;-------------------------------------------------
@CALC_SOURCE41(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):欲情追加

CUP:(ARG:0):欲情 += LOCAL:0

;-------------------------------------------------
;酔い追加のソース
;-------------------------------------------------
@CALC_SOURCE50(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):酔い追加

IF TALENT:(ARG:0):酒豪
	TIMES LOCAL:0, 0.8
ELSEIF TALENT:(ARG:0):下戸
	TIMES LOCAL:0, 1.2
ELSE
	IF TALENT:(ARG:0):幼児
		TIMES LOCAL:0, 3.00
	ELSEIF TALENT:(ARG:0):体格 == 体格_小柄
		TIMES LOCAL:0, 1.50
	ENDIF
ENDIF

CUP:(ARG:0):酔い += LOCAL:0

;-------------------------------------------------
;薬物追加のソース
;-------------------------------------------------
@CALC_SOURCE52(ARG:0)
LOCAL:0 = SOURCE:(ARG:0):薬物追加
IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_薬物中毒)
	TIMES LOCAL:0, 0.50
ELSE
	IF TALENT:(ARG:0):幼児
		TIMES LOCAL:0, 3.00
	ELSEIF TALENT:(ARG:0):体格 == 体格_小柄
		TIMES LOCAL:0, 1.50
	ENDIF
ENDIF

CUP:(ARG:0):薬物 += LOCAL:0
;-------------------------------------------------
;欲望による欲情の共通補正 ARG:0=キャラ番号、ARG:1=欲情上昇の基本値
;-------------------------------------------------
@CALC_SOURCE_YOKUBOU(ARG:0, ARG:1)
#FUNCTION
LOCAL:0 = ARG:1

;媚薬使用中
IF TCVAR:(ARG:0):媚薬
	TIMES LOCAL:0, 2.00
ENDIF

;桃源香使用中
IF TFLAG:桃源香使用中
	TIMES LOCAL:0, 1.25
ENDIF

SELECTCASE ABL:(ARG:0):欲望
	CASE 0
		TIMES LOCAL:0, 0.40
	CASE 1
		TIMES LOCAL:0, 0.80
	CASE 2
		TIMES LOCAL:0, 1.60
	CASE 3
		TIMES LOCAL:0, 2.50
	CASE 4
		TIMES LOCAL:0, 4.00
	CASEELSE
		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):欲望 - 5) * 2 + 60) / 10
ENDSELECT
RETURNF LOCAL:0

;-------------------------------------------------
;対応する感覚レベルによる快楽ソースへの補正
;ARG:0=感覚の値
;ARG:1=現在の快感ソース
;-------------------------------------------------
@CALC_SOURCE_SENSE_BASE(ARG:0, ARG:1)
#FUNCTION
LOCAL:0 = ARG:1
LOCAL:1 = ARG:1
SELECTCASE ARG:0
	CASE 0
		TIMES LOCAL:0, 0.6
	CASE 1
		TIMES LOCAL:0, 0.8
	CASE 2
		TIMES LOCAL:0, 1.0
	CASE 3
		TIMES LOCAL:0, 1.5
	CASE 4
		TIMES LOCAL:0, 2.0
	CASEELSE
		;LOCAL:0 = LOCAL:0 * ((ARG:0 - 4) * 80 + 200) / 100
		LOCAL:0 = LOCAL:0 * ((ARG:0 - 4) / 3 * 10 + 240) / 100
ENDSELECT
RETURNF LOCAL:0
;-------------------------------------------------
;欲情による快感量の共通補正 ARG:0=キャラ番号、ARG:1=欲情上昇の基本値
;-------------------------------------------------
@CALC_SOURCE_SENSE_ESTRUS(ARG:0, ARG:1)
#FUNCTION
LOCAL:0 = ARG:1
IF PALAM:(ARG:0):欲情 < PALAMLV:1
	TIMES LOCAL:0, 0.30
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:2
	TIMES LOCAL:0, 0.40
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:3
	TIMES LOCAL:0, 0.60
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:4
	TIMES LOCAL:0, 0.80
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:5
	TIMES LOCAL:0, 1.00
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:6
	TIMES LOCAL:0, 1.05
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:7
	TIMES LOCAL:0, 1.10
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:8
	TIMES LOCAL:0, 1.20
ELSEIF PALAM:(ARG:0):欲情 < PALAMLV:9
	TIMES LOCAL:0, 1.30
ELSE
	TIMES LOCAL:0, 1.40
ENDIF
RETURNF LOCAL:0

;-------------------------------------------------
;噴乳上昇量の共通補正 ARG:0=キャラ番号、ARG:1=噴乳上昇の基本値
;-------------------------------------------------
@CALC_SOURCE_MILK(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.50
	CASE 4
		TIMES LOCAL:0, 2.0
	CASEELSE
		LOCAL:0 = LOCAL:0 * MIN(ABL:(ARG:0):噴乳 * 50, 1000) / 100
ENDSELECT
SIF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_雌牛)
	TIMES LOCAL, 1.5
RETURNF LOCAL:0


code:
;MASTER専用のソース計算

;-------------------------------------------------
;快Ｃのソース
;-------------------------------------------------
@CALC_SOURCE_MASTER0(ARG:0)
CALL CALC_SOURCE0(ARG:0)
; LOCAL:0 = SOURCE:(ARG:0):快Ｃ
; LOCAL:5 = SOURCE:(ARG:0):快Ｃ
; LOCAL:6 = SOURCE:(ARG:0):快Ｃ

; SELECTCASE ABL:(ARG:0):Ｃ感
; 	CASE 0
; 		TIMES LOCAL:0, 0.04
; 		TIMES LOCAL:5, 0.70
; 	CASE 1
; 		TIMES LOCAL:0, 0.20
; 		TIMES LOCAL:5, 0.85
; 	CASE 2
; 		TIMES LOCAL:0, 1.00
; 		TIMES LOCAL:5, 1.00
; 	CASE 3
; 		TIMES LOCAL:0, 2.30
; 		TIMES LOCAL:5, 1.15
; 	CASE 4
; 		TIMES LOCAL:0, 4.00
; 		TIMES LOCAL:5, 1.30
; 	CASEELSE
; 		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):Ｃ感 - 5) * 50 + 550) / 100
; 		LOCAL:5 = LOCAL:5 * ((ABL:(ARG:0):Ｃ感 - 5) * 10 + 140) / 100
; ENDSELECT

; IF TALENT:(ARG:0):Ｃ敏感
; 	TIMES LOCAL:0, 2.00
; 	TIMES LOCAL:5, 1.50
; ENDIF

; IF TALENT:(ARG:0):Ｃ鈍感
; 	TIMES LOCAL:0, 0.50
; 	TIMES LOCAL:5, 0.75
; ENDIF

; IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫核)
; 	TIMES LOCAL:0, 1.50
; 	TIMES LOCAL:5, 1.50
; ENDIF

; ;媚薬使用中
; IF TCVAR:(ARG:0):媚薬
; 	TIMES LOCAL:0, 2.50
; 	TIMES LOCAL:5, 2.00
; ENDIF

; ;桃源香使用中
; IF TFLAG:桃源香使用中
; 	TIMES LOCAL:0, 1.25
; 	TIMES LOCAL:5, 1.25
; ENDIF

; ;体力0による行動不能
; IF TCVAR:(ARG:0):行動不能フラグ
; 	TIMES LOCAL:0, 0.20
; 	TIMES LOCAL:5, 0.20
; ENDIF

; ;気力0による失神中
; IF TCVAR:(ARG:0):失神フラグ
; 	TIMES LOCAL:0, 0.20
; 	TIMES LOCAL:5, 0.20
; ENDIF

; IF HAS_PENIS(ARG:0)
; 	CUP:(ARG:0):射精 += LOCAL:5 / 5
; ENDIF

; IF HAS_VAGINA(ARG:0)
; 	CUP:(ARG:0):潤滑 += LOCAL:5 / 3
; ENDIF

; CUP:(ARG:0):快Ｃ += LOCAL:0
; CUP:(ARG:0):潮吹き += SQRT(LOCAL:0 * 400)

;-------------------------------------------------
;快Ｐのソース
;-------------------------------------------------
@CALC_SOURCE_MASTER9(ARG:0)
CALL CALC_SOURCE9(ARG:0)
; LOCAL:0 = SOURCE:(ARG:0):快Ｐ
; LOCAL:5 = SOURCE:(ARG:0):快Ｐ

; SELECTCASE ABL:(ARG:0):Ｃ感
; 	CASE 0
; 		TIMES LOCAL:0, 0.04
; 		TIMES LOCAL:5, 0.70
; 	CASE 1
; 		TIMES LOCAL:0, 0.20
; 		TIMES LOCAL:5, 0.85
; 	CASE 2
; 		TIMES LOCAL:0, 1.00
; 		TIMES LOCAL:5, 1.00
; 	CASE 3
; 		TIMES LOCAL:0, 2.30
; 		TIMES LOCAL:5, 1.15
; 	CASE 4
; 		TIMES LOCAL:0, 4.00
; 		TIMES LOCAL:5, 1.30
; 	CASEELSE
; 		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):Ｃ感 - 5) * 50 + 550) / 100
; 		LOCAL:5 = LOCAL:5 * ((ABL:(ARG:0):Ｃ感 - 5) * 10 + 140) / 100
; ENDSELECT

; IF TALENT:(ARG:0):Ｃ敏感
; 	TIMES LOCAL:0, 2.00
; 	TIMES LOCAL:5, 1.50
; 	TIMES LOCAL:6, 1.50
; ENDIF

; IF TALENT:(ARG:0):Ｃ鈍感
; 	TIMES LOCAL:0, 0.50
; 	TIMES LOCAL:5, 0.75
; 	TIMES LOCAL:6, 0.75
; ENDIF

; IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫核)
; 	TIMES LOCAL:0, 1.50
; 	TIMES LOCAL:5, 1.50
; 	TIMES LOCAL:6, 1.50
; ENDIF

; ;媚薬使用中
; IF TCVAR:(ARG:0):媚薬
; 	TIMES LOCAL:0, 2.50
; 	TIMES LOCAL:5, 2.00
; ENDIF

; ;桃源香使用中
; IF TFLAG:桃源香使用中
; 	TIMES LOCAL:0, 1.25
; 	TIMES LOCAL:5, 1.25
; ENDIF

; ;体力0による行動不能
; IF TCVAR:(ARG:0):行動不能フラグ
; 	TIMES LOCAL:0, 0.20
; 	TIMES LOCAL:5, 0.20
; ENDIF

; ;気力0による失神中
; IF TCVAR:(ARG:0):失神フラグ
; 	TIMES LOCAL:0, 0.20
; 	TIMES LOCAL:5, 0.20
; ENDIF

; IF HAS_PENIS(ARG:0)
; 	CUP:(ARG:0):射精 += LOCAL:5
; ENDIF

; IF HAS_VAGINA(ARG:0)
; 	CUP:(ARG:0):潤滑 += LOCAL:5 / 3
; ENDIF

; CUP:(ARG:0):快Ｃ += LOCAL:0 / 15

;-------------------------------------------------
;快Ｖのソース
;-------------------------------------------------
@CALC_SOURCE_MASTER1(ARG:0)
CALL CALC_SOURCE1(ARG:0)
; LOCAL:0 = SOURCE:(ARG:0):快Ｖ
; LOCAL:5 = SOURCE:(ARG:0):快Ｖ

; SELECTCASE ABL:(ARG:0):Ｖ感
; 	CASE 0
; 		TIMES LOCAL:0, 0.08
; 		TIMES LOCAL:5, 0.60
; 	CASE 1
; 		TIMES LOCAL:0, 0.30
; 		TIMES LOCAL:5, 0.80
; 	CASE 2
; 		TIMES LOCAL:0, 1.40
; 		TIMES LOCAL:5, 1.00
; 	CASE 3
; 		TIMES LOCAL:0, 3.00
; 		TIMES LOCAL:5, 1.20
; 	CASE 4
; 		TIMES LOCAL:0, 5.00
; 		TIMES LOCAL:5, 1.40
; 	CASEELSE
; 		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):Ｖ感 - 5) * 60 + 600) / 100
; 		LOCAL:5 = LOCAL:5 * ((ABL:(ARG:0):Ｖ感 - 5) * 10 + 160) / 100
; ENDSELECT

; IF TALENT:(ARG:0):Ｖ敏感
; 	TIMES LOCAL:0, 2.00
; 	TIMES LOCAL:5, 1.50
; ENDIF

; IF TALENT:(ARG:0):Ｖ鈍感
; 	TIMES LOCAL:0, 0.50
; 	TIMES LOCAL:5, 0.75
; ENDIF

; IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫壷)
; 	TIMES LOCAL:0, 2.00
; ENDIF

; ;媚薬使用中
; IF TCVAR:(ARG:0):媚薬
; 	TIMES LOCAL:0, 2.50
; 	TIMES LOCAL:5, 2.00
; ENDIF

; ;桃源香使用中
; IF TFLAG:桃源香使用中
; 	TIMES LOCAL:0, 1.25
; 	TIMES LOCAL:5, 1.25
; ENDIF

; ;体力0による行動不能
; IF TCVAR:(ARG:0):行動不能フラグ
; 	TIMES LOCAL:0, 0.20
; 	TIMES LOCAL:5, 0.20
; ENDIF

; ;気力0による失神中
; IF TCVAR:(ARG:0):失神フラグ
; 	TIMES LOCAL:0, 0.20
; 	TIMES LOCAL:5, 0.20
; ENDIF

; CUP:(ARG:0):快Ｖ += LOCAL:0
; CUP:(ARG:0):潮吹き += SQRT(LOCAL:0 * 400)

; IF HAS_PENIS(ARG:0)
; 	CUP:(ARG:0):射精 += LOCAL:5 / 2
; ENDIF

; IF HAS_VAGINA(ARG:0)
; 	CUP:(ARG:0):潤滑 += LOCAL:5 / 3
; ENDIF

;-------------------------------------------------
;快Ａのソース
;-------------------------------------------------
@CALC_SOURCE_MASTER2(ARG:0)
CALL CALC_SOURCE2(ARG:0)

; LOCAL:0 = SOURCE:(ARG:0):快Ａ
; LOCAL:5 = SOURCE:(ARG:0):快Ａ

; SELECTCASE ABL:(ARG:0):Ａ感
; 	CASE 0
; 		TIMES LOCAL:0, 0.04
; 		TIMES LOCAL:5, 0.60
; 	CASE 1
; 		TIMES LOCAL:0, 0.20
; 		TIMES LOCAL:5, 0.80
; 	CASE 2
; 		TIMES LOCAL:0, 0.80
; 		TIMES LOCAL:5, 1.00
; 	CASE 3
; 		TIMES LOCAL:0, 2.60
; 		TIMES LOCAL:5, 1.20
; 	CASE 4
; 		TIMES LOCAL:0, 4.60
; 		TIMES LOCAL:5, 1.40
; 	CASEELSE
; 		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):Ａ感 - 5) * 60 + 600) / 100
; 		LOCAL:5 = LOCAL:5 * ((ABL:(ARG:0):Ａ感 - 5) * 10 + 160) / 100
; ENDSELECT

; IF TALENT:(ARG:0):Ａ敏感
; 	TIMES LOCAL:0, 2.00
; 	TIMES LOCAL:5, 1.50
; ENDIF

; IF TALENT:(ARG:0):Ａ鈍感
; 	TIMES LOCAL:0, 0.50
; 	TIMES LOCAL:5, 0.75
; ENDIF

; IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_尻穴狂い)
; 	TIMES LOCAL:0, 1.50
; 	TIMES LOCAL:5, 1.50
; ENDIF

; ;媚薬使用中
; IF TCVAR:(ARG:0):媚薬
; 	TIMES LOCAL:0, 2.50
; 	TIMES LOCAL:5, 2.00
; ENDIF

; ;桃源香使用中
; IF TFLAG:桃源香使用中
; 	TIMES LOCAL:0, 1.25
; 	TIMES LOCAL:5, 1.25
; ENDIF

; ;体力0による行動不能
; IF TCVAR:(ARG:0):行動不能フラグ
; 	TIMES LOCAL:0, 0.20
; 	TIMES LOCAL:5, 0.20
; ENDIF

; ;気力0による失神中
; IF TCVAR:(ARG:0):失神フラグ
; 	TIMES LOCAL:0, 0.20
; 	TIMES LOCAL:5, 0.20
; ENDIF

; CUP:(ARG:0):快Ａ += LOCAL:0

; IF HAS_PENIS(ARG:0)
; 	CUP:(ARG:0):射精 += LOCAL:5 / 2
; ENDIF

; IF HAS_VAGINA(ARG:0)
; 	CUP:(ARG:0):潤滑 += LOCAL:5 / 3
; ENDIF

;-------------------------------------------------
;快Ｂのソース
;-------------------------------------------------
@CALC_SOURCE_MASTER3(ARG:0)
CALL CALC_SOURCE3(ARG:0)

; LOCAL:0 = SOURCE:(ARG:0):快Ｂ
; LOCAL:5 = SOURCE:(ARG:0):快Ｂ

; SELECTCASE ABL:(ARG:0):Ｂ感
; 	CASE 0
; 		TIMES LOCAL:0, 0.04
; 		TIMES LOCAL:5, 0.60
; 	CASE 1
; 		TIMES LOCAL:0, 0.20
; 		TIMES LOCAL:5, 0.80
; 	CASE 2
; 		TIMES LOCAL:0, 1.00
; 		TIMES LOCAL:5, 1.00
; 	CASE 3
; 		TIMES LOCAL:0, 2.30
; 		TIMES LOCAL:5, 1.20
; 	CASE 4
; 		TIMES LOCAL:0, 4.00
; 		TIMES LOCAL:5, 1.40
; 	CASEELSE
; 		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):Ｂ感 - 5) * 50 + 550) / 100
; 		LOCAL:5 = LOCAL:5 * ((ABL:(ARG:0):Ｂ感 - 5) * 10 + 160) / 100
; ENDSELECT

; IF TALENT:(ARG:0):Ｂ敏感
; 	TIMES LOCAL:0, 2.00
; 	TIMES LOCAL:5, 1.50
; ENDIF

; IF TALENT:(ARG:0):Ｂ鈍感
; 	TIMES LOCAL:0, 0.50
; 	TIMES LOCAL:5, 0.75
; ENDIF

; IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫乳)
; 	TIMES LOCAL:0, 1.50
; 	TIMES LOCAL:5, 1.50
; ENDIF

; ;媚薬使用中
; IF TCVAR:(ARG:0):媚薬
; 	TIMES LOCAL:0, 2.50
; 	TIMES LOCAL:5, 2.00
; ENDIF

; ;桃源香使用中
; IF TFLAG:桃源香使用中
; 	TIMES LOCAL:0, 1.25
; 	TIMES LOCAL:5, 1.25
; ENDIF

; ;体力0による行動不能
; IF TCVAR:(ARG:0):行動不能フラグ
; 	TIMES LOCAL:0, 0.20
; 	TIMES LOCAL:5, 0.20
; ENDIF

; ;気力0による失神中
; IF TCVAR:(ARG:0):失神フラグ
; 	TIMES LOCAL:0, 0.20
; 	TIMES LOCAL:5, 0.20
; ENDIF

; CUP:(ARG:0):快Ｂ += LOCAL:0

; IF HAS_PENIS(ARG:0)
; 	CUP:(ARG:0):射精 += LOCAL:5 / 5
; ENDIF

; IF HAS_VAGINA(ARG:0)
; 	CUP:(ARG:0):潤滑 += LOCAL:5 / 3
; ENDIF

;-------------------------------------------------
;快Ｍのソース
;-------------------------------------------------
@CALC_SOURCE_MASTER4(ARG:0)
CALL CALC_SOURCE4(ARG:0)
; LOCAL:0 = SOURCE:(ARG:0):快Ｍ
; LOCAL:5 = SOURCE:(ARG:0):快Ｍ

; SELECTCASE ABL:(ARG:0):Ｍ感
; 	CASE 0
; 		TIMES LOCAL:0, 0.04
; 		TIMES LOCAL:5, 0.60
; 	CASE 1
; 		TIMES LOCAL:0, 0.20
; 		TIMES LOCAL:5, 0.80
; 	CASE 2
; 		TIMES LOCAL:0, 1.00
; 		TIMES LOCAL:5, 1.00
; 	CASE 3
; 		TIMES LOCAL:0, 2.30
; 		TIMES LOCAL:5, 1.20
; 	CASE 4
; 		TIMES LOCAL:0, 4.00
; 		TIMES LOCAL:5, 1.40
; 	CASEELSE
; 		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):Ｍ感 - 5) * 50 + 550) / 100
; 		LOCAL:5 = LOCAL:5 * ((ABL:(ARG:0):Ｍ感 - 5) * 10 + 160) / 100
; ENDSELECT

; IF TALENT:(ARG:0):Ｍ敏感
; 	TIMES LOCAL:0, 2.00
; 	TIMES LOCAL:5, 1.50
; ENDIF

; IF TALENT:(ARG:0):Ｍ鈍感
; 	TIMES LOCAL:0, 0.50
; 	TIMES LOCAL:5, 0.75
; ENDIF

; IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_蕩唇)
; 	TIMES LOCAL:0, 1.50
; 	TIMES LOCAL:5, 1.50
; ENDIF

; ;媚薬使用中
; IF TCVAR:(ARG:0):媚薬
; 	TIMES LOCAL:0, 2.50
; 	TIMES LOCAL:5, 2.00
; ENDIF

; ;桃源香使用中
; IF TFLAG:桃源香使用中
; 	TIMES LOCAL:0, 1.25
; 	TIMES LOCAL:5, 1.25
; ENDIF

; ;体力0による行動不能
; IF TCVAR:(ARG:0):行動不能フラグ
; 	TIMES LOCAL:0, 0.20
; 	TIMES LOCAL:5, 0.20
; ENDIF

; ;気力0による失神中
; IF TCVAR:(ARG:0):失神フラグ
; 	TIMES LOCAL:0, 0.20
; 	TIMES LOCAL:5, 0.20
; ENDIF

; CUP:(ARG:0):快Ｍ += LOCAL:0

; IF HAS_PENIS(ARG:0)
; 	CUP:(ARG:0):射精 += LOCAL:5 / 5
; ENDIF

; IF HAS_VAGINA(ARG:0)
; 	CUP:(ARG:0):潤滑 += LOCAL:5 / 3
; ENDIF

;-------------------------------------------------
;快Ｕのソース
;-------------------------------------------------
@CALC_SOURCE_MASTER5(ARG:0)
CALL CALC_SOURCE5(ARG:0)
; LOCAL:0 = SOURCE:(ARG:0):快Ｕ
; LOCAL:5 = SOURCE:(ARG:0):快Ｕ

; SELECTCASE ABL:(ARG:0):Ｕ感
; 	CASE 0
; 		TIMES LOCAL:0, 0.04
; 		TIMES LOCAL:5, 0.60
; 	CASE 1
; 		TIMES LOCAL:0, 0.20
; 		TIMES LOCAL:5, 0.80
; 	CASE 2
; 		TIMES LOCAL:0, 1.00
; 		TIMES LOCAL:5, 1.00
; 	CASE 3
; 		TIMES LOCAL:0, 2.30
; 		TIMES LOCAL:5, 1.20
; 	CASE 4
; 		TIMES LOCAL:0, 4.00
; 		TIMES LOCAL:5, 1.40
; 	CASEELSE
; 		LOCAL:0 = LOCAL:0 * ((ABL:(ARG:0):Ｕ感 - 5) * 50 + 550) / 100
; 		LOCAL:5 = LOCAL:5 * ((ABL:(ARG:0):Ｕ感 - 5) * 10 + 160) / 100
; ENDSELECT

; IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_尿道狂い)
; 	TIMES LOCAL:0, 1.50
; 	TIMES LOCAL:5, 1.50
; ENDIF

; ;媚薬使用中
; IF TCVAR:(ARG:0):媚薬
; 	TIMES LOCAL:0, 2.50
; 	TIMES LOCAL:5, 2.00
; ENDIF

; ;桃源香使用中
; IF TFLAG:桃源香使用中
; 	TIMES LOCAL:0, 1.25
; 	TIMES LOCAL:5, 1.25
; ENDIF

; ;体力0による行動不能
; IF TCVAR:(ARG:0):行動不能フラグ
; 	TIMES LOCAL:0, 0.20
; 	TIMES LOCAL:5, 0.20
; ENDIF

; ;気力0による失神中
; IF TCVAR:(ARG:0):失神フラグ
; 	TIMES LOCAL:0, 0.20
; 	TIMES LOCAL:5, 0.20
; ENDIF

; CUP:(ARG:0):快Ｕ += LOCAL:0

; IF HAS_PENIS(ARG:0)
; 	CUP:(ARG:0):射精 += LOCAL:5 / 5
; ENDIF

; IF HAS_VAGINA(ARG:0)
; 	CUP:(ARG:0):潤滑 += LOCAL:5 / 3
; ENDIF

;-------------------------------------------------
;液体追加のソース
;-------------------------------------------------
@CALC_SOURCE_MASTER40(ARG:0)
CALL CALC_SOURCE40(ARG:0)
;-------------------------------------------------
;酔い追加のソース
;-------------------------------------------------
@CALC_SOURCE_MASTER50(ARG:0)
CALL CALC_SOURCE50(ARG:0)

; LOCAL:0 = SOURCE:(ARG:0):酔い追加

; IF TALENT:(ARG:0):酒豪
; 	TIMES LOCAL:0, 0.8
; ELSEIF TALENT:(ARG:0):下戸
; 	TIMES LOCAL:0, 1.2
; ELSE
; 	IF TALENT:(ARG:0):幼児
; 		TIMES LOCAL:0, 3.00
; 	ELSEIF TALENT:(ARG:0):体格 == 体格_小柄
; 		TIMES LOCAL:0, 1.50
; 	ENDIF
; ENDIF

; CUP:(ARG:0):酔い += LOCAL:0

repo_name: pervysquirrelz/erafl

license: unknown


code:
;SOURCE_CHECKで使用する関数(雑多なもの)

;-------------------------------------------------
;;; NPC間の好感度処理
;-------------------------------------------------
@LOVE_UP_CHECK_ANOTHER(FROM_ID, TO_ID)
; #region 好感度上昇の処理
#DIM FROM_ID
#DIM TO_ID

;;例外
;能力固定フラグが立っているなら処理しない
SIF CFLAG:FROM_ID:能力固定フラグ
    RETURN
;催眠術実行中はダメ
SIF TCVAR:FROM_ID:催眠中 > 0
    RETURN
;凌辱中は変動させない
SIF CFLAG:FROM_ID:凌辱被害者フラグ || CFLAG:TO_ID:凌辱被害者フラグ
    RETURN
;主人公は処理しない
SIF FROM_ID == MASTER || TO_ID == MASTER
    RETURN
;自勢力のキャラクター以外の関係性は保持しない
SIF CFLAG:FROM_ID:所属 != CFLAG:MASTER:所属  || CFLAG:TO_ID:所属 != CFLAG:MASTER:所属
    RETURN

VARI 好感度上昇量
VARI 好感度減少量
VARI 依存度上昇量
VARI 依存度減少量
VARI 従属度上昇量
VARI 従属度減少量
VARI 支配度上昇量
VARI 支配度減少量

CALL LOVE_UP_CHECK_好感度(FROM_ID)
好感度上昇量 = RESULT:0
好感度減少量 = RESULT:1

CALL LOVE_UP_CHECK_依存度(FROM_ID)
依存度上昇量 = RESULT:0
依存度減少量 = RESULT:1

CALL LOVE_UP_CHECK_従属度(FROM_ID)
従属度上昇量 = RESULT:0
従属度減少量 = RESULT:1

CALL LOVE_UP_CHECK_支配度(FROM_ID)
支配度上昇量 = RESULT:0
支配度減少量 = RESULT:1

;●ウフフ中は好感度上昇量が低下
IF FLAG:ウフフフラグ
    TIMES 好感度上昇量, 0.30
ENDIF

;●浮気癖の場合上昇率が低下
IF GETBIT(TALENT:FROM_ID:淫乱系, 素質_淫乱_浮気癖)
    TIMES 好感度上昇量, 0.6
    TIMES 依存度上昇量, 0.6
    TIMES 従属度上昇量, 0.6
    TIMES 支配度上昇量, 0.6
ENDIF

VARI 好感度変化量
VARI 依存度変化量
VARI 従属度変化量
VARI 支配度変化量
;●実際の変動量をセット
好感度変化量 = (好感度上昇量  - 好感度減少量) / 100
依存度変化量 = (依存度上昇量 - 依存度減少量) / 100
従属度変化量 = (従属度上昇量 - 従属度減少量) / 100
支配度変化量 = (支配度上昇量 - 支配度減少量) / 100

;依存度の変動は最低でも-1
依存度変化量 = MAX(依存度変化量, -1)

;主導権に基づく支配度補正
IF FLAG:主導権所有者 == FROM_ID
    SELECTCASE 支配度変化量
        CASE IS < 0
            支配度変化量 += 3
        CASE IS < 15
            支配度変化量 += 2
        CASE IS < 25
            支配度変化量 += 1
    ENDSELECT
ENDIF

;●失神中・離脱中は好感度・依存度・従属度が変動しない
IF TCVAR:FROM_ID:失神フラグ || TCVAR:FROM_ID:離脱フラグ
    好感度変化量 = 0
    依存度変化量 = 0
    従属度変化量 = 0
    支配度変化量 = 0
ENDIF

;最終的な好感度補正
TIMES 好感度変化量, 0.3
TIMES 依存度変化量, 0.3
TIMES 従属度変化量, 0.3
TIMES 支配度変化量, 0.3

;●好感度・依存度・従属度を加算
CALL REL_ADD(FROM_ID, TO_ID, 好感度変化量, 依存度変化量, 従属度変化量, 支配度変化量)

IF 好感度変化量 || 依存度変化量 || 従属度変化量 || 支配度変化量
    ; PRINTFORM 　%ANAME(FROM_ID), 16, LEFT%:
    PRINTFORM (%SNAME(FROM_ID), 12, LEFT% ⇒ %SNAME(TO_ID), 12, LEFT%)
    IF ABS(好感度変化量) > 0
        PRINTFORM 好感度%TOSTR_SIGN(好感度変化量)%{ABS(好感度変化量), 3, RIGHT}(計:{REL_GET_LIKE(FROM_ID, TO_ID), 5})
    ENDIF
    IF ABS(依存度変化量) > 0
        PRINTFORM 依存度%TOSTR_SIGN(依存度変化量)%{ABS(依存度変化量), 3, RIGHT}(計:{REL_GET_DEPENDENCE(FROM_ID, TO_ID), 5})
    ENDIF
    IF ABS(従属度変化量) > 0
        PRINTFORM 従属度%TOSTR_SIGN(従属度変化量)%{ABS(従属度変化量), 3, RIGHT}(計:{REL_GET_SUBORDINATE(FROM_ID, TO_ID), 5})
    ENDIF
    IF ABS(支配度変化量) > 0
        PRINTFORM 支配度%TOSTR_SIGN(支配度変化量)%{ABS(支配度変化量), 3, RIGHT}(計:{REL_GET_DOMINANCE(FROM_ID, TO_ID), 5})
    ENDIF
    PRINTL
ENDIF

;-------------------------------------------------
;;; ●好感度補正値の取得
;-------------------------------------------------
; #region 好感度補正値
@LOVE_UP_CHECK_ANOTHER_好感度補正値(FROM_ID, TO_ID)
#DIM FROM_ID
#DIM TO_ID
VARI 上昇補正
VARI 減少補正
;素質による増減
;上昇補正は上昇成分に掛かる補正
上昇補正 = 100
;減少補正は減少成分に掛かる補正
減少補正 = 100

SIF TALENT:FROM_ID:素直
    上昇補正 += 10
SIF TALENT:FROM_ID:献身的
    上昇補正 += 5
SIF TALENT:TO_ID:天の御遣い
    上昇補正 += 20
SIF TALENT:TO_ID:魅惑
    上昇補正 += 10
SIF TALENT:TO_ID:謎の魅力
    上昇補正 += 10
SIF TALENT:TO_ID:人気
    上昇補正 += 10
SIF TALENT:FROM_ID:幼稚
    上昇補正 += 10
SIF TALENT:FROM_ID:チョロイン
    上昇補正 += 10

SIF TALENT:FROM_ID:反抗的
    減少補正 += 10
SIF TALENT:FROM_ID:生意気
    減少補正 += 10
SIF TALENT:FROM_ID:プライド高い
    減少補正 += 10
SIF TALENT:FROM_ID:男嫌い && IS_MALE(TO_ID)
    減少補正 += 10
SIF TALENT:FROM_ID:女嫌い && IS_FEMALE(TO_ID)
    減少補正 += 10
SIF TALENT:FROM_ID:幼稚
    減少補正 += 10
SIF TALENT:FROM_ID:チョロイン
    減少補正 -= 10

SIF TALENT:FROM_ID:反抗的
    TIMES 上昇補正, 0.90
SIF TALENT:FROM_ID:生意気
    TIMES 上昇補正, 0.90
SIF TALENT:FROM_ID:無関心
    TIMES 上昇補正, 0.90
SIF TALENT:FROM_ID:感情乏しい
    TIMES 上昇補正, 0.90
SIF TALENT:FROM_ID:孤高
    TIMES 上昇補正, 0.90
SIF TALENT:FROM_ID:男嫌い && IS_MALE(TO_ID)
    TIMES 上昇補正, 0.90
SIF TALENT:FROM_ID:女嫌い && IS_FEMALE(TO_ID)
    TIMES 上昇補正, 0.90
; SIF TALENT:FROM_ID:抑圧
; 	上昇補正 = 上昇補正 * (180 - YOKUATSU_RATE(FROM_ID)) / 180
; SIF TALENT:FROM_ID:孤高
; 	上昇補正 = 上昇補正 * (250 - KOKOU_RATE(FROM_ID)) / 250

SIF TALENT:FROM_ID:献身的
    TIMES 減少補正, 0.95
SIF TALENT:FROM_ID:大人しい
    TIMES 減少補正, 0.90
SIF TALENT:TO_ID:魅惑
    TIMES 減少補正, 0.90
SIF TALENT:TO_ID:謎の魅力
    TIMES 減少補正, 0.90
SIF TALENT:TO_ID:人気
    TIMES 減少補正, 0.90
SIF TALENT:FROM_ID:無関心
    TIMES 減少補正, 0.90
SIF TALENT:FROM_ID:感情乏しい
    TIMES 減少補正, 0.90
SIF TALENT:FROM_ID:チョロイン
    TIMES 減少補正, 0.90
; SIF TALENT:FROM_ID:抑圧
; 	減少補正 = 減少補正 * (180 - YOKUATSU_RATE(FROM_ID)) / 180

;素質による補正の最低値を50、最高値を180とする
上昇補正 = LIMIT(上昇補正, 50, 180)
減少補正 = LIMIT(減少補正, 50, 180)

;機嫌に応じた上下
SELECTCASE TOSTR_EMOTION(FROM_ID)
    CASE "幸"
        TIMES 上昇補正, 2.20
        TIMES 減少補正, 0.50
    CASE "悦"
        TIMES 上昇補正, 1.80
        TIMES 減少補正, 0.60
    CASE "良"
        TIMES 上昇補正, 1.30
        TIMES 減少補正, 0.80
    CASE "恨"
        TIMES 上昇補正, 0.30
        TIMES 減少補正, 3.50
    CASE "怒"
        TIMES 上昇補正, 0.60
        TIMES 減少補正, 1.80
    CASE "憤"
        TIMES 上昇補正, 0.85
        TIMES 減少補正, 1.40
    CASE "鬱"
        TIMES 上昇補正, 0.10
        TIMES 減少補正, 1.50
    CASE "悲"
        TIMES 上昇補正, 0.40
        TIMES 減少補正, 1.20
    CASE "憂"
        TIMES 上昇補正, 0.70
        TIMES 減少補正, 1.10
    CASE "狂"
        TIMES 上昇補正, 0.20
        TIMES 減少補正, 2.00
    CASE "恐"
        TIMES 上昇補正, 0.50
        TIMES 減少補正, 1.50
    CASE "怯"
        TIMES 上昇補正, 0.80
        TIMES 減少補正, 1.20
    CASE "壊"
        上昇補正 = 0
        減少補正 = 0
    CASE "虚"
        TIMES 上昇補正, 0.10
        TIMES 減少補正, 0.10
ENDSELECT

RESULT:1 = 減少補正
RETURN 上昇補正
; #endregion


code:
;SOURCE_CHECKで使用する関数(射精・絶頂・噴乳など)

;-------------------------------------------------
;絶頂に関する処理
;-------------------------------------------------
@SOURCE_ORGASM(ARG:0)
VARSET LOCAL, 0

;表示用
LOCALS:0 = Ｃ
LOCALS:1 = Ｖ
LOCALS:2 = Ａ
LOCALS:3 = Ｂ
LOCALS:4 = Ｍ
LOCALS:5 = Ｕ
;射精箇所表示用	;射精箇所表示用
LOCALS:6 =
;●絶頂の判定と表示
LOCAL:5 = 0
LOCAL:6 = 0
LOCAL:10 = 0
;射精関連の処理
LOCAL:15 = 0
FOR LOCAL:0, 0, 6
	LOCAL:2 = PALAM:(ARG:0):(LOCAL:0) + CUP:(ARG:0):(LOCAL:0)

	;絶頂した場合
	IF LOCAL:2 >= 10000
		IF LOCAL:10
			PRINT /
		ELSE
			IF !TFLAG:絶頂フラグ
				TFLAG:絶頂フラグ = 1
				PRINTL
			ENDIF
			PRINTFORM %TR(ANAME(ARG:0)), MAX_CHARANAME_LENGTH, RIGHT%:
		ENDIF
		LOCAL:10 = 1

		;絶頂箇所の数を加算
		LOCAL:5 ++

		;絶頂強度に応じてNOWEXをセットし、メッセージの表示を行う
		IF LOCAL:2 >= 150000
			IF ARG:0 == MASTER
				SETCOLOR 0x800080
			ELSE
				SETCOLOR 0xFF4000
			ENDIF
			NOWEX:(ARG:0):(LOCAL:0) = 9
			PRINTFORM %TR("最強")%
			;最強絶頂箇所の数を加算
			LOCAL:6 ++
		ELSEIF LOCAL:2 >= 80000
			IF ARG:0 == MASTER
				SETCOLOR 0x6000FF
			ELSE
				SETCOLOR カラー_オレンジ
			ENDIF
			NOWEX:(ARG:0):(LOCAL:0) = 4
			PRINTFORM %TR("超強")%
		ELSEIF LOCAL:2 >= 30000
			IF ARG:0 == MASTER
				SETCOLOR 0x0080FF
			ELSE
				SETCOLOR 0xFFC000
			ENDIF
			NOWEX:(ARG:0):(LOCAL:0) = 2
			PRINTFORM %TR("強")%
		ELSE
			IF ARG:0 == MASTER
				SETCOLOR カラー_シアン
			ELSE
				SETCOLOR カラー_注意
			ENDIF
			NOWEX:(ARG:0):(LOCAL:0) = 1
		ENDIF
		PRINTFORM %TR("絶頂",LOCALS:(LOCAL:0))%

		;絶頂経験を増やす
		EXP:(ARG:0):絶頂経験 += NOWEX:(ARG:0):(LOCAL:0)
		SIF TCVAR:(ARG:0):催眠中 > 0
			EXP:(ARG:0):催眠絶頂経験 += NOWEX:(ARG:0):(LOCAL:0)
	ENDIF
NEXT
RESETCOLOR

;●噴乳の判定と表示
LOCAL:2 = PALAM:(ARG:0):噴乳 + CUP:(ARG:0):噴乳

;噴乳した場合
IF LOCAL:2 >= 10000 && SOURCE:(ARG:0):快Ｂ + SOURCE:(ARG:0):快Ｖ + SOURCE:(ARG:0):快Ａ > 0
	IF LOCAL:10
		PRINT /
	ELSE
		IF !TFLAG:絶頂フラグ
			TFLAG:絶頂フラグ = 1
			PRINTL
		ENDIF
		PRINTFORM %TR(ANAME(ARG:0)), MAX_CHARANAME_LENGTH, RIGHT%:
	ENDIF
	LOCAL:10 = 1

	;絶頂強度に応じてNOWEXをセットし、メッセージの表示を行う
	IF LOCAL:2 >= 300000
		IF ARG:0 == MASTER
			SETCOLOR 0x800080
		ELSE
			SETCOLOR 0xFF4000
		ENDIF
		NOWEX:(ARG:0):噴乳 = 9
		PRINTFORM %TR("超々大量")%
	ELSEIF LOCAL:2 >= 150000
		IF ARG:0 == MASTER
			SETCOLOR 0x6000FF
		ELSE
			SETCOLOR カラー_オレンジ
		ENDIF
		NOWEX:(ARG:0):噴乳 = 4
		PRINTFORM %TR("超大量")%
	ELSEIF LOCAL:2 >= 50000
		IF ARG:0 == MASTER
			SETCOLOR 0x0080FF
		ELSE
			SETCOLOR 0xFFC000
		ENDIF
		NOWEX:(ARG:0):噴乳 = 2
		PRINTFORM %TR("大量")%
	ELSE
		IF ARG:0 == MASTER
			SETCOLOR カラー_シアン
		ELSE
			SETCOLOR カラー_注意
		ENDIF
		NOWEX:(ARG:0):噴乳 = 1
	ENDIF
	PRINTFORM %TR("噴乳")%
	RESETCOLOR

	EXP:(ARG:0):噴乳経験値 += NOWEX:(ARG:0):噴乳

	;触手搾乳中なら相手の魔術経験値をプラス
	IF SELECTCOM == 207 && IS_MTAR(ARG:0)
		FOR LOCAL:0, 0, MPLY_NUM
			EXP:(MPLY:(LOCAL:0)):魔術経験値 += NOWEX:(ARG:0):噴乳 * 2
		NEXT
	ELSEIF IS_EQUIP_TARGET(ARG:0, 207)
		LOCAL:1 = SEARCH_EQUIP(207, -1, ARG:0)
		IF LOCAL:1 >= 0
			FOR LOCAL:0, 0, MEQUIP_PLAYER_NUM:(LOCAL:1)
				EXP:(MEQUIP_PLAYER:(LOCAL:1):(LOCAL:0)):魔術経験値 += NOWEX:(ARG:0):噴乳 * 2
			NEXT
		ENDIF
	ENDIF
ENDIF

;●潮吹きの判定と表示
LOCAL:11 = 0
IF CONFIG:9 == 1 && NOWEX:(ARG:0):射精 == 0
	IF (NOWEX:(ARG:0):Ｃ絶頂 >= 2 || NOWEX:(ARG:0):Ｖ絶頂 >= 2) && PALAM:(ARG:0):潮吹き + CUP:(ARG:0):潮吹き >= 10000
		LOCAL:11 = 1
	ELSEIF (NOWEX:(ARG:0):Ｃ絶頂 >= 1 || NOWEX:(ARG:0):Ｖ絶頂 >= 1) && PALAM:(ARG:0):潮吹き + CUP:(ARG:0):潮吹き >= 20000
		LOCAL:11 = 1
	ENDIF
ENDIF

IF LOCAL:11
	IF LOCAL:10
		PRINT /
	ELSE
		IF !TFLAG:絶頂フラグ
			TFLAG:絶頂フラグ = 1
			PRINTL
		ENDIF
		PRINTFORM %TR(ANAME(ARG:0)), MAX_CHARANAME_LENGTH, RIGHT%:
	ENDIF
	LOCAL:10 = 1

	IF ARG:0 == MASTER
		SETCOLOR 0x0080FF
	ELSE
		SETCOLOR 0xFFC000
	ENDIF
	PRINTFORM %TR("潮吹き")%
	RESETCOLOR

	NOWEX:(ARG:0):潮吹き = 1

	SOURCE:(ARG:0):露出 += 100
	IF !HAS_VAGINA(ARG:0)
		SOURCE:(ARG:0):屈従 += 300
	ELSE
		SOURCE:(ARG:0):屈従 += 50
	ENDIF
ENDIF

;●おもらしの判定と表示
;絶頂・尿意限界によるおもらしの設定が有効の場合
IF CONFIG:90 == 1
	;尿意がある状態で絶頂強度の合計が4以上によるおもらし
	IF TCVAR:(ARG:0):尿残量 >= 1500 && SUM_NOWEX(ARG:0, 1, 0) >= 4
		TCVAR:(ARG:0):失禁種類 = 1
		;尿意が高い状態で絶頂することによるおもらし
	ELSEIF TCVAR:(ARG:0):尿残量 >= 3000 && SUM_NOWEX(ARG:0, 1, 0) >= 1
		TCVAR:(ARG:0):失禁種類 = 2
		;尿意の限界によるおもらし
	ELSEIF TCVAR:(ARG:0):尿残量 >= 4000
		TCVAR:(ARG:0):失禁種類 = 3
	ENDIF
ENDIF

IF TCVAR:(ARG:0):失禁種類
	IF LOCAL:10
		PRINT /
	ELSE
		IF !TFLAG:絶頂フラグ
			TFLAG:絶頂フラグ = 1
			PRINTL
		ENDIF
		PRINTFORM %TR(ANAME(ARG:0)), MAX_CHARANAME_LENGTH, RIGHT%:
	ENDIF
	LOCAL:10 = 1

	IF ARG:0 == MASTER
		SETCOLOR カラー_シアン
	ELSE
		SETCOLOR カラー_注意
	ENDIF
	IF TCVAR:(ARG:0):尿残量 >= 3000
		PRINTFORM %TR("大量おもらし")%
		TCVAR:(ARG:0):失禁量 = 2
	ELSE
		PRINTFORM %TR("おもらし")%
		TCVAR:(ARG:0):失禁量 = 1
	ENDIF
	RESETCOLOR

	;尿残量を0にする
	TCVAR:(ARG:0):尿残量 = 0

	;おもらしによる経験・ソースの追加
	EXP:(ARG:0):排泄経験値 += 1
	EXP:(ARG:0):おもらし経験 += TCVAR:(ARG:0):失禁量

	LOCAL:3 = 400

	SELECTCASE ABL:(ARG:0):排泄
		CASE 0
			TIMES LOCAL:3, 0.00
		CASE 1
			TIMES LOCAL:3, 0.10
		CASE 2
			TIMES LOCAL:3, 0.20
		CASE 3
			TIMES LOCAL:3, 0.40
		CASE 4
			TIMES LOCAL:3, 0.70
		CASEELSE
			LOCAL:3 = LOCAL:3 * (100 + (ABL:(ARG:0):排泄 - 5) * 2) / 100
	ENDSELECT

	SOURCE:(ARG:0):露出 += 300
	SOURCE:(ARG:0):逸脱 += 80
	SOURCE:(ARG:0):中毒充足 += LOCAL:3

	;主導権に応じた優越・屈従のソース追加
	CALL ADD_SOURCE_INITIATIVE_U(ARG:0, 20, 80)
ENDIF

;●射精の判定と表示
LOCAL:2 = PALAM:(ARG:0):射精 + CUP:(ARG:0):射精

;射精した場合
IF LOCAL:2 >= 10000 && SOURCE:(ARG:0):快Ｐ + NOWEX:(ARG:0):Ｖ絶頂 + NOWEX:(ARG:0):Ａ絶頂 > 0
	CALL PROCESS_EJACULATION(ARG:0, LOCAL:2, LOCAL:10)
	LOCAL:10 = 1
ENDIF

;●ソースの追加・気力の消耗
LOCAL:30 = 0
LOCAL:31 = 0
FOR LOCAL:0, 0, 8
	LOCAL:2 = 0
	LOCAL:3 = 0
	IF NOWEX:(ARG:0):(LOCAL:0) > 0
		;ソースの追加
		CALL ADD_SOURCE_ORGASM(ARG:0, LOCAL:0)

		;絶頂箇所に応じた基本消耗度の設定
		SELECTCASE LOCAL:0
				;Ｃ絶頂
			CASE 0
				LOCAL:2 = 15000
				LOCAL:3 = 8000
				;Ｖ絶頂
			CASE 1
				LOCAL:2 = 15000
				LOCAL:3 = 10000
				;Ａ絶頂
			CASE 2
				LOCAL:2 = 25000
				LOCAL:3 = 17000
				;Ｂ絶頂
			CASE 3
				LOCAL:2 = 10000
				LOCAL:3 = 8000
				;Ｍ絶頂
			CASE 4
				LOCAL:2 = 15000
				LOCAL:3 = 7000
				;Ｕ絶頂
			CASE 5
				LOCAL:2 = 15000
				LOCAL:3 = 8000
				;射精
			CASE 6
				LOCAL:2 = 15000
				LOCAL:3 = 10000
				;噴乳
			CASE 7
				LOCAL:2 = 20000
				LOCAL:3 = 10000
				;潮吹き
			CASE 8
				LOCAL:2 = 6000
				LOCAL:3 = 6000
		ENDSELECT

		;絶頂強度に基づく補正
		LOCAL:2 *= MAX(NOWEX:(ARG:0):(LOCAL:0) / 3, 1)
		LOCAL:3 *= MAX(NOWEX:(ARG:0):(LOCAL:0) / 3, 1)

		IF LOCAL == GETNUM(EX, "射精")
			;射精による体力・気力の消耗を計算
			;射精Lvによる補正
			SELECTCASE ABL:(ARG:0):射精
				CASE 0
					TIMES LOCAL:2, 1.00
					TIMES LOCAL:3, 1.00
				CASE 1
					TIMES LOCAL:2, 0.95
					TIMES LOCAL:3, 0.80
				CASE 2
					TIMES LOCAL:2, 0.90
					TIMES LOCAL:3, 0.70
				CASE 3
					TIMES LOCAL:2, 0.85
					TIMES LOCAL:3, 0.60
				CASE 4
					TIMES LOCAL:2, 0.80
					TIMES LOCAL:3, 0.50
				CASEELSE
					LOCAL:2 = FTIMES(LOCAL:2, MAX(80 - (ABL:(ARG:0):射精 - 5), 20))
					LOCAL:3 = LOCAL:3 / (MIN(ABL:(ARG:0):射精 - 5, 55) * 2 + 10)
			ENDSELECT
		ELSEIF LOCAL == GETNUM(EX, "噴乳")
			;噴乳による体力・気力の消耗を計算
			;噴乳Lvによる補正
			SELECTCASE ABL:(ARG:0):噴乳
				CASE 0
					TIMES LOCAL:2, 1.00
					TIMES LOCAL:3, 1.00
				CASE 1
					TIMES LOCAL:2, 0.95
					TIMES LOCAL:3, 0.80
				CASE 2
					TIMES LOCAL:2, 0.90
					TIMES LOCAL:3, 0.70
				CASE 3
					TIMES LOCAL:2, 0.85
					TIMES LOCAL:3, 0.60
				CASE 4
					TIMES LOCAL:2, 0.80
					TIMES LOCAL:3, 0.50
				CASEELSE
					LOCAL:2 = FTIMES(LOCAL:2, MAX(80 - (ABL:(ARG:0):噴乳 - 5), 20))
					LOCAL:3 = LOCAL:3 / (MIN(ABL:(ARG:0):噴乳 - 5, 55) * 2 + 10)
			ENDSELECT
			IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_雌牛)
				TIMES LOCAL:2, 0.5
				TIMES LOCAL:3, 0.25
			ENDIF
		ENDIF
		;欲望Lvによる補正
		IF ABL:(ARG:0):欲望 < 5
			LOCAL:2 = LOCAL:2 * (30 - ABL:(ARG:0):欲望) / 30
			LOCAL:3 = LOCAL:3 * (15 - ABL:(ARG:0):欲望) / 15
		ELSE
			LOCAL:2 = LOCAL:2 * (130 - MIN(ABL:(ARG:0):欲望, 30)) / 150
			LOCAL:3 = LOCAL:3 * (45 - MIN(ABL:(ARG:0):欲望, 30)) / 60
		ENDIF
		LOCAL:30 += LOCAL:2
		LOCAL:31 += LOCAL:3
	ENDIF
NEXT

;●同時絶頂ボーナスの設定
LOCAL:7 = 1
IF LOCAL:5 == 6
	LOCAL:7 = 16
ELSEIF LOCAL:5 == 5
	LOCAL:7 = 12
ELSEIF LOCAL:5 == 4
	LOCAL:7 = 8
ELSEIF LOCAL:5 >= 2
	IF LOCAL:5 == 3
		LOCAL:7 = 4
	ELSE
		LOCAL:7 = 2
	ENDIF
ENDIF

FOR LOCAL:0, 0, 100
	;同時絶頂によるボーナスを掛ける(廃止)
	;NOWEX:(ARG:0):(LOCAL:0) *= LOCAL:7

	;絶頂回数を加算
	EX:(ARG:0):(LOCAL:0) += NOWEX:(ARG:0):(LOCAL:0) * LOCAL:7
NEXT

IF LOCAL:5 == 6
	;六重絶頂
	IF LOCAL:6 == 6
		SETCOLOR カラー_警告
		PRINTFORM  %TR("<最 強 六 重 絶 頂>")%
	ELSE
		SETCOLOR 0xFF4000
		PRINTFORM %TR("<六 重 絶 頂>")%
	ENDIF
ELSEIF LOCAL:5 == 5
	;五重絶頂
	IF LOCAL:6 == 5
		SETCOLOR カラー_警告
		PRINTFORM %TR("<最 強 五 重 絶 頂>")%
	ELSE
		SETCOLOR 0xFF4000
		PRINTFORM %TR("<五 重 絶 頂>")%
	ENDIF
ELSEIF LOCAL:5 == 4
	;四重絶頂
	IF LOCAL:6 == 4
		SETCOLOR カラー_オレンジ
		PRINTFORM %TR("<最 強 四 重 絶 頂>")%
	ELSE
		SETCOLOR 0xFFC000
		PRINTFORM %TR("<四 重 絶 頂>")%
	ENDIF
ENDIF
RESETCOLOR

IF LOCAL:10
	;絶頂による体力・気力の消耗
	LOCAL:8 = LOCAL:30 / 200
	LOCAL:9 = LOCAL:31 / 200
	DOWNBASE:(ARG:0):体力 += LOCAL:8
	DOWNBASE:(ARG:0):気力 += LOCAL:9
	;	PRINTFORM  体力-{LOCAL:8} 気力-{LOCAL:9}
ENDIF

SIF BASE:(ARG:0):精神力 > 0 && CFLAG:(ARG:0):崩壊
	CFLAG:(ARG:0):崩壊 = MAX(CFLAG:(ARG:0):崩壊 - SUM_NOWEX(ARG:0) * 5, 0)

IF LOCAL:10
	PRINTL
ENDIF

;-------------------------------------------------
;射精の内部処理
;-------------------------------------------------
@PROCESS_EJACULATION(対象, 強度, スラッシュ)
#DIM 対象
#DIM 射精相手
#DIM 射精先
#DIM 強度
#DIM 射精量
#DIM 補正後射精量
#DIM スラッシュ
#DIMS 出力文字列
#DIMS あふれ文字列
#DIMS 射精先文字列
#DIM 愛情倍率
#DIM 屈従倍率
#DIM 恐怖倍率
#DIM DYNAMIC ROOM_IDX
#DIM DYNAMIC MODULE_IDX

VARSET LOCAL

IF スラッシュ
	PRINT /
ELSE
	IF !TFLAG:絶頂フラグ
		TFLAG:絶頂フラグ = 1
		PRINTL
	ENDIF
	PRINTFORM %ANAME(対象), MAX_CHARANAME_LENGTH, RIGHT%:
ENDIF
出力文字列 =

IF IS_EQUIP_TARGET(対象, 78) && TCVAR:対象:77 == 0
	SETCOLOR カラー_ピンク
	PRINTFORM 射精止め
	RESETCOLOR
	TCVAR:(対象):76 += 強度
	RETURN 0
ENDIF

;絶頂強度に応じてNOWEXをセットし、メッセージの表示を行う
IF 強度 >= 200000 || ((TALENT:(対象):絶倫 || TCVAR:(対象):メイガスの夜) && 強度 >= 80000)
	IF 対象 == MASTER
		SETCOLOR 0x800080
	ELSE
		SETCOLOR 0xFF4000
	ENDIF
	IF !TALENT:対象:絶倫 && !TCVAR:対象:メイガスの夜
		射精量 = 20 + (強度 - 150000) / 20000
	ELSE
		射精量 = 20 + (強度 - 60000) / 10000
	ENDIF
	出力文字列 =  超々大量
ELSEIF 強度 >= 80000 || ((TALENT:(対象):絶倫 || TCVAR:(対象):メイガスの夜) && 強度 >= 40000)
	IF 対象 == MASTER
		SETCOLOR 0x6000FF
	ELSE
		SETCOLOR カラー_オレンジ
	ENDIF
	射精量 = RAND(10, 21)
	出力文字列 = 超大量
ELSEIF 強度 >= 40000 || TALENT:(対象):絶倫 || TCVAR:(対象):メイガスの夜
	IF 対象 == MASTER
		SETCOLOR 0x0080FF
	ELSE
		SETCOLOR 0xFFC000
	ENDIF
	射精量 = RAND(5, 16)
	出力文字列 = 大量
ELSE
	IF 対象 == MASTER
		SETCOLOR カラー_シアン
	ELSE
		SETCOLOR カラー_注意
	ENDIF
	射精量 = RAND(3, 9)
ENDIF

SIF IS_EQUIP_TARGET(対象, GETNUM(TRAINNAME, "玉揉み"))
	射精量 = 射精量 * 3 / 2

IF SOURCE:(対象):快Ｐ == 0 && NOWEX:対象:Ｖ絶頂 + NOWEX:対象:Ａ絶頂 > 0
	出力文字列 = %出力文字列%ところてん
ENDIF
PRINTFORM %出力文字列%射精
RESETCOLOR

;スキルによる補正
CALL LEWDSKILL_CUM_INFLATION(対象, 射精量)
射精量 += RESULT

NOWEX:対象:射精 = 射精量
EXP:(対象):射精経験値 += 射精量 / 3
EXP:(対象):絶頂経験 += 射精量 / 3

;領内活動時にそのエリアと設備で発生した射精量を記録
IF FLAG:ハウジングモード
	ROOM_IDX = C_COND_MAP_GET(対象, "エリアIDX")
	MODULE_IDX = C_COND_MAP_GET(対象, "設備IDX")
	CALL HO_GET_MAPDATA(HO_有効マップID, ROOM_IDX, "射精量")
	IF RESULT != -1
		CALL HO_SET_MAPDATA(ROOM_IDX, "射精量", TOSTR(RESULT + 射精量))
	ELSE
		CALL HO_SET_MAPDATA(ROOM_IDX, "射精量", TOSTR(射精量))
	ENDIF
	IF MODULE_IDX != -1
		CALL HO_GET_MODULE_LIST(MODULE_IDX, "射精量")
		IF RESULT != -1
			CALL HO_SET_MODULE_LIST(MODULE_IDX, "射精量", TOSTR(RESULT + 射精量))
		ELSE
			CALL HO_SET_MODULE_LIST(MODULE_IDX, "射精量", TOSTR(射精量))
		ENDIF
	ENDIF
ENDIF

射精先文字列 =
あふれ文字列 =
VARI 部位あたり射精量
FOR LOCAL:0, 0, STACK_SPERM_CHARA_NUM:対象:0
	部位あたり射精量 = MAX(射精量 / STACK_SPERM_CHARA_NUM:対象:0, 1)
	射精相手 = STACK_SPERM_CHARA_MAP:対象:LOCAL
	射精先 = STACK_SPERM_TO_MAP:対象:LOCAL

	;射精場所に応じた補正を掛けて精愛経験値を加算
	;射精場所に応じたソースを追加(LOCAL:13=愛情倍率、屈従倍率=屈従倍率、恐怖倍率=恐怖倍率)
	愛情倍率 = 20
	屈従倍率 = 20
	恐怖倍率 = 20

	IF !GROUPMATCH(射精先, 射精部位_無駄, 射精部位_触手)
		SELECTCASE ABL:(射精相手):精愛
			CASE 0
				LOCAL:12 = 0
			CASE 1
				LOCAL:12 = 20
			CASE 2
				LOCAL:12 = 50
			CASE 3
				LOCAL:12 = 80
			CASE 4
				LOCAL:12 = 120
			CASEELSE
				LOCAL:12 = MIN(ABL:(射精相手):精愛 * 3 + 150, 2000)
		ENDSELECT
	ENDIF
	SELECTCASE 射精先
			;膣内
		CASE 1
			愛情倍率 = 80
			屈従倍率 = 60
			恐怖倍率 = 200
			IF IS_OVULATION(射精相手)
				TIMES 愛情倍率, 1.5
				TIMES 屈従倍率, 1.5
				TIMES 恐怖倍率, 1.5
				TIMES LOCAL:12, 1.5
			ENDIF
			EXP:射精相手:膣内射精経験 ++
			;アナル
		CASE 2
			愛情倍率 = 40
			屈従倍率 = 120
			恐怖倍率 = 40
			EXP:射精相手:腸内射精経験 ++
		CASE 3
			;口
		CASE 4
			愛情倍率 = 50
			屈従倍率 = 40
			恐怖倍率 = 40
			EXP:射精相手:口内射精経験 ++
			;胸
		CASE 5
			愛情倍率 = 40
			屈従倍率 = 30
			恐怖倍率 = 30
		CASE 6
		CASE 7
			;顔
		CASE 8
			愛情倍率 = 30
			屈従倍率 = 30
			恐怖倍率 = 30
			;髪
		CASE 9
		CASE 10
		CASE 11
			;オナホ
		CASE 12
			;触手
		CASE 13
			;ゴム
		CASE 14
			;その他
		CASEELSE
	ENDSELECT

	;おねだり充足補正
	IF TCVAR:射精相手:精飲おねだりフラグ == 1
		愛情倍率 += 50
		TCVAR:射精相手:精飲おねだりフラグ = 2
	ENDIF

	IF !GROUPMATCH(射精先, 射精部位_無駄, 射精部位_触手)
		;射精量による補正
		SELECTCASE NOWEX:(対象):射精
			CASE 1 TO 3
				TIMES 愛情倍率, 1.00
				TIMES 屈従倍率, 1.00
				TIMES 恐怖倍率, 1.00
			CASE 4 TO 6
				TIMES 愛情倍率, 1.50
				TIMES 屈従倍率, 1.50
				TIMES 恐怖倍率, 1.50
			CASE 7 TO 10
				TIMES 愛情倍率, 2.00
				TIMES 屈従倍率, 2.00
				TIMES 恐怖倍率, 2.00
			CASE IS > 10
				TIMES 愛情倍率, 2.50
				TIMES 屈従倍率, 2.50
				TIMES 恐怖倍率, 2.50
		ENDSELECT
		SIF !GROUPMATCH(射精先, 射精部位_ゴム)
			EXP:(射精相手):精愛経験値 += 部位あたり射精量
	ENDIF

	IF !GROUPMATCH(射精先, 射精部位_無駄, 射精部位_触手)
		;愛情ソースの追加
		CALL ADD_SOURCE_AIZYOU(射精相手, 愛情倍率)
	ENDIF

	;屈従ソースの追加
	CALL ADD_SOURCE_INITIATIVE_U(対象, 0, 屈従倍率)

	補正後射精量 = CUM_AMOUNT_CORRECTION(GET_ID(対象), 射精相手, 射精先, 部位あたり射精量)

	IF !GROUPMATCH(射精先, 射精部位_無駄, 射精部位_触手)
		IF !IS_INITIATIVE(射精相手)
			LOCAL:16 = 100
			IF TALENT:(射精相手):恋慕 || TALENT:(射精相手):服従
				LOCAL:16 = 0
			ELSEIF CFLAG:(射精相手):2 >= 1500
				LOCAL:16 = 30
			ELSEIF CFLAG:(射精相手):2 >= 800
				LOCAL:16 = 60
			ENDIF
			SOURCE:(射精相手):恐怖 += 部位あたり射精量 * 恐怖倍率 * LOCAL:16 / 100
		ENDIF

		SOURCE:(射精相手):中毒充足 += 部位あたり射精量 * LOCAL:12

		;射精箇所が触手なら相手の魔術経験値をプラス
		IF 射精先 == 射精部位_触手
			EXP:(射精相手):魔術経験値 += 部位あたり射精量 * 2
		ENDIF

		;スキル：精飲発情体質持ちなら確率で発情フラグを立てる
		TCVAR:射精相手:精飲発情フラグ = 0
		IF 射精先 == 射精部位_口
			CALL SKILL_GET_LEVEL(射精相手, スキル_大分類_性技, "CUM_ADDICTION")
			IF RESULT
				IF TCVAR:射精相手:精飲おねだりフラグ == 1 && RAND:100 < 50
					TCVAR:射精相手:60 += 1
					TCVAR:射精相手:精飲発情フラグ = 1
				ELSEIF RAND:100 < 30
					TCVAR:射精相手:60 += 1
					TCVAR:射精相手:精飲発情フラグ = 1
				ENDIF
			ENDIF
		ENDIF

		IF 補正後射精量 != CORRECT_CUM_OVERFLOW(射精相手, 射精先, 補正後射精量)
			あふれ文字列=%あふれ文字列%%TOSTR_SPACE(MAX_CHARANAME_LENGTH + 1)%%TR("すでにいっぱいの",ANAME(射精相手),"の",CUM_SLOT_NAME:射精先,"から、",TOSTR(補正後射精量 - CORRECT_CUM_OVERFLOW(射精相手, 射精先, 補正後射精量)),"mlの精液が溢れた……")%
			IF 射精部位_膣内
				;あふれ分の2/3を膨張率に加算する
				WOMB_INFLATION_RATE:射精相手:0 += (((補正後射精量 - CORRECT_CUM_OVERFLOW(射精相手, 射精先, 補正後射精量)) * 2 / 3) * 100) / CALC_WOMB_SIZE(射精相手)
				補正後射精量 = CORRECT_CUM_OVERFLOW(射精相手, 射精先, 補正後射精量)
			ENDIF
		ENDIF
	ENDIF

	;体内に対する射精か見る。コンドームの場合INJECTIONさせない
	IF !IS_EQUIP_PLAYER(対象, 75)
		CALL RECORD_CREAMPIE(射精相手, GET_ID(対象), 補正後射精量, 射精先)
	ENDIF

	CUM_TO_COUNT:(対象):(射精先) ++
	CUM_TO_AMOUNT:(対象):(射精先) += 補正後射精量

	射精先文字列=%射精先文字列%(%CUM_SLOT_NAME:射精先%

	CUM_GET_AMOUNT:(射精相手):(射精先) += 補正後射精量
	CUM_GET_COUNT:(射精相手):射精先 ++
	CUM_CUR_AMOUNT:(射精相手):(射精先) += 補正後射精量
	射精先文字列=%射精先文字列%:{補正後射精量}ml
	IF !GROUPMATCH(射精先, 射精部位_無駄, 射精部位_ゴム, 射精部位_触手)
		射精先文字列=%射精先文字列%:%ANAME(射精相手)%
	ENDIF
	射精先文字列=%射精先文字列%)
NEXT
SIF 射精先文字列 != ""
	PRINTFORM %射精先文字列%
IF あふれ文字列 != ""
	PRINTL
	PRINTFORM %SUBSTRING(あふれ文字列, 0, STRLENS(あふれ文字列) - 1)%
ENDIF

;-------------------------------------------------
;DESC  :口内射精、膣内射精等であふれる場合、入るだけの量に補正する
;-------------------------------------------------
@CORRECT_CUM_OVERFLOW(対象, 射精先, 射精量)
#FUNCTION
#DIM 対象
#DIM 射精先
#DIM 射精量
#DIM 精液量

SIF !GROUPMATCH(射精先, 射精部位_口, 射精部位_アナル, 射精部位_膣内)
	RETURNF 射精量

精液量 = 0
SELECTCASE 射精先
	CASE 射精部位_膣内
		精液量 = SUM_WOMB_SPERM_AMOUNT(対象)
		IF 精液量 >= CALC_WOMB_SIZE(対象)
			RETURNF 0
		ELSEIF 精液量 + 射精量 >= CALC_WOMB_SIZE(対象)
			RETURNF CALC_WOMB_SIZE(対象) - 精液量
		ELSE
			RETURNF 射精量
		ENDIF
	CASE 射精部位_口
		精液量 = SUM_STOMACH_SPERM_AMOUNT(対象)
		IF 精液量 >= CALC_STOMACH_SIZE(対象)
			RETURNF 0
		ELSEIF 精液量 + 射精量 >= CALC_STOMACH_SIZE(対象)
			RETURNF CALC_STOMACH_SIZE(対象) - 精液量
		ELSE
			RETURNF 射精量
		ENDIF
	CASE 射精部位_アナル
		精液量 = SUM_ANUS_SPERM_AMOUNT(対象)
		IF 精液量 >= CALC_ANUS_SIZE(対象)
			RETURNF 0
		ELSEIF 精液量 + 射精量 >= CALC_ANUS_SIZE(対象)
			RETURNF CALC_ANUS_SIZE(対象) - 精液量
		ELSE
			RETURNF 射精量
		ENDIF
ENDSELECT

RETURNF 射精量

;-------------------------------------------------
;DESC  :射精量の補正
;-------------------------------------------------
@CUM_AMOUNT_CORRECTION(精液ID, 射精相手, 射精先, 射精量)
#FUNCTION
#DIM 精液ID
#DIM 射精者
#DIM 射精相手
#DIM 射精先
#DIM 射精量

射精者 = ID_TO_CHARA(精液ID)

IF 射精者 >= 0
	SIF GETBIT(TALENT:射精者:淫乱系, 素質_淫乱_射精狂い)
		射精量 += RAND(5, 16)

	SIF GETBIT(TALENT:射精者:淫乱系, 素質_淫乱_濃厚精液)
		射精量 += RAND(5, 16)
ENDIF

;危険日なら倍
SIF 射精相手 >= 0 && IS_OVULATION(射精相手) && 射精先 == 射精部位_膣内
	射精量 *= 2

SIF 射精者 >= 0
	精液ID = TO_MOB_SPERM_ID(射精者)

;対象が動物の場合、IDを変換
IF 射精者 >= 0 && IS_ANIMAL(射精者)
	SELECTCASE TALENT:射精者:動物
		CASE 動物_犬
			IF CSTR:射精者:モブ識別子 == "ワーグ"
				精液ID = GET_SPERM_ID("ワーグ")
			ELSE
				精液ID = GET_SPERM_ID("犬")
			ENDIF
		CASE 動物_豚
			精液ID = GET_SPERM_ID("豚")
		CASE 動物_馬
			精液ID = GET_SPERM_ID("馬")
		CASE 動物_猿
			精液ID = GET_SPERM_ID("猿")
	ENDSELECT
ENDIF

;対象の精液が触手、動物の場合、クソ多くする
SIF IS_ANIMAL_SPERM(精液ID) || 精液ID == GET_SPERM_ID("触手")
	射精量 += RAND(500, 1501)

RETURNF 射精量

;-------------------------------------------------
;中出し量の記録(妊娠判定用) ※引数に注意
;ARG:0=中出しされたキャラの「キャラ番号」
;ARG:1=中出ししたキャラの「ID」
;ARG:2=精液量
;ARG:3=射精部位
;-------------------------------------------------
@RECORD_CREAMPIE(ARG:0, ARG:1, ARG:2, ARG:3=射精部位_膣内)

SIF !GROUPMATCH(ARG:3, 射精部位_膣内, 射精部位_アナル, 射精部位_口)
	RETURN 0

ARG:2 = CORRECT_CUM_OVERFLOW(ARG:0, ARG:3, ARG:2)

SIF ARG:2 == 0
	RETURN 0

LOCAL:1 = ID_TO_CHARA(ARG:1)

;対象が動物の場合、IDを変換
IF LOCAL:1 >= 0 && IS_ANIMAL(LOCAL:1)
	SELECTCASE TALENT:(LOCAL:1):動物
		CASE 動物_犬
			IF CSTR:(LOCAL:1):モブ識別子 == "ワーグ"
				ARG:1 = GET_SPERM_ID("ワーグ")
			ELSE
				ARG:1 = GET_SPERM_ID("犬")
			ENDIF
		CASE 動物_豚
			ARG:1 = GET_SPERM_ID("豚")
		CASE 動物_馬
			ARG:1 = GET_SPERM_ID("馬")
		CASE 動物_猿
			ARG:1 = GET_SPERM_ID("猿")
	ENDSELECT
ENDIF

;モブの場合、精液IDを変換
SIF LOCAL:1 >= 0
	ARG:1 = TO_MOB_SPERM_ID(LOCAL:1)

;性的嗜好経験値を加算
;危険日なら倍
SIF ARG:3 == 射精部位_膣内
	SEXUAL_PREFERENCE_EXP:(ARG:0):性的嗜好_妊娠したい += IS_OVULATION(ARG:0) + 1

SELECTCASE ARG:3
	CASE 射精部位_膣内
		;既にキャラがリストに存在すれば精液量を追加
		FOR LOCAL:0, 0, WOMB_RECORD_MAX
			IF WOMB_SPERM_ID:(ARG:0):(LOCAL:0) == ARG:1
				WOMB_SPERM_AMOUNT:(ARG:0):(LOCAL:0) += ARG:2
				WOMB_SPERM_COUNT:(ARG:0):(LOCAL:0) ++
				WOMB_SPERM_TIME:(ARG:0):(LOCAL:0) = 0
				WOMB_TOTAL_CREAMPIED_AMOUNT:(ARG:0):0 += ARG:2
				RETURN ARG:2
			ENDIF
		NEXT
		;キャラがリストに載っていなければ新たに追加
		FOR LOCAL:0, 0, WOMB_RECORD_MAX
			IF WOMB_SPERM_ID:(ARG:0):(LOCAL:0) == 0
				;中出ししたキャラのIDと精液量を記録
				WOMB_SPERM_ID:(ARG:0):(LOCAL:0) = ARG:1
				WOMB_SPERM_AMOUNT:(ARG:0):(LOCAL:0) = ARG:2
				WOMB_SPERM_COUNT:(ARG:0):(LOCAL:0) ++
				WOMB_SPERM_TIME:(ARG:0):(LOCAL:0) = 0
				WOMB_TOTAL_CREAMPIED_AMOUNT:(ARG:0):0 += ARG:2
				RETURN ARG:2
			ENDIF
		NEXT
	CASE 射精部位_口
		;既にキャラがリストに存在すれば精液量を追加
		FOR LOCAL:0, 0, WOMB_RECORD_MAX
			IF STOMACH_SPERM_ID:(ARG:0):(LOCAL:0) == ARG:1
				STOMACH_SPERM_AMOUNT:(ARG:0):(LOCAL:0) += ARG:2
				STOMACH_SPERM_COUNT:(ARG:0):(LOCAL:0) ++
				STOMACH_SPERM_TIME:(ARG:0):(LOCAL:0) = 0
				STOMACH_TOTAL_CREAMPIED_AMOUNT:(ARG:0):0 += ARG:2
				RETURN ARG:2
			ENDIF
		NEXT
		;キャラがリストに載っていなければ新たに追加
		FOR LOCAL:0, 0, WOMB_RECORD_MAX
			IF STOMACH_SPERM_ID:(ARG:0):(LOCAL:0) == 0
				;中出ししたキャラのIDと精液量を記録
				STOMACH_SPERM_ID:(ARG:0):(LOCAL:0) = ARG:1
				STOMACH_SPERM_AMOUNT:(ARG:0):(LOCAL:0) = ARG:2
				STOMACH_SPERM_COUNT:(ARG:0):(LOCAL:0) ++
				STOMACH_SPERM_TIME:(ARG:0):(LOCAL:0) = 0
				STOMACH_TOTAL_CREAMPIED_AMOUNT:(ARG:0):0 += ARG:2
				RETURN ARG:2
			ENDIF
		NEXT
	CASE 射精部位_アナル
		;既にキャラがリストに存在すれば精液量を追加
		FOR LOCAL:0, 0, WOMB_RECORD_MAX
			IF ANUS_SPERM_ID:(ARG:0):(LOCAL:0) == ARG:1
				ANUS_SPERM_AMOUNT:(ARG:0):(LOCAL:0) += ARG:2
				ANUS_SPERM_COUNT:(ARG:0):(LOCAL:0) ++
				ANUS_SPERM_TIME:(ARG:0):(LOCAL:0) = 0
				ANUS_TOTAL_CREAMPIED_AMOUNT:(ARG:0):0 += ARG:2
				RETURN ARG:2
			ENDIF
		NEXT
		;キャラがリストに載っていなければ新たに追加
		FOR LOCAL:0, 0, WOMB_RECORD_MAX
			IF ANUS_SPERM_ID:(ARG:0):(LOCAL:0) == 0
				;中出ししたキャラのIDと精液量を記録
				ANUS_SPERM_ID:(ARG:0):(LOCAL:0) = ARG:1
				ANUS_SPERM_AMOUNT:(ARG:0):(LOCAL:0) = ARG:2
				ANUS_SPERM_COUNT:(ARG:0):(LOCAL:0) ++
				ANUS_SPERM_TIME:(ARG:0):(LOCAL:0) = 0
				ANUS_TOTAL_CREAMPIED_AMOUNT:(ARG:0):0 += ARG:2
				RETURN ARG:2
			ENDIF
		NEXT
ENDSELECT

RETURN 1

;-------------------------------------------------
;授乳量の記録 ※引数に注意
;ARG:0=授乳したキャラの「キャラ番号」
;ARG:1=授乳先のキャラの「ID」
;ARG:2=授乳量
;-------------------------------------------------
@RECORD_BREAST_FEED(CHARA_ID, CHARA_UID, AMOUNT)
#DIM CHARA_ID
#DIM CHARA_UID
#DIM AMOUNT

;既にキャラがリストに存在すれば母乳量を追加
FOR LOCAL, 0, WOMB_RECORD_MAX
	IF BREAST_FEED_ID:CHARA_ID:LOCAL == CHARA_UID
		BREAST_FEED_AMOUNT:CHARA_ID:LOCAL += AMOUNT
		RETURN AMOUNT
	ENDIF
NEXT
;キャラがリストに存在しない場合IDと精液量を新たに記録
FOR LOCAL, 0, WOMB_RECORD_MAX
	IF BREAST_FEED_ID:CHARA_ID:LOCAL == 0
		BREAST_FEED_ID:CHARA_ID:LOCAL = CHARA_UID
		BREAST_FEED_AMOUNT:CHARA_ID:LOCAL += AMOUNT
		RETURN AMOUNT
	ENDIF
NEXT

RETURN 0

;授乳量記録の削除
@CLEAR_BREAST_FEED(CHARA_ID)
#DIM CHARA_ID
FOR LOCAL, 0, WOMB_RECORD_MAX
	BREAST_FEED_ID:CHARA_ID:LOCAL = 0
	BREAST_FEED_AMOUNT:CHARA_ID:LOCAL = 0
NEXT

;-------------------------------------------------
;絶頂した／させたときのソースの追加処理  ARG:0=絶頂したキャラの番号、ARG:1=絶頂箇所
;-------------------------------------------------
@ADD_SOURCE_ORGASM(ARG:0, ARG:1)
VARSET LOCAL, 0

SELECTCASE NOWEX:(ARG:0):(ARG:1)
	CASE 1
		LOCAL:2 = 100
	CASE 2
		LOCAL:2 = 150
	CASE 4
		LOCAL:2 = 200
	CASE 9
		LOCAL:2 = 250
ENDSELECT

;●絶頂したキャラへのソースの追加
SELECTCASE ARG:1
		;Ｃ絶頂
	CASE 0
		SOURCE:(ARG:0):露出 += LOCAL:2 * 200 / 100
		SOURCE:(ARG:0):屈従 += LOCAL:2 * 50 / 100
		LOCAL:3 = LOCAL:2 * 100 / 100 + 100
		LOCAL:4 = LOCAL:2 * 60 / 100
		IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫核)
			SOURCE:(ARG:0):中毒充足 += LOCAL:2 * 1000 / 100
		ENDIF
		;Ｖ絶頂
	CASE 1
		SOURCE:(ARG:0):愛情 += LOCAL:2 * 100 / 100
		SOURCE:(ARG:0):露出 += LOCAL:2 * 300 / 100
		SOURCE:(ARG:0):屈従 += LOCAL:2 * 150 / 100
		SOURCE:(ARG:0):欲情追加 += LOCAL:2 * 1000 / 100
		LOCAL:3 = LOCAL:2 * 100 / 100 + 100
		LOCAL:4 = LOCAL:2 * 100 / 100
		IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫壷)
			SOURCE:(ARG:0):中毒充足 += LOCAL:2 * 1000 / 100
		ENDIF
		;Ａ絶頂
	CASE 2
		SOURCE:(ARG:0):露出 += LOCAL:2 * 500 / 100
		SOURCE:(ARG:0):欲情追加 += LOCAL:2 * 1000 / 100
		LOCAL:3 = LOCAL:2 * 100 / 100 + 100
		LOCAL:4 = LOCAL:2 * 160 / 100
		IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_尻穴狂い)
			SOURCE:(ARG:0):中毒充足 += LOCAL:2 * 1000 / 100
		ENDIF
		;Ｂ絶頂
	CASE 3
		SOURCE:(ARG:0):露出 += LOCAL:2 * 200 / 100
		SOURCE:(ARG:0):屈従 += LOCAL:2 * 80 / 100
		LOCAL:3 = LOCAL:2 * 100 / 100 + 100
		LOCAL:4 = LOCAL:2 * 60 / 100
		IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_淫乳)
			SOURCE:(ARG:0):中毒充足 += LOCAL:2 * 1000 / 100
		ENDIF
		;Ｍ絶頂
	CASE 4
		SOURCE:(ARG:0):愛情 += LOCAL:2 * 100 / 100
		SOURCE:(ARG:0):屈従 += LOCAL:2 * 50 / 100
		LOCAL:3 = LOCAL:2 * 100 / 100 + 100
		LOCAL:4 = LOCAL:2 * 60 / 100
		IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_蕩唇)
			SOURCE:(ARG:0):中毒充足 += LOCAL:2 * 1000 / 100
		ENDIF
		;Ｕ絶頂
	CASE 5
		SOURCE:(ARG:0):露出 += LOCAL:2 * 500 / 100
		SOURCE:(ARG:0):欲情追加 += LOCAL:2 * 1000 / 100
		LOCAL:3 = LOCAL:2 * 100 / 100 + 100
		LOCAL:4 = LOCAL:2 * 160 / 100
		IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_尿道狂い)
			SOURCE:(ARG:0):中毒充足 += LOCAL:2 * 1000 / 100
		ENDIF
		;射精
	CASE 6
		SOURCE:(ARG:0):露出 += LOCAL:2 * 400 / 100
		LOCAL:3 = LOCAL:2 * 200 / 100 + 200
		LOCAL:4 = LOCAL:2 * 80 / 100
		IF GETBIT(TALENT:(ARG:0):淫乱系, 素質_淫乱_射精狂い)
			SOURCE:(ARG:0):中毒充足 += LOCAL:2 * 1000 / 100
		ENDIF

		FOR LOCAL:0, 0, STACK_SPERM_CHARA_NUM:(ARG:0):0
			;膣内射精の場合(コンドームつけてたらだめ）
			LOCAL:6 = STACK_SPERM_CHARA_MAP:(ARG:0):LOCAL
			IF LOCAL:6 >= 0 && STACK_SPERM_TO_MAP:(ARG:0):LOCAL == 射精部位_膣内 && !IS_EQUIP_PLAYER(LOCAL:6, 75)
				;獣変化中
				IF TALENT:(ARG:0):動物耳 || TALENT:(ARG:0):しっぽ
					SOURCE:(ARG:0):歓喜 += 3000
					;地の文表示用のフラグを立てる
					TCVAR:(ARG:0):獣変化中 = 1
				ENDIF
				;媚薬
				IF TCVAR:(LOCAL:6):媚薬
					SOURCE:(LOCAL:6):歓喜 += 700
				ENDIF
				;麻薬
				IF TCVAR:(LOCAL:6):麻薬 == 1
					SOURCE:(LOCAL:6):歓喜 += 1000
				ENDIF
				;受精中毒
				IF GETBIT(TALENT:(LOCAL:6):淫乱系, 素質_淫乱_孕みたがり)
					SOURCE:(LOCAL:6):歓喜 += 1000
				ENDIF
				;良質母胎
				IF GETBIT(TALENT:(LOCAL:6):淫乱系, 素質_淫乱_良質母胎)
					SOURCE:(LOCAL:6):歓喜 += 1000
				ENDIF
				;桃源香
				IF TFLAG:桃源香使用中 == 1
					SOURCE:(LOCAL:6):歓喜 += 300
				ENDIF
				;中出しした相手が獣変化中
				IF TALENT:(LOCAL:6):動物耳 || TALENT:(LOCAL:6):しっぽ
					SOURCE:(LOCAL:6):歓喜 += 3000
					;地の文表示用のフラグを立てる
					TCVAR:(ARG:0):中出しした相手が獣変化中 = 1
				ENDIF
			ENDIF
			BREAK
		NEXT
		;噴乳
	CASE 7
		SOURCE:(ARG:0):露出 += LOCAL:2 * 300 / 100
		LOCAL:3 = LOCAL:2 * 50 / 100 + 50
		LOCAL:4 = LOCAL:2 * 80 / 100
ENDSELECT

;主導権に応じて優越・屈従のソースを追加
CALL ADD_SOURCE_INITIATIVE_U(ARG:0, LOCAL:3, LOCAL:4)

;●絶頂させたキャラへのソースの追加
IF IS_MTAR(ARG:0)
	LOCAL:10 = 0
ELSEIF IS_MPLY(ARG:0)
	LOCAL:10 = 1
ELSE
	;プレイヤーでもターゲットでもないなら戻る(絶頂させた相手がいない)
	RETURN
ENDIF

FOR LOCAL:0, 0, CHARANUM
	IF IS_PARTICIPATE_TRAIN(LOCAL:0) && LOCAL:0 != ARG:0 && ((LOCAL:10 == 0 && IS_MPLY(LOCAL:0)) || (LOCAL:10 == 1 && IS_MTAR(LOCAL:0)))
		SELECTCASE ARG:1
				;Ｃ絶頂
			CASE 0
				LOCAL:3 = LOCAL:2 * 120 / 100
				LOCAL:4 = LOCAL:2 * 30 / 100 + 30
				;Ｖ絶頂
			CASE 1
				LOCAL:3 = LOCAL:2 * 200 / 100
				LOCAL:4 = LOCAL:2 * 30 / 100 + 30
				;Ａ絶頂
			CASE 2
				LOCAL:3 = LOCAL:2 * 320 / 100
				LOCAL:4 = LOCAL:2 * 30 / 100 + 30
				;Ｂ絶頂
			CASE 3
				LOCAL:3 = LOCAL:2 * 120 / 100
				LOCAL:4 = LOCAL:2 * 30 / 100 + 30
				;Ｍ絶頂
			CASE 4
				LOCAL:3 = LOCAL:2 * 120 / 100
				LOCAL:4 = LOCAL:2 * 30 / 100 + 30
				;Ｕ絶頂
			CASE 5
				LOCAL:3 = LOCAL:2 * 120 / 100
				LOCAL:4 = LOCAL:2 * 30 / 100 + 30
				;射精
			CASE 6
				LOCAL:3 = LOCAL:2 * 160 / 100
				LOCAL:4 = LOCAL:2 * 30 / 100 + 30
				;噴乳
			CASE 7
				LOCAL:3 = LOCAL:2 * 160 / 100
				LOCAL:4 = LOCAL:2 * 15 / 100 + 15
				;潮吹き
			CASE 8
				LOCAL:3 = LOCAL:2 * 350 / 100
				LOCAL:4 = LOCAL:2 * 15 / 100 + 15
		ENDSELECT

		SELECTCASE ABL:(LOCAL:0):奉仕
			CASE 0
				TIMES LOCAL:3, 0.50
			CASE 1
				SOURCE:(LOCAL:0):中毒充足 += LOCAL:2 * 40 / 100
				TIMES LOCAL:3, 0.80
			CASE 2
				SOURCE:(LOCAL:0):中毒充足 += LOCAL:2 * 80 / 100
				TIMES LOCAL:3, 1.00
			CASE 3
				SOURCE:(LOCAL:0):中毒充足 += LOCAL:2 * 120 / 100
				TIMES LOCAL:3, 1.10
			CASE 4
				SOURCE:(LOCAL:0):中毒充足 += LOCAL:2 * 160 / 100
				TIMES LOCAL:3, 1.20
			CASEELSE
				SOURCE:(LOCAL:0):中毒充足 += LOCAL:2 * MIN(ABL:(LOCAL:0):奉仕 * 2 + 200, 2000) / 100
				LOCAL:3 = LOCAL:3 * MIN(ABL:(LOCAL:0):奉仕 + 120, 500) / 100
		ENDSELECT

		;主導権に応じて優越・屈従のソースを追加
		CALL ADD_SOURCE_INITIATIVE_U(ARG:0, LOCAL:3, LOCAL:4)

		IF ARG:0 == MASTER
			;主人公を絶頂させた場合、愛情のソースを追加
			CALL ADD_SOURCE_AIZYOU(LOCAL:0, LOCAL:2 * 80 / 100)
		ENDIF

		;絶頂強度に応じて欲望経験値を加算
		EXP:(LOCAL:0):欲望経験値 += NOWEX:(ARG:0):(ARG:1)
	ENDIF
NEXT