code:
;각 ABL의 상승에 필요한 주나 경험의 수를 돌려준다

@JUEL_DEMAND(ARG, ARG:1, ARG:2, ARG:3)
#FUNCTION
IF ARG == 0
	RETURNF JUEL_DEMAND_0(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 1
	RETURNF JUEL_DEMAND_1(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 2
	RETURNF JUEL_DEMAND_2(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 3
	RETURNF JUEL_DEMAND_3(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 4
	RETURNF JUEL_DEMAND_4(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 9
	RETURNF JUEL_DEMAND_9(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 10
	RETURNF JUEL_DEMAND_10(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 11
	RETURNF JUEL_DEMAND_11(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 12
	RETURNF JUEL_DEMAND_12(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 13
	RETURNF JUEL_DEMAND_13(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 14
	RETURNF JUEL_DEMAND_14(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 15
	RETURNF JUEL_DEMAND_15(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 16
	RETURNF JUEL_DEMAND_16(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 17
	RETURNF JUEL_DEMAND_17(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 18
	RETURNF JUEL_DEMAND_18(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 30
	RETURNF JUEL_DEMAND_30(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 31
	RETURNF JUEL_DEMAND_31(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 32
	RETURNF JUEL_DEMAND_32(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 33
	RETURNF JUEL_DEMAND_33(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 34
	RETURNF JUEL_DEMAND_34(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 35
	RETURNF JUEL_DEMAND_35(ARG:1, ARG:2, ARG:3)
ENDIF

@EXP_DEMAND(ARG, ARG:1, ARG:2, ARG:3)
#FUNCTION
IF ARG == 0
	RETURNF EXP_DEMAND_0(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 1
	RETURNF EXP_DEMAND_1(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 2
	RETURNF EXP_DEMAND_2(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 3
	RETURNF EXP_DEMAND_3(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 9
	RETURNF EXP_DEMAND_9(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 10
	RETURNF EXP_DEMAND_10(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 11
	RETURNF EXP_DEMAND_11(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 12
	RETURNF EXP_DEMAND_12(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 13
	RETURNF EXP_DEMAND_13(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 14
	RETURNF EXP_DEMAND_14(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 15
	RETURNF EXP_DEMAND_15(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 16
	RETURNF EXP_DEMAND_16(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 17
	RETURNF EXP_DEMAND_17(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 18
	RETURNF EXP_DEMAND_18(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 30
	RETURNF EXP_DEMAND_30(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 31
	RETURNF EXP_DEMAND_31(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 32
	RETURNF EXP_DEMAND_32(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 33
	RETURNF EXP_DEMAND_33(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 34
	RETURNF EXP_DEMAND_34(ARG:1, ARG:2, ARG:3)
ELSEIF ARG == 35
	RETURNF EXP_DEMAND_35(ARG:1, ARG:2, ARG:3)
ENDIF

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;C감각
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;내친 김에 패턴의 인식이나 필요한 ABL등의 처리
;--------------------------------------------------
@JUEL_DEMAND_0(ARG, ARG:1, ARG:2)
#FUNCTION
SIF ARG > 0
	RETURNF -1
VARSET LOCAL
SELECTCASE ABL:(ARG:2):C감각
	CASE 0
		LOCAL:0 = 1
	CASE 1
		LOCAL:0 = 20
	CASE 2
		LOCAL:0 = 400
	CASE 3
		LOCAL:0 = 5000
	CASE 4
		LOCAL:0 = 15000
	CASE 5
		LOCAL:0 = 30000
	CASE 6
		LOCAL:0 = 40000
	CASE 7
		LOCAL:0 = 50000
	CASE 8
		LOCAL:0 = 60000
	CASE 9
		LOCAL:0 = 70000
	CASEELSE
		LOCAL:0 = 20000 * (ABL:(ARG:2):C감각 - 6)
ENDSELECT
;경험 보정
LOCAL:0 = LOCAL:0 * 10 / (5 + GETEXPLV(EXP:(ARG:2):C경험, 8))
LOCAL:0 = LOCAL:0 * (1 + ABL:(ARG:2):C감각) / (1 + GETEXPLV(EXP:(ARG:2):C절정경험, 8))
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:0 , 2.00
	ELSE
		TIMES LOCAL:0 , 0.50
	ENDIF
ENDIF

SIF ARG:2 == MASTER
	LOCAL:0 *= (ABL:(ARG:2):C감각 + 1)

RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@EXP_DEMAND_0(ARG, ARG:1, ARG:2)
#FUNCTION
RETURNF 0

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;V감각
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_1(ARG, ARG:1, ARG:2)
#FUNCTION
SIF ARG > 0
	RETURNF -1
VARSET LOCAL
SELECTCASE ABL:(ARG:2):V감각
	CASE 0
		LOCAL:1 = 1
	CASE 1
		LOCAL:1 = 20
	CASE 2
		LOCAL:1 = 400
	CASE 3
		LOCAL:1 = 5000
	CASE 4
		LOCAL:1 = 15000
	CASE 5
		LOCAL:1 = 30000
	CASE 6
		LOCAL:1 = 40000
	CASE 7
		LOCAL:1 = 50000
	CASE 8
		LOCAL:1 = 60000
	CASE 9
		LOCAL:1 = 70000
	CASEELSE
		LOCAL:1 = 20000 * (ABL:(ARG:2):V감각 - 6)
ENDSELECT
IF EXP:(ARG:2):V확장경험 > 50
	TIMES LOCAL:1 , 0.50
ELSEIF EXP:(ARG:2):V확장경험 > 40
	TIMES LOCAL:1 , 0.60
ELSEIF EXP:(ARG:2):V확장경험 > 30
	TIMES LOCAL:1 , 0.70
ELSEIF EXP:(ARG:2):V확장경험 > 20
	TIMES LOCAL:1 , 0.80
ELSEIF EXP:(ARG:2):V확장경험 > 10
	TIMES LOCAL:1 , 0.90
ELSEIF EXP:(ARG:2):V확장경험
	TIMES LOCAL:1 , 0.95
ENDIF
IF ARG:2 != MASTER
	LOCAL:1 = LOCAL:1 * 10 / (5 + GETEXPLV(EXP:(ARG:2):V경험, 8))
	LOCAL:1 = LOCAL:1 * (1 + ABL:(ARG:2):V감각) / (1 + GETEXPLV(EXP:(ARG:2):V절정경험, 8))
ENDIF
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:1 , 2.00
	ELSE
		TIMES LOCAL:1 , 0.50
	ENDIF
ENDIF

SIF ARG:2 == MASTER
	LOCAL:1 *= (ABL:(ARG:2):V감각 + 1)

RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@EXP_DEMAND_1(ARG, ARG:1, ARG:2)
#FUNCTION
VARSET LOCAL
SIF ABL:(ARG:2):V감각 > 2
	LOCAL:1 = 1
RETURNF LOCAL:(ARG:1)

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;A감각
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_2(ARG, ARG:1, ARG:2)
#FUNCTION
SIF ARG > 0
	RETURNF -1
VARSET LOCAL
SELECTCASE ABL:(ARG:2):A감각
	CASE 0
		LOCAL:2 = 1
	CASE 1
		LOCAL:2 = 50
	CASE 2
		LOCAL:2 = 400
	CASE 3
		LOCAL:2 = 5000
	CASE 4
		LOCAL:2 = 15000
	CASE 5
		LOCAL:2 = 30000
	CASE 6
		LOCAL:2 = 40000
	CASE 7
		LOCAL:2 = 50000
	CASE 8
		LOCAL:2 = 60000
	CASE 9
		LOCAL:2 = 70000
	CASEELSE
		LOCAL:2 = 20000 * (ABL:(ARG:2):A감각 - 6)
ENDSELECT
IF EXP:(ARG:2):A확장경험 > 50
	TIMES LOCAL:2 , 0.50
ELSEIF EXP:(ARG:2):A확장경험 > 40
	TIMES LOCAL:2 , 0.60
ELSEIF EXP:(ARG:2):A확장경험 > 30
	TIMES LOCAL:2 , 0.70
ELSEIF EXP:(ARG:2):A확장경험 > 20
	TIMES LOCAL:2 , 0.80
ELSEIF EXP:(ARG:2):A확장경험 > 10
	TIMES LOCAL:2 , 0.90
ELSEIF EXP:(ARG:2):A확장경험
	TIMES LOCAL:2 , 0.95
ENDIF
IF ARG:2 != MASTER
	LOCAL:2 = LOCAL:2 * 10 / (5 + GETEXPLV(EXP:(ARG:2):A경험, 8))
	LOCAL:2 = LOCAL:2 * (1 + ABL:(ARG:2):A감각) / (1 + GETEXPLV(EXP:(ARG:2):A절정경험, 8))
ENDIF
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:2 , 2.00
	ELSE
		TIMES LOCAL:2 , 0.50
	ENDIF
ENDIF

SIF ARG:2 == MASTER
	LOCAL:2 *= (ABL:(ARG:2):A감각 + 1)

RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@EXP_DEMAND_2(ARG, ARG:1, ARG:2)
#FUNCTION
VARSET LOCAL
SELECTCASE ABL:(ARG:2):A감각
	CASE 0
		LOCAL:2 = 2
	CASE 1
		LOCAL:2 = 10
	CASE 2
		LOCAL:2 = 30
	CASE 3
		LOCAL:2 = 75
	CASE 4
		LOCAL:2 = 150
	CASE 5
		LOCAL:2 = 220
	CASE 6
		LOCAL:2 = 270
	CASE 7
		LOCAL:2 = 360
	CASE 8
		LOCAL:2 = 420
	CASE 9
		LOCAL:2 = 500
	CASEELSE
		LOCAL:2 = 100 * (ABL:(ARG:2):A감각 - 4)
ENDSELECT
IF EXP:(ARG:2):A확장경험 > 50
	TIMES LOCAL:2 , 0.50
ELSEIF EXP:(ARG:2):A확장경험 > 40
	TIMES LOCAL:2 , 0.60
ELSEIF EXP:(ARG:2):A확장경험 > 30
	TIMES LOCAL:2 , 0.70
ELSEIF EXP:(ARG:2):A확장경험 > 20
	TIMES LOCAL:2 , 0.80
ELSEIF EXP:(ARG:2):A확장경험 > 10
	TIMES LOCAL:2 , 0.90
ELSEIF EXP:(ARG:2):A확장경험
	TIMES LOCAL:2 , 0.95
ENDIF
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:2 , 2.00
	ELSE
		TIMES LOCAL:2 , 0.50
	ENDIF
ENDIF
SIF LOCAL:2 < 1
	LOCAL:2 = 1

SIF ARG:2 == MASTER
	LOCAL:2 *= (ABL:(ARG:2):A감각 + 1)

RETURNF LOCAL:(ARG:1)

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;B감각
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_3(ARG, ARG:1, ARG:2)
#FUNCTION
SIF ARG > 0
	RETURNF -1
VARSET LOCAL
SELECTCASE ABL:(ARG:2):B감각
	CASE 0
		LOCAL:3 = 1
	CASE 1
		LOCAL:3 = 20
	CASE 2
		LOCAL:3 = 400
	CASE 3
		LOCAL:3 = 5000
	CASE 4
		LOCAL:3 = 15000
	CASE 5
		LOCAL:3 = 30000
	CASE 6
		LOCAL:3 = 40000
	CASE 7
		LOCAL:3 = 50000
	CASE 8
		LOCAL:3 = 60000
	CASE 9
		LOCAL:3 = 70000
	CASEELSE
		LOCAL:3 = 20000 * (ABL:(ARG:2):B감각 - 6)
ENDSELECT
IF ARG:2 != MASTER
	LOCAL:3 = LOCAL:3 * 10 / (5 + GETEXPLV(EXP:(ARG:2):B경험, 8))
	LOCAL:3 = LOCAL:3 * (1 + ABL:(ARG:2):B감각) / (1 + GETEXPLV(EXP:(ARG:2):B절정경험, 8))
ENDIF
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:3 , 2.00
	ELSE
		TIMES LOCAL:3 , 0.50
	ENDIF
ENDIF

SIF ARG:2 == MASTER
	LOCAL:3 *= (ABL:(ARG:2):B감각 + 1)

RETURNF LOCAL:(ARG:1)
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;M감각
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;내친 김에 패턴의 인식이나 필요한 ABL등의 처리
;--------------------------------------------------
@JUEL_DEMAND_4(ARG, ARG:1, ARG:2)
#FUNCTION
SIF ARG > 0
	RETURNF -1
VARSET LOCAL
SELECTCASE ABL:(ARG:2):M감각
	CASE 0
		LOCAL:4 = 1
	CASE 1
		LOCAL:4 = 20
	CASE 2
		LOCAL:4 = 400
	CASE 3
		LOCAL:4 = 5000
	CASE 4
		LOCAL:4 = 15000
	CASE 5
		LOCAL:4 = 30000
	CASE 6
		LOCAL:4 = 40000
	CASE 7
		LOCAL:4 = 50000
	CASE 8
		LOCAL:4 = 60000
	CASE 9
		LOCAL:4 = 70000
	CASEELSE
		LOCAL:4 = 20000 * (ABL:(ARG:2):M감각 - 6)
ENDSELECT
;경험 보정
IF ARG:2 != MASTER
	LOCAL:4 = LOCAL:4 * 10 / (5 + GETEXPLV(EXP:(ARG:2):M경험, 8))
	LOCAL:4 = LOCAL:4 * (1 + ABL:(ARG:2):M감각) / (1 + GETEXPLV(EXP:(ARG:2):M절정경험, 8))
ENDIF
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:4 , 2.00
	ELSE
		TIMES LOCAL:4 , 0.50
	ENDIF
ENDIF

SIF ARG:2 == MASTER
	LOCAL:4 *= (ABL:(ARG:2):M감각 + 1)

RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@EXP_DEMAND_3(ARG, ARG:1, ARG:2)
#FUNCTION
RETURNF 0

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;친밀
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_9(ARG, ARG:1, ARG:2)
#FUNCTION
SIF ARG > 0
	RETURNF -1
VARSET LOCAL
;JUEL:호의(LOCAL:20)가 필요
SELECTCASE ABL:(ARG:2):친밀
	CASE 0
		LOCAL:20 = 30
	CASE 1
		LOCAL:20 = 100
	CASE 2
		LOCAL:20 = 300
	CASE 3
		LOCAL:20 = 1500
	CASE 4
		LOCAL:20 = 5000
	CASE 5
		LOCAL:20 = 15000
	CASE 6
		LOCAL:20 = 40000
	CASE 7
		LOCAL:20 = 70000
	CASE 8
		LOCAL:20 = 120000
	CASE 9
		LOCAL:20 = 200000
	CASEELSE
		LOCAL:20 = 100000 * (ABL:(ARG:2):친밀 - 7)
ENDSELECT

;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:20 , 2.00
	ELSE
		TIMES LOCAL:20 , 0.50
	ENDIF
ENDIF
SIF CFLAG:(ARG:2):몸목적
	TIMES LOCAL:20 , 1.50
RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@EXP_DEMAND_9(ARG, ARG:1, ARG:2)
#FUNCTION
RETURNF 0
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;순종
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;내친 김에 패턴의 인식이나 필요한 ABL등의 처리
;--------------------------------------------------
@JUEL_DEMAND_10(ARG, ARG:1, ARG:2)
#FUNCTION
SIF ARG > 3
	RETURNF -1
;공포의 구슬로 올린다
VARSET LOCAL
IF ARG == 0
	SELECTCASE ABL:(ARG:2):순종
		CASE 0
			LOCAL:16 = 30
		CASE 1
			LOCAL:16 = 200
		CASE 2
			LOCAL:16 = 1000
		CASE 3
			LOCAL:16 = 5000
		CASE 4
			LOCAL:16 = 7500
		CASE 5
			LOCAL:16 = 10000
		CASE 6
			LOCAL:16 = 15000
		CASE 7
			LOCAL:16 = 20000
		CASE 8
			LOCAL:16 = 25000
		CASE 9
			LOCAL:16 = 30000
		CASEELSE
			LOCAL:16 = 10000 * (ABL:(ARG:2):순종 - 6)
	ENDSELECT
;공순의 구슬로 올린다
ELSEIF ARG == 1
		SELECTCASE ABL:(ARG:2):순종
			CASE 0
				LOCAL:10 = 30
			CASE 1
				LOCAL:10 = 200
			CASE 2
				LOCAL:10 = 1000
			CASE 3
				LOCAL:10 = 5000
			CASE 4
				LOCAL:10 = 7500
			CASE 5
				LOCAL:10 = 15000
			CASE 6
				LOCAL:10 = 25000
			CASE 7
				LOCAL:10 = 40000
			CASE 8
				LOCAL:10 = 50000
			CASE 9
				LOCAL:10 = 80000
			CASEELSE
				LOCAL:10 = 25000 * (ABL:(ARG:2):순종 - 5)
		ENDSELECT
;욕정의 구슬로 올린다
ELSEIF ARG == 2
;		SELECTCASE ABL:(ARG:2):순종
;			CASE 0
;				LOCAL:11 = 150
;			CASE 1
;				LOCAL:11 = 450
;			CASE 2
;				LOCAL:11 = 1000
;			CASEELSE
				RETURNF -1
;		ENDSELECT
;굴복의 구슬로 올린다
ELSEIF ARG == 3
		SELECTCASE ABL:(ARG:2):순종
			CASE 0
				LOCAL:12 = 100
			CASE 1
				LOCAL:12 = 600
			CASE 2
				LOCAL:12 = 1200
			CASEELSE
				RETURNF -1
		ENDSELECT
ENDIF
;연모
LOCAL:10 = LOCAL:10 * (10 - 2 * TALENT:(ARG:2):연모) / 10

;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:10 , 2.00
		TIMES LOCAL:11 , 2.00
		TIMES LOCAL:12 , 2.00
		TIMES LOCAL:16 , 2.00
	ELSE
		TIMES LOCAL:10 , 0.50
		TIMES LOCAL:11 , 0.50
		TIMES LOCAL:12 , 0.50
		TIMES LOCAL:16 , 0.50
	ENDIF
ENDIF

RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@EXP_DEMAND_10(ARG, ARG:1, ARG:2)
#FUNCTION
VARSET LOCAL
;LV5로부터 6에 올릴 때는 이상경험 필요(소질：[겁쟁이][솔직함]이라면 무시할 수 있다)
;IF ABL:(ARG:2):순종 == 5 && TALENT:(ARG:2):담력 >= 0 && TALENT:(ARG:2):태도 >= 0
;	LOCAL:53 = 1
;LV8로부터 9에 올릴 때는 이상경험 3이상 필요(소질：[겁쟁이][솔직함]이라면 무시할 수 있다)
;ELSEIF ABL:(ARG:2):순종 == 8 && TALENT:(ARG:2):담력 >= 0 && TALENT:(ARG:2):태도 >= 0
;	LOCAL:53 = 3
;ENDIF
RETURNF LOCAL:(ARG:1)

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;욕망
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_11(ARG, ARG:1, ARG:2)
#FUNCTION
SIF ARG > 1
	RETURNF -1
;욕망의 구슬로 올린다
VARSET LOCAL
IF ARG == 0
	SELECTCASE ABL:(ARG:2):욕망
		CASE 0
			LOCAL:11 = 1
		CASE 1
			LOCAL:11 = 20
		CASE 2
			LOCAL:11 = 1000
		CASE 3
			LOCAL:11 = 8000
		CASE 4
			LOCAL:11 = 24000
		CASE 5
			LOCAL:11 = 30000
		CASE 6
			LOCAL:11 = 40000;36000
		CASE 7
			LOCAL:11 = 50000;45000
		CASE 8
			LOCAL:11 = 75000;55000
		CASE 9
			LOCAL:11 = 100000;70000
		CASEELSE
			LOCAL:11 = 150000 * (ABL:(ARG:2):욕망 - 8)
	ENDSELECT
ELSEIF ARG == 1
	SELECTCASE ABL:(ARG:2):욕망
		CASE 0
			LOCAL:21 = 50
		CASE 1
			LOCAL:21 = 200
		CASE 2
			LOCAL:21 = 1000
		CASE 3
			LOCAL:21 = 8000
		CASE 4
			LOCAL:21 = 24000
		CASE 5
			LOCAL:21 = 30000
		CASE 6
			LOCAL:21 = 36000
		CASE 7
			LOCAL:21 = 45000
		CASE 8
			LOCAL:21 = 55000
		CASE 9
			LOCAL:21 = 70000
		CASEELSE
			LOCAL:21 = 10000 + 20000 * (ABL:(ARG:2):욕망 - 6)
	ENDSELECT
ENDIF
;연모
LOCAL:11 = LOCAL:11 * (10 - 2 * TALENT:(ARG:2):연모) / 10
LOCAL:21 = LOCAL:21 * (10 - 2 * TALENT:(ARG:2):연모) / 10
SIF LOCAL:11 == 0
	LOCAL:11 = 1
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:11 , 2.00
		TIMES LOCAL:21 , 2.00
	ELSE
		TIMES LOCAL:11 , 0.50
		TIMES LOCAL:21 , 0.50
	ENDIF
ENDIF
SIF CFLAG:(ARG:2):몸목적
	TIMES LOCAL:21 , 0.70
RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@EXP_DEMAND_11(ARG, ARG:1, ARG:2)
#FUNCTION
VARSET LOCAL
;LV4로부터 5에 올릴 때는 이상경험 필요(소질：[쾌감에 솔직]이라면 무시할 수 있다)
;IF ABL:(ARG:2):욕망 == 4 && TALENT:(ARG:2):쾌감응답 < 1
;	LOCAL:53 = 1
;LV7로부터 8에 올릴 때는 이상경험 3이상 필요(소질：[쾌감에 솔직]이라면 무시할 수 있다)
;ELSEIF ABL:(ARG:2):욕망 == 7 && TALENT:(ARG:2):쾌감응답 < 1
;	LOCAL:53 = 3
;ENDIF
RETURNF LOCAL:(ARG:1)

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;기교
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_12(ARG, ARG:1, ARG:2)
#FUNCTION
SIF ARG > 0
	RETURNF -1
;기교의 구슬로 올린다
VARSET LOCAL
SELECTCASE ABL:(ARG:2):기교
	CASE 0
		LOCAL:13 = 1
	CASE 1
		LOCAL:13 = 20
	CASE 2
		LOCAL:13 = 200
	CASE 3
		LOCAL:13 = 3000
	CASE 4
		LOCAL:13 = 20000
	CASE 5
		LOCAL:13 = 25000
	CASE 6
		LOCAL:13 = 34000
	CASE 7
		LOCAL:13 = 45000
	CASE 8
		LOCAL:13 = 55000
	CASE 9
		LOCAL:13 = 70000
	CASEELSE
		LOCAL:13 = 10000 + 20000 * (ABL:(ARG:2):기교 - 6)
ENDSELECT
IF TALENT:(ARG:2):습득속도==1 ;습득속도 관련 KR판 오리지날 또는 구잔재
	TIMES LOCAL:13 , 0.50
ELSEIF TALENT:(ARG:2):습득속도==-1
	TIMES LOCAL:13 , 2.00
ENDIF

;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:13 , 2.00
	ELSE
		TIMES LOCAL:13 , 0.50
	ENDIF
ENDIF
RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@EXP_DEMAND_12(ARG, ARG:1, ARG:2)
#FUNCTION
RETURNF 0

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;봉사정신
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_13(ARG, ARG:1, ARG:2)
#FUNCTION
;순종이 필요
SIF ABL:(ARG:2):순종 < ABL:(ARG:2):봉사정신 + 1
	RETURNF -2
SIF ARG > 2
	RETURNF -1
VARSET LOCAL
;굴복의 구슬(LOCAL:12)로 올린다
IF ARG == 0
	SELECTCASE ABL:(ARG:2):봉사정신
		CASE 0
			LOCAL:12 = 100
		CASE 1
			LOCAL:12 = 1200
		CASE 2
			LOCAL:12 = 5000
		CASE 3
			LOCAL:12 = 10000
		CASE 4
			LOCAL:12 = 30000
		CASE 5
			LOCAL:12 = 35000
		CASE 6
			LOCAL:12 = 40000
		CASE 7
			LOCAL:12 = 45000
		CASE 8
			LOCAL:12 = 50000
		CASE 9
			LOCAL:12 = 60000
		CASEELSE
			LOCAL:12 = 10000 + 20000 * (ABL:(ARG:2):봉사정신 - 7)
	ENDSELECT
;공순의 구슬(LOCAL:10)로 올린다
ELSEIF ARG == 1
	SELECTCASE ABL:(ARG:2):봉사정신
		CASE 0
			LOCAL:10 = 20
		CASE 1
			LOCAL:10 = 100
		CASE 2
			LOCAL:10 = 600
		CASE 3
			LOCAL:10 = 2000
		CASE 4
			LOCAL:10 = 8000
		CASE 5
			LOCAL:10 = 8500
		CASE 6
			LOCAL:10 = 10000
		CASE 7
			LOCAL:10 = 15000
		CASE 8
			LOCAL:10 = 20000
		CASE 9
			LOCAL:10 = 30000
		CASEELSE
			LOCAL:10 = 10000 + 20000 * (ABL:(ARG:2):봉사정신 - 7)
	ENDSELECT
;습득의 구슬(LOCAL:13)로 올린다
ELSEIF ARG == 2
	IF ABL:(ARG:2):봉사정신 == 0
		LOCAL:13 = 100
	ELSE
		RETURNF -1
	ENDIF
ENDIF
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:10 , 2.00
		TIMES LOCAL:13 , 2.00
		TIMES LOCAL:12 , 2.00
	ELSE
		TIMES LOCAL:10 , 0.50
		TIMES LOCAL:13 , 0.50
		TIMES LOCAL:12 , 0.50
	ENDIF
ENDIF
RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@EXP_DEMAND_13(ARG, ARG:1, ARG:2)
#FUNCTION
VARSET LOCAL
;굴복의 구슬로 올리려면  절정경험(LOCAL:10)과 정액경험(LOCAL:14)이 필요
IF ARG == 0
	SELECTCASE ABL:(ARG:2):봉사정신
		CASE 0
			LOCAL:10 = 5
			LOCAL:14 = 5
		CASE 1
			LOCAL:10 = 10
			LOCAL:14 = 10
		CASE 2
			LOCAL:10 = 20
			LOCAL:14 = 20
		CASE 3
			LOCAL:10 = 20
			LOCAL:14 = 20
		CASE 4
			LOCAL:10 = 30
			LOCAL:14 = 30
		CASE 5
			LOCAL:10 = 40
			LOCAL:14 = 40
		CASE 6
			LOCAL:10 = 100
			LOCAL:14 = 100
		CASE 7
			LOCAL:10 = 150
			LOCAL:14 = 150
		CASE 8
			LOCAL:10 = 200
			LOCAL:14 = 200
		CASE 9
			LOCAL:10 = 300
			LOCAL:14 = 300
		CASEELSE
			LOCAL:10 = 100 * (ABL:(ARG:2):봉사정신 - 6)
			LOCAL:14 = 100 * (ABL:(ARG:2):봉사정신 - 6)
	ENDSELECT
;공순의 구슬로 올리려면  봉사쾌락경험(LOCAL:40)이 필요
ELSEIF ARG == 1
	SELECTCASE ABL:(ARG:2):봉사정신
		CASE 0
			LOCAL:40 = 5
		CASE 1
			LOCAL:40 = 10
		CASE 2
			LOCAL:40 = 20
		CASE 3
			LOCAL:40 = 50
		CASE 4
			LOCAL:40 = 100
		CASE 5
			LOCAL:40 = 150
		CASE 6
			LOCAL:40 = 200
		CASE 7
			LOCAL:40 = 250
		CASE 8
			LOCAL:40 = 300
		CASE 9
			LOCAL:40 = 400
		CASEELSE
			LOCAL:40 = 100 * (ABL:(ARG:2):봉사정신 - 5)
	ENDSELECT
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:40 , 2.00
	ELSE
		TIMES LOCAL:40 , 0.50
	ENDIF
ENDIF
;습득의 공으로 올리려면  절정경험이 필요
ELSEIF ARG == 2
	LOCAL:10 = 1
ENDIF
RETURNF LOCAL:(ARG:1)

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;노출벽
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_14(ARG, ARG:1, ARG:2)
#FUNCTION
SIF ARG > 0
	RETURNF -1
VARSET LOCAL
;치정의 구슬(LOCAL:14)가 필요
SELECTCASE ABL:(ARG:2):노출벽
	CASE 0
		LOCAL:14 = 100
	CASE 1
		LOCAL:14 = 500
	CASE 2
		LOCAL:14 = 1500
	CASE 3
		LOCAL:14 = 3000
	CASE 4
		LOCAL:14 = 6000
	CASE 5
		LOCAL:14 = 10000
	CASE 6
		LOCAL:14 = 15000
	CASE 7
		LOCAL:14 = 24000
	CASE 8
		LOCAL:14 = 30000
	CASE 9
		LOCAL:14 = 40000
	CASEELSE
		LOCAL:14 = 20000 * (ABL:(ARG:2):노출벽 - 7)
ENDSELECT

;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	SIF !TALENT:(ARG:2):연모
		TIMES LOCAL:14 , 2.00
ENDIF
RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@EXP_DEMAND_14(ARG, ARG:1, ARG:2)
#FUNCTION
VARSET LOCAL
;조교자위경험과 절정경험이 필요
LOCAL:10 = 1
LOCAL:23 = 1
;LV3나 4에 올릴 때는 이상경험 필요(소질：[눈에띄고싶어함]이라면 무시할 수 있다)
;IF ABL:(ARG:2):노출벽 == 3 && !TALENT:(ARG:2):눈에띄고싶어함
;	LOCAL:53 = 1
;LV4나 5에 올릴 때는 이상경험 3 필요(소질：[눈에띄고싶어함]이라면 무시할 수 있다)
;ELSEIF ABL:(ARG:2):노출벽 == 4 && !TALENT:(ARG:2):눈에띄고싶어함
;	LOCAL:53 = 3
;LV8나 9에 올릴 때는 이상경험 5 필요(소질：[눈에띄고싶어함]이라면 무시할 수 있다)
;ELSEIF ABL:(ARG:2):노출벽 == 6 && !TALENT:(ARG:2):눈에띄고싶어함
;	LOCAL:53 = 5
;ENDIF
RETURNF LOCAL:(ARG:1)

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;마조끼
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_15(ARG, ARG:1, ARG:2)
#FUNCTION
;욕망이 필요
SIF ABL:(ARG:2):욕망 < ABL:(ARG:2):마조끼 + 1
	RETURNF -2
SIF ARG > 1
	RETURNF -1
VARSET LOCAL
;고통(LOCAL:15)과 욕정(LOCAL:11)으로 올린다
;마조끼 끌어 올리기 패치 공포의 구슬의 저금이 많으면 고통의 구슬의 소비를 큰폭으로 저감 해, 마조끼를 올리기 쉬워진다
;마조끼 끌어올리기 패치 KR판 구잔재, SIF문임.
IF ARG == 0
	SELECTCASE ABL:(ARG:2):마조끼
		CASE 0
			LOCAL:11 = 100
			LOCAL:15 = 100
		CASE 1
			LOCAL:11 = 300
			LOCAL:15 = 500
		CASE 2
			LOCAL:11 = 1000
			LOCAL:15 = 1500
		CASE 3
			LOCAL:11 = 6000
			LOCAL:15 = 3000
		CASE 4
			LOCAL:11 = 12000
			LOCAL:15 = 5000
		CASE 5
			LOCAL:11 = 15000
			LOCAL:15 = 8000
		SIF JUEL:(ARG:2):15 < (JUEL:(ARG:2):16 / 10)
			LOCAL:15 = LOCAL:15 / 10
		CASE 6
			LOCAL:11 = 20000
			LOCAL:15 = 12000
		SIF JUEL:(ARG:2):15 < (JUEL:(ARG:2):16 / 10)
			LOCAL:15 = LOCAL:15 / 10
		CASE 7
			LOCAL:11 = 25000
			LOCAL:15 = 16000
		SIF JUEL:(ARG:2):15 < (JUEL:(ARG:2):16 / 10)
			LOCAL:15 = LOCAL:15 / 10
		CASE 8
			LOCAL:11 = 30000
			LOCAL:15 = 20000
		SIF JUEL:(ARG:2):15 < (JUEL:(ARG:2):16 / 10)
			LOCAL:15 = LOCAL:15 / 10
		CASE 9
			LOCAL:11 = 40000
			LOCAL:15 = 30000
		SIF JUEL:(ARG:2):15 < (JUEL:(ARG:2):16 / 10)
			LOCAL:15 = LOCAL:15 / 10
		CASEELSE
			LOCAL:11 = 10000 * (ABL:(ARG:2):마조끼 - 5)
			LOCAL:15 = 10000 * (ABL:(ARG:2):마조끼 - 6)
		SIF JUEL:(ARG:2):15 < (JUEL:(ARG:2):16 / 10)
			LOCAL:15 = LOCAL:15 / 10
	ENDSELECT
;고통(LOCAL:15)과 굴복(LOCAL:12)으로 올린다
ELSEIF ARG == 1
	SELECTCASE ABL:(ARG:2):마조끼
		CASE 0
			LOCAL:12 = 100
			LOCAL:15 = 100
		CASE 1
			LOCAL:12 = 500
			LOCAL:15 = 500
		CASE 2
			LOCAL:12 = 1000
			LOCAL:15 = 1200
		CASEELSE
			RETURNF -1
	ENDSELECT
ENDIF
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:15 , 2.00
		TIMES LOCAL:11 , 2.00
		TIMES LOCAL:12 , 2.00
	ELSE
		TIMES LOCAL:15 , 0.50
		TIMES LOCAL:11 , 0.50
		TIMES LOCAL:12 , 0.50
	ENDIF
ENDIF
;마조
IF TALENT:(ARG:2):마조
	TIMES LOCAL:11 , 0.50
	TIMES LOCAL:12 , 0.50
	TIMES LOCAL:15 , 0.50
ENDIF
IF FLAG:생활능력무
	TIMES LOCAL:11 , 1.50
	TIMES LOCAL:12 , 1.50
	TIMES LOCAL:15 , 1.50
ENDIF
RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@EXP_DEMAND_15(ARG, ARG:1, ARG:2)
#FUNCTION
VARSET LOCAL
;고통쾌락경험(EXP:(ARG:2):42)가 필요
SELECTCASE ABL:(ARG:2):마조끼
	CASE 3
		LOCAL:42 = 10
	CASE 4
		LOCAL:42 = 50
	CASE 5
		LOCAL:42 = 100
	CASE 6
		LOCAL:42 = 150
	CASE 7
		LOCAL:42 = 200
	CASE 8
		LOCAL:42 = 250
	CASE 9
		LOCAL:42 = 300
	CASE IS > 9
		LOCAL:42 = 50 + (ABL:(ARG:2):마조끼 - 3)
ENDSELECT
;고통(LOCAL:10)과 굴복(LOCAL:7)으로 올리려면  절정경험(EXP:(ARG:2):10)가 필요
SIF ARG == 0
	LOCAL:10 = 1
;LV3나 4에 올릴 때는 이상경험 필요(소질：[마조]라면 무시할 수 있다)
;IF ABL:(ARG:2):마조끼 == 3 && !TALENT:(ARG:2):마조
;	LOCAL:53 = 1
;LV4나 5에 올릴 때는 이상경험 3 필요(소질：[마조]라면 무시할 수 있다)
;ELSEIF ABL:(ARG:2):마조끼 == 4 && !TALENT:(ARG:2):마조
;	LOCAL:53 = 3
;LV8나 9에 올릴 때는 이상경험 5 필요(소질：[마조]라면 무시할 수 있다)
;ELSEIF ABL:(ARG:2):마조끼 == 6 && !TALENT:(ARG:2):마조
;	LOCAL:53 = 5
;ENDIF

;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:42 , 2.00
	ELSE
		TIMES LOCAL:42 , 0.50
	ENDIF
ENDIF
;마조
SIF TALENT:(ARG:2):마조
	TIMES LOCAL:42 , 0.50
SIF FLAG:생활능력무
	TIMES LOCAL:42 , 1.50

RETURNF LOCAL:(ARG:1)

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;새드끼
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_16(ARG, ARG:1, ARG:2)
#FUNCTION
;욕망이 필요
SIF ABL:(ARG:2):욕망 < ABL:(ARG:2):새드끼 + 1
	RETURNF -2
SIF ARG > 1
	RETURNF -1
VARSET LOCAL
IF ARG == 0
;욕정(LOCAL:11)으로 올린다
	SELECTCASE ABL:(ARG:2):새드끼
		CASE 0
			LOCAL:11 = 100
		CASE 1
			LOCAL:11 = 500
		CASE 2
			LOCAL:11 = 1500
		CASE 3
			LOCAL:11 = 3000
		CASE 4
			LOCAL:11 = 5000
		CASE 5
			LOCAL:11 = 8000
		CASE 6
			LOCAL:11 = 12000
		CASE 7
			LOCAL:11 = 15000
		CASE 8
			LOCAL:11 = 25000
		CASE 9
			LOCAL:11 = 30000
		CASEELSE
			LOCAL:11 = 10000 * (ABL:(ARG:2):새드끼 - 6)
	ENDSELECT
ELSEIF ARG == 1
	;우월
	SELECTCASE ABL:(ARG:2):새드끼
		CASE 0
			LOCAL:21 = 100
		CASE 1
			LOCAL:21 = 500
		CASE 2
			LOCAL:21 = 1500
		CASE 3
			LOCAL:21 = 3000
		CASE 4
			LOCAL:21 = 5000
		CASE 5
			LOCAL:21 = 7500
		CASE 6
			LOCAL:21 = 10000
		CASE 7
			LOCAL:21 = 15000
		CASE 8
			LOCAL:21 = 20000
		CASE 9
			LOCAL:21 = 25000
		CASEELSE
			LOCAL:21 = 10000 * (ABL:(ARG:2):새드끼 - 7)
	ENDSELECT
ENDIF
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:11 , 2.00
		TIMES LOCAL:21 , 2.00
	ELSE
		TIMES LOCAL:11 , 0.50
		TIMES LOCAL:21 , 0.50
	ENDIF
ENDIF
;새드
IF TALENT:(ARG:2):새드
	TIMES LOCAL:11 , 0.50
	TIMES LOCAL:21 , 0.50
ENDIF
IF FLAG:생활능력무
	TIMES LOCAL:11 , 0.80
	TIMES LOCAL:21 , 0.80
ENDIF
RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@EXP_DEMAND_16(ARG, ARG:1, ARG:2)
#FUNCTION
VARSET LOCAL
;가학쾌락경험(EXP:(ARG:2):43)가 필요
SELECTCASE ABL:(ARG:2):새드끼
	CASE 0
		LOCAL:43 = 5
	CASE 1
		LOCAL:43 = 20
	CASE 2
		LOCAL:43 = 50
	CASE 3
		LOCAL:43 = 80
	CASE 4
		LOCAL:43 = 120
	CASE 5
		LOCAL:43 = 150
	CASE 6
		LOCAL:43 = 200
	CASE 7
		LOCAL:43 = 300
	CASE 8
		LOCAL:43 = 500
	CASE 9
		LOCAL:43 = 700
	CASEELSE
		LOCAL:43 = 250 * (ABL:(ARG:2):새드끼 - 6)
ENDSELECT

;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:43 , 2.00
	ELSE
		TIMES LOCAL:43 , 0.50
	ENDIF
ENDIF
;새드
SIF TALENT:(ARG:2):새드
	TIMES LOCAL:43 , 0.50
SIF FLAG:생활능력무
	TIMES LOCAL:11 , 0.80
RETURNF LOCAL:(ARG:1)

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;레즈끼
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_17(ARG, ARG:1, ARG:2)
#FUNCTION
SIF ARG > 1
	RETURNF -1
VARSET LOCAL
;욕정(LOCAL:11), 굴복(LOCAL:12)으로 올린다
IF ARG == 0
	SELECTCASE ABL:(ARG:2):레즈끼
		CASE 0
			LOCAL:11 = 200
			LOCAL:12 = 0
		CASE 1
			LOCAL:11 = 1000
			LOCAL:12 = 0
		CASE 2
			LOCAL:11 = 3000
			LOCAL:12 = 1000
		CASE 3
			LOCAL:11 = 8000
			LOCAL:12 = 2000
		CASE 4
			LOCAL:11 = 20000
			LOCAL:12 = 5000
		CASE 5
			LOCAL:11 = 25000
			LOCAL:12 = 6000
		CASE 6
			LOCAL:11 = 30000
			LOCAL:12 = 8000
		CASE 7
			LOCAL:11 = 35000
			LOCAL:12 = 10000
		CASE 8
			LOCAL:11 = 40000
			LOCAL:12 = 15000
		CASE 9
			LOCAL:11 = 45000
			LOCAL:12 = 20000
		CASEELSE
			LOCAL:11 = 10000 * (ABL:(ARG:2):레즈끼 - 4)
			LOCAL:12 = 10000 * (ABL:(ARG:2):레즈끼 - 7)
	ENDSELECT
;쾌C의 구슬로 올린다
ELSEIF ARG == 1
	SELECTCASE ABL:(ARG:2):레즈끼
		CASE 0
			LOCAL:0 = 1000
		CASE 1
			LOCAL:0 = 5000
		CASEELSE
			RETURNF -1
	ENDSELECT
ENDIF
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:0 , 2.00
		TIMES LOCAL:11 , 2.00
		TIMES LOCAL:12 , 2.00
	ELSE
		TIMES LOCAL:0 , 0.50
		TIMES LOCAL:11 , 0.50
		TIMES LOCAL:12 , 0.50
	ENDIF
ENDIF
RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@EXP_DEMAND_17(ARG, ARG:1, ARG:2)
#FUNCTION
VARSET LOCAL
;레즈경험(EXP:(ARG:2):51)가 필요
SELECTCASE ABL:(ARG:2):레즈끼
	CASE 0
		LOCAL:51 = 50
	CASE 1
		LOCAL:51 = 200
	CASE 2
		LOCAL:51 = 500
	CASE 3
		LOCAL:51 = 1000
	CASE 4
		LOCAL:51 = 2000
	CASE 5
		LOCAL:51 = 2300
	CASE 6
		LOCAL:51 = 2600
	CASE 7
		LOCAL:51 = 3000
	CASE 8
		LOCAL:51 = 3500
	CASE 9
		LOCAL:51 = 4000
	CASEELSE
		LOCAL:51 = 500 * (ABL:(ARG:2):레즈끼 - 1)
ENDSELECT
;LV3나 4에 올릴 때는 이상경험 필요(소질：[양도]라면 무시할 수 있다)
;IF ABL:(ARG:2):레즈끼 == 3 && TALENT:(ARG:2):성별기호 == -1
;	LOCAL:53 = 1
;LV4나 5에 올릴 때는 이상경험 3 필요(소질：[양도]라면 무시할 수 있다)
;ELSEIF ABL:(ARG:2):레즈끼 == 4 && TALENT:(ARG:2):성별기호 == -1
;	LOCAL:53 = 3
;LV8나 9에 올릴 때는 이상경험 5 필요(소질：[양도]라면 무시할 수 있다)
;ELSEIF ABL:(ARG:2):레즈끼 == 8 && TALENT:(ARG:2):성별기호 == -1
;	LOCAL:53 = 5
;ENDIF

;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:51 , 2.00
	ELSE
		TIMES LOCAL:51 , 0.50
	ENDIF
ENDIF
SIF FLAG:포부 == 2
	TIMES LOCAL:51 , 0.90
RETURNF LOCAL:(ARG:1)

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;호모끼
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_18(ARG, ARG:1, ARG:2)
#FUNCTION
SIF ARG > 1
	RETURNF -1
VARSET LOCAL
;욕정(LOCAL:11), 굴복(LOCAL:12)으로 올린다
IF ARG == 0
	SELECTCASE ABL:(ARG:2):호모끼
		CASE 0
			LOCAL:11 = 200
			LOCAL:12 = 0
		CASE 1
			LOCAL:11 = 1000
			LOCAL:12 = 0
		CASE 2
			LOCAL:11 = 3000
			LOCAL:12 = 1000
		CASE 3
			LOCAL:11 = 8000
			LOCAL:12 = 2000
		CASE 4
			LOCAL:11 = 20000
			LOCAL:12 = 5000
		CASE 5
			LOCAL:11 = 25000
			LOCAL:12 = 6000
		CASE 6
			LOCAL:11 = 30000
			LOCAL:12 = 8000
		CASE 7
			LOCAL:11 = 35000
			LOCAL:12 = 10000
		CASE 8
			LOCAL:11 = 40000
			LOCAL:12 = 15000
		CASE 9
			LOCAL:11 = 45000
			LOCAL:12 = 20000
		CASEELSE
			LOCAL:11 = 10000 * (ABL:(ARG:2):호모끼 - 4)
			LOCAL:12 = 10000 * (ABL:(ARG:2):호모끼 - 7)
	ENDSELECT
;쾌C의 구슬로 올린다
ELSEIF ARG == 1
	SELECTCASE ABL:(ARG:2):호모끼
		CASE 0
			LOCAL:0 = 1000
		CASE 1
			LOCAL:0 = 5000
		CASEELSE
			RETURNF -1
	ENDSELECT
ENDIF
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:0 , 2.00
		TIMES LOCAL:11 , 2.00
		TIMES LOCAL:12 , 2.00
	ELSE
		TIMES LOCAL:0 , 0.50
		TIMES LOCAL:11 , 0.50
		TIMES LOCAL:12 , 0.50
	ENDIF
ENDIF
RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@EXP_DEMAND_18(ARG, ARG:1, ARG:2)
#FUNCTION
VARSET LOCAL
;게이경험(EXP:(ARG:2):42)가 필요
SELECTCASE ABL:(ARG:2):호모끼
	CASE 0
		LOCAL:52 = 50
	CASE 1
		LOCAL:52 = 200
	CASE 2
		LOCAL:52 = 500
	CASE 3
		LOCAL:52 = 1000
	CASE 4
		LOCAL:52 = 2000
	CASE 5
		LOCAL:52 = 2300
	CASE 6
		LOCAL:52 = 2600
	CASE 7
		LOCAL:52 = 3000
	CASE 8
		LOCAL:52 = 3500
	CASE 9
		LOCAL:52 = 4000
	CASEELSE
		LOCAL:52 = 500 * (ABL:(ARG:2):호모끼 - 1)
ENDSELECT
;LV3나 4에 올릴 때는 이상경험 필요(소질：[양도]라면 무시할 수 있다)
;IF ABL:(ARG:2):호모끼 == 3 && TALENT:(ARG:2):성별기호 == -1
;	LOCAL:53 = 1
;LV4나 5에 올릴 때는 이상경험 3 필요(소질：[양도]라면 무시할 수 있다)
;ELSEIF ABL:(ARG:2):호모끼 == 4 && TALENT:(ARG:2):성별기호 == -1
;	LOCAL:53 = 3
;LV8나 9에 올릴 때는 이상경험 5 필요(소질：[양도]라면 무시할 수 있다)
;ELSEIF ABL:(ARG:2):호모끼 == 8 && TALENT:(ARG:2):성별기호 == -1
;	LOCAL:53 = 5
;ENDIF

;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:52 , 2.00
	ELSE
		TIMES LOCAL:52 , 0.50
	ENDIF
ENDIF
IF FLAG:포부 == 2
	TIMES LOCAL:52 , 0.90
ENDIF
RETURNF LOCAL:(ARG:1)

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;자위중독
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_30(ARG, ARG:1, ARG:2)
#FUNCTION
;C감각이 필요
SIF ABL:(ARG:2):C감각 <= ABL:(ARG:2):자위중독 + 1
	RETURNF -2
;노출벽이 필요
SIF ABL:(ARG:2):노출벽 <= ABL:(ARG:2):자위중독 + 1
	RETURNF -2
SIF ARG > 1
	RETURNF -1
VARSET LOCAL
;욕정(LOCAL:11), 쾌C(LOCAL:0), 치정(LOCAL:14)으로 올린다
SELECTCASE ABL:(ARG:2):자위중독
	CASE 0
		LOCAL:11 = 1000
		LOCAL:0 = 5000
		LOCAL:14 = 1000
	CASE 1
		LOCAL:11 = 2000
		LOCAL:0 = 10000
		LOCAL:14 = 3000
	CASE 2
		LOCAL:11 = 3000
		LOCAL:0 = 30000
		LOCAL:14 = 5000
	CASE 3
		LOCAL:11 = 10000
		LOCAL:0 = 50000
		LOCAL:14 = 12000
	CASE 4
		LOCAL:11 = 15000
		LOCAL:0 = 100000
		LOCAL:14 = 20000
	CASE 5
		LOCAL:11 = 25000
		LOCAL:0 = 150000
		LOCAL:14 = 25000
	CASE 6
		LOCAL:11 = 30000
		LOCAL:0 = 200000
		LOCAL:14 = 40000
	CASE 7
		LOCAL:11 = 50000
		LOCAL:0 = 250000
		LOCAL:14 = 50000
	CASE 8
		LOCAL:11 = 60000
		LOCAL:0 = 300000
		LOCAL:14 = 60000
	CASE 9
		LOCAL:11 = 70000
		LOCAL:0 = 500000
		LOCAL:14 = 70000
	CASEELSE
		LOCAL:11 = 10000 * (ABL:(ARG:2):자위중독 - 2)
		LOCAL:0 = 100000 * (ABL:(ARG:2):자위중독 - 3)
		LOCAL:14 = 10000 * (ABL:(ARG:2):자위중독 - 2)
ENDSELECT
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:0 , 2.00
		TIMES LOCAL:11 , 2.00
		TIMES LOCAL:14 , 2.00
	ELSE
		TIMES LOCAL:0 , 0.40
		TIMES LOCAL:11 , 0.40
		TIMES LOCAL:14 , 0.40
	ENDIF
ENDIF
;중독되기쉬움
IF TALENT:(ARG:2):중독되기쉬움
	TIMES LOCAL:0 , 0.50
	TIMES LOCAL:11 , 0.50
	TIMES LOCAL:14 , 0.50
ENDIF
IF FLAG:포부 == 1
	TIMES LOCAL:0 , 0.75
	TIMES LOCAL:11 , 0.75
	TIMES LOCAL:14 , 0.75
ENDIF
RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@EXP_DEMAND_30(ARG, ARG:1, ARG:2)
#FUNCTION
VARSET LOCAL
;자위경험(EXP:(ARG:2):22)가 필요
IF ARG == 0
	SELECTCASE ABL:(ARG:2):자위중독
		CASE 0
			LOCAL:22 = 5
		CASE 1
			LOCAL:22 = 15
		CASE 2
			LOCAL:22 = 30
		CASE 3
			LOCAL:22 = 50
		CASE 4
			LOCAL:22 = 80
		CASE 5
			LOCAL:22 = 120
		CASE 6
			LOCAL:22 = 180
		CASE 7
			LOCAL:22 = 250
		CASE 8
			LOCAL:22 = 350
		CASE 9
			LOCAL:22 = 500
		CASEELSE
			LOCAL:22 = 100 * (ABL:(ARG:2):자위중독 - 4)
	ENDSELECT
ELSEIF ARG == 1
	SELECTCASE ABL:(ARG:2):자위중독
		CASE 0
			LOCAL:22 = 5
		CASE 1
			LOCAL:22 = 15
		CASE 2
			LOCAL:22 = 30
		CASE 3
			LOCAL:22 = 50
		CASE 4
			LOCAL:22 = 80
		CASE 5
			LOCAL:22 = 120
		CASE 6
			LOCAL:22 = 180
		CASE 7
			LOCAL:22 = 250
		CASE 8
			LOCAL:22 = 350
		CASE 9
			LOCAL:23 = 500
		CASEELSE
			LOCAL:23 = 100 * (ABL:(ARG:2):자위중독 - 4)
	ENDSELECT
ENDIF
;LV3나 4에 올릴 때는 이상경험 필요(소질：[중독되기쉬움][자위중독]이라면 무시할 수 있다)
;IF ABL:(ARG:2):자위중독 == 3 && !TALENT:(ARG:2):중독되기쉬움 && !TALENT:(ARG:2):자위중독
;	LOCAL:53 = 1
;LV4나 5에 올릴 때는 이상경험 3 필요(소질：[중독되기쉬움][자위중독]이라면 무시할 수 있다)
;ELSEIF ABL:(ARG:2):자위중독 == 4 && !TALENT:(ARG:2):중독되기쉬움 && !TALENT:(ARG:2):자위중독
;	LOCAL:53 = 3
;LV8나 9에 올릴 때는 이상경험 5 필요(소질：[중독되기쉬움][자위중독]이라면 무시할 수 있다)
;ELSEIF ABL:(ARG:2):자위중독 == 8 && !TALENT:(ARG:2):중독되기쉬움 && !TALENT:(ARG:2):자위중독
;	LOCAL:53 = 5
;ENDIF

;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:22 , 2.00
		TIMES LOCAL:23 , 2.00
	ELSE
		TIMES LOCAL:22 , 0.40
		TIMES LOCAL:23 , 0.40
	ENDIF
ENDIF
;중독되기쉬움
IF TALENT:(ARG:2):중독되기쉬움 || TALENT:(ARG:2):자위중독
	TIMES LOCAL:22 , 0.50
	TIMES LOCAL:23 , 0.50
ENDIF
IF FLAG:포부 == 1
	TIMES LOCAL:22 , 0.75
	TIMES LOCAL:23 , 0.75
ENDIF
RETURNF LOCAL:(ARG:1)

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;정액중독
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_31(ARG, ARG:1, ARG:2)
#FUNCTION
;봉사정신이 필요
SIF ABL:(ARG:2):봉사정신 < ABL:(ARG:2):정액중독 + 1
	RETURNF -2
SIF ARG > 0
	RETURNF -1
VARSET LOCAL
;욕정(LOCAL:11), 굴복(LOCAL:12)
SELECTCASE ABL:(ARG:2):정액중독
	CASE 0
		LOCAL:11 = 3000
		LOCAL:12 = 10000
	CASE 1
		LOCAL:11 = 8000
		LOCAL:12 = 25000
	CASE 2
		LOCAL:11 = 15000
		LOCAL:12 = 50000
	CASE 3
		LOCAL:11 = 30000
		LOCAL:12 = 100000
	CASE 4
		LOCAL:11 = 45000
		LOCAL:12 = 300000
	CASE 5
		LOCAL:11 = 60000
		LOCAL:12 = 350000
	CASE 6
		LOCAL:11 = 65000
		LOCAL:12 = 400000
	CASE 7
		LOCAL:11 = 70000
		LOCAL:12 = 450000
	CASE 8
		LOCAL:11 = 75000
		LOCAL:12 = 500000
	CASE 9
		LOCAL:11 = 90000
		LOCAL:12 = 600000
	CASEELSE
		LOCAL:11 = 15000 * (ABL:(ARG:2):정액중독 - 3)
		LOCAL:12 = 100000 * (ABL:(ARG:2):정액중독 - 3)
ENDSELECT
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:11 , 2.00
		TIMES LOCAL:12 , 2.00
	ELSE
		TIMES LOCAL:11 , 0.40
		TIMES LOCAL:12 , 0.40
	ENDIF
ENDIF
;중독되기쉬움
IF TALENT:(ARG:2):중독되기쉬움
	TIMES LOCAL:11 , 0.50
	TIMES LOCAL:12 , 0.50
ENDIF
RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
;정액중독
@EXP_DEMAND_31(ARG, ARG:1, ARG:2)
#FUNCTION
VARSET LOCAL
;정액경험(EXP:(ARG:2):14)가 필요
SELECTCASE ABL:(ARG:2):정액중독
	CASE 0
		LOCAL:14 = 10
	CASE 1
		LOCAL:14 = 25
	CASE 2
		LOCAL:14 = 40
	CASE 3
		LOCAL:14 = 80
	CASE 4
		LOCAL:14 = 200
	CASE 5
		LOCAL:14 = 250
	CASE 6
		LOCAL:14 = 300
	CASE 7
		LOCAL:14 = 350
	CASE 8
		LOCAL:14 = 400
	CASE 9
		LOCAL:14 = 500
	CASEELSE
		LOCAL:14 = 100 * (ABL:(ARG:2):정액중독 - 4)
ENDSELECT
;LV2나 3에 올릴 때는 이상경험 필요(소질：[악취 둔감][중독되기쉬움]이라면 무시할 수 있다)
;IF ABL:(ARG:2):정액중독 == 2 && TALENT:(ARG:2):악취내성 > 0 && !TALENT:(ARG:2):중독되기쉬움
;	;LOCAL:53 = 1
;LV3나 4에 올릴 때는 이상경험 필요(소질：[악취 둔감][중독되기쉬움]이라면 무시할 수 있다)
;ELSEIF ABL:(ARG:2):정액중독 == 3 && TALENT:(ARG:2):악취내성 > 0 && !TALENT:(ARG:2):중독되기쉬움
	;LOCAL:53 = 2
;LV4나 5에 올릴 때는 이상경험 3 필요(소질：[악취 둔감][중독되기쉬움]이라면 무시할 수 있다)
;ELSEIF ABL:(ARG:2):정액중독 == 4 && TALENT:(ARG:2):악취내성 > 0 && !TALENT:(ARG:2):중독되기쉬움
	;LOCAL:53 = 3
;LV8나 9에 올릴 때는 이상경험 5 필요(소질：[악취 둔감][중독되기쉬움]이라면 무시할 수 있다)
;ELSEIF ABL:(ARG:2):정액중독 == 8 && TALENT:(ARG:2):악취내성 > 0 && !TALENT:(ARG:2):중독되기쉬움
	;LOCAL:53 = 5
;ENDIF

;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:14 , 2.00
	ELSE
		TIMES LOCAL:14 , 0.50
	ENDIF
ENDIF
;중독되기쉬움
SIF TALENT:(ARG:2):중독되기쉬움
	TIMES LOCAL:14 , 0.50
RETURNF LOCAL:(ARG:1)

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;레즈중독
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_32(ARG, ARG:1, ARG:2)
#FUNCTION
;레즈끼이 필요
SIF ABL:(ARG:2):레즈끼 < ABL:(ARG:2):레즈중독 + 1
	RETURNF -2
SIF ARG > 0
	RETURNF -1
VARSET LOCAL
;쾌C(LOCAL:0), 욕정(LOCAL:11), 굴복(LOCAL:12)이 필요
SELECTCASE ABL:(ARG:2):레즈중독
	CASE 0
		LOCAL:0 = 3000
		LOCAL:11 = 10000
		LOCAL:12 = 10000
	CASE 1
		LOCAL:0 = 8000
		LOCAL:11 = 25000
		LOCAL:12 = 25000
	CASE 2
		LOCAL:0 = 15000
		LOCAL:11 = 50000
		LOCAL:12 = 50000
	CASE 3
		LOCAL:0 = 30000
		LOCAL:11 = 100000
		LOCAL:12 = 100000
	CASE 4
		LOCAL:0 = 55000
		LOCAL:11 = 300000
		LOCAL:12 = 300000
	CASE 5
		LOCAL:0 = 60000
		LOCAL:11 = 350000
		LOCAL:12 = 350000
	CASE 6
		LOCAL:0 = 65000
		LOCAL:11 = 400000
		LOCAL:12 = 400000
	CASE 7
		LOCAL:0 = 70000
		LOCAL:11 = 450000
		LOCAL:12 = 450000
	CASE 8
		LOCAL:0 = 75000
		LOCAL:11 = 500000
		LOCAL:12 = 500000
	CASE 9
		LOCAL:0 = 80000
		LOCAL:11 = 550000
		LOCAL:12 = 550000
	CASEELSE
		LOCAL:0 = 10000 * (ABL:(ARG:2):레즈중독 - 1)
		LOCAL:11 = 60000 * (ABL:(ARG:2):레즈중독 + 1)
		LOCAL:12 = 60000 * (ABL:(ARG:2):레즈중독 + 1)
ENDSELECT
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:0 , 2.00
		TIMES LOCAL:11 , 2.00
		TIMES LOCAL:12 , 2.00
	ELSE
		TIMES LOCAL:0 , 0.40
		TIMES LOCAL:11 , 0.40
		TIMES LOCAL:12 , 0.40
	ENDIF
ENDIF
;중독되기쉬움
IF TALENT:(ARG:2):중독되기쉬움
	TIMES LOCAL:0 , 0.50
	TIMES LOCAL:11 , 0.50
	TIMES LOCAL:12 , 0.50
ENDIF
RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@EXP_DEMAND_32(ARG, ARG:1, ARG:2)
#FUNCTION
VARSET LOCAL
;레즈경험(EXP:(ARG:2):51)가 필요
SELECTCASE ABL:(ARG:2):레즈중독
	CASE 0
		LOCAL:51 = 1000
	CASE 1
		LOCAL:51 = 1500
	CASE 2
		LOCAL:51 = 2000
	CASE 3
		LOCAL:51 = 4500
	CASE 4
		LOCAL:51 = 6000
	CASE 5
		LOCAL:51 = 6500
	CASE 6
		LOCAL:51 = 7000
	CASE 7
		LOCAL:51 = 7500
	CASE 8
		LOCAL:51 = 8000
	CASE 9
		LOCAL:51 = 9000
	CASEELSE
		LOCAL:51 = 1000 * ABL:(ARG:2):레즈중독
ENDSELECT
;LV2나 3에 올릴 때는 이상경험 필요(소질：[양도][중독되기쉬움]이라면 무시할 수 있다)
IF ABL:(ARG:2):레즈중독 == 2 && TALENT:(ARG:2):성별기호 == -1 && !TALENT:(ARG:2):중독되기쉬움
	;LOCAL:53 = 1
;LV3나 4에 올릴 때는 이상경험 필요(소질：[양도][중독되기쉬움]이라면 무시할 수 있다)
ELSEIF ABL:(ARG:2):레즈중독 == 3 && TALENT:(ARG:2):성별기호 == -1 && !TALENT:(ARG:2):중독되기쉬움
	;LOCAL:53 = 2
;LV4나 5에 올릴 때는 이상경험 3 필요(소질：[양도][중독되기쉬움]이라면 무시할 수 있다)
ELSEIF ABL:(ARG:2):레즈중독 == 4 && TALENT:(ARG:2):성별기호 == -1 && !TALENT:(ARG:2):중독되기쉬움
	;LOCAL:53 = 3
;LV8나 9에 올릴 때는 이상경험 5 필요(소질：[양도][중독되기쉬움]이라면 무시할 수 있다)
ELSEIF ABL:(ARG:2):레즈중독 == 8 && TALENT:(ARG:2):성별기호 == -1 && !TALENT:(ARG:2):중독되기쉬움
	;LOCAL:53 = 5
ENDIF

IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:51 , 2.00
	ELSE
		TIMES LOCAL:51 , 0.50
	ENDIF
ENDIF
;중독되기쉬움
SIF TALENT:(ARG:2):중독되기쉬움
	TIMES LOCAL:51 , 0.50
RETURNF LOCAL:(ARG:1)

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;게이중독
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_33(ARG, ARG:1, ARG:2)
#FUNCTION
;호모끼이 필요
SIF ABL:(ARG:2):호모끼 < ABL:(ARG:2):게이중독 + 1
	RETURNF -2
SIF ARG > 0
	RETURNF -1
VARSET LOCAL
;쾌C(LOCAL:0), 욕정(LOCAL:11), 굴복(LOCAL:12)이 필요
SELECTCASE ABL:(ARG:2):게이중독
	CASE 0
		LOCAL:0 = 3000
		LOCAL:11 = 10000
		LOCAL:12 = 10000
	CASE 1
		LOCAL:0 = 8000
		LOCAL:11 = 25000
		LOCAL:12 = 25000
	CASE 2
		LOCAL:0 = 15000
		LOCAL:11 = 50000
		LOCAL:12 = 50000
	CASE 3
		LOCAL:0 = 30000
		LOCAL:11 = 100000
		LOCAL:12 = 100000
	CASE 4
		LOCAL:0 = 55000
		LOCAL:11 = 300000
		LOCAL:12 = 300000
	CASE 5
		LOCAL:0 = 60000
		LOCAL:11 = 350000
		LOCAL:12 = 350000
	CASE 6
		LOCAL:0 = 65000
		LOCAL:11 = 400000
		LOCAL:12 = 400000
	CASE 7
		LOCAL:0 = 70000
		LOCAL:11 = 450000
		LOCAL:12 = 450000
	CASE 8
		LOCAL:0 = 75000
		LOCAL:11 = 500000
		LOCAL:12 = 500000
	CASE 9
		LOCAL:0 = 80000
		LOCAL:11 = 550000
		LOCAL:12 = 550000
	CASEELSE
		LOCAL:0 = 10000 * (ABL:(ARG:2):게이중독 - 1)
		LOCAL:11 = 60000 * (ABL:(ARG:2):게이중독 + 1)
		LOCAL:12 = 60000 * (ABL:(ARG:2):게이중독 + 1)
ENDSELECT
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:0 , 2.00
		TIMES LOCAL:11 , 2.00
		TIMES LOCAL:12 , 2.00
	ELSE
		TIMES LOCAL:0 , 0.50
		TIMES LOCAL:11 , 0.50
		TIMES LOCAL:12 , 0.50
	ENDIF
ENDIF
;중독되기쉬움
IF TALENT:(ARG:2):중독되기쉬움
	TIMES LOCAL:0 , 0.50
	TIMES LOCAL:11 , 0.50
	TIMES LOCAL:12 , 0.50
ENDIF
RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@EXP_DEMAND_33(ARG, ARG:1, ARG:2)
#FUNCTION
VARSET LOCAL
;게이경험(EXP:(ARG:2):42)가 필요
SELECTCASE ABL:(ARG:2):게이중독
	CASE 0
		LOCAL:52 = 1000
	CASE 1
		LOCAL:52 = 1500
	CASE 2
		LOCAL:52 = 2000
	CASE 3
		LOCAL:52 = 4500
	CASE 4
		LOCAL:52 = 6000
	CASE 5
		LOCAL:52 = 6500
	CASE 6
		LOCAL:52 = 7000
	CASE 7
		LOCAL:52 = 7500
	CASE 8
		LOCAL:52 = 8000
	CASE 9
		LOCAL:52 = 9000
	CASEELSE
		LOCAL:52 = 1000 * ABL:(ARG:2):게이중독
ENDSELECT
;LV2나 3에 올릴 때는 이상경험 필요(소질：[양도][중독되기쉬움]이라면 무시할 수 있다)
IF ABL:(ARG:2):게이중독 == 2 && !TALENT:(ARG:2):중독되기쉬움 && TALENT:(ARG:2):성별기호 == -1
	;LOCAL:53 = 1
;LV3나 4에 올릴 때는 이상경험 필요(소질：[양도][중독되기쉬움]이라면 무시할 수 있다)
ELSEIF ABL:(ARG:2):게이중독 == 3 && !TALENT:(ARG:2):중독되기쉬움 && TALENT:(ARG:2):성별기호 == -1
	;LOCAL:53 = 2
;LV4나 5에 올릴 때는 이상경험 3 필요(소질：[양도][중독되기쉬움]이라면 무시할 수 있다)
ELSEIF ABL:(ARG:2):게이중독 == 4 && !TALENT:(ARG:2):중독되기쉬움 && TALENT:(ARG:2):성별기호 == -1
	;LOCAL:53 = 3
;LV8나 9에 올릴 때는 이상경험 5 필요(소질：[양도][중독되기쉬움]이라면 무시할 수 있다)
ELSEIF ABL:(ARG:2):게이중독 == 8 && !TALENT:(ARG:2):중독되기쉬움 && TALENT:(ARG:2):성별기호 == -1
	;LOCAL:53 = 5
ENDIF

;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:52 , 2.00
	ELSE
		TIMES LOCAL:52 , 0.50
	ENDIF
ENDIF
;중독되기쉬움
SIF TALENT:(ARG:2):중독되기쉬움
	TIMES LOCAL:52 , 0.50
RETURNF LOCAL:(ARG:1)

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;질내사정중독
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_34(ARG, ARG:1, ARG:2)
#FUNCTION
;정액중독이 필요
SIF ABL:(ARG:2):정액중독 < ABL:(ARG:2):질내사정중독 + 1
	RETURNF -2
SIF ARG > 0
	RETURNF -1
VARSET LOCAL
;욕정(LOCAL:11), 굴복(LOCAL:12)
SELECTCASE ABL:(ARG:2):질내사정중독
	CASE 0
		LOCAL:11 = 3000
		LOCAL:12 = 10000
	CASE 1
		LOCAL:11 = 8000
		LOCAL:12 = 25000
	CASE 2
		LOCAL:11 = 15000
		LOCAL:12 = 50000
	CASE 3
		LOCAL:11 = 30000
		LOCAL:12 = 100000
	CASE 4
		LOCAL:11 = 45000
		LOCAL:12 = 300000
	CASE 5
		LOCAL:11 = 60000
		LOCAL:12 = 350000
	CASE 6
		LOCAL:11 = 65000
		LOCAL:12 = 400000
	CASE 7
		LOCAL:11 = 70000
		LOCAL:12 = 450000
	CASE 8
		LOCAL:11 = 75000
		LOCAL:12 = 500000
	CASE 9
		LOCAL:11 = 90000
		LOCAL:12 = 600000
	CASEELSE
		LOCAL:11 = 15000 * (ABL:(ARG:2):질내사정중독 - 3)
		LOCAL:12 = 100000 * (ABL:(ARG:2):질내사정중독 - 3)
ENDSELECT
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:11 , 2.00
		TIMES LOCAL:12 , 2.00
	ELSE
		TIMES LOCAL:11 , 0.50
		TIMES LOCAL:12 , 0.50
	ENDIF
ENDIF
;V감도
IF TALENT:(ARG:2):V감도 > 0
	TIMES LOCAL:11 , 0.50
	TIMES LOCAL:12 , 0.50
ENDIF
RETURNF LOCAL:(ARG:1)

;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
;질내사정중독
@EXP_DEMAND_34(ARG, ARG:1, ARG:2)
#FUNCTION
VARSET LOCAL
;질내사정경험(EXP:(ARG:2):16)가 필요
SELECTCASE ABL:(ARG:2):질내사정중독
	CASE 0
		LOCAL:16 = 10
	CASE 1
		LOCAL:16 = 25
	CASE 2
		LOCAL:16 = 40
	CASE 3
		LOCAL:16 = 80
	CASE 4
		LOCAL:16 = 200
	CASE 5
		LOCAL:16 = 250
	CASE 6
		LOCAL:16 = 300
	CASE 7
		LOCAL:16 = 350
	CASE 8
		LOCAL:16 = 400
	CASE 9
		LOCAL:16 = 500
	CASEELSE
		LOCAL:16 = 100 * (ABL:(ARG:2):질내사정중독 - 4)
ENDSELECT
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:16 , 2.00
	ELSE
		TIMES LOCAL:16 , 0.40
	ENDIF
ENDIF
;V감도
SIF TALENT:(ARG:2):V감도 > 0
	TIMES LOCAL:16 , 0.50
RETURNF LOCAL:(ARG:1)

;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;항내사정중독
;≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
;--------------------------------------------------
;ARG 패턴
;JUEL:(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
@JUEL_DEMAND_35(ARG, ARG:1, ARG:2)
#FUNCTION
;정액중독이 필요
SIF ABL:(ARG:2):항내사정중독 > ABL:(ARG:2):정액중독 + 1
	RETURNF -2
SIF ARG > 0
	RETURNF -1
VARSET LOCAL
;욕정(LOCAL:11), 굴복(LOCAL:12)
SELECTCASE ABL:(ARG:2):항내사정중독
	CASE 0
		LOCAL:11 = 3000
		LOCAL:12 = 10000
	CASE 1
		LOCAL:11 = 8000
		LOCAL:12 = 25000
	CASE 2
		LOCAL:11 = 15000
		LOCAL:12 = 50000
	CASE 3
		LOCAL:11 = 30000
		LOCAL:12 = 100000
	CASE 4
		LOCAL:11 = 45000
		LOCAL:12 = 300000
	CASE 5
		LOCAL:11 = 60000
		LOCAL:12 = 350000
	CASE 6
		LOCAL:11 = 65000
		LOCAL:12 = 400000
	CASE 7
		LOCAL:11 = 70000
		LOCAL:12 = 450000
	CASE 8
		LOCAL:11 = 75000
		LOCAL:12 = 500000
	CASE 9
		LOCAL:11 = 90000
		LOCAL:12 = 600000
	CASEELSE
		LOCAL:11 = 15000 * (ABL:(ARG:2):항내사정중독 - 3)
		LOCAL:12 = 100000 * (ABL:(ARG:2):항내사정중독 - 3)
ENDSELECT
;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:11 , 2.00
		TIMES LOCAL:12 , 2.00
	ELSE
		TIMES LOCAL:11 , 0.40
		TIMES LOCAL:12 , 0.40
	ENDIF
ENDIF
;A감도
IF TALENT:(ARG:2):A감도 > 0
	TIMES LOCAL:11 , 0.50
	TIMES LOCAL:12 , 0.50
ENDIF
RETURNF LOCAL:(ARG:1)
;--------------------------------------------------
;ARG 패턴
;EXP:(ARG:2):(ARG:1)가 필요하면 LOCAL:(ARG:1)에 대입해 그 값을 돌려준다
;--------------------------------------------------
;항내사정중독
@EXP_DEMAND_35(ARG, ARG:1, ARG:2)
#FUNCTION
VARSET LOCAL
;항내사정경험(EXP:(ARG:2):항내사정경험)가 필요
SELECTCASE ABL:(ARG:2):항내사정중독
	CASE 0
		LOCAL:17 = 10
	CASE 1
		LOCAL:17 = 25
	CASE 2
		LOCAL:17 = 40
	CASE 3
		LOCAL:17 = 80
	CASE 4
		LOCAL:17 = 200
	CASE 5
		LOCAL:17 = 250
	CASE 6
		LOCAL:17 = 300
	CASE 7
		LOCAL:17 = 350
	CASE 8
		LOCAL:17 = 400
	CASE 9
		LOCAL:17 = 500
	CASEELSE
		LOCAL:17 = 100 * (ABL:(ARG:2):항내사정중독 - 4)
ENDSELECT

;일선을넘지않음
IF TALENT:(ARG:2):일선을넘지않음
	IF !TALENT:(ARG:2):연모
		TIMES LOCAL:17 , 2.00
	ELSE
		TIMES LOCAL:17 , 0.50
	ENDIF
ENDIF
;A감도
SIF TALENT:(ARG:2):A감도 > 0
	TIMES LOCAL:17 , 0.50
RETURNF LOCAL:(ARG:1)


code:
@SHOW_JUEL

@SHOW_ABLUP_SELECT
#DIM 올리는ABL
#DIM 캐릭터
#DIM 능력치부족
#DIM 경험부족

FOR 캐릭터, 0, CHARANUM
	FOR LOCAL:11, 0,30
		SELECTCASE LOCAL:11
			;많은 요소가 필요한 능력으로부터 올려 간다
			;자위중독
			CASE 0
				올리는ABL= 30
			;질내사정중독
			CASE 1
				올리는ABL= 34
			;항내사정중독
			CASE 2
				올리는ABL= 35
			;정액중독
			CASE 3
				올리는ABL= 31
			;레즈중독
			CASE 4
				올리는ABL= 32
			;게이중독
			CASE 5
				올리는ABL= 33
			;봉사정신
			CASE 6
				올리는ABL= 13
			;레즈끼
			CASE 7
				올리는ABL= 17
			;호모끼
			CASE 8
				올리는ABL= 18
			;마조끼
			CASE 9
				올리는ABL= 15
			;새드끼
			CASE 10
				올리는ABL= 16
			;노출벽
			CASE 11
				올리는ABL= 14
			;친밀
			CASE 12
				올리는ABL= 9
			;순종
			CASE 13
				올리는ABL= 10
			;욕망
			CASE 14
				올리는ABL= 11
			;기교
			CASE 15
				올리는ABL= 12
			;C감각
			CASE 16
				올리는ABL= 0
			;V감각
			CASE 17
				올리는ABL= 1
			;A감각
			CASE 18
				올리는ABL= 2
			;B감각
			CASE 19
				올리는ABL= 3
			;M감각
			CASE 20
				올리는ABL= 4
			CASEELSE
				CONTINUE
		ENDSELECT
		FOR LOCAL, 0,4
			$AGAIN
			능력치부족 = 0
			경험부족 = 0
			SIF JUEL_DEMAND(올리는ABL, LOCAL, 0, 캐릭터) == -2
				BREAK
			SIF JUEL_DEMAND(올리는ABL, LOCAL, 0, 캐릭터) < 0
				CONTINUE
			;필요한 보주를 찾는다
			FOR LOCAL:1, 0,100
				IF JUEL_DEMAND(올리는ABL, LOCAL, LOCAL:1, 캐릭터) > 0
					IF JUEL:(캐릭터):(LOCAL:1) < JUEL_DEMAND(올리는ABL, LOCAL, LOCAL:1, 캐릭터)
						능력치부족 ++
						BREAK
					ENDIF
				ENDIF
			NEXT
			SIF 능력치부족
				CONTINUE
			;필요한 경험을 찾는다
			FOR LOCAL:1, 0,100
				IF EXP_DEMAND(올리는ABL, LOCAL, LOCAL:1, 캐릭터) > 0
					IF  EXP:(캐릭터):(LOCAL:1) < EXP_DEMAND(올리는ABL, LOCAL, LOCAL:1, 캐릭터)
						경험부족 ++
						BREAK
					ENDIF
				ENDIF
			NEXT
			SIF 경험부족
				CONTINUE
			FOR LOCAL:1, 0,40
				JUEL:(캐릭터):(LOCAL:1) -= JUEL_DEMAND(올리는ABL, LOCAL, LOCAL:1, 캐릭터)
			NEXT
			IF !LOCAL:5
				PRINTFORM %CALLNAME:(캐릭터), 14, RIGHT% …
				LOCAL:5 ++
			ELSE
				;18문자 공백을 삽입
				PRINTFORM
			ENDIF
			PRINTFORM %ABLNAME:(올리는ABL), 8, RIGHT%LVUP
			PRINTFORM  (
			;성장전
			CALL PRINT_RANK(ABL:캐릭터:올리는ABL, "MAX_99")
			PRINTFORM {ABL:(캐릭터):(올리는ABL), 2, RIGHT} →
			;성장은 여기서
			ABL:(캐릭터):(올리는ABL) += 1
			;성장 후
			CALL PRINT_RANK(ABL:캐릭터:올리는ABL, "MAX_99")
			PRINTFORMW {ABL:(캐릭터):(올리는ABL), 2, RIGHT})
			;BREAK
			GOTO AGAIN
		NEXT
	NEXT
	;값의 초기화
	LOCAL:5 = 0
NEXT
PRINT [100] - 확인

@USERABLUP
IF RESULT == 100
	CALL JUJUN_UP_CHECK
	CALL YOKUBO_UP_CHECK
	BEGIN TURNEND
	RETURN 1
ENDIF
RETURN 0

;ABL의 상한
@MAXABL(ARG)
;연모는 MAXLV99
IF ABL:ARG >= 99
	PRINTW 이미 MAX입니다
	RETURN 1
ELSEIF ABL:ARG >= 5 && !TALENT:연모
	PRINTW 이미 MAX입니다
	RETURN 1
ENDIF
RETURN 0

license: mit


code:
;FileName_ATTITUDE.ERB --------------------------------- Rev1. 00
;캐릭터의 태도
;CALL		USER
;ARG		VOID
;RETURN		VOID
;COMMENT
;-----------------------------------------------------------
@CHARA_ATTITUDE
VARSET LOCAL
FOR LOCAL,1,CHARANUM
	SELECTCASE CFLAG:LOCAL:호감도
		CASE IS < 1000
			LOCAL:1 = 0
		CASE 1001 TO 3000
			LOCAL:1 = 50
		CASE 3001 TO 5000
			LOCAL:1 = 75
		CASE 5001 TO 10000
			LOCAL:1 = 100
		CASE 10001 TO 30000
			LOCAL:1 = 150
		CASE 30001 TO 50000
			LOCAL:1 = 200
		CASEELSE
			LOCAL:1 = 300
	ENDSELECT
	SELECTCASE CFLAG:LOCAL:신뢰도
		CASE IS < 100
			LOCAL:1 -= 50
		CASE 101 TO 300
			LOCAL:1 -= 20
		CASE 301 TO 500
			LOCAL:1 += 0
		CASE 501 TO 750
			LOCAL:1 += 30
		CASE 751 TO 1000
			LOCAL:1 += 50
		CASEELSE
			LOCAL:1 += 100
	ENDSELECT
	;함락 소질에 의한 수정
	LOCAL:1 += TALENT:LOCAL:연모 * 100 + TALENT:LOCAL:사모 * 30 + TALENT:LOCAL:애욕 * 80 + TALENT:LOCAL:섹프 * 30
	;ABL에 의한 수정
	LOCAL:1 += MIN(ABL:LOCAL:친밀, 20) * 10 + MIN(ABL:LOCAL:욕망, 20) * 5
	;PALAM에 의한 수정(함께 최대 15 LV)
	LOCAL:1 += GETPALAMLV(PALAM:LOCAL:욕정,15) * 5 + GETPALAMLV(PALAM:LOCAL:호의,15) * 5
	;무드와 이성의 밤수정
	LOCAL:1 += BASE:LOCAL:무드 / 25 + (1000 - BASE:LOCAL:이성) / 25
	;각인에 의한 수정
	LOCAL:1 += MARK:LOCAL:괘씸각인 * 20 + MARK:LOCAL:쾌락각인 * 20
	LOCAL:1 -= MIN(MARK:LOCAL:반발각인 - MARK:LOCAL:시간각인 , 0) * 30
	;약
	IF TCVAR:LOCAL:발정
		LOCAL:1 += 50
	ELSEIF TCVAR:LOCAL:춘약 || TCVAR:LOCAL:미약
		LOCAL:1 += 30
	ENDIF
	IF IsGardenValid(LOCAL)
		LOCAL:1 += 40
	ELSEIF IsInsenceValid(LOCAL)
		LOCAL:1 += 30
	ENDIF

	;남성기피
	SIF OTOKOGIRAI(LOCAL)
		LOCAL:1 -= 70
	;동성으로 양도가 아닌 경우, 태도가 2이상이 되기 어렵다
	;코멘트에 따른 조건에 개조, 덧붙여 양성은 동성 취급
	IF TALENT:LOCAL:성별기호 != -1 && HETEROSEX(MASTER, LOCAL)
			IF LOCAL:1 < 150
				LOCAL:1 += 20
			ELSEIF LOCAL:1 > 200
				LOCAL:1 -= 30
			ENDIF
		;ENDIF
	ENDIF
	SIF TALENT:LOCAL:걸레
		LOCAL:1 += 400
	SIF CFLAG:LOCAL:억지로질내사정
		LOCAL:1 -= 100
	SIF LOCAL:1 >= 100 && FLAG:생활능력무
		LOCAL:1 += 50
	CFLAG:LOCAL:합의판정 = LOCAL:1
	SELECTCASE CFLAG:LOCAL:합의판정
		CASE IS >= 500
			CFLAG:LOCAL:태도 = 3
		CASE IS >= 300
			CFLAG:LOCAL:태도 = 2
		CASE IS >= 150
			CFLAG:LOCAL:태도 = 1
		CASEELSE
			CFLAG:LOCAL:태도 = 0
	ENDSELECT
	SIF CFLAG:LOCAL:빡침 && !FLAG:70
		CFLAG:LOCAL:태도 = 0
	SIF CFLAG:LOCAL:수면
		CFLAG:LOCAL:태도 = 0
NEXT

;FileName_ATTITUDE.ERB ------------------------------- Rev1. 00
;키스 성공 여부 판정
;CALL		USER
;ARG		커맨드 NO
;RETURN		1:커맨드 거부, 0:커맨드 성공
;COMMENT
;-----------------------------------------------------------
@REJECT_CHECK(ARG)
#FUNCTION
#DIM 필요치
필요치 = 0
VARSET LOCAL
;파라미터에 의해 성공 기초치 판정

SELECTCASE ARG
	;키스
	CASE 312, 602
		필요치 = 200 + TALENT:일선을넘지않음 * 30 + ABS(TALENT:키스미경험) * 20
		SIF GETBIT(CFLAG:기정사실, 0)
			필요치 -= 20
		SIF TALENT:사모 && !TALENT:연모
			필요치 -= 30
		;키스에 의해 합의가 붙는, 합의유의 경우 판정 없음
		IF (CFLAG:합의판정 > 필요치) || GETBIT(CFLAG:기정사실 , 2)
			RETURNF 0
		ELSE
			RETURNF 1
		ENDIF
ENDSELECT

;TFLAG:194 (1=명째가 있다　2=야외는 싫어 입니다만　3=많은 사람 플레이는 용서　4=합의가 있어도 무드가 충분하지 않다
;TCVAR:껴안고첫회　1=보통으로 합의Get　2=먼저 키스 정도 해라　3=미약or발정에는 이길 수 없었어요 …　4=분한…각인조차 없으면 히″쿠히″군　5=억지로 재촉당한다고 거절할수 없다
;6=반드시 싫지만은 않다　7=안 돼　8=논외　9=삽입금지 10= 모리야복권데이트상대

@껴안고(ARG)
#DIM 호의판정치
#DIM 이성판정치
#DIM 합의붙지않는다

합의붙지않는다 = 0
호의판정치 = CFLAG:ARG:합의판정
이성판정치 = 껴안고필요치(ARG)
;발정 등은 미리 CFLAG:합의판정으로 계산에 들어가 있지만,
;그것을 강조하는 연출을 위해서(때문에) 굳이 거기를 공제해 둔다
IF TCVAR:ARG:발정
	호의판정치  -= 50
ELSEIF TCVAR:ARG:춘약 || TCVAR:ARG:미약 ;KR판 임의수정, 일판은 미약을 LOCAL에서 처리.
	호의판정치  -= 30
ENDIF
SIF TFLAG:선향옥토
	호의판정치 -= 30

;종래의 100단위로 하트를 내는 형식이라고 줄선 수가 적어 외롭기 때문에, 50단위로 한다
CALL SHOW_LOVEPOWER(호의판정치,50)
CALL SHOW_REASONWALL(이성판정치,50)

;이 보정만은 합의를 저해하지 않는다
IF CFLAG:ARG:대주고말았다
	CALL COLORMESSAGE(@"기세라고는 하나 이전에 몸을 허락해 버린 만큼, 저항이 희박한 것 같다", C_YELLOW,2)
	이성판정치 -= 20
	CALL SHOW_REASONWALL(이성판정치,50)
ENDIF
IF 호의판정치 >= 이성판정치
	IF !GETBIT(CFLAG:ARG:기정사실 , 0) && !TALENT:ARG:무지
		TCVAR:ARG:껴안고첫회 = 2
	ELSE
		TCVAR:ARG:껴안고첫회 = 1
	ENDIF
	;보정없이 밀어 넘어뜨리지 않는다고 합의가 붙지 않는다
	SETBIT CFLAG:ARG:기정사실 , 1
	CALL COLORMESSAGE(@"%CALLNAME:ARG%의 합의를 얻었다",C_YELLOW,2)
ELSE
	IF TCVAR:ARG:발정
		이성판정치  -= 50
		CALL COLORMESSAGE(@"발정한 %CALLNAME:ARG%의 몸은, 뜻에 반해 %마스터를% 요구해 버린다……",C_YELLOW,2)
	ELSEIF TCVAR:ARG:춘약 || TCVAR:ARG:미약 ;KR판 임의수정, 일판은 미약을 LOCAL에서 처리.
		이성판정치  -= 30
		CALL COLORMESSAGE(@"약의 효과로 %CALLNAME:ARG%의 \@ TCVAR:ARG:춘약? 가슴이 크게 고동친다 # 몸이 쑤신다\@……",C_YELLOW,2)
	ENDIF
	SIF TCVAR:ARG:춘약 || TCVAR:ARG:미약 || TCVAR:ARG:발정  ;KR판 임의수정, 일판은 미약을 LOCAL에서 처리.
		CALL SHOW_REASONWALL(이성판정치,50)

	IF IsGardenValid(ARG)
		이성판정치  -= 50
		CALL COLORMESSAGE(@"고혹적인 향기가, %CALLNAME:ARG%의 본능을 부추긴다……",C_YELLOW,2)
		CALL SHOW_REASONWALL(이성판정치,50)
	ENDIF
	IF TFLAG:선향옥토
		이성판정치  -= 30
		CALL COLORMESSAGE(@"야릇하게 출렁이듯 피어나는 연기가 %CALLNAME:ARG%에게 달콤한 환각을 불러일으킨다……",C_YELLOW,2)
		CALL SHOW_REASONWALL(이성판정치,50)
	ENDIF

	IF 호의판정치 >= 이성판정치
		TCVAR:ARG:껴안고첫회 = 3
	ELSEIF FLAG:모리야복권데이트상대 == ARG
		TCVAR:ARG:껴안고첫회 = 10
	ELSE
		IF CFLAG:ARG:몸목적
			CALL COLORMESSAGE(@"애욕을 독점하는 미라다의돌밀레니엄이 요염하게 빛난다…!",C_YELLOW,2)
			SIF TALENT:ARG:일선을넘지않음
				CALL COLORMESSAGE(@"【일선을넘지않음】에 의해 효과 반감",C_YELLOW,1)
			이성판정치 -= 100
			CALL SHOW_REASONWALL(이성판정치,50)
		ENDIF
		IF MARK:ARG:시간각인
			CALL COLORMESSAGE(@"정지된 시간 속에서 개발된%CALLNAME:TARGET%의 몸은, 본인의 의지와 상관없이 %마스터를% 요구해 버린다…",C_YELLOW,2)
			이성판정치 -= MARK:ARG:시간각인 * 30
			CALL SHOW_REASONWALL(이성판정치,50)
		ENDIF
		IF 호의판정치 >= 이성판정치
			TCVAR:ARG:껴안고첫회 = 4
		ELSEIF CFLAG:ARG:패배자
			TCVAR:ARG:껴안고첫회 = 20
		ELSEIF 호의판정치 >= 이성판정치 - 50
			IF TALENT:ARG:담력 < 0
				TCVAR:ARG:껴안고첫회 = 5
			ELSE
				TCVAR:ARG:껴안고첫회 = 6
			ENDIF
		ELSEIF 호의판정치 >= 이성판정치 - 150
			TCVAR:ARG:껴안고첫회 = 7

		ELSE
			TCVAR:ARG:껴안고첫회 = 8
		ENDIF
	ENDIF
ENDIF

SELECTCASE TCVAR:ARG:껴안고첫회
	CASE 1 TO 5
		CFLAG:ARG:우후후 = 1
		CFLAG:MASTER:우후후 = 1
		SIF TCVAR:ARG:껴안고첫회 == 5
			SOURCE:ARG:공포 += 1000
			SIF !GETBIT(CFLAG:ARG:기정사실, 1)
				CFLAG:ARG:대주고말았다 = 1
	CASE 6
		SOURCE:ARG:사랑 += 500
		TFLAG:밀어넘어뜨릴수없다 ++
	CASE 7
		SOURCE:ARG:반감 += 1000
		TFLAG:밀어넘어뜨릴수없다 ++
		TFLAG:98 = -3
	CASE 10
		SOURCE:ARG:반감 += 1000
		TFLAG:98 = -10
	CASE 20
		SOURCE:ARG:반감 += 1000
		TFLAG:98 = -10
		TCVAR:ARG:억지로 = 1
		CFLAG:ARG:우후후 = 1
		CFLAG:MASTER:우후후 = 1
	CASE 8
		SOURCE:ARG:반감 += 3000
		TFLAG:밀어넘어뜨릴수없다 ++
		TFLAG:98 = -5
		SIF TALENT:ARG:담력 < 0
			SOURCE:ARG:공포 += 1000
	[SKIPSTART]
	CASE 9
		PRINTFORML %타겟은% %마스터를% 거절했지만, 그 뺨은 희미하게 상기 해, 눈동자는 정욕에 물기를 띠고 있다…
		$LOOP
		PRINTL [0] 억지로 강요한다
		PRINTFORML [1] \@ TALENT:MASTER:2 == 2 ?  신사 # 숙녀 \@이므로 그런 일은 하지 않는다
		INPUT
		IF RESULT == 1
			PRINTFORML %마스터는% 솔직하게 물러났다
			PRINTFORML %타겟은% 기분 탓인지 아쉬움 아까워하는 기색이다…
			SOURCE:ARG:반감 += 700
			TFLAG:밀어넘어뜨릴수없다 ++
			TFLAG:98 = -1
		ELSEIF RESULT == 0
			PRINTFORML %마스터는% 조용히%타겟을% 껴안으면(자), 억지로 입술을 빼앗았다…
				PRINTL
				PRINTL
				FONTSTYLE 3
				ALIGNMENT CENTER
				PRINTL 즈큐우우
				PRINTL
				PRINTW
				FONTREGULAR
				ALIGNMENT LEFT
				IF TALENT:TARGET:6
					CALL SET_FIRSTKISS(TARGET)
					PRINT 끔찍하게 첫키스를 빼앗겼음에도 불구하고,
				ENDIF
				PRINTFORMW 알지 않는 사이에 저속해지고 자르고 있던%CALLNAME:TARGET%의 몸은, %CALLNAME:MASTER%의 체온, 냄새나 반응해 %마스터를% 받아들이려고 끝낸다…
				;실패
				IF TALENT:TARGET:6
					PRINTFORMW 그러나%타겟은% 기력을 쥐어짜%마스터를% 뿌리치면(자)
					PRINTW 진한 개 도대체 뭐 생각하는거야!도둑 물로 입을 씻고 있겠어!
					IF ABL:TARGET:전투 기능 > ABL:MASTER:전투 기능
						FONTITALIC
						PRINTW 「이 여자!일부러 도둑으로 씻어 자신의 의지를 나타낼까!그런것은 꽉 차지 않는 자존심다!」
						FONTREGULAR
						PRINTFORML 이성을 잃은 %마스터는% %CALLNAME:TARGET%에 덤벼 들었지만, 그녀 힘은 %마스터를% 능가하고 있었다.
						PRINTFORML %CALLNAME:TARGET%의 눈이 결단적 살의에 번쩍과 빛난다!「이약!」
						PRINTFORML 「그워!」%마스터는% 와이어 액션인 듯해 날아가 벽에 두드려 붙여졌다.
						PRINTFORML %타겟은% 재빠르게 달려들어 마운트를 빼앗는다!
						FONTITALIC
						PRINTFORMW 「네가 울 때까지 때리는 것을 그만두지 않는!」
						FONTREGULAR
						PRINTFORMW 「이약!」 오른쪽 파운드!「그워!」
						PRINTFORMW 「이약!」왼쪽 파운드!「그워!」
						PRINTFORMW %마스터가% 되받아 친다!「이약!」
						PRINTFORMW %타겟은% 가이드 해, 「이약!」 오른쪽 파운드!「그워!」
						PRINTFORMW 「이약!」왼쪽 파운드!「그워!」
						FONTITALIC
						PRINTFORMW 「, 잘도……잘도 잘도!이 %CALLNAME:MASTER%로 향해… 이 추접스러운 바보가!」
						FONTREGULAR
						PRINTFORML 위독한 대미지를 진%마스터는% 울부짖어 도망갔다
						PRINTFORML 브자마!
						DOWNBASE:MASTER:체력 = ABL:TARGET:전투 기능 * 500
						DOWNBASE:MASTER:기력 = ABL:TARGET:전투 기능 * 500
					ELSE
				;성공
			IF TEQUIP:0 > 1
				IF PALAM:윤활 > PALAMLV:4
					PRINTFORM 질퍽질퍽하게 젖었다
				ELSEIF PALAM:윤활 > PALAMLV:2
					PRINTFORM 희미하게 습기찼다
				ENDIF
			ENDIF
			PRINTFORML %SHOW_BOTTOM(TARGET)%에 손을 넣어 깐족깐족괴롭히고 …
			PRINTFORML %CALLNAME:TARGET%
			;실패
	[SKIPEND]
ENDSELECT

@껴안고필요치(ARG)
#FUNCTION
LOCAL = 350
LOCAL += TALENT:ARG:일선을넘지않음 * 50 + TALENT:ARG:자존심 * 30 + TALENT:ARG:태도 * 20 - TALENT:ARG:성적흥미 * 20 + TALENT:ARG:정조 * 50
SIF !GETBIT(CFLAG:ARG:기정사실 , 0)
	LOCAL += 20
;양도가 아니고 동성
IF TALENT:ARG:성별기호 != -1
	SIF OTOKOGIRAI(ARG)
		LOCAL += 50
ENDIF
;연모도 사모도 애욕도 없음
SIF !TALENT:ARG:사모 && !TALENT:ARG:연모 && !TALENT:ARG:애욕
	LOCAL += 50
;남성기피
SIF OTOKOGIRAI(ARG)
	LOCAL += 50
;무지
SIF TALENT:ARG:무지
	LOCAL -= 50
SIF CFLAG:ARG:약점잡힘
	LOCAL -= 50
;욕구 불만
LOCAL -= CFLAG:ARG:욕구불만도 / 20
LOCAL -= (EX:ARG:C절정직전 + EX:ARG:V절정직전 + EX:ARG:A절정직전 + EX:ARG:B절정직전 + EX:ARG:M절정직전) * 20
RETURNF LOCAL


code:
@PEARL_CHK_MASTER
#DIM INSERTER
#DIM CONST INTERVAL = 30
#DIM KAKUNIN
#DIM LAPSE

SIF !TFLAG:펄기한
	RETURN

INSERTER = TFLAG:펄넣은사람

;과연 타인이 있으면 체크하지 않는다
KAKUNIN = 1
SIF CFLAG:INSERTER:현재위치 != CFLAG:MASTER:현재위치
	KAKUNIN = 0
SIF GET_TARGETNUM() > 1
	KAKUNIN = 0
SIF !SHIRAHU(INSERTER)
	KAKUNIN = 0

IF TFLAG:펄삽입개수
	SOURCE:MASTER:쾌A += TIME_PROGRESS(TIME:1) * TFLAG:펄삽입개수
	SOURCE:MASTER:고통 += TIME_PROGRESS(TIME:1) * TFLAG:펄삽입개수 * 2
	DOWNBASE:MASTER:체력 += TIME_PROGRESS(TIME:1)
ENDIF

IF TFLAG:펄기한 < TIME && TFLAG:펄기한 > 0 && TFLAG:펄삽입개수
	PRINTFORML %마스터는% 약속의 시간까지 참아냈다
	PRINTFORML %CALLNAME:INSERTER%에 뽑아 받자
	TFLAG:펄기한 = -1
ENDIF
IF KAKUNIN
	IF TFLAG:펄기한 == -1
		PRINTFORMW %CALLNAME:INSERTER%는 기한까지 참을 수 있었던 %CALLNAME:MASTER%의 머리를 어루만지면서, 애널 펄을 한 개씩 천천히 뽑아 냈다
		CALL PEARL_EJECT("뽑아냄")
		RETURN
	ELSEIF TFLAG:펄기한 == -2
		PRINTFORML 애널 펄이 다 없어지고 있던 일을 눈치챈 %CALLNAME:INSERTER%는, 다시 해, 라고 말해 또 1구슬씩 %CALLNAME:MASTER%의 직장에 밀어넣었다!
		CALL PEARL_INSERT(INSERTER,5)
	ENDIF
ENDIF

LAPSE = (TIME - TFLAG:펄배출체크) / INTERVAL

IF LAPSE && TFLAG:펄기한 > 0
	TFLAG:펄배출체크 = TIME
	IF KAKUNIN
		PRINTFORML %CALLNAME:INSERTER%는 %CALLNAME:MASTER%의 엉덩이에 손을 움직여, 애널 펄 상태를 확인했다…
		PRINTFORML %CALLNAME:MASTER%의 엉덩이 구멍으로부터 펄이 매달려 있는 것을 확인하면, %CALLNAME:INSERTER%는 미소지어 링을 가볍게 당겨, %CALLNAME:MASTER%에 좀 더 참도록 말했다…
		SOURCE:MASTER:쾌A += 50
	ENDIF
	FOR LOCAL, 0, LAPSE
		CALL PEARL_PATIENCE
	NEXT
ENDIF

@PEARL_EJECT(ARGS)
#DIM INSERTER
#DIM OTOSIDAMA
INSERTER = TFLAG:펄넣은사람

IF ARGS == "자연 배출"
	SOURCE:MASTER:쾌A += 100
	EXP:MASTER:A경험 += 1
	TFLAG:펄삽입개수 -= 1
	PRINTFORMW 애널 펄이 1구슬 나와 버렸다（나머지 {TFLAG:펄삽입개수}구슬）
	IF !TFLAG:펄삽입개수
		PRINTFORMW 펄이 다 없어져 버렸다…
		TFLAG:펄기한 = -2
	ENDIF
ELSEIF ARGS == "뽑아냄"
	SOURCE:MASTER:쾌A += TFLAG:펄삽입개수 * 200
	EXP:MASTER:A경험 += TFLAG:펄삽입개수
	EXP:MASTER:고통쾌락경험 += TFLAG:펄삽입개수 * 3
	EXP:INSERTER:가학쾌락경험 += TFLAG:펄삽입개수 * 3
	SOURCE:INSERTER:가학 += TFLAG:펄삽입개수 * 100
	TFLAG:펄삽입개수 = 0
	TFLAG:펄기한 = 0
	TFLAG:펄넣은사람 = 0
	TFLAG:펄배출체크 = 0
	IF FESTIVAL() == "설날"
		SELECTCASE RAND:3
			CASE 0
				OTOSIDAMA = 10000
			CASE 1
				OTOSIDAMA = 30000
			CASE 2
				OTOSIDAMA = 50000
		ENDSELECT
		PRINTFORMW …?
		PRINTFORMW 펄의 말단에, 넣어진 기억이 없는 황금의 구슬이 도착해 있다
		CALL COLORMESSAGE(@"세배돈 보너스! ￥{OTOSIDAMA} 손에 넣었다!",C_YELLOW,2)
		MONEY += OTOSIDAMA
	ENDIF
ENDIF

@PEARL_INSERT(ARG,ARG:1)
TFLAG:펄삽입개수 = ARG:1
TFLAG:펄기한 = TIME + TFLAG:펄삽입개수 * 30 + RAND:30 + RAND:30
TFLAG:펄넣은사람 = ARG
SOURCE:MASTER:쾌A += TFLAG:펄삽입개수 * 10
TFLAG:펄배출체크 = TIME

@PEARL_PATIENCE
PRINTFORML 애널 펄이 항문으로부터 흘러넘칠 것 같다…
CALL ASK_M("견딘다(기력 50)",BASE:MASTER:기력 >= 50, "전력으로 견딘다(기력 200)",BASE:MASTER:기력 >= 100, "힘을 뺀다",1)
SELECTCASE RESULT
	CASE 0
		DOWNBASE:MASTER:기력 += 50
		IF !RAND:2
			PRINTFORMW %마스터는% 배설감을 견뎠다
		ELSE
			PRINTFORMW %마스터는% 배설감을 견디지 못했다
			CALL PEARL_EJECT("자연 배출")
		ENDIF
	CASE 1
		PRINTFORMW %마스터는% 필사적으로 배설감을 견뎠다
		DOWNBASE:MASTER:기력 += 200
	CASE 2
		CALL PEARL_EJECT("자연 배출")
ENDSELECT


code:
;*********************************************************************************************
;カウンターコマンド：애널애무
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOMF55(ARG)

	;몸의자세の変更
	;=============================
	CALL TOUCH_SET(SET_FROM_YUBI,7,ARG)
	TFLAG:MASTER의A사용중 ++

	;ソース計算および内部処理系統
	;=============================
	IF TEQUIP:PLAYER:0 & 12
		CALL DATUI_BOTTOM(ARG,2)
	ELSEIF TEQUIP:PLAYER:0 & 2
		SIF RAND:2
			CALL DATUI_BOTTOM(ARG,1)
	ENDIF
	SOURCE:ARG:성행동 += 150
	SOURCE:ARG:가학 = 500
	SOURCE:ARG:유혹 += 100
	SOURCE:ARG:도발 += 100
	SOURCE:ARG:봉사 += 100
	SOURCE:ARG:정복 += 600
	SOURCE:PLAYER:쾌A += 300
	EXP:ARG:수음경험 ++
	;봉사플래그
	TCVAR:ARG:108 = 1
	TCVAR:ARG:기학플래그 = 1
	;성교中は69にならない
	IF MASTER_POSE(SET_V,SET_P) == ARG || MASTER_POSE(SET_A,SET_P) == ARG || MASTER_POSE(SET_P,SET_V) == ARG || MASTER_POSE(SET_P,SET_A) == ARG
		LOCAL = 0
	ELSE
		LOCAL = 2
	ENDIF
	CALL EVENT_COUNTER_POSE_69(ARG,LOCAL)

	;マスターカウンター制御
	;(ビット立ちで不可 0=엉덩이를 쓰다듬는다 1=껴안는다 2=키스한다 3=가슴애무 4=애널애무 5=클리애무 6=指挿入れ 7=치마를 넘긴다)
	;=============================
	SIF EQUIP:PLAYER:51 < 0
		CALL 카운터삽입됨지속처리(ARG)
	IF TEQUIP:MASTER:체위 == 2
		SETBIT TCVAR:ARG:26 ,0
		SETBIT TCVAR:ARG:26 ,1
		SETBIT TCVAR:ARG:26 ,2
		SETBIT TCVAR:ARG:26 ,3
		SETBIT TCVAR:ARG:26 ,4
		SETBIT TCVAR:ARG:26 ,5
		SETBIT TCVAR:ARG:26 ,6
	ELSEIF TEQUIP:MASTER:체위 == 5
		SETBIT TCVAR:ARG:26 ,0
		SETBIT TCVAR:ARG:26 ,1
		SETBIT TCVAR:ARG:26 ,3
		SETBIT TCVAR:ARG:26 ,4
		SETBIT TCVAR:ARG:26 ,5
		SETBIT TCVAR:ARG:26 ,6
	ELSEIF TEQUIP:MASTER:체위 == 3 || TEQUIP:MASTER:체위 == 1
		SETBIT TCVAR:ARG:26 ,4
		SETBIT TCVAR:ARG:26 ,5
		SETBIT TCVAR:ARG:26 ,6
	ELSEIF TEQUIP:MASTER:체위 == 4
		SETBIT TCVAR:ARG:26 ,5
		SETBIT TCVAR:ARG:26 ,6
	ENDIF
	SETBIT TCVAR:ARG:26 ,7

RETURN 1

;*********************************************************************************************
;カウンター実行可否出力関数
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOM_ABLE55(ARG)

	SIF TFLAG:64
		RETURN 0
	SIF ABL:ARG:손가락 < 1
		RETURN 0
	SIF TEQUIP:MASTER:51 >= 0
		RETURN 0
	SIF PALAM:MASTER:윤활 < PALAMLV:2
		RETURN 0

RETURN 1

;*********************************************************************************************
;カウンター実行判定値算出関数
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOM_ORDER55(커맨드번호, ARG, 기본치)
#DIM 커맨드번호
#DIM 기본치
#DIMS 카운터타입

	;카운터타입設定
	;=============================
	카운터타입 = 탈의애무

	;実行判定値算出式
	;=============================
	LOCAL = (기본치 + 2 * TALENT:ARG:능숙한손가락 + ABL:ARG:손가락) * SIGN(EXP:ARG:A경험)

	;카운터타입別計算処理 実質実行判定処理を含む
	;=============================
	LOCAL = MAX(LOCAL + COUNTER_SIKOU:ARG:커맨드번호, 1)
	LOCAL *= COUNTER_TYPE(카운터타입, ARG)

RETURN LOCAL


code:
;*********************************************************************************************
;カウンターコマンド：指挿入
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOMF57(ARG)

	;몸의자세の変更
	;=============================
	CALL TOUCH_SET(SET_FROM_YUBI,6,ARG)
	TFLAG:MASTER의V사용중 ++

	;ソース計算および内部処理系統
	;=============================
	IF BEDROOM(CFLAG:MASTER:현재위치)
		SIF TEQUIP:PLAYER:0
			CALL DATUI_BOTTOM(ARG,2)
	ELSE
		SIF TEQUIP:PLAYER:0 & 14
			CALL DATUI_BOTTOM(ARG,1)
	ENDIF
	SOURCE:ARG:성행동 += 150
	SOURCE:ARG:송구스러운 += 200
	SOURCE:ARG:도발 += 150
	SOURCE:ARG:정복 += 400
	SOURCE:ARG:가학 = 100
	SOURCE:PLAYER:쾌V += 300
	EXP:ARG:수음경험 ++
	TCVAR:ARG:기학플래그 = 1
	;성교中は69にならない
	IF MASTER_POSE(SET_V,SET_P) == ARG || MASTER_POSE(SET_A,SET_P) == ARG || MASTER_POSE(SET_P,SET_V) == ARG || MASTER_POSE(SET_P,SET_A) == ARG
		LOCAL = 0
	ELSE
		LOCAL = 2
	ENDIF
	CALL EVENT_COUNTER_POSE_69(ARG,LOCAL)

	;マスターカウンター制御
	;(ビット立ちで不可 0=엉덩이를 쓰다듬는다 1=껴안는다 2=키스한다 3=가슴애무 4=애널애무 5=클리애무 6=指挿入れ 7=치마를 넘긴다)
	;=============================
	SIF EQUIP:PLAYER:50 < 0
		CALL 카운터삽입됨지속처리(ARG)
	IF TEQUIP:MASTER:체위 == 2
		SETBIT TCVAR:ARG:26 ,0
		SETBIT TCVAR:ARG:26 ,1
		SETBIT TCVAR:ARG:26 ,2
		SETBIT TCVAR:ARG:26 ,3
		SETBIT TCVAR:ARG:26 ,4
		SETBIT TCVAR:ARG:26 ,5
		SETBIT TCVAR:ARG:26 ,6
	ELSEIF TEQUIP:MASTER:체위 == 5
		SETBIT TCVAR:ARG:26 ,0
		SETBIT TCVAR:ARG:26 ,1
		SETBIT TCVAR:ARG:26 ,3
		SETBIT TCVAR:ARG:26 ,4
		SETBIT TCVAR:ARG:26 ,5
		SETBIT TCVAR:ARG:26 ,6
	ELSEIF TEQUIP:MASTER:체위 == 3 || TEQUIP:MASTER:체위 == 1
		SETBIT TCVAR:ARG:26 ,4
		SETBIT TCVAR:ARG:26 ,5
		SETBIT TCVAR:ARG:26 ,6
	ELSEIF TEQUIP:MASTER:체위 == 4
		SETBIT TCVAR:ARG:26 ,5
		SETBIT TCVAR:ARG:26 ,6
	ENDIF
	SETBIT TCVAR:ARG:26 ,7

RETURN 1

;*********************************************************************************************
;カウンター実行可否出力関数
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOM_ABLE57(ARG)

	SIF TFLAG:63
		RETURN 0
	SIF !TALENT:ARG:새드 && TALENT:PLAYER:처녀 && TALENT:PLAYER:처녀 != -1
		RETURN 0
	SIF !(TALENT:PLAYER:2 & 1)
		RETURN 0
	SIF TEQUIP:MASTER:50 >= 0
		RETURN 0
	SIF !TALENT:ARG:새드 && PALAM:MASTER:윤활 < PALAMLV:2
		RETURN 0

RETURN 1

;*********************************************************************************************
;カウンター実行判定値算出関数
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOM_ORDER57(커맨드번호, ARG, 기본치)
#DIM 커맨드번호
#DIM 기본치
#DIMS 카운터타입

	;카운터타입設定
	;=============================
	카운터타입 = 탈의애무

	;実行判定値算出式
	;=============================
	LOCAL = 기본치 + 2 * TALENT:ARG:능숙한손가락 + ABL:ARG:손가락

	;카운터타입別計算処理 実質実行判定処理を含む
	;=============================
	LOCAL = MAX(LOCAL + COUNTER_SIKOU:ARG:커맨드번호, 1)
	LOCAL *= COUNTER_TYPE(카운터타입, ARG)

RETURN LOCAL


code:
;*********************************************************************************************
;カウンターコマンド：정상위당한다
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOMF80(ARG)

	;몸의자세の変更
	;=============================
	SIF MASTER_POSE(0,SET_P) == ARG
		CALL TOUCH_RESET_T(ARG)
	CALL TOUCH_SET(SET_FROM_P,6,ARG)
	TFLAG:MASTER의V사용중 ++

	;ソース計算および内部処理系統
	;=============================
	IF BEDROOM(CFLAG:MASTER:현재위치)
		SIF TEQUIP:MASTER:0
			CALL DATUI_BOTTOM(ARG,0)
	ELSE
		SIF TEQUIP:MASTER:0 & 14
			CALL DATUI_BOTTOM(ARG,1)
	ENDIF
	TCVAR:ARG:동정상실 = 1
	SOURCE:ARG:성행동 += 300
	SOURCE:ARG:정복 += 1200
	SOURCE:ARG:유혹 += 600
	SOURCE:ARG:가학 += 400
	SOURCE:ARG:강요 += 800
	SOURCE:PLAYER:쾌V += 1000
	TCVAR:ARG:4 += 1000
	CALL PAIN_CHECK_V_MASTER(ARG)
	;사정장소（1=질내 2=애널 3=수음 4=口淫 5=파이즈리 6=스마타 7=풋잡 8=体表 9=애널봉사 10=道具 11=触手 12=Ａ고문 13=Ｖ고문）
	CALL 사정대상등록(PLAYER, ARG, 13)
	TCVAR:PLAYER:4 += 150
	TCVAR:ARG:기학플래그 = 1
	;사정장소（1=질내 2=애널 3=수음 4=口淫 5=파이즈리 6=스마타 7=풋잡 8=体表 9=애널봉사 10=道具 11=触手 12=Ａ고문 13=Ｖ고문）
	CALL 사정대상등록(ARG, PLAYER, 1)
	TEQUIP:MASTER:체위 = 1
	STAIN:ARG:2 |= STAIN:PLAYER:6
	STAIN:PLAYER:6 |= STAIN:ARG:2
	EXP:PLAYER:V성교경험 ++
	EXP:ARG:삽입경험 ++
	CALL LOST_VIRGIN(PLAYER)
	TEQUIP:PLAYER:50 = ARG

	;マスターカウンター制御
	;(ビット立ちで不可 0=엉덩이를 쓰다듬는다 1=껴안는다 2=키스한다 3=가슴애무 4=애널애무 5=클리애무 6=指挿入れ 7=치마를 넘긴다)
	;=============================
	;CALL 카운터삽입됨지속처리(ARG)
	SETBIT TCVAR:ARG:26 ,4
	SETBIT TCVAR:ARG:26 ,5
	SETBIT TCVAR:ARG:26 ,6
	SETBIT TCVAR:ARG:26 ,7

RETURN 1

;*********************************************************************************************
;カウンター実行可否出力関数
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOM_ABLE80(ARG)

	SIF !(TALENT:ARG:2 & 2)
		RETURN 0
	SIF !(TALENT:PLAYER:2 & 1)
		RETURN 0
	SIF TALENT:ARG:임신 && (CFLAG:ARG:903 <= 30 || CFLAG:ARG:903 >= 71)
		RETURN 0
	SIF CFLAG:ARG:육아인원수 >= 1 && CFLAG:ARG:육아인원수 <= 30
		RETURN 0
	SIF BASE:ARG:발기 < 1000
		RETURN 0
	SIF TFLAG:63
		RETURN 0
	SIF TEQUIP:ARG:50 >= 0 || TEQUIP:ARG:51 >= 0
		RETURN 0
	SIF TEQUIP:MASTER:50 >= 0 || TEQUIP:MASTER:51 >= 0
		RETURN 0
	;정조帯、触手下着をはいてるとダメ
	SIF EQUIP:ARG:하반신속옷2 == 27 || EQUIP:ARG:하반신속옷2 == 28
		RETURN 0
	SIF !TALENT:ARG:새드 && PALAM:MASTER:윤활 < PALAMLV:3
		RETURN 0

RETURN 1

;*********************************************************************************************
;カウンター実行判定値算出関数
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOM_ORDER80(커맨드번호, ARG, 기본치)
#DIM 커맨드번호
#DIM 기본치
#DIMS 카운터타입

	;카운터타입設定
	;=============================
	카운터타입 = 성교

	;実行判定値算出式
	;=============================
	LOCAL = 기본치 + ABL:ARG:C감각 + MAX(EXP:ARG:사정경험 / 15, 15)

	;카운터타입別計算処理 実質実行判定処理を含む
	;=============================
	LOCAL = MAX(LOCAL + COUNTER_SIKOU:ARG:커맨드번호, 1)
	LOCAL *= COUNTER_TYPE(카운터타입, ARG)

RETURN LOCAL


code:
;*********************************************************************************************
;カウンターコマンド：후배위당한다
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOMF83(ARG)

	;몸의자세の変更
	;=============================
	SIF MASTER_POSE(0,SET_P) == ARG
		CALL TOUCH_RESET_T(ARG)
	CALL TOUCH_SET(SET_FROM_P,6,ARG)
	TFLAG:MASTER의V사용중 ++

	;ソース計算および内部処理系統
	;=============================
	TCVAR:ARG:동정상실 = 1
	IF BEDROOM(CFLAG:MASTER:현재위치)
		SIF TEQUIP:ARG:0
			CALL DATUI_BOTTOM_T(ARG,0)
	ELSE
		SIF TEQUIP:ARG:0 & 14
			CALL DATUI_BOTTOM_T(ARG,1)
	ENDIF
	SOURCE:ARG:성행동 += 300
	SOURCE:ARG:정복 += 1500
	SOURCE:ARG:유혹 += 300
	SOURCE:ARG:가학 += 600
	SOURCE:ARG:강요 += 600
	SOURCE:PLAYER:쾌V += 1000
	TCVAR:ARG:4 += 1000
	CALL PAIN_CHECK_V_MASTER(ARG)
	;사정장소（1=질내 2=애널 3=수음 4=口淫 5=파이즈리 6=스마타 7=풋잡 8=体表 9=애널봉사 10=道具 11=触手 12=Ａ고문 13=Ｖ고문）
	CALL 사정대상등록(PLAYER, ARG, 13)
	TCVAR:PLAYER:4 += 150
	;사정장소（1=질내 2=애널 3=수음 4=口淫 5=파이즈리 6=스마타 7=풋잡 8=体表 9=애널봉사 10=道具 11=触手 12=Ａ고문 13=Ｖ고문）
	CALL 사정대상등록(ARG, PLAYER, 1)
	TEQUIP:MASTER:체위 = 2
	STAIN:ARG:2 |= STAIN:PLAYER:6
	STAIN:PLAYER:6 |= STAIN:ARG:2
	EXP:PLAYER:V성교경험 ++
	EXP:ARG:삽입경험 ++
	CALL LOST_VIRGIN(PLAYER)
	TEQUIP:PLAYER:50 = ARG
	TCVAR:ARG:기학플래그 = 1

	;マスターカウンター制御
	;(ビット立ちで不可 0=엉덩이를 쓰다듬는다 1=껴안는다 2=키스한다 3=가슴애무 4=애널애무 5=클리애무 6=指挿入れ 7=치마를 넘긴다)
	;=============================
	;CALL 카운터삽입됨지속처리(ARG)
	SETBIT TCVAR:ARG:26 ,0
	SETBIT TCVAR:ARG:26 ,1
	SETBIT TCVAR:ARG:26 ,2
	SETBIT TCVAR:ARG:26 ,3
	SETBIT TCVAR:ARG:26 ,4
	SETBIT TCVAR:ARG:26 ,5
	SETBIT TCVAR:ARG:26 ,6
	SETBIT TCVAR:ARG:26 ,7

RETURN 1

;*********************************************************************************************
;カウンター実行可否出力関数
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOM_ABLE83(ARG)

	SIF !(TALENT:ARG:2 & 2)
		RETURN 0
	SIF !(TALENT:PLAYER:2 & 1)
		RETURN 0
	SIF TALENT:ARG:임신 && (CFLAG:ARG:903 <= 30 || CFLAG:ARG:903 >= 71)
		RETURN 0
	SIF CFLAG:ARG:육아인원수 >= 1 && CFLAG:ARG:육아인원수 <= 30
		RETURN 0
	SIF BASE:ARG:발기 < 1000
		RETURN 0
	SIF TFLAG:63
		RETURN 0
	SIF TEQUIP:ARG:50 >= 0 || TEQUIP:ARG:51 >= 0
		RETURN 0
	SIF TEQUIP:MASTER:50 >= 0 || TEQUIP:MASTER:51 >= 0
		RETURN 0
	;정조帯、触手下着をはいてるとダメ
	SIF EQUIP:ARG:하반신속옷2 == 27 || EQUIP:ARG:하반신속옷2 == 28
		RETURN 0
	SIF !TALENT:ARG:새드 && PALAM:MASTER:윤활 < PALAMLV:3
		RETURN 0

RETURN 1

;*********************************************************************************************
;カウンター実行判定値算出関数
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOM_ORDER83(커맨드번호, ARG, 기본치)
#DIM 커맨드번호
#DIM 기본치
#DIMS 카운터타입

	;카운터타입設定
	;=============================
	카운터타입 = 성교

	;実行判定値算出式
	;=============================
	LOCAL = (기본치*7/10) + ABL:ARG:C감각 + MAX(EXP:ARG:사정경험 / 15, 15) + ABL:ARG:새드끼 / 2

	;카운터타입別計算処理 実質実行判定処理を含む
	;=============================
	LOCAL = MAX(LOCAL + COUNTER_SIKOU:ARG:커맨드번호, 1)
	LOCAL *= COUNTER_TYPE(카운터타입, ARG)

RETURN LOCAL


code:
;*********************************************************************************************
;カウンターコマンド：腰振りＶ受け
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOMF84(ARG)

	;몸의자세の変更
	;=============================
	CALL TOUCH_SET(SET_FROM_P,6,ARG)
	CALL DATUI_FOR_INSERT(ARG)
	TFLAG:MASTER의V사용중 ++

	;ソース計算および内部処理系統
	;=============================
	[SKIPSTART]
		SOURCE:ARG:성행동 += 300
		SOURCE:ARG:정복 += 1200
		SOURCE:ARG:유혹 += 400
		SOURCE:ARG:가학 += 400
		SOURCE:ARG:강요 += 800
		SOURCE:PLAYER:쾌V += 1000
		CALL PAIN_CHECK_V_MASTER(ARG)
		LOCALS = {ARG}/
		CSTR:PLAYER:10 += LOCALS
		TCVAR:PLAYER:2 = 13
		TCVAR:PLAYER:4 += 150
		LOCALS = {PLAYER}/
		CSTR:ARG:10 += LOCALS
		TCVAR:ARG:2 = 1
		TCVAR:ARG:4 += 1000
		STAIN:ARG:2 |= STAIN:PLAYER:6
		STAIN:PLAYER:6 |= STAIN:ARG:2
		EXP:PLAYER:V성교경험 ++
		EXP:ARG:삽입경험 ++
		CALL LOST_VIRGIN(PLAYER)
		TEQUIP:PLAYER:50 = ARG
		TCVAR:ARG:기학플래그 = 1
	[SKIPEND]
	CALL DATUI_FOR_INSERT(ARG)
	TCVAR:ARG:4 += 1000
	SOURCE:ARG:성행동 += 300
	SOURCE:ARG:정복 += 1200
	SOURCE:ARG:유혹 += 400
	SOURCE:ARG:가학 += 400
	SOURCE:ARG:강요 += 800
	SOURCE:PLAYER:쾌V += 1000
	;자궁구개발경험で快感追加。「삽입자궁구자극」から流用
	;全ての要求値を50から25に低下。相手の행동ランダムだと狙って上げてもらう事も難しいと思うので…
	;덮치기からのその他挿入系で자궁口고문られ実装できたら戻したい
	SELECTCASE EXP:PLAYER:자궁구개발경험
		CASE IS > 150
			SOURCE:PLAYER:쾌V += 200
		CASE IS > 75
			SOURCE:PLAYER:쾌V += 100
		CASE IS > 25
		CASEELSE
			SOURCE:PLAYER:쾌V /= 2
	ENDSELECT
	CALL PAIN_CHECK_V_MASTER(ARG)
	;사정장소（1=질내 2=애널 3=수음 4=口淫 5=파이즈리 6=스마타 7=풋잡 8=体表 9=애널봉사 10=道具 11=触手 12=Ａ고문 13=Ｖ고문）
	CALL 사정대상등록(PLAYER, ARG, 13)
	TCVAR:PLAYER:4 += 150
	;사정장소（1=질내 2=애널 3=수음 4=口淫 5=파이즈리 6=스마타 7=풋잡 8=体表 9=애널봉사 10=道具 11=触手 12=Ａ고문 13=Ｖ고문）
	CALL 사정대상등록(ARG, PLAYER, 1)
	;なんとなく사정快感1500に上げる。奥で出したいのがペニスの本能ってことで
	TCVAR:ARG:4 += 1500
	STAIN:ARG:2 |= STAIN:PLAYER:6
	STAIN:PLAYER:6 |= STAIN:ARG:2
	EXP:PLAYER:V성교경험 ++
	EXP:ARG:삽입경험 ++
	;호감도が高いと사정感度増加。とりあえず연모ラインの10000で200増加の打ち止め1000
	SIF CFLAG:ARG:호감도 >= 10000
		TCVAR:ARG:4 += MIN(CFLAG:ARG:호감도 / 50,1000)
	;「삽입자궁구자극」から流用。開発経験で更に사정感度増加
	;こちらも半分の値から発生
	SIF EXP:PLAYER:자궁구개발경험 >= 25
		TCVAR:ARG:4 += MIN(EXP:PLAYER:자궁구개발경험 * 5,1500)
	;同じく流用。開発経験追加と腰使いレベルで更に追加
	EXP:PLAYER:자궁구개발경험 ++
	SIF ABL:ARG:허리 >= 3
		EXP:PLAYER:자궁구개발경험 ++
	CALL LOST_VIRGIN(PLAYER)
	TEQUIP:PLAYER:50 = ARG
	TCVAR:ARG:기학플래그 = 1

	;マスターカウンター制御
	;(ビット立ちで不可 0=엉덩이를 쓰다듬는다 1=껴안는다 2=키스한다 3=가슴애무 4=애널애무 5=클리애무 6=指挿入れ 7=치마를 넘긴다)
	;=============================
	;CALL 카운터삽입됨지속처리(ARG)
	IF TEQUIP:MASTER:체위 == 2
		SETBIT TCVAR:ARG:26 ,0
		SETBIT TCVAR:ARG:26 ,1
		SETBIT TCVAR:ARG:26 ,2
		SETBIT TCVAR:ARG:26 ,3
	ENDIF
	SETBIT TCVAR:ARG:26 ,4
	SETBIT TCVAR:ARG:26 ,5
	SETBIT TCVAR:ARG:26 ,6
	SETBIT TCVAR:ARG:26 ,7

RETURN 1

;*********************************************************************************************
;カウンター実行可否出力関数
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOM_ABLE84(ARG)

	SIF !(TALENT:ARG:2 & 2)
		RETURN 0
	SIF !(TALENT:PLAYER:2 & 1)
		RETURN 0
	SIF TEQUIP:MASTER:50 != ARG
		RETURN 0

RETURN 1

;*********************************************************************************************
;カウンター実行判定値算出関数
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOM_ORDER84(커맨드번호, ARG, 기본치)
#DIM 커맨드번호
#DIM 기본치
#DIMS 카운터타입

	;카운터타입設定
	;=============================
	카운터타입 = 성교

	;実行判定値算出式
	;=============================
	LOCAL = 기본치 + ABL:ARG:C감각

	;카운터타입別計算処理 実質実行判定処理を含む
	;=============================
	LOCAL = MAX(LOCAL + COUNTER_SIKOU:ARG:커맨드번호, 1)
	LOCAL *= COUNTER_TYPE(카운터타입, ARG)

RETURN LOCAL


code:
;*********************************************************************************************
;カウンターコマンド：기승위Ｖ
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOMF85(ARG)

	;몸의자세の変更
	;=============================
	SIF MASTER_POSE(0,SET_V) == ARG || MASTER_POSE(0,SET_A) == ARG
		CALL TOUCH_RESET_T(ARG)
	CALL TOUCH_SET(SET_FROM_V,1,ARG)
	TFLAG:MASTER의P삽입중 = 1
	TFLAG:MASTER의C사용중 ++

	;ソース計算および内部処理系統
	;=============================
	SIF TEQUIP:PLAYER:0
		CALL DATUI_BOTTOM(ARG,0)
	IF BEDROOM(CFLAG:MASTER:현재위치)
		SIF TEQUIP:ARG:0
			CALL DATUI_BOTTOM_T(ARG,0)
	ELSE
		SIF TEQUIP:ARG:0 & 14
			CALL DATUI_BOTTOM_T(ARG,1)
	ENDIF
	TCVAR:PLAYER:동정상실 = 1
	TCVAR:ARG:피임 = 1
	DOWNBASE:ARG:체력 += 60
	DOWNBASE:ARG:기력 += 120
	SOURCE:ARG:정복 += 700
	SOURCE:ARG:쾌V = 300
	SOURCE:ARG:사랑 = 150
	SOURCE:ARG:성행동 = 500
	SOURCE:ARG:달성 = 300
	SOURCE:ARG:고통 = 250
	SOURCE:ARG:노출 = 60
	SOURCE:ARG:가학 += 200
	TCVAR:116 = PLAYER
	CALL PAIN_CHECK_V(ARG)
	;사정장소（1=질내 2=애널 3=수음 4=口淫 5=파이즈리 6=스마타 7=풋잡 8=体表 9=애널봉사 10=道具 11=触手 12=Ａ고문 13=Ｖ고문）
	CALL 사정대상등록(PLAYER, ARG, 1)
	TEQUIP:ARG:체위 = 3
	;強度
	TCVAR:PLAYER:4 = 1000
	CALL STAIN_질내P삽입
	EXP:ARG:V성교경험 ++
	EXP:PLAYER:삽입경험 ++
	CALL LOST_VIRGIN(ARG)
	EXP:ARG:애정경험 += TALENT:ARG:연모
	TEQUIP:ARG:50 = MASTER
	TCVAR:ARG:기학플래그 = 1

	;マスターカウンター制御
	;(ビット立ちで不可 0=엉덩이를 쓰다듬는다 1=껴안는다 2=키스한다 3=가슴애무 4=애널애무 5=클리애무 6=指挿入れ 7=치마를 넘긴다)
	;=============================
	;CALL 카운터삽입됨지속처리(ARG)
	SETBIT TCVAR:ARG:26 ,6
	SETBIT TCVAR:ARG:26 ,7

RETURN 1

;*********************************************************************************************
;カウンター実行可否出力関数
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOM_ABLE85(ARG)

	SIF 삽입불가(ARG) >= 2
		RETURN 0
	SIF !(TALENT:ARG:2 & 1)
		RETURN 0
	SIF TALENT:ARG:임신 && (CFLAG:ARG:903 <= 30 || CFLAG:ARG:903 >= 71)
		RETURN 0
	SIF CFLAG:ARG:육아인원수 >= 1 && CFLAG:ARG:육아인원수 <= 30
		RETURN 0
	SIF !(TALENT:PLAYER:2 & 2)
		RETURN 0
	SIF BASE:MASTER:발기 < 1000
		RETURN 0
	SIF TFLAG:63
		RETURN 0
	SIF TEQUIP:50 >= 0 || TEQUIP:51 >= 0
		RETURN 0
	SIF TEQUIP:ARG:체위
		RETURN 0
	SIF TEQUIP:MASTER:50 >= 0 || TEQUIP:MASTER:51 >= 0
		RETURN 0
	SIF PALAM:ARG:윤활 < PALAMLV:3
		RETURN 0
	SIF TEQUIP:ARG:바이브
		RETURN 0
	;정조帯、触手下着、바이브パンツ、二穴바이브パンツをはいてるとダメ
	SIF EQUIP:하반신속옷2 == 27 || EQUIP:하반신속옷2 == 28 || EQUIP:하반신속옷2 == 29 || EQUIP:하반신속옷2 == 30
		RETURN 0

RETURN 1

;*********************************************************************************************
;カウンター実行判定値算出関数
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOM_ORDER85(커맨드번호, ARG, 기본치)
#DIM 커맨드번호
#DIM 기본치
#DIMS 카운터타입

	;카운터타입設定
	;=============================
	카운터타입 = 성교

	;実行判定値算出式
	;=============================
	LOCAL = 기본치 + ABL:ARG:V감각 * 3 + EX:ARG:V절정직전 * 10

	;카운터타입別計算処理 実質実行判定処理を含む
	;=============================
	LOCAL = MAX(LOCAL + COUNTER_SIKOU:ARG:커맨드번호, 1)
	LOCAL *= COUNTER_TYPE(카운터타입, ARG)

RETURN LOCAL


code:
;*********************************************************************************************
;カウンターコマンド：Ａ挿入させる
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOMF87(ARG)

	;몸의자세の変更
	;=============================
	SIF MASTER_POSE(0,SET_V) == ARG || MASTER_POSE(0,SET_A) == ARG
		CALL TOUCH_RESET_T(ARG)
	CALL TOUCH_SET(SET_FROM_A,1,ARG)
	TFLAG:MASTER의P삽입중 = 1
	TFLAG:MASTER의C사용중 ++

	;ソース計算および内部処理系統
	;=============================
	SIF TEQUIP:PLAYER:0
		CALL DATUI_BOTTOM(ARG,0)
	CALL DATUI_FOR_INSERT(ARG)
	TCVAR:ARG:A상실발생 = 1
	TCVAR:PLAYER:동정상실 = 1
	SOURCE:ARG:액체 += 100
	DOWNBASE:ARG:체력 += 60
	DOWNBASE:ARG:기력 += 150
	SOURCE:ARG:쾌A = 500
	SOURCE:ARG:사랑 = 150
	SOURCE:ARG:성행동 = 500
	SOURCE:ARG:달성 = 300
	SOURCE:ARG:고통 = 400
	SOURCE:ARG:노출 = 60
	SOURCE:ARG:정복 += 700
	SOURCE:ARG:강요 += 200
	SOURCE:ARG:가학 += 300
	TCVAR:116 = PLAYER
	CALL PAIN_CHECK_A(ARG)
	CALL LOST_VIRGIN(ARG)
	;사정장소（1=질내 2=애널 3=수음 4=口淫 5=파이즈리 6=스마타 7=풋잡 8=体表 9=애널봉사 10=道具 11=触手 12=Ａ고문 13=Ｖ고문）
	CALL 사정대상등록(PLAYER, ARG, 2)
	TEQUIP:ARG:체위 = 3
	;強度
	TCVAR:PLAYER:4 = 1000
	STAIN:ARG:7 |= STAIN:PLAYER:2
	STAIN:PLAYER:2 |= STAIN:ARG:7
	EXP:ARG:A성교경험 ++
	EXP:PLAYER:삽입경험 ++
	EXP:ARG:애정경험 += TALENT:ARG:연모
	TEQUIP:ARG:51 = MASTER
	;봉사플래그
	TCVAR:ARG:108 = 1
	TCVAR:ARG:기학플래그 = 1

	;マスターカウンター制御
	;(ビット立ちで不可 0=엉덩이를 쓰다듬는다 1=껴안는다 2=키스한다 3=가슴애무 4=애널애무 5=클리애무 6=指挿入れ 7=치마를 넘긴다)
	;=============================
	;CALL 카운터삽입됨지속처리(ARG)
	SETBIT TCVAR:ARG:26 ,4
	SETBIT TCVAR:ARG:26 ,7

RETURN 1

;*********************************************************************************************
;カウンター実行可否出力関数
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOM_ABLE87(ARG)

	SIF 삽입불가(ARG) >= 2
		RETURN 0
	SIF !(TALENT:ARG:2 & 1)
		RETURN 0
	SIF !(TALENT:PLAYER:2 & 2)
		RETURN 0
	SIF BASE:MASTER:발기 < 1000
		RETURN 0
	SIF TALENT:ARG:임신 && (CFLAG:ARG:903 <= 30 || CFLAG:ARG:903 >= 71)
		RETURN 0
	SIF CFLAG:ARG:육아인원수 >= 1 && CFLAG:ARG:육아인원수 <= 30
		RETURN 0
	SIF ABL:2 < 3
		RETURN 0
	SIF TFLAG:63
		RETURN 0
	SIF TEQUIP:50 >= 0 || TEQUIP:51 >= 0
		RETURN 0
	SIF TEQUIP:MASTER:50 >= 0 || TEQUIP:MASTER:51 >= 0
		RETURN 0
	SIF TEQUIP:ARG:체위
		RETURN 0
	SIF PALAM:ARG:윤활 < PALAMLV:3
		RETURN 0
	SIF TEQUIP:ARG:애널바이브
		RETURN 0
	SIF TEQUIP:MASTER:50 >= 0 || TEQUIP:MASTER:51 >= 0
		RETURN 0

RETURN 1

;*********************************************************************************************
;カウンター実行判定値算出関数
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOM_ORDER87(커맨드번호, ARG, 기본치)
#DIM 커맨드번호
#DIM 기본치
#DIMS 카운터타입

	;카운터타입設定
	;=============================
	카운터타입 = 성교

	;実行判定値算出式
	;=============================
	LOCAL = 기본치 + ABL:ARG:A감각 * 3+ EX:ARG:A절정직전 * 10

	;카운터타입別計算処理 実質実行判定処理を含む
	;=============================
	LOCAL = MAX(LOCAL + COUNTER_SIKOU:ARG:커맨드번호, 1)
	LOCAL *= COUNTER_TYPE(카운터타입, ARG)

RETURN LOCAL


code:
;*********************************************************************************************
;カウンターコマンド：후배위Ａ挿入される
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOMF90(ARG)

	;몸의자세の変更
	;=============================
	SIF MASTER_POSE(0,SET_P) == ARG
		CALL TOUCH_RESET_T(ARG)
	CALL TOUCH_SET(SET_FROM_P,7,ARG)
	TFLAG:MASTER의A사용중 ++

	;ソース計算および内部処理系統
	;=============================
	CALL DATUI_FOR_INSERT(ARG)
	TCVAR:ARG:동정상실 = 1
	TCVAR:PLAYER:A상실발생 = 1
	SOURCE:ARG:쾌C += 100
	SOURCE:ARG:성행동 += 300
	SOURCE:ARG:정복 += 1000
	SOURCE:PLAYER:액체 += 100
	SOURCE:ARG:가학 += 800
	SOURCE:ARG:강요 += 800
	SOURCE:PLAYER:쾌A += 800
	CALL PAIN_CHECK_A_MASTER(ARG)
	;사정장소（1=질내 2=애널 3=수음 4=口淫 5=파이즈리 6=스마타 7=풋잡 8=体表 9=애널봉사 10=道具 11=触手 12=Ａ責め 13=Ｖ責め）
	CALL 사정대상등록(ARG, PLAYER, 12)
	TCVAR:PLAYER:4 += 250
	LOCALS = {PLAYER}/
	CSTR:ARG:10 += LOCALS
	TCVAR:ARG:2 = 2
	TCVAR:ARG:4 += 1000
	TEQUIP:MASTER:체위 = 2
	CALL STAIN_애널P삽입
	EXP:PLAYER:A성교경험 ++
	EXP:ARG:삽입경험 ++
	TEQUIP:PLAYER:51 = ARG
	;봉사플래그
	TCVAR:ARG:108 = 1
	TCVAR:ARG:기학플래그 = 1

	;マスターカウンター制御
	;(ビット立ちで不可 0=엉덩이를 쓰다듬는다 1=껴안는다 2=키스한다 3=가슴애무 4=애널애무 5=클리애무 6=指挿入れ 7=치마를 넘긴다)
	;=============================
	;CALL 카운터삽입됨지속처리(ARG)
	SETBIT TCVAR:ARG:26 ,0
	SETBIT TCVAR:ARG:26 ,1
	SETBIT TCVAR:ARG:26 ,2
	SETBIT TCVAR:ARG:26 ,3
	SETBIT TCVAR:ARG:26 ,4
	SETBIT TCVAR:ARG:26 ,5
	SETBIT TCVAR:ARG:26 ,6
	SETBIT TCVAR:ARG:26 ,7

RETURN 1

;*********************************************************************************************
;カウンター実行可否出力関数
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOM_ABLE90(ARG)

	SIF 삽입불가(MASTER) >= 2
		RETURN 0
	SIF !(TALENT:ARG:2 & 2)
		RETURN 0
	SIF BASE:ARG:발기 < 1000
		RETURN 0
	SIF TEQUIP:MASTER:50 >= 0 || TEQUIP:MASTER:51 >= 0
		RETURN 0
	SIF TFLAG:64
		RETURN 0
	SIF ABL:MASTER:2 < 2
		RETURN 0
	SIF !TALENT:ARG:새드 && PALAM:MASTER:윤활 < PALAMLV:3
		RETURN 0

RETURN 1

;*********************************************************************************************
;カウンター実行判定値算出関数
;ARG = 対象のキャラ番号
;*********************************************************************************************
@CCOM_ORDER90(커맨드번호, ARG, 기본치)
#DIM 커맨드번호
#DIM 기본치
#DIMS 카운터타입

	;카운터타입設定
	;=============================
	카운터타입 = 고문

	;実行判定値算出式
	;=============================
	LOCAL = (기본치*5/10) + ABL:ARG:C감각 + MAX(EXP:ARG:사정경험 / 15, 15) + ABL:ARG:새드끼 / 2 - (TALENT:MASTER:2 & 1) * 4 + ABL:MASTER:애널 * 2 - ABL:MASTER:질

	;카운터타입別計算処理 実質実行判定処理を含む
	;=============================
	LOCAL = MAX(LOCAL + COUNTER_SIKOU:ARG:커맨드번호, 1)
	LOCAL *= COUNTER_TYPE(카운터타입, ARG)

RETURN LOCAL


code:
;*****************************************************
;指定したコマンドが今回使われていたかを取得する関数
;使われていた場合は使用したキャラの番号を返す
;*****************************************************
@FIND_SELECTCCOM(ARG)
#FUNCTION
FOR LOCAL, 0, 최대넘어뜨림인원수 - 1
	SIF SELECTCCOM:LOCAL:1 == ARG
		RETURNF SELECTCCOM:LOCAL:0
NEXT
RETURNF 0

;*****************************************************
;指定したキャラ(番号)が今回行動したかを取得する関数
;行動していた場合はそのキャラの行ったカウンター커맨드번호を返す
;*****************************************************
@FIND_SELECTCCOM_CHARA(ARG)
#FUNCTION
FOR LOCAL, 0, 최대넘어뜨림인원수 - 1
	SIF SELECTCCOM:LOCAL:0 == ARG
		RETURNF SELECTCCOM:LOCAL:1
NEXT
RETURNF 0

;*****************************************************
;指定したコマンドが前回使われていたかを取得する関数
;使われていた場合は使用したキャラの番号を返す
;*****************************************************
@FIND_PREVCCOM(ARG)
#FUNCTION
FOR LOCAL, 0, 최대넘어뜨림인원수 - 1
	SIF PREVCCOM:LOCAL:1 == ARG
		RETURNF PREVCCOM:LOCAL:0
NEXT
RETURNF 0

;*****************************************************
;指定したキャラ(番号)が前回行動したかを取得する関数
;行動していた場合はそのキャラの行ったカウンター커맨드번호を返す
;*****************************************************
@FIND_PREVCCOM_CHARA(ARG)
#FUNCTION
FOR LOCAL, 0, 최대넘어뜨림인원수 - 1
	SIF PREVCCOM:LOCAL:0 == ARG
		RETURNF PREVCCOM:LOCAL:1
NEXT
RETURNF 0

;************************************************************
;カウンター時식스나인移行共通処理
;引数1 対象の캐릭터번호 2 식스나인移行への確率
;************************************************************
@EVENT_COUNTER_POSE_69(ARG,ARG:2)
IF ARG:2 == 0
	TEQUIP:ARG:식스나인 = 0
	RETURN 0
ENDIF
IF TEQUIP:ARG:식스나인
	TFLAG:60 ++
	RETURN 0
ENDIF
SIF TFLAG:60
	RETURN 0
IF RAND:(ARG:2) == 1
	TEQUIP:ARG:식스나인 = 1
	TCVAR:ARG:27 = 1
ENDIF

;**************************************************************************
;カウンター中の挿入継続共通処理
;ARG = 캐릭터번호
;**************************************************************************
@카운터삽입지속처리(ARG)
;당신에게 V삽입중에서, 이번 카운터 커맨드가 V삽입계 이외의경우
IF TEQUIP:PLAYER:50 == ARG && !GROUPMATCH(TCVAR:ARG:20, 80, 83, 84) && CFLAG:ARG:우후후 == 2
	CALL TOUCH_SET(SET_FROM_P, SET_V, ARG)
	SOURCE:ARG:성행동 += 150
	SOURCE:ARG:정복 += 400
	SOURCE:PLAYER:액체 += 100
	SOURCE:ARG:가학 += 250
	SOURCE:ARG:강요 += 400
	SOURCE:PLAYER:쾌V += 500
	CALL PAIN_CHECK_V_MASTER(ARG)
	LOCALS = {ARG}/
	CSTR:PLAYER:10 += LOCALS
	TCVAR:PLAYER:2 = 13
	TCVAR:PLAYER:4 += 75
	LOCALS = {PLAYER}/
	CSTR:ARG:10 += LOCALS
	TCVAR:ARG:2 = 1
	TCVAR:ARG:4 += 500
	STAIN:ARG:2 |= STAIN:PLAYER:6
	STAIN:PLAYER:6 |= STAIN:ARG:2
	EXP:PLAYER:V성교경험 ++
	TCVAR:ARG:기학플래그 = 1
ENDIF

;당신에게 A삽입중에서, 이번 카운터 커맨드가 역A계 이외의경우
IF TEQUIP:PLAYER:51 == ARG && !GROUPMATCH(TCVAR:ARG:20, 90, 93, 94) && CFLAG:ARG:우후후 == 2
	CALL TOUCH_SET(SET_FROM_P, SET_A, ARG)
	SOURCE:ARG:성행동 += 150
	SOURCE:ARG:정복 += 400
	SOURCE:PLAYER:액체 += 100
	SOURCE:ARG:가학 += 400
	SOURCE:ARG:강요 += 400
	SOURCE:PLAYER:쾌A += 500
	CALL PAIN_CHECK_A_MASTER(ARG)
	LOCALS = {ARG}/
	CSTR:PLAYER:10 += LOCALS
	TCVAR:PLAYER:2 = 12
	TCVAR:PLAYER:4 += 125
	LOCALS = {PLAYER}/
	CSTR:ARG:10 += LOCALS
	TCVAR:ARG:2 = 2
	TCVAR:ARG:4 += 400
	STAIN:ARG:2 |= STAIN:PLAYER:6
	STAIN:PLAYER:6 |= STAIN:ARG:2
	EXP:PLAYER:A성교경험 ++
	TCVAR:ARG:기학플래그 = 1
ENDIF
RETURN 1

;**************************************************************************
;射精対象登録共通処理
;ARG = 射精するキャラ
;ARG:1 = 射精されるキャラ
;ARG:2 = 射精箇所（1=膣内 2=アナル 3=手淫 4=口淫 5=パイズリ 6=素股 7=足コキ 8=体表 9=アナル奉仕 10=道具 11=触手 12=Ａ責め 13=Ｖ責め）
;**************************************************************************
@사정대상등록(ARG, ARG:1, ARG:2)
SIF !(SAMEN_DIRECTION(ARG,ARG:1))
	CSTR:ARG:10 += @"{ARG:1}/"
TCVAR:ARG:2 = ARG:2
RETURN 1

;***************************************************************************
;挿入され継続中마스터 카운터 공통 제어
;ARG =  캐릭터번호
;***************************************************************************
@카운터삽입됨지속처리(ARG)
;TCVAR:26 마스터카운터제어
;(비트 0=엉덩이를 어루만지는 불가 1=달라붙는 2=키스 하는 3=가슴애무 4=애널애무 5=구리 애무 6=손가락삽입 7=치마걷어 올리기)

;당신에게 A삽입중에서, 이번 카운터 커맨드가 역A계 이외의경우
IF (TEQUIP:PLAYER:50 == ARG || TEQUIP:PLAYER:51 == ARG) && !GROUPMATCH(TCVAR:ARG:20, 90, 93)
	IF TEQUIP:MASTER:체위 == 2
		SETBIT TCVAR:ARG:26 ,0
		SETBIT TCVAR:ARG:26 ,1
		SETBIT TCVAR:ARG:26 ,2
		SETBIT TCVAR:ARG:26 ,3
	ENDIF
	SETBIT TCVAR:ARG:26 ,4
	SETBIT TCVAR:ARG:26 ,5
	SETBIT TCVAR:ARG:26 ,6
	SETBIT TCVAR:ARG:26 ,7
ENDIF

;***************************************************************************
;カウンター脱衣挿入時共通制御
;ARG =  캐릭터번호
;***************************************************************************
@DATUI_FOR_INSERT(ARG)
IF BEDROOM(CFLAG:MASTER:현재위치)
	SIF TEQUIP:ARG:0
		CALL DATUI_BOTTOM_T(ARG,0)
ELSE
	SIF TEQUIP:ARG:0 & 14
		CALL DATUI_BOTTOM_T(ARG,1)
ENDIF

;***************************************************************************
;胸弄り解除共通制御
;ARG =  캐릭터번호
;***************************************************************************
@가슴주무르기해제처리(ARG)
;뭐든지 섹스하고 있으면 리셋하고 있으므로 조건을 변경
;胸揉みながら挿入とか普通にするし…
IF TEQUIP:MASTER:V섹스 >= 0 || TEQUIP:MASTER:A섹스 >= 0
	;IF TEQUIP:ARG:가슴주무르기
	;	TEQUIP:ARG:가슴주무르기 = 0
	;	PRINTL ＜가슴주무르기 해제＞
	;ENDIF
	IF TEQUIP:ARG:유두빨기 && (TEQUIP:ARG:체위 == 2 || TEQUIP:ARG:체위 == 5)
		TEQUIP:ARG:유두빨기 = 0
		PRINTL ＜유두빨기 해제＞
	ENDIF
ENDIF

;***************************************************************************
;위치관계確認共通関数
;ARG =  위치관계
;***************************************************************************
@POSITION_OCCUPATION(ARG)
#FUNCTION
FOR LOCAL, 1, GET_TARGETNUM() + 1
	SIF TARGET:LOCAL <= 0
		CONTINUE
	SIF TCVAR:(TARGET:LOCAL):위치관계 == ARG
		RETURNF 1
NEXT


code:
@EVENT_COUNTER_COMBINATION
VARSET LOCAL
;만들어 써라
;LOCAL:100~
FOR LOCAL, 1, GET_TARGETNUM() + 1
	SIF TARGET:LOCAL <= 0
		CONTINUE
	SIF TCVAR:(TARGET:LOCAL):20
		LOCAL:(100 + TCVAR:(TARGET:LOCAL):20) ++
NEXT


code:
;カウンターコマンドの最大数 カウンターコマンドを追加する時はこの値を増やしてください。
#DIM CONST CCOM_MAXNUM = 150

;押し倒してくる最大の人数 10人以上は流石にないでしょと思いたい。
#DIM CONST 최대넘어뜨림인원수 = 10

;カウンターコマンドの SELECTCOM および PREVCOM ※10人までを想定
#DIM SELECTCCOM, 10, 2
#DIM PREVCCOM,   10, 2

;キャラクタごとの各カウンター志向。 分散して管理し辛いのでSYSTEM側のDIMから移動。
#DIM CHARADATA SAVEDATA COUNTER_SIKOU, 150


code:
;MASTER의 V에의 고통
@PAIN_CHECK_V_MASTER(ARG)
;EXP:V경험을 본다(처녀의 반감은 별도 처리필 모두의로 생략)
IF EXP:PLAYER:V경험 < EXPLV:1
	TIMES SOURCE:ARG:가학 , 1.50
ELSEIF EXP:PLAYER:V경험 < EXPLV:2
	TIMES SOURCE:ARG:가학 , 0.80
ELSEIF EXP:PLAYER:V경험 < EXPLV:3
	TIMES SOURCE:ARG:가학 , 0.40
ELSEIF EXP:PLAYER:V경험 < EXPLV:4
	TIMES SOURCE:ARG:가학 , 0.10
ELSEIF EXP:PLAYER:V경험 < EXPLV:5
	TIMES SOURCE:ARG:가학 , 0.00
ELSEIF EXP:PLAYER:V경험 >= EXPLV:5
	TIMES SOURCE:ARG:가학 , 0.00
ENDIF

;PALAM:윤활을 본다
IF PALAM:PLAYER:윤활 < PALAMLV:1
	TIMES SOURCE:ARG:가학 , 1.20
ELSEIF PALAM:PLAYER:윤활 < PALAMLV:2
	TIMES SOURCE:ARG:가학 , 0.70
ELSEIF PALAM:PLAYER:윤활 < PALAMLV:3
	TIMES SOURCE:ARG:가학 , 0.40
ELSEIF PALAM:PLAYER:윤활 < PALAMLV:4
	TIMES SOURCE:ARG:가학 , 0.10
ELSEIF PALAM:PLAYER:윤활 >= PALAMLV:4
	TIMES SOURCE:ARG:가학 , 0.10
ENDIF
;MASTER의 A에의 고통
@PAIN_CHECK_A_MASTER(ARG)
;EXP:A경험을 본다
IF EXP:PLAYER:A경험 < EXPLV:1
	TIMES SOURCE:ARG:가학 , 1.50
ELSEIF EXP:PLAYER:A경험 < EXPLV:2
	TIMES SOURCE:ARG:가학 , 0.80
ELSEIF EXP:PLAYER:A경험 < EXPLV:3
	TIMES SOURCE:ARG:가학 , 0.40
ELSEIF EXP:PLAYER:A경험 < EXPLV:4
	TIMES SOURCE:ARG:가학 , 0.10
ELSEIF EXP:PLAYER:A경험 < EXPLV:5
	TIMES SOURCE:ARG:가학 , 0.00
ELSEIF EXP:PLAYER:A경험 >= EXPLV:5
	TIMES SOURCE:ARG:가학 , 0.00
ENDIF

;PALAM:윤활을 본다
IF PALAM:PLAYER:윤활 < PALAMLV:1
	TIMES SOURCE:ARG:가학 , 3.00
ELSEIF PALAM:PLAYER:윤활 < PALAMLV:2
	TIMES SOURCE:ARG:가학 , 1.60
ELSEIF PALAM:PLAYER:윤활 < PALAMLV:3
	TIMES SOURCE:ARG:가학 , 0.80
ELSEIF PALAM:PLAYER:윤활 < PALAMLV:4
	TIMES SOURCE:ARG:가학 , 0.40
ELSEIF PALAM:PLAYER:윤활 >= PALAMLV:4
	TIMES SOURCE:ARG:가학 , 0.10
ENDIF