code:
;Ｃ감각の可否
@ISABLUP3
;연모、친애、음란、창녀はMAXLV10
IF ABL:3 >= 10
	RETURN 0
ELSEIF ABL:3 >= 5 && TALENT:3 == 0 && TALENT:6 == 0 && TALENT:4 == 0 && TALENT:7 == 0
	RETURN 0
ENDIF

CALL DECIDE_ABLUP3

IF Z == 0
	RETURN 0
ELSE
	RETURN 1
ENDIF

;Ｃ감각
@ABLUP3
DRAWLINE
;연모、친애、음란、창녀はMAXLV10
IF ABL:3 >= 10
	PRINTW 이미 MAX입니다。
	RETURN 0
ELSEIF ABL:3 >= 5 && TALENT:3 == 0 && TALENT:6 == 0 && TALENT:4 == 0 && TALENT:7 == 0
	PRINTW 이미 MAX입니다。
	RETURN 0
ENDIF

CALL DECIDE_ABLUP3
;素質による増減の表示（쾌Ｃ의 구슬）

IF TALENT:음란 == 1
	SETCOLOR 0,255,255
	PRINTFORM [음란]×0.8（쾌Ｃ의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:창녀 == 1
	SETCOLOR 0,255,255
	PRINTFORM [창녀]×0.5（쾌Ｃ의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:Ｃ민감 == 1
	SETCOLOR 0,255,255
	PRINTFORM [Ｃ민감]×0.5（쾌Ｃ의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:Ｃ둔감 == 1
	SETCOLOR 0xCC0000
	PRINTFORM [Ｃ둔감]×2.0（쾌Ｃ의 구슬）
	RESETCOLOR
ENDIF

PRINTL

PRINT [0] -
PRINTS PALAMNAME:0
PRINT 의 구슬×
PRINTV A
IF CFLAG:34 > 1
	PRINTFORM 、%EXPNAME:12%
	PRINTV CFLAG:34
	PRINT  이상
ENDIF
PRINT ……
IF I == 0
	PRINT ＯＫ
ELSE
	SIF I & 1
		PRINT 구슬부족
	SIF I & 2
		PRINT 경험부족
ENDIF

PRINTL

PRINTL [100] - 돌아온다

INPUT
IF (RESULT < 0 || RESULT > 0) && RESULT != 100
	RESTART
ELSEIF I != 0 && RESULT == 0
	PRINTL 조건을 충족하지 못했습니다
	RESTART
ELSEIF RESULT == 100
	RETURN 0
ENDIF

ABL:3 += 1

IF RESULT == 0
	JUEL:0 -= A
ENDIF

PRINTS ABLNAME:3
PRINT 의 레벨이
PRINTV ABL:3
PRINTFORMW %숫자만처리(ABL:3,"로")% 변했습니다

;C感깨우침LvUP判定
@DECIDE_ABLUP3
;条件別にＯＫかダメかを記録する
I = 0
;能力アップ可能なら1にする
Z = 0

CFLAG:34 = 0

IF ABL:3 == 0
	A = 1
ELSEIF ABL:3 == 1
	A = 20
ELSEIF ABL:3 == 2
	A = 400
	CFLAG:34 = 2
ELSEIF ABL:3 == 3
	A = 5000
	CFLAG:34 = 20
ELSEIF ABL:3 == 4
	A = 15000
	CFLAG:34 = 50
ELSEIF ABL:3 == 5
	A = 30000
	CFLAG:34 = 100
ELSEIF ABL:3 == 6
	A = 40000
	CFLAG:34 = 150
ELSEIF ABL:3 == 7
	A = 50000
	CFLAG:34 = 200
ELSEIF ABL:3 == 8
	A = 60000
	CFLAG:34 = 300
ELSEIF ABL:3 == 9
	A = 70000
	CFLAG:34 = 400
ENDIF

;음란
SIF TALENT:4
	TIMES A , 0.80
	TIMES CFLAG:34 , 0.80
;창녀
SIF TALENT:7
	TIMES A , 0.50
	TIMES CFLAG:34 , 0.50
;Ｃ민감
SIF TALENT:Ｃ민감
	TIMES A , 0.50
	TIMES CFLAG:34 , 0.50
;Ｃ둔감
SIF TALENT:Ｃ둔감
	TIMES A , 2.00
	TIMES CFLAG:34 , 2.00

;0になった場合は1にする
SIF A == 0
	A = 1

;쾌Ｃ의 구슬で上げる
SIF JUEL:0 < A
	I |= 1
;Ｃ개발경험が必要
SIF EXP:12 < CFLAG:34
	I |= 2

IF I == 0
	Z = 1
ENDIF
RETURN 1


code:
;Ｖ감각の可否
@ISABLUP4
;연모、친애、음란、창녀はMAXLV10
IF ABL:4 >= 10
	RETURN 0
ELSEIF ABL:4 >= 5 && TALENT:3 == 0 && TALENT:6 == 0 && TALENT:4 == 0 && TALENT:7 == 0
	RETURN 0
ENDIF

CALL DECIDE_ABLUP4

IF Z == 0
	RETURN 0
ELSE
	RETURN 1
ENDIF

;Ｖ감각
@ABLUP4
DRAWLINE
;연모、친애、음란、창녀はMAXLV10
IF ABL:4 >= 10
	PRINTW 이미 MAX입니다。
	RETURN 0
ELSEIF ABL:4 >= 5 && TALENT:3 == 0 && TALENT:6 == 0 && TALENT:4 == 0 && TALENT:7 == 0
	PRINTW 이미 MAX입니다。
	RETURN 0
ENDIF

CALL DECIDE_ABLUP4

;素質による増減の表示（쾌Ｖ의 구슬）

IF TALENT:음란 == 1
	SETCOLOR 0,255,255
	PRINTFORM [음란]×0.8（쾌Ｖ의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:창녀 == 1
	SETCOLOR 0,255,255
	PRINTFORM [창녀]×0.5（쾌Ｖ의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:Ｖ민감 == 1
	SETCOLOR 0,255,255
	PRINTFORM [Ｖ민감]×0.5（쾌Ｖ의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:Ｖ둔감 == 1
	SETCOLOR 0xCC0000
	PRINTFORM [Ｖ둔감]×2.0（쾌Ｖ의 구슬）
	RESETCOLOR
ENDIF

PRINTL

PRINT [0] -
PRINTS PALAMNAME:1
PRINT 의 구슬×
PRINTV A
IF CFLAG:35 > 1
	PRINTFORM 、%EXPNAME:13%
	PRINTV CFLAG:35
	PRINT  이상
ENDIF
PRINT ……
IF I == 0
	PRINT ＯＫ
ELSE
	SIF I & 1
		PRINT 구슬부족
	SIF I & 2
		PRINT 경험부족
ENDIF

PRINTL

PRINTL [100] - 돌아온다

INPUT
IF (RESULT < 0 || RESULT > 0) && RESULT != 100
	RESTART
ELSEIF I != 0 && RESULT == 0
	PRINTL 조건을 충족하지 못했습니다
	RESTART
ELSEIF RESULT == 100
	RETURN 0
ENDIF

ABL:4 += 1

IF RESULT == 0
	JUEL:1 -= A
ENDIF

PRINTS ABLNAME:4
PRINT 의 레벨이
PRINTV ABL:4
PRINTFORMW %숫자만처리(ABL:4,"로")% 변했습니다

;Ｖ감각LvUPの判定
@DECIDE_ABLUP4
;条件別にＯＫかダメかを記録する
I = 0
;能力アップ可能なら1にする
Z = 0
CFLAG:35 = 0

IF ABL:4 == 0
	A = 1
ELSEIF ABL:4 == 1
	A = 20
ELSEIF ABL:4 == 2
	A = 400
	CFLAG:35 = 2
ELSEIF ABL:4 == 3
	A = 5000
	CFLAG:35 = 20
ELSEIF ABL:4 == 4
	A = 15000
	CFLAG:35 = 50
ELSEIF ABL:4 == 5
	A = 30000
	CFLAG:35 = 100
ELSEIF ABL:4 == 6
	A = 40000
	CFLAG:35 = 150
ELSEIF ABL:4 == 7
	A = 50000
	CFLAG:35 = 200
ELSEIF ABL:4 == 8
	A = 60000
	CFLAG:35 = 300
ELSEIF ABL:4 == 9
	A = 70000
	CFLAG:35 = 400
ENDIF

;음란
SIF TALENT:4
	TIMES A , 0.80
	TIMES CFLAG:35 , 0.80
;창녀
SIF TALENT:7
	TIMES A , 0.50
	TIMES CFLAG:35 , 0.50
;Ｖ민감
SIF TALENT:Ｖ민감
	TIMES A , 0.50
	TIMES CFLAG:35 , 0.50
;Ｖ둔감
SIF TALENT:Ｖ둔감
	TIMES A , 2.00
	TIMES CFLAG:35 , 2.00

;0になった場合は1にする
SIF A == 0
	A = 1

;쾌Ｖ의 구슬で上げる
SIF JUEL:1 < A
	I |= 1
;Ｖ개발경험が必要
SIF EXP:13 < CFLAG:35
	I |= 2

IF I == 0
	Z = 1
ENDIF

RETURN 1

repo_name: Catalyst/B

license: unknown


code:
;촉수중독の可否
@ISABLUP40
;동화、모판はMAXLV10
IF ABL:촉수중독 >= 10
	RETURN 0
ELSEIF ABL:촉수중독 >= 5 && !TALENT:모판
	RETURN 0
ENDIF

CALL DECIDE_ABLUP40

IF Z == 0
	RETURN 0
ELSE
	RETURN 1
ENDIF

;촉수중독
@ABLUP40
#DIM requestedAbnormalExp
DRAWLINE
;기생、모판はMAXLV10
IF ABL:촉수중독 >= 10
	PRINTW 이미 MAX입니다。
	RETURN 0
ELSEIF ABL:촉수중독 >= 5 && !IS_NOTLOVE_FALLEN(TARGET)
	PRINTW 이미 MAX입니다。
	RETURN 0
ENDIF

CALL DECIDE_ABLUP40

requestedAbnormalExp = CALC_CHARA_RANGED_DATA("ABL",TARGET,"촉수중독","2,2|3,3|4,4|8,6|*,9")
SIF requestedAbnormalExp > 0
PRINTFORM 촉수경험\@ requestedAbnormalExp == 1 ? # %TOSTR(requestedAbnormalExp)% \@ 있음、

;순종、욕정が必要
PRINTFORM 순종 {(ABL:촉수중독+1)}Lv 이상、욕망 {(ABL:촉수중독+1)}Lv 이상、

;A=공포의 구슬
;B=치정의 구슬
;C=촉수경험

SIF IS_FALLEN(TARGET)
	CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"일선을넘지않음",,20)
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"중독되기쉬움",,5)
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"도착적",,9)
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"쾌감을부정",,15)
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"레이프소망",,5)
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"공주님소망",,3)
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"성직자",,15)
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"프린세스",,5)
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"영구발정",,5)

PRINTL

PRINTFORM [0] - 욕정의 구슬×{A}、공포의 구슬×{B}、촉수경험{C} 이상
PRINT ……

IF I == 0
	PRINT ＯＫ
ELSE
	SIF I & 1
		PRINT 구슬부족
	SIF I & 2
		PRINT 경험부족
	SIF I & 4
		PRINT 능력부족
ENDIF
PRINTL

PRINTL [100] - 돌아온다

INPUT
IF (RESULT < 0 || RESULT > 0) && RESULT != 100
	RESTART
ELSEIF I != 0 && RESULT == 0
	PRINTL 조건을 충족하지 못했습니다
	RESTART
ELSEIF RESULT == 100
	RETURN 0
ENDIF

ABL:촉수중독 += 1

IF RESULT == 0
	JUEL:욕정 -= A
	JUEL:공포 -= B
ENDIF

PRINTFORMW 촉수중독의 레벨이 %숫자처리(ABL:40,"로")% 변했습니다

;촉수중독LVUP判定
@DECIDE_ABLUP40
#DIM requestedAbnormalExp
;条件別にＯＫかダメかを記録する
I = 0
;能力アップ可能なら1にする
Z = 0

SELECTCASE ABL:40
	CASE 0
		A = 5000
		B = 1500
		C = 300
	CASE 1
		A = 12500
		B = 4000
		C = 500
	CASE 2
		A = 25000
		B = 7500
		C = 700
	CASE 3
		A = 50000
		B = 15000
		C = 1000
	CASE 4
		A = 150000
		B = 27500
		C = 1500
	CASE 5
		A = 175000
		B = 30000
		C = 2000
	CASE 6
		A = 200000
		B = 32500
		C = 2500
	CASE 7
		A = 225000
		B = 35000
		C = 3000
	CASE 8
		A = 250000
		B = 37500
		C = 3200
	CASE 9
		A = 275000
		B = 40000
		C = 3500
ENDSELECT

IF TALENT:일선을넘지않음 == 1
	IF !IS_FALLEN(TARGET)
		TIMES A , 2.00
		TIMES B , 2.00
		TIMES C , 2.00
	ENDIF
ENDIF

;중독되기쉬움
IF TALENT:172
	TIMES A , 0.50
	TIMES B , 0.50
	TIMES C , 0.50
ENDIF
;도착적
IF TALENT:도착적
	TIMES A , 0.90
	TIMES B , 0.90
	TIMES C , 0.90
ENDIF
IF TALENT:쾌감을부정
	TIMES A , 1.50
	TIMES B , 1.50
	TIMES C , 1.50
ENDIF
IF TALENT:레이프소망
	TIMES A , 0.50
	TIMES B , 0.50
	TIMES C , 0.50
ENDIF
IF TALENT:공주님소망
	TIMES A , 0.30
	TIMES B , 0.30
	TIMES C , 0.30
ENDIF
IF TALENT:성직자
	TIMES A , 0.90
	TIMES B , 0.90
	TIMES C , 0.90
ENDIF
IF TALENT:닌자
	TIMES A , 0.80
	TIMES B , 0.80
	TIMES C , 0.80
ENDIF
IF TALENT:프린세스
	TIMES A , 0.50
	TIMES B , 0.50
	TIMES C , 0.50
ENDIF
IF TALENT:영구발정
	TIMES A , 0.50
	TIMES B , 0.50
	TIMES C , 0.50
ENDIF

;이상경험必要
requestedAbnormalExp = CALC_CHARA_RANGED_DATA("ABL",TARGET,"촉수중독","2,2|3,3|4,4|8,9")

IF EXP:이상경험 < requestedAbnormalExp
	;이상경험が不足
	I |= 2
	J |= 2
ENDIF

IF EXP:촉수경험 < C
	I |= 2
	J |= 2
ENDIF

IF (ABL:순종 < ABL:촉수중독+1) || (ABL:욕망 < ABL:촉수중독+1)
	I |= 4
	J |= 4
ENDIF

SIF JUEL:욕정 < A
	I |= 1
SIF JUEL:공포 < B
	I |= 1

IF I == 0
	Z = 1
ENDIF


code:
;정신의존の可否
@ISABLUP41
;연모系、예속はMAXLV10
IF ABL:정신의존 >= 10
	RETURN 0
ELSEIF ABL:정신의존 >= 5 && !IS_LOVING(TARGET) && !TALENT:예속
	RETURN 0
ENDIF

CALL DECIDE_ABLUP41

IF Z == 0
	RETURN 0
ELSE
	RETURN 1
ENDIF

;정신의존
@ABLUP41
#DIM requestedAbnormalExp
DRAWLINE
;연모系、예속はMAXLV10
IF ABL:정신의존 >= 10
	PRINTW 이미 MAX입니다。
	RETURN 0
ELSEIF ABL:정신의존 >= 5 && !IS_LOVING(TARGET) && !TALENT:예속
	PRINTW 이미 MAX입니다。
	RETURN 0
ENDIF

CALL DECIDE_ABLUP41
requestedAbnormalExp = GET_REQUESTED_ABNORMALEXP_41()
SIF requestedAbnormalExp > 0
	PRINTFORM 촉수경험\@ requestedAbnormalExp == 1 ? # %TOSTR(requestedAbnormalExp)% \@ 있음、

;순종が必要
PRINTFORM 순종 {(ABL:정신의존+1)}Lv 이상、봉사정신 {(ABL:정신의존+1)}Lv 이상、

;A=온순의 구슬
;B=애정경험or절정경험(10倍する)

SIF !IS_UPPER_FALLEN(TARGET)
	CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"일선을넘지않음",,20)
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"사교적",,20)
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"내향적",,5)
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"도착적",,8)
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"마조",,5)
IF !IS_UPPER_FALLEN(TARGET) && !TALENT:TARGET:연모
	CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"성직자",,30)
ELSE
	CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"성직자",,3)
ENDIF
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"좋아하는사람있음",,15)
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"남친있음",,17)
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"남편있음",,20)
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"기혼",,15)
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"유치",,1)
CALL SHOW_TALENT_EFFECT("TALENT",TARGET,"유아퇴행",,2)

PRINTL

IF IS_LOVING(TARGET)
	PRINTFORM [0] - 온순의 구슬×{A}、애정경험{B} 이상
ELSE
	PRINTFORM [0] - 온순의 구슬×{A}、절정경험{B*10} 이상
ENDIF
PRINT ……

IF I == 0
	PRINT ＯＫ
ELSE
	SIF I & 1
		PRINT 구슬부족
	SIF I & 2
		PRINT 경험부족
	SIF I & 4
		PRINT 능력부족
ENDIF
PRINTL

PRINTL [100] - 돌아온다

INPUT
IF (RESULT < 0 || RESULT > 0) && RESULT != 100
	RESTART
ELSEIF I != 0 && RESULT == 0
	PRINTL 조건을 충족하지 못했습니다
	RESTART
ELSEIF RESULT == 100
	RETURN 0
ENDIF

ABL:정신의존 += 1

IF RESULT == 0
	JUEL:온순 -= A
ENDIF

PRINTFORMW 정신의존의 레벨이 %숫자처리(ABL:41,"로")% 변했습니다

;정신의존LVUP判定
@DECIDE_ABLUP41
#DIM requestedAbnormalExp
;条件別にＯＫかダメかを記録する
I = 0
;能力アップ可能なら1にする
Z = 0

SELECTCASE ABL:정신의존
	CASE 0
		A = 5000
		B = 300
	CASE 1
		A = 12500
		B = 500
	CASE 2
		A = 25000
		B = 700
	CASE 3
		A = 50000
		B = 1000
	CASE 4
		A = 150000
		B = 1500
	CASE 5
		A = 175000
		B = 2000
	CASE 6
		A = 200000
		B = 2500
	CASE 7
		A = 225000
		B = 3000
	CASE 8
		A = 250000
		B = 3200
	CASE 9
		A = 275000
		B = 3500
ENDSELECT

IF TALENT:일선을넘지않음 == 1
	IF !IS_FALLEN(TARGET)
		TIMES A , 2.00
		TIMES B , 2.00
	ENDIF
ENDIF

IF TALENT:사교적
	TIMES A , 2.00
	TIMES B , 2.00
ENDIF
IF TALENT:내향적
	TIMES A , 0.50
	TIMES B , 0.50
ENDIF
IF TALENT:도착적
	TIMES A , 0.80
	TIMES B , 0.80
ENDIF
IF TALENT:마조
	TIMES A , 0.50
	TIMES B , 0.50
ENDIF
IF TALENT:성직자
	IF !IS_UPPER_FALLEN(TARGET) && !TALENT:TARGET:연모
		TIMES A , 3.00
		TIMES B , 3.00
	ELSE
		TIMES A , 0.30
		TIMES B , 0.30
	ENDIF
ENDIF
IF TALENT:좋아하는사람있음
	TIMES A , 1.50
	TIMES B , 1.50
ENDIF
IF TALENT:남친있음
	TIMES A , 1.70
	TIMES B , 1.70
ENDIF
IF TALENT:기혼
	TIMES A , 1.50
	TIMES B , 1.50
ENDIF
IF TALENT:남편있음
	TIMES A , 2.00
	TIMES B , 2.00
ENDIF
IF TALENT:유치
	TIMES A , 0.10
	TIMES B , 0.10
ENDIF
IF TALENT:유아퇴행
	TIMES A , 0.20
	TIMES B , 0.20
ENDIF

;이상경험必要
requestedAbnormalExp = GET_REQUESTED_ABNORMALEXP_41()

IF EXP:이상경험 < requestedAbnormalExp
	;이상경험が不足
	I |= 2
	J |= 2
ENDIF

IF (IS_LOVING(TARGET) && EXP:애정경험 < B) && (!IS_LOVING(TARGET) && EXP:절정경험 < B * 10)
	I |= 2
	J |= 2
ENDIF

IF (ABL:순종 < ABL:정신의존+1) || (ABL:봉사정신 < ABL:정신의존+1)
	I |= 4
	J |= 4
ENDIF

SIF JUEL:온순 < A
	I |= 1

IF I == 0
	Z = 1
ENDIF

@GET_REQUESTED_ABNORMALEXP_41()
#FUNCTION
;연모系は必要な이상경험が少なめ
IF TALENT:연모 || TALENT:친애
	RETURNF CALC_CHARA_RANGED_DATA("ABL",TARGET,"정신의존","2,0|4,1|7,2|*,3")
ELSE
	RETURNF CALC_CHARA_RANGED_DATA("ABL",TARGET,"정신의존","2,2|5,3|8,5|9,7")
ENDIF


code:
;Ａ감각の可否
@ISABLUP5
;연모、친애、음란、창녀はMAXLV10
IF ABL:5 >= 10
	RETURN 0
ELSEIF ABL:5 >= 5 && TALENT:3 == 0 && TALENT:6 == 0 && TALENT:4 == 0 && TALENT:7 == 0
	RETURN 0
ENDIF

CALL DECIDE_ABLUP5

IF Z == 0
	RETURN 0
ELSE
	RETURN 1
ENDIF

;Ａ감각
@ABLUP5
DRAWLINE
;연모、친애、음란、창녀はMAXLV10
IF ABL:5 >= 10
	PRINTW 이미 MAX입니다。
	RETURN 0
ELSEIF ABL:5 >= 5 && TALENT:3 == 0 && TALENT:6 == 0 && TALENT:4 == 0 && TALENT:7 == 0
	PRINTW 이미 MAX입니다。
	RETURN 0
ENDIF

CALL DECIDE_ABLUP5

;素質による増減の表示（쾌Ａ의 구슬、Ａ경험）

IF TALENT:음란 == 1
	SETCOLOR 0,255,255
	PRINTFORM [음란]×0.8（ALL）
	RESETCOLOR
ENDIF
IF TALENT:창녀 == 1
	SETCOLOR 0,255,255
	PRINTFORM [창녀]×0.5（ALL）
	RESETCOLOR
ENDIF
IF TALENT:Ａ민감 == 1
	SETCOLOR 0,255,255
	PRINTFORM [Ａ민감]×0.5（ALL）
	RESETCOLOR
ENDIF
IF TALENT:Ａ둔감 == 1
	SETCOLOR 0xCC0000
	PRINTFORM [Ａ둔감]×2.0（ALL）
	RESETCOLOR
ENDIF
PRINTL

PRINT [0] -
PRINTS PALAMNAME:2
PRINT 의 구슬×
PRINTV A
PRINT 、
PRINTS EXPNAME:1
PRINTV B
PRINT  이상
IF CFLAG:36 > 1
	PRINTFORM 、또한 %EXPNAME:14%
	PRINTV CFLAG:36
	PRINT  이상
ENDIF
PRINT ……
IF I == 0
	PRINT ＯＫ
ELSE
	SIF I & 1
		PRINT 구슬부족
	SIF I & 2
		PRINT 경험부족
ENDIF

PRINTL

PRINTL [100] - 돌아온다

INPUT
IF (RESULT < 0 || RESULT > 0) && RESULT != 100
	RESTART
ELSEIF I != 0 && RESULT == 0
	PRINTL 조건을 충족하지 못했습니다
	RESTART
ELSEIF RESULT == 100
	RETURN 0
ENDIF

ABL:5 += 1

IF RESULT == 0
	JUEL:2 -= A
ENDIF

PRINTS ABLNAME:5
PRINT 의 레벨이
PRINTV ABL:5
PRINTFORMW %숫자만처리(ABL:5,"로")% 변했습니다

;Ａ감각LvUP判定
@DECIDE_ABLUP5
;条件別にＯＫかダメかを記録する
I = 0
;能力アップ可能なら1にする
Z = 0
CFLAG:36 = 0

IF ABL:5 == 0
	A = 1
	B = 2
ELSEIF ABL:5 == 1
	A = 50
	B = 10
	SIF EXP:1 >= EXPLV:3
		A = 20
ELSEIF ABL:5 == 2
	A = 400
	B = 30
	CFLAG:36 = 2
	SIF EXP:1 >= EXPLV:4
		A = 100
ELSEIF ABL:5 == 3
	A = 5000
	B = 75
	CFLAG:36 = 20
	SIF EXP:1 >= EXPLV:5
		A = 4000
ELSEIF ABL:5 == 4
	A = 15000
	B = 150
	CFLAG:36 = 50
	SIF EXP:1 >= EXPLV:5
		A = 8000
ELSEIF ABL:5 == 5
	A = 30000
	B = 230
	CFLAG:36 = 100
	SIF EXP:1 >= EXPLV:5
		A = 24000
ELSEIF ABL:5 == 6
	A = 40000
	B = 270
	CFLAG:36 = 150
ELSEIF ABL:5 == 7
	A = 50000
	B = 360
	CFLAG:36 = 200
ELSEIF ABL:5 == 8
	A = 60000
	B = 420
	CFLAG:36 = 300
ELSEIF ABL:5 == 9
	A = 70000
	B = 500
	CFLAG:36 = 400
ENDIF

;음란
IF TALENT:4
	TIMES A , 0.80
	TIMES B , 0.80
	TIMES CFLAG:36 , 0.80
ENDIF
;창녀
IF TALENT:7
	TIMES A , 0.50
	TIMES B , 0.50
	TIMES CFLAG:36 , 0.50
ENDIF
;Ａ민감
IF TALENT:Ａ민감
	TIMES A , 0.50
	TIMES B , 0.50
	TIMES CFLAG:36 , 0.50
ENDIF
;Ａ둔감
IF TALENT:Ａ둔감
	TIMES A , 2.00
	TIMES B , 2.00
	TIMES CFLAG:36 , 2.00
ENDIF

;0になった場合は1にする
SIF A == 0
	A = 1

;쾌Ａ의 구슬で上げる
SIF JUEL:2 < A
	I |= 1

SIF EXP:1 < B
	I |= 2
;Ａ개발경험が必要
SIF EXP:14 < CFLAG:36
	I |= 2

IF I == 0
	Z = 1
ENDIF

RETURN 1


code:
;Ｂ감각の可否
@ISABLUP6
;연모、친애、음란、창녀はMAXLV10
IF ABL:6 >= 10
	RETURN 0
ELSEIF ABL:6 >= 5 && TALENT:3 == 0 && TALENT:6 == 0 && TALENT:4 == 0 && TALENT:7 == 0
	RETURN 0
ENDIF

CALL DECIDE_ABLUP6

IF Z == 0
	RETURN 0
ELSE
	RETURN 1
ENDIF

;Ｂ감각
@ABLUP6
DRAWLINE
;연모、친애、음란、창녀はMAXLV10
IF ABL:6 >= 10
	PRINTW 이미 MAX입니다。
	RETURN 0
ELSEIF ABL:6 >= 5 && TALENT:3 == 0 && TALENT:6 == 0 && TALENT:4 == 0 && TALENT:7 == 0
	PRINTW 이미 MAX입니다。
	RETURN 0
ENDIF

CALL DECIDE_ABLUP6

;素質による増減の表示（쾌Ｂ의 구슬）

IF TALENT:음란 == 1
	SETCOLOR 0,255,255
	PRINTFORM [음란]×0.8（쾌Ｂ의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:창녀 == 1
	SETCOLOR 0,255,255
	PRINTFORM [창녀]×0.5（쾌Ｂ의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:Ｂ민감 == 1
	SETCOLOR 0,255,255
	PRINTFORM [Ｂ민감]×0.5（쾌Ｂ의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:Ｂ둔감 == 1
	SETCOLOR 0xCC0000
	PRINTFORM [Ｂ둔감]×2.0（쾌Ｂ의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:빈유 == 1
	SETCOLOR 0,255,255
	PRINTFORM [빈유]×0.8（쾌Ｂ의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:절벽 == 1
	SETCOLOR 0,255,255
	PRINTFORM [절벽]×0.65（쾌Ｂ의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:거유 == 1
	SETCOLOR 0xCC0000
	PRINTFORM [거유]×1.1（쾌Ｂ의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:폭유 == 1
	SETCOLOR 0xCC0000
	PRINTFORM [폭유]×1.15（쾌Ｂ의 구슬）
	RESETCOLOR
ENDIF
PRINTL

PRINT [0] -
PRINTS PALAMNAME:3
PRINT 의 구슬×
PRINTV A
IF CFLAG:37 > 1
	PRINTFORM 、%EXPNAME:15%
	PRINTV CFLAG:37
	PRINT  이상
ENDIF
PRINT ……
IF I == 0
	PRINT ＯＫ
ELSE
	SIF I & 1
		PRINT 구슬부족
	SIF I & 2
		PRINT 경험부족
ENDIF

PRINTL

PRINTL [100] - 돌아온다

INPUT
IF (RESULT < 0 || RESULT > 0) && RESULT != 100
	RESTART
ELSEIF I != 0 && RESULT == 0
	PRINTL 조건을 충족하지 못했습니다
	RESTART
ELSEIF RESULT == 100
	RETURN 0
ENDIF

ABL:6 += 1

IF RESULT == 0
	JUEL:3 -= A
ENDIF

PRINTS ABLNAME:6
PRINT 의 레벨이
PRINTV ABL:6
PRINTFORMW %숫자만처리(ABL:6,"로")% 변했습니다

;Ｂ감각LVUP判定
@DECIDE_ABLUP6
;条件別にＯＫかダメかを記録する
I = 0
;能力アップ可能なら1にする
Z = 0
CFLAG:37 = 0

IF ABL:6 == 0
	A = 1
ELSEIF ABL:6 == 1
	A = 20
ELSEIF ABL:6 == 2
	A = 400
	CFLAG:37 = 2
ELSEIF ABL:6 == 3
	A = 5000
	CFLAG:37 = 20
ELSEIF ABL:6 == 4
	A = 15000
	CFLAG:37 = 50
ELSEIF ABL:6 == 5
	A = 30000
	CFLAG:37 = 100
ELSEIF ABL:6 == 6
	A = 40000
	CFLAG:37 = 150
ELSEIF ABL:6 == 7
	A = 50000
	CFLAG:37 = 200
ELSEIF ABL:6 == 8
	A = 60000
	CFLAG:37 = 300
ELSEIF ABL:6 == 9
	A = 70000
	CFLAG:37 = 400
ENDIF

;음란
SIF TALENT:4
	TIMES A , 0.80
	TIMES CFLAG:37 , 0.80
;창녀
SIF TALENT:7
	TIMES A , 0.50
	TIMES CFLAG:37 , 0.80
;Ｂ민감
SIF TALENT:Ｂ민감
	TIMES A , 0.50
	TIMES CFLAG:37 , 0.50
;Ｂ둔감
SIF TALENT:Ｂ둔감
	TIMES A , 2.00
	TIMES CFLAG:37 , 2.00
;빈유
IF TALENT:239
	TIMES A , 0.80
	TIMES CFLAG:37 , 0.80
ENDIF

;절벽
IF TALENT:240
	TIMES A , 0.65
	TIMES CFLAG:37 , 0.65
ENDIF

;거유
IF TALENT:241
	TIMES A , 1.10
	TIMES CFLAG:37 , 1.10
ENDIF

;폭유
IF TALENT:242
	TIMES A , 1.15
	TIMES CFLAG:37 , 1.15
ENDIF

;0になった場合は1にする
SIF A == 0
	A = 1

;쾌Ｂ의 구슬で上げる
SIF JUEL:3 < A
	I |= 1
;Ｂ개발경험が必要
SIF EXP:15 < CFLAG:37
	I |= 2

IF I == 0
	Z = 1
ENDIF


code:
;봉사정신の可否
@ISABLUP7
;연모、친애、복종、예속はMAXLV10
IF ABL:7 >= 10
	RETURN 0
ELSEIF ABL:7 >= 5 && TALENT:3 == 0 && TALENT:6 == 0 && TALENT:5 == 0 && TALENT:8 == 0
	RETURN 0
ENDIF

CALL DECIDE_ABLUP7

IF Z == 0
	RETURN 0
ELSE
	RETURN 1
ENDIF

;봉사정신
@ABLUP7
DRAWLINE
;연모、친애、복종、예속はMAXLV10
IF ABL:7 >= 10
	PRINTW 이미 MAX입니다。
	RETURN 0
ELSEIF ABL:7 >= 5 && TALENT:3 == 0 && TALENT:6 == 0 && TALENT:5 == 0 && TALENT:8 == 0
	PRINTW 이미 MAX입니다。
	RETURN 0
ENDIF

CALL DECIDE_ABLUP7

;ＬＶ４から５に上げるときは이상경험以上必要（素質：[연모][친애]なら無視できる）
IF ABL:7 == 4 && TALENT:3 == 0 && TALENT:6 == 0
	PRINTS EXPNAME:50
	PRINTL 있음、
;ＬＶ８から９に上げるときは이상경험5以上必要（素質：[연모][친애]なら無視できる）
ELSEIF ABL:7 == 8 && TALENT:3 == 0 && TALENT:6 == 0
	PRINTS EXPNAME:50
	PRINTL 5 이상、또한
ENDIF

;순종が必要
;굴복의 구슬で上げる
PRINTS ABLNAME:0
PRINTV ABL:7 + 1
PRINTL LV 이상、또한

;A=굴복의 구슬
;B=온순의 구슬
;C=습득의 구슬
;D=봉사쾌락경험
;E=정액경험
;素質による増減の表示（굴복의 구슬）

IF TALENT:복종 == 1
	SETCOLOR 0,255,255
	PRINTFORM [복종]×0.7（굴복의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:예속 == 1
	SETCOLOR 0,255,255
	PRINTFORM [예속]×0.4（굴복의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:연모 == 1
	SETCOLOR 0,255,255
	PRINTFORM [연모]×0.8（온순의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:친애 == 1
	SETCOLOR 0,255,255
	PRINTFORM [친애]×0.6（온순의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:헌신적 == 1
	SETCOLOR 0,255,255
	PRINTFORM [헌신적]×0.5（ALL）
	RESETCOLOR
ENDIF
IF TALENT:성직자 == 1
	SETCOLOR 0,255,255
	PRINTFORM [성직자]×0.5（ALL）
	RESETCOLOR
ENDIF
IF TALENT:성악 == 1
	SETCOLOR 0xCC0000
	PRINTFORM [성악]×2.0（ALL）
	RESETCOLOR
ENDIF
IF TALENT:일선을넘지않음 == 1
	IF TALENT:3 == 0 && TALENT:4 == 0 && TALENT:5 == 0 && TALENT:6 == 0 && TALENT:7 == 0 && TALENT:8 == 0
		SETCOLOR 0xCC0000
		PRINTFORM [일선을넘지않음]×2.0（ALL）
		RESETCOLOR
	ENDIF
ENDIF
IF TALENT:카리스마 == 1
	SETCOLOR 0xCC0000
	PRINTFORM [카리스마]×2.0（ALL）
	RESETCOLOR
ENDIF
PRINTL

PRINT [0] -
PRINTS PALAMNAME:7
PRINT 의 구슬×
PRINTV A
IF E > 0
	PRINT 、
	PRINTS EXPNAME:2
	PRINTV E
	PRINT  이상
	PRINT 、
	PRINTS EXPNAME:20
	PRINTV E
	PRINT  이상
ENDIF
PRINT ……

IF I == 0
	PRINT ＯＫ
ELSE
	SIF I & 1
		PRINT 구슬부족
	SIF I & 2
		PRINT 경험부족
	SIF I & 4
		PRINT 능력부족
ENDIF
PRINTL

IF B > 0
	;온순의 구슬で上げる
	SIF JUEL:5 < B
		J |= 1
	;この場合봉사쾌락경험が必要なことあり
	SIF EXP:21 < D
		J |= 2

	PRINT [1] -
	PRINTS PALAMNAME:5
	PRINT 의 구슬×
	PRINTV B
	IF D > 0
		PRINT 、
		PRINTS EXPNAME:21
		PRINTV D
		PRINT  이상
	ENDIF
	PRINT ……

	IF J == 0
		PRINT ＯＫ
	ELSE
		SIF J & 1
			PRINT 구슬부족
		SIF J & 2
			PRINT 경험부족
		SIF J & 4
			PRINT 능력부족
	ENDIF
	PRINTL
ELSE
	J = 256
ENDIF

IF C > 0
	;습득의 구슬で上げる
	SIF JUEL:8 < C
		K |= 1
	;この場合절정경험が１以上必要
	SIF EXP:2 < 1
		K |= 2

	PRINT [2] -
	PRINTS PALAMNAME:8
	PRINT 의 구슬×
	PRINTV C
	PRINT 、
	PRINTS EXPNAME:2
	PRINTV 1
	PRINT  이상
	PRINT ……

	IF K == 0
		PRINT ＯＫ
	ELSE
		SIF K & 1
			PRINT 구슬부족
		SIF K & 2
			PRINT 경험부족
		SIF K & 4
			PRINT 능력부족
	ENDIF

	PRINTL
ELSE
	K = 256
ENDIF

PRINTL [100] - 돌아온다

$INPUT_LOOP
INPUT
IF (RESULT < 0 || RESULT > 2) && RESULT != 100
	GOTO INPUT_LOOP
ELSEIF I != 0 && RESULT == 0
	PRINTL 조건을 충족하지 못했습니다。재입력해주세요
	GOTO INPUT_LOOP
ELSEIF J == 256 && RESULT == 1
	GOTO INPUT_LOOP
ELSEIF J != 0 && RESULT == 1
	PRINTL 조건을 충족하지 못했습니다。재입력해주세요
	GOTO INPUT_LOOP
ELSEIF K == 256 && RESULT == 2
	GOTO INPUT_LOOP
ELSEIF K != 0 && RESULT == 2
	PRINTL 조건을 충족하지 못했습니다。재입력해주세요
	GOTO INPUT_LOOP
ELSEIF RESULT == 100
	RETURN 0
ENDIF

ABL:7 += 1

IF RESULT == 0
	JUEL:7 -= A
ELSEIF RESULT == 1
	JUEL:5 -= B
ELSEIF RESULT == 2
	JUEL:8 -= C
ENDIF

PRINTS ABLNAME:7
PRINT 의 레벨이
PRINTV ABL:7
PRINTFORMW %숫자만처리(ABL:7,"로")% 변했습니다

;봉사정신LvUP判定
@DECIDE_ABLUP7
;条件別にＯＫかダメかを記録する
I = 0
J = 0
K = 0
;能力アップ可能なら1にする
Z = 0

IF ABL:7 == 0
	A = 100
	B = 20
	C = 100
	D = 5
	E = 5
ELSEIF ABL:7 == 1
	A = 1200
	B = 100
	C = 0
	D = 5
	E = 10
ELSEIF ABL:7 == 2
	A = 5000
	B = 600
	C = 0
	D = 20
	E = 20
ELSEIF ABL:7 == 3
	A = 10000
	B = 2000
	C = 0
	D = 50
	E = 20
ELSEIF ABL:7 == 4
	A = 30000
	B = 8000
	C = 0
	D = 100
	E = 30
ELSEIF ABL:7 == 5
	A = 35000
	B = 8500
	C = 0
	D = 150
	E = 40
ELSEIF ABL:7 == 6
	A = 40000
	B = 10000
	C = 0
	D = 200
	E = 100
ELSEIF ABL:7 == 7
	A = 45000
	B = 15000
	C = 0
	D = 250
	E = 150
ELSEIF ABL:7 == 8
	A = 50000
	B = 20000
	C = 0
	D = 300
	E = 200
ELSEIF ABL:7 == 9
	A = 60000
	B = 30000
	C = 0
	D = 400
	E = 300
ENDIF

;연모
SIF TALENT:3
	TIMES B , 0.80
;친애
SIF TALENT:6
	TIMES B , 0.60
;복종
SIF TALENT:5
	TIMES A , 0.70
;예속
SIF TALENT:8
	TIMES A , 0.40
;헌신적
IF TALENT:헌신적
	TIMES A , 0.50
	TIMES B , 0.50
	TIMES C , 0.50
	TIMES D , 0.50
	TIMES E , 0.50
ENDIF
;성악
IF TALENT:성악
	TIMES A , 2.00
	TIMES B , 2.00
	TIMES C , 2.00
	TIMES D , 2.00
	TIMES E , 2.00
ENDIF
;일선을넘지않음
IF TALENT:일선을넘지않음 == 1
	IF TALENT:3 == 0 && TALENT:4 == 0 && TALENT:5 == 0 && TALENT:6 == 0 && TALENT:7 == 0 && TALENT:8 == 0
		TIMES A , 2.00
		TIMES B , 2.00
		TIMES C , 2.00
		TIMES D , 2.00
		TIMES E , 2.00
	ENDIF
ENDIF
;성직자
IF TALENT:성직자
	TIMES A , 0.50
	TIMES B , 0.50
	TIMES C , 0.50
	TIMES D , 0.50
	TIMES E , 0.50
ENDIF
;카리스마
IF TALENT:카리스마
	TIMES A , 2.00
	TIMES B , 2.00
	TIMES C , 2.00
	TIMES D , 2.00
	TIMES E , 2.00
ENDIF

;순종が봉사정신＋１レベルでないといけない
IF ABL:0 < ABL:7+1
	;순종が不足
	I |= 4
	J |= 4
	K |= 4
ENDIF

;ＬＶ４から５に上げるときは이상경험以上必要（素質：[연모][친애]なら無視できる）
IF ABL:7 == 4 && TALENT:3 == 0 && TALENT:6 == 0
	IF EXP:50 == 0
		;이상경험が不足
		I |= 2
		J |= 2
		K |= 2
	ENDIF
;ＬＶ８から９に上げるときは이상경험5以上必要（素質：[연모][친애]なら無視できる）
ELSEIF ABL:7 == 8 && TALENT:3 == 0 && TALENT:6 == 0
	IF EXP:50 < 5
		;이상경험が不足
		I |= 2
		J |= 2
		K |= 2
	ENDIF
ENDIF

;굴복의 구슬で上げる
SIF JUEL:7 < A
	I |= 1
;절정경험が必要な場合
SIF EXP:2 < E
	I |= 2
;정액경험が必要な場合
SIF EXP:20 < E
	I |= 2

IF I == 0
	Z = 1
ENDIF

IF B > 0
	;온순의 구슬で上げる
	SIF JUEL:5 < B
		J |= 1
	;この場合봉사쾌락경험が必要なことあり
	SIF EXP:21 < D
		J |= 2

	IF J == 0
		Z = 1
	ENDIF
ELSE
	J = 256
ENDIF

IF C > 0
	;습득의 구슬で上げる
	SIF JUEL:8 < C
		K |= 1
	;この場合절정경험が１以上必要
	SIF EXP:2 < 1
		K |= 2

	IF K == 0
		Z = 1
	ENDIF
ELSE
	K = 256
ENDIF
RETURN 1


code:
;노출증の可否
@ISABLUP8
;연모、친애、음란、창녀はMAXLV10
IF ABL:8 >= 10
	RETURN 0
ELSEIF ABL:8 >= 5 && TALENT:3 == 0 && TALENT:6 == 0 && TALENT:4 == 0 && TALENT:7 == 0
	RETURN 0
ENDIF

CALL DECIDE_ABLUP8

IF Z == 0
	RETURN 0
ELSE
	RETURN 1
ENDIF

;노출증
@ABLUP8
DRAWLINE
IF ABL:8 >= 10
	PRINTW 이미 MAX입니다。
	RETURN 0
ELSEIF ABL:8 >= 5 && TALENT:3 == 0 && TALENT:6 == 0 && TALENT:4 == 0 && TALENT:7 == 0
	PRINTW 이미 MAX입니다。
	RETURN 0
ENDIF

CALL DECIDE_ABLUP8

;ＬＶ３から４に上げるときは이상경험必要（素質：[눈에띄고싶어함]なら無視できる）
IF ABL:8 == 3 && TALENT:58 == 0
	PRINTS EXPNAME:50
	PRINTL 있음、
;ＬＶ４から５に上げるときは이상경험3以上必要（素質：[눈에띄고싶어함]なら無視できる）
ELSEIF ABL:8 == 4 && TALENT:58 == 0
	PRINTS EXPNAME:50
	PRINTL 3 이상、
;ＬＶ８から９に上げるときは이상경험5以上必要（素質：[눈에띄고싶어함]なら無視できる）
ELSEIF ABL:8 == 8 && TALENT:58 == 0
	PRINTS EXPNAME:50
	PRINTL 5 이상、또한
ENDIF

;욕망が必要
PRINTS ABLNAME:1
PRINTV ABL:8 + 1
PRINTL LV 이상、또한

;素質による増減の表示（치정의 구슬）
IF TALENT:도착적 == 1
	SETCOLOR 0,255,255
	PRINTFORM [도착적]×0.8（치정의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:일선을넘지않음 == 1
	IF TALENT:3 == 0 && TALENT:4 == 0 && TALENT:5 == 0 && TALENT:6 == 0 && TALENT:7 == 0 && TALENT:8 == 0
		SETCOLOR 0xCC0000
		PRINTFORM [일선을넘지않음]×2.0（ALL）
		RESETCOLOR
	ENDIF
ENDIF
IF TALENT:카리스마 == 1
	SETCOLOR 0xCC0000
	PRINTFORM [카리스마]×2.0（ALL）
	RESETCOLOR
ENDIF
PRINTL
;A=치정의 구슬
PRINT [0] -
PRINTS PALAMNAME:9
PRINT 의 구슬×
PRINTV A
IF ABL:8 < 2
	PRINT 、
	PRINTS EXPNAME:2
	PRINTV 1
	PRINT  이상
ELSE
	PRINT 、
	PRINTS EXPNAME:11
	PRINTV 1
	PRINT  이상
ENDIF
PRINT ……

IF I == 0
	PRINT ＯＫ
ELSE
	SIF I & 1
		PRINT 구슬부족
	SIF I & 2
		PRINT 경험부족
	SIF I & 4
		PRINT 능력부족
ENDIF
PRINTL
PRINTL [100] - 돌아온다

INPUT
IF (RESULT < 0 || RESULT > 0) && RESULT != 100
	RESTART
ELSEIF I != 0 && RESULT == 0
	PRINTL 조건을 충족하지 못했습니다
	RESTART
ELSEIF RESULT == 100
	RETURN 0
ENDIF

ABL:8 += 1

IF RESULT == 0
	JUEL:9 -= A
ENDIF

PRINTS ABLNAME:8
PRINT 의 레벨이
PRINTV ABL:8
PRINTFORMW %숫자만처리(ABL:8,"로")% 변했습니다

;노출증LVUP判定
@DECIDE_ABLUP8
;条件別にＯＫかダメかを記録する
I = 0
J = 0
K = 0
;能力アップ可能なら1にする
Z = 0

IF ABL:8 == 0
	A = 100
ELSEIF ABL:8 == 1
	A = 1000
ELSEIF ABL:8 == 2
	A = 5000
ELSEIF ABL:8 == 3
	A = 15000
ELSEIF ABL:8 == 4
	A = 35000
ELSEIF ABL:8 == 5
	A = 35000
ELSEIF ABL:8 == 6
	A = 35000
ELSEIF ABL:8 == 7
	A = 35000
ELSEIF ABL:8 == 8
	A = 35000
ELSEIF ABL:8 == 9
	A = 35000
ENDIF

;도착적
SIF TALENT:도착적
	TIMES A , 0.80

IF TALENT:일선을넘지않음 == 1
	IF TALENT:3 == 0 && TALENT:4 == 0 && TALENT:5 == 0 && TALENT:6 == 0 && TALENT:7 == 0 && TALENT:8 == 0
		TIMES A , 2.00
	ENDIF
ENDIF

;카리스마
SIF TALENT:카리스마
	TIMES A , 2.00

;욕망が노출증＋１レベルでないといけない
IF ABL:1 < ABL:8+1
	;욕망が不足
	I |= 4
ENDIF

;ＬＶ３から４に上げるときは이상경험必要（素質：[눈에띄고싶어함]なら無視できる）
IF ABL:8 == 3 && TALENT:58 == 0
	IF EXP:50 == 0
		;이상경험が不足
		I |= 2
	ENDIF
;ＬＶ４から５に上げるときは이상경험3以上必要（素質：[눈에띄고싶어함]なら無視できる）
ELSEIF ABL:8 == 4 && TALENT:58 == 0
	IF EXP:50 < 3
		;이상경험が不足
		I |= 2
	ENDIF
;ＬＶ８から９に上げるときは이상경험5以上必要（素質：[눈에띄고싶어함]なら無視できる）
ELSEIF ABL:8 == 8 && TALENT:58 == 0
	IF EXP:50 < 5
		;이상경험が不足
		I |= 2
	ENDIF
ENDIF

;치정의 구슬で上げる
SIF JUEL:9 < A
	I |= 1
IF ABL:8 < 2
	;절정경험が必要
	SIF EXP:2 == 0
		I |= 2
ELSE
	;조교자위경험が必要
	SIF EXP:11 == 0
		I |= 2
ENDIF

IF I == 0
	Z = 1
ENDIF

RETURN 1


code:
;마조끼の可否
@ISABLUP9
;연모、친애、복종、예속はMAXLV10
IF ABL:9 >= 10
	RETURN 0
ELSEIF ABL:9 >= 5 && TALENT:3 == 0 && TALENT:6 == 0 && TALENT:5 == 0 && TALENT:8 == 0
	RETURN 0
ENDIF

CALL DECIDE_ABLUP9

IF Z == 0
	RETURN 0
ELSE
	RETURN 1
ENDIF

;마조끼
@ABLUP9
DRAWLINE
;연모、친애、복종、예속はMAXLV10
IF ABL:9 >= 10
	PRINTW 이미 MAX입니다。
	RETURN 0
ELSEIF ABL:9 >= 5 && TALENT:3 == 0 && TALENT:6 == 0 && TALENT:5 == 0 && TALENT:8 == 0
	PRINTW 이미 MAX입니다。
	RETURN 0
ENDIF

CALL DECIDE_ABLUP9

;ＬＶ３から４に上げるときは이상경험必要（素質：[해방]なら無視できる）
IF ABL:9 == 3 && TALENT:83 == 0
	PRINTS EXPNAME:50
	PRINTL 있음、
;ＬＶ４から５に上げるときは이상경험3以上必要（素質：[해방]なら無視できる）
ELSEIF ABL:9 == 4 && TALENT:83 == 0
	PRINTS EXPNAME:50
	PRINTL 3 이상、
;ＬＶ８から９に上げるときは이상경험5以上必要（素質：[해방]なら無視できる）
ELSEIF ABL:9 == 4 && TALENT:83 == 0
	PRINTS EXPNAME:50
	PRINTL 5 이상、또한
ENDIF
;素質による増減の表示（고통의 구슬、욕정의 구슬）

IF TALENT:해방 == 1
	SETCOLOR 0,255,255
	PRINTFORM [해방]×0.8(ALL)
	RESETCOLOR
ENDIF
IF TALENT:도착적 == 1
	SETCOLOR 0,255,255
	PRINTFORM [도착적]×0.8(ALL)
	RESETCOLOR
ENDIF
IF TALENT:마조 == 1
	SETCOLOR 0,255,255
	PRINTFORM [마조]×0.5(ALL)
	RESETCOLOR
ENDIF
IF TALENT:일선을넘지않음 == 1
	IF TALENT:3 == 0 && TALENT:4 == 0 && TALENT:5 == 0 && TALENT:6 == 0 && TALENT:7 == 0 && TALENT:8 == 0
		SETCOLOR 0xCC0000
		PRINTFORM [일선을넘지않음]×2.0（ALL）
		RESETCOLOR
	ENDIF
ENDIF
IF TALENT:카리스마 == 1
	SETCOLOR 0xCC0000
	PRINTFORM [카리스마]×2.0（ALL）
	RESETCOLOR
ENDIF
PRINTL
;A=고통의 구슬
;B=욕정의 구슬
;C=고통쾌락경험
;D=고통의 구슬
;E=굴복의 구슬
IF B > 0
	PRINT [0] -
	PRINTS PALAMNAME:10
	PRINT 의 구슬×
	PRINTV A
	PRINT 、
	PRINTS PALAMNAME:6
	PRINT 의 구슬×
	PRINTV B
	IF C > 0
		PRINT 、
		PRINTS EXPNAME:30
		PRINTV C
		PRINT  이상
	ENDIF
	PRINT ……

	IF I == 0
		PRINT ＯＫ
	ELSE
		SIF I & 1
			PRINT 구슬부족
		SIF I & 2
			PRINT 경험부족
		SIF I & 4
			PRINT 능력부족
	ENDIF
	PRINTL
ELSE
	I = 256
ENDIF

IF D > 0
	PRINT [1] -
	PRINTS PALAMNAME:10
	PRINT 의 구슬×
	PRINTV D
	PRINT 、
	PRINTS PALAMNAME:7
	PRINT 의 구슬×
	PRINTV E
	IF C > 0
		PRINT 、
		PRINTS EXPNAME:30
		PRINTV C
		PRINT  이상
	ENDIF
	PRINT 、
	PRINTS EXPNAME:2
	PRINTV 1
	PRINT  이상
	PRINT ……

	IF J == 0
		PRINT ＯＫ
	ELSE
		SIF J & 1
			PRINT 구슬부족
		SIF J & 2
			PRINT 경험부족
		SIF J & 4
			PRINT 능력부족
	ENDIF
	PRINTL
ELSE
	J = 256
ENDIF

PRINTL [100] - 돌아온다

INPUT
IF (RESULT < 0 || RESULT > 1) && RESULT != 100
	RESTART
ELSEIF I != 0 && RESULT == 0
	PRINTL 조건을 충족하지 못했습니다
	RESTART
ELSEIF J == 256 && RESULT == 1
	RESTART
ELSEIF J != 0 && RESULT == 1
	PRINTL 조건을 충족하지 못했습니다
	RESTART
ELSEIF RESULT == 100
	RETURN 0
ENDIF

ABL:9 += 1

IF RESULT == 0
	JUEL:10 -= A
	JUEL:6 -= B
ELSEIF RESULT == 1
	JUEL:10 -= D
	JUEL:7 -= E
ENDIF

PRINTS ABLNAME:9
PRINT 의 레벨이
PRINTV ABL:9
PRINTFORMW %숫자만처리(ABL:9,"로")% 변했습니다

;마조끼LVUP判定
@DECIDE_ABLUP9
;条件別にＯＫかダメかを記録する
I = 0
J = 0
;能力アップ可能なら1にする
Z = 0

IF ABL:9 == 0
	A = 100
	B = 100
	C = 0
	D = 100
	E = 100
ELSEIF ABL:9 == 1
	A = 500
	B = 500
	C = 0
	D = 500
	E = 300
ELSEIF ABL:9 == 2
	A = 1200
	B = 1000
	C = 0
	D = 1500
	E = 1000
ELSEIF ABL:9 == 3
	A = 0
	B = 0
	C = 10
	D = 3000
	E = 6000
ELSEIF ABL:9 == 4
	A = 0
	B = 0
	C = 50
	D = 5000
	E = 12000
ELSEIF ABL:9 == 5
	A = 0
	B = 0
	C = 100
	D = 8000
	E = 15000
ELSEIF ABL:9 == 6
	A = 0
	B = 0
	C = 150
	D = 12000
	E = 20000
ELSEIF ABL:9 == 7
	A = 0
	B = 0
	C = 200
	D = 15000
	E = 25000
ELSEIF ABL:9 == 8
	A = 0
	B = 0
	C = 250
	D = 25000
	E = 35000
ELSEIF ABL:9 == 9
	A = 0
	B = 0
	C = 350
	D = 30000
	E = 40000
ENDIF

IF TALENT:일선을넘지않음 == 1
	IF TALENT:3 == 0 && TALENT:4 == 0 && TALENT:5 == 0 && TALENT:6 == 0 && TALENT:7 == 0 && TALENT:8 == 0
		TIMES A , 2.00
		TIMES B , 2.00
		TIMES C , 2.00
		TIMES D , 2.00
		TIMES E , 2.00
	ENDIF
ENDIF
;해방
IF TALENT:해방
	TIMES A , 0.80
	TIMES B , 0.80
	TIMES C , 0.80
	TIMES D , 0.80
	TIMES E , 0.80
ENDIF
;도착적
IF TALENT:도착적
	TIMES A , 0.80
	TIMES B , 0.80
	TIMES C , 0.80
	TIMES D , 0.80
	TIMES E , 0.80
ENDIF
;마조
IF TALENT:194
	TIMES A , 0.50
	TIMES B , 0.50
	TIMES C , 0.50
	TIMES D , 0.50
	TIMES E , 0.50
ENDIF
;카리스마
IF TALENT:카리스마
	TIMES A , 2.00
	TIMES B , 2.00
	TIMES C , 2.00
	TIMES D , 2.00
	TIMES E , 2.00
ENDIF

;ＬＶ３から４に上げるときは이상경험必要（素質：[해방]なら無視できる）
IF ABL:9 == 3 && TALENT:83 == 0
	IF EXP:50 == 0
		;이상경험が不足
		I |= 2
		J |= 2
	ENDIF
;ＬＶ４から５に上げるときは이상경험3以上必要（素質：[해방]なら無視できる）
ELSEIF ABL:9 == 4 && TALENT:83 == 0
	IF EXP:50 < 3
		;이상경험が不足
		I |= 2
		J |= 2
	ENDIF
;ＬＶ８から９に上げるときは이상경험5以上必要（素質：[해방]なら無視できる）
ELSEIF ABL:9 == 8 && TALENT:83 == 0
	IF EXP:50 < 5
		;이상경험が不足
		I |= 2
		J |= 2
	ENDIF
ENDIF

IF B > 0
	;고통의 구슬で上げる
	SIF JUEL:10 < A
		I |= 1
	;욕정의 구슬で上げる
	SIF JUEL:6 < B
		I |= 1
	;고통쾌락경험が必要な場合
	SIF EXP:30 < C
		I |= 2

	IF I == 0
		Z = 1
	ENDIF
ELSE
	I = 256
ENDIF

IF D > 0
	;고통의 구슬で上げる
	SIF JUEL:10 < D
		J |= 1
	;굴복의 구슬で上げる
	SIF JUEL:7 < E
		J |= 1
	;この場合고통쾌락경험が必要なことあり
	SIF EXP:30 < C
		J |= 2
	;この場合절정경험が１以上必要
	SIF EXP:2 < 1
		J |= 2

	IF J == 0
		Z = 1
	ENDIF
ELSE
	J = 256
ENDIF
RETURN 1


code:
;굴복각인を消してみるテスト
;使う場合は↓をABL.ERBの「PRINTL [100] 能力値アップの終了」の前に挿入すること
;PRINTFORML [99]%MARKNAME:3%-{MARK:3}LV
;
;TRACHECK.ERBも弄ると再度굴복각인が付いたりしないので吉
;●改変前
;IF A >= 500 && A < 1200 && MARK:3 <= 0
;	MARK:3 = 1
;●改変後
;IF A >= 500 && A < 1200 && MARK:4 <= 0
;	MARK:3 = 1
;	MARK:4 = 1
;●以上の内容を3LVの3箇所にすること
;上記の解らないor解ってもやらない場合に再度굴복각인付いた場合の弊害は保証しかねます

@ISABLUP99
IF MARK:3 <= 0
	RETURN 0
ENDIF

CALL DECIDE_ABLUP99

IF Z == 0
	RETURN 0
ELSE
	RETURN 1
ENDIF

@ABLUP99
DRAWLINE
IF MARK:3 <= 0
	PRINTW 반발각인은 없습니다
	RETURN 0
ENDIF

CALL DECIDE_ABLUP99

;반발각인Lvと同じLvの굴복각인が必要
PRINTS MARKNAME:2
PRINTV MARK:3
PRINTL LV 이상、또한

;반발각인Lvと同じLvの순종が必要
PRINTS ABLNAME:0
PRINTV MARK:3
PRINTL LV 이상、또한

IF TALENT:얌전함 == 1
	SETCOLOR 0xCC0000
	PRINTFORM [얌전함]×0.7（굴복의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:반하기쉬움 == 1
	SETCOLOR 0xCC0000
	PRINTFORM [반하기쉬움]×0.8（굴복의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:반항적 == 1
	SETCOLOR 0xCC0000
	PRINTFORM [반항적]×2.0（굴복의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:건방짐 == 1
	SETCOLOR 0xCC0000
	PRINTFORM [건방짐]×1.5（굴복의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:고결 == 1
	SETCOLOR 0xCC0000
	PRINTFORM [고결]×2.0（굴복의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:성악 == 1
	SETCOLOR 0xCC0000
	PRINTFORM [성악]×2.0（굴복의 구슬）
	RESETCOLOR
ENDIF
IF TALENT:카리스마 == 1
	SETCOLOR 0xCC0000
	PRINTFORM [카리스마]×2.0（굴복의 구슬）
	RESETCOLOR
ENDIF

PRINTL
PRINTFORM [0] - %PALAMNAME:7%의 구슬×{A}……
IF I == 0
	PRINT ＯＫ
ELSE
	SIF I & 1
		PRINT 구슬부족
	SIF I & 2
		PRINT 각인 부족
	SIF I & 4
		PRINT 능력부족
ENDIF
PRINTL

PRINTL [100] - 돌아온다

INPUT
IF RESULT != 0 && RESULT != 100
	RESTART
ELSEIF I != 0 && RESULT == 0
	PRINTL 조건을 충족하지 못했습니다
	RESTART
ELSEIF RESULT == 100
	RETURN 0
ENDIF

MARK:3 -= 1

JUEL:7 -= A

PRINTS MARKNAME:3
PRINT 의 레벨이
PRINTV MARK:3
PRINTFORMW %숫자만처리(ABL:99,"로")% 변했습니다

;
@DECIDE_ABLUP99
;条件別にＯＫかダメかを記録する
I = 0
;能力アップ可能なら1にする
Z = 0

IF MARK:3 == 1
	A = 3000
ELSEIF MARK:3 == 2
	A = 5000
ELSEIF MARK:3 == 3
	A = 10000
ENDIF

;반항적
SIF TALENT:반항적
	TIMES A , 2.0
;건방짐
SIF TALENT:건방짐
	TIMES A , 1.5
;얌전함
SIF TALENT:얌전함
	TIMES A , 0.7
;고결
SIF TALENT:고결
	TIMES A , 2.0
;성악
SIF TALENT:성악
	TIMES A , 2.0
;반하기쉬움
SIF TALENT:반하기쉬움
	TIMES A , 0.8
;카리스마
SIF TALENT:카리스마
	TIMES A , 2.0

;반발각인Lvと同じLvの굴복각인が必要
SIF MARK:3 > MARK:2
	I |= 2

;반발각인Lvと同じLvの순종が必要
SIF MARK:3 > ABL:0
	I |= 4

;굴복の宝珠で減らす
SIF JUEL:7 < A
	I |= 1

IF I == 0
	Z = 1
ENDIF


code:
@ALLOW_CONTACT, ARG
RETURN ALLOW_CONTACT_CORE(ARG)

@ALLOW_CONTACT_CORE(targetChara)
#FUNCTION
#DIM targetChara
;FLAG:8 休日かどうか 0 休日　1 平日
;RESULT 0　会えない1　会える　2タクシー可 3時間が減少
LOCAL:1 = 100*DAY
IF targetChara >= 0 && !IS_UNCONTACTABLE(targetChara)
	;休日は基本的に会えるが、陥落しておらずデート中でない연예인は例外(夜間なら会えるが時間が減る)
	IF IS_HOLIDAY()
		IF TALENT:targetChara:연예인 && !IS_FALLEN(targetChara) && FLAG:10 != 3
			RETURNF (IS_DAYTIME() ? 0 # 3)
		ELSE
			RETURNF 1
		ENDIF
	ELSE
		IF IS_FALLEN(targetChara)
			RETURNF 1
		ELSEIF IS_GO_SAMESCHOOL(targetChara)
			RETURNF 1
		ELSEIF ASSI >= 1 && MONEY >= LOCAL:1 && !IS_GO_SAMESCHOOL(targetChara) && ABL:targetChara:0 >= 3 && IS_NOTLOVE_ATTACKING(targetChara)
			RETURNF 2
		ELSEIF MONEY >= LOCAL:1 && !IS_GO_SAMESCHOOL(targetChara) && ABL:targetChara:0 >= 3 && TALENT:targetChara:교제 == 1
			RETURNF 2
		ELSE
			RETURNF 0
		ENDIF
	ENDIF
ELSE
	RETURNF 0
ENDIF

;	(上位は考えない)	平日		休日
;				日中	夜間	日中	夜間
;연예인持ち	校内	陥落済	0	1	1	1
;			未陥落	0	1	0	3
;		校外	陥落済	0	1	1	1
;			未陥落	0	0	0	3
;それ以外	校内	陥落済	0	1	1	1
;			未陥落	0	1	1	1
;		校外	陥落済	0	1	1	1
;			未陥落	0	0	1	1

;平日日中調教可否の判定を集約
;ヘッダの表示判定でMASTERが入る可能性あり。
@IS_DAYTIME_TRAIN_ALLOWED(targetChara = -1)
#FUNCTION
#DIM targetChara
SIF targetChara == -1
	targetChara = TARGET
RETURNF (HOLIDAY_DAYTIME_TRAIN_ENABLED && IS_HOLIDAY()) || IS_GOING_DAYTIME_TRAIN_ALLOWED_SCHOOL(targetChara)


code:
;###############################################################
;
;	売春一括指示用定数定義
;						2014/05/16
;###############################################################

;--------------------------------------------------
;プリプロセッサ分岐用空マクロ
;--------------------------------------------------

#DEFINE 売春一括指示

;--------------------------------------------------
;定数
;--------------------------------------------------

;オプション番号
;この番号を変更すると、オプション画面での設定項目番号が切り替わります。
#DIM CONST 売春一括指示_OPTION_NO = 800;

;フィルタ定数
#DIM CONST 売春一括指示_FALSE = 0;
#DIM CONST 売春一括指示_TRUE = 1;
#DIM CONST 売春一括指示_INPUT = 2;

;避妊指示定数
#DIM CONST 売春一括指示_生 = 0;
#DIM CONST 売春一括指示_콘돔 = 1;
;INPUTは上記定数と共用
#DIM CONST 売春一括指示_避妊結界 = 3;

;自動復帰設定値
;売春一括指示_FALSEは上記定数と共用
#DIM CONST 売春一括指示_復帰方法_自動復帰 = 1
#DIM CONST 売春一括指示_復帰方法_自動解除復帰 = 2

#DIMS CONST 売春一括指示_表示リスト_有効無効, 2 = "無効","有効"
#DIMS CONST 売春一括指示_表示リスト_フィルタ, 3 = "断る","受ける","その都度判断"
#DIMS CONST 売春一括指示_表示リスト_避妊方法, 4 = "生","콘돔","その都度判断","子宮避妊結界"
#DIMS CONST 売春一括指示_表示リスト_自動復帰, 3 = "無効","自動復帰","消耗パートナーを自動解除して復帰"

#DIM  CONST 売春一括指示_ループ順_避妊方法, 4 = 売春一括指示_生, 売春一括指示_콘돔, 売春一括指示_避妊結界, 売春一括指示_INPUT
;--------------------------------------------------
;オプション設定フラグ
;--------------------------------------------------

;オプションが有効か否か
;falseの場合、一切の処理を行わない
#DIM SAVEDATA 売春一括指示_OPTION = 売春一括指示_FALSE

;売春客フィルタ全体が有効か否か
;デフォルトはINPUT
#DIM SAVEDATA 売春一括指示_FILTER = 売春一括指示_FALSE

;売春客フィルタ
;デフォルトはINPUT
#DIM SAVEDATA 売春一括指示_FILTER_通常客 = 売春一括指示_INPUT
#DIM SAVEDATA 売春一括指示_FILTER_金が少ない = 売春一括指示_INPUT
#DIM SAVEDATA 売春一括指示_FILTER_ストレス過大 = 売春一括指示_INPUT
#DIM SAVEDATA 売春一括指示_FILTER_孕ませ好き = 売春一括指示_INPUT
#DIM SAVEDATA 売春一括指示_FILTER_金が多い = 売春一括指示_INPUT

;避妊方法一括指示
;デフォルトはINPUT
#DIM SAVEDATA 売春一括指示_避妊方法 = 売春一括指示_INPUT

;自動復帰が有効か否か
;デフォルトはストレス0、체력100％
#DIM SAVEDATA 売春一括指示_自動復帰 = 売春一括指示_FALSE

;復帰条件
;デフォルトはストレス0、체력100％
#DIM SAVEDATA 売春一括指示_復帰条件_ストレス = 0
#DIM SAVEDATA 売春一括指示_復帰条件_체력 = 100


code:
;＠캘린더 표시
@CALENDER
;■■■캘린더 취득 처리
CALL GET_CALENDER	;캘린더 취득 루틴에 이행

;■■■표시 처리
;취득한 연월일을 표시（초년도에서도 「1년째」라고 표시하기 위해(때문에), Y에 1을 가산）
PRINTFORM {Y + 1}년째 {M}월 {D}일(
IF W == 1		;W가 1의 경우는 월요일로서 표시
	PRINT 월
ELSEIF W == 2		;W가 2의 경우는 화요일로서 표시
	PRINT 화
ELSEIF W == 3		;W가 3의 경우는 수요일로서 표시
	PRINT 수
ELSEIF W == 4		;W가 4의 경우는 목요일로서 표시
	PRINT 목
ELSEIF W == 5		;W가 5의 경우는 금요일로서 표시
	PRINT 금
ELSEIF W == 6		;W가 6의 경우는 토요일로서 표시
	SETCOLOR 63 ,63 ,255
	PRINT 토
	RESETCOLOR
ELSEIF W == 0		;W가 0의 경우는 일요일로서 표시
	SETCOLOR 255 ,63 ,63
	PRINT 일
	RESETCOLOR
ENDIF
IF FLAG:8 == 0		;평일 플래그가 쓰러지고 있는 경우는 덧붙여 씀 표시
	SIF P:95 > 0
		PRINT :
	SETCOLOR 255 ,63 ,63
	SIF P:95 == 1
		PRINT 신정
	SIF P:95 == 2
		PRINT 성인의 날
	SIF P:95 == 3
		PRINT 건국기념일
	SIF P:95 == 4
		PRINT 춘분
	SIF P:95 == 5
		PRINT 쇼와의 날
	SIF P:95 == 6
		PRINT 헌법기념일
	SIF P:95 == 7
		PRINT 녹색의 날
	SIF P:95 == 8
		PRINT 어린이 날
	SIF P:95 == 9
		PRINT 바다의 날
	SIF P:95 == 10
		PRINT 경로의 날
	SIF P:95 == 11
		PRINT 추분
	SIF P:95 == 12
		PRINT 체육의 날
	SIF P:95 == 13
		PRINT 문화의 날
	SIF P:95 == 14
		PRINT 근로 감사의 날
	SIF P:95 == 15
		PRINT 천황탄신일
	SIF P:95 == 16
		PRINT 대체 휴일
	SIF P:95 == 17
		PRINT 국민의 휴일
;	SIF P:95 == 18
;		PRINT 휴일
	RESETCOLOR
	SIF P:95 == 19
		PRINT 여름 방학 기간
	SIF P:95 == 20
		PRINT 겨울 방학 기간
	SIF P:95 == 21
		PRINT 봄 방학 기간
ENDIF
PRINT )
SIF TIME == 0
	PRINT 낮
SIF TIME == 1
	PRINT 밤

;＠캘린더 취득 루틴
@GET_CALENDER
;■■■변수 초기화
Y = 0	;년
M = 0	;월
D = 0	;일
W = 0	;요일
;P:91	;파라미터 1（해피 먼데이 대책 변수）
;P:92	;파라미터 2（대체 휴일 플래그）
;P:93	;파라미터 3（춘분의 날 대책 플래그）
;P:94	;파라미터 4（추분의 날 대책 플래그）
P:95 = 0	;파라미터 5（축일명 표기 플래그）

;■■■평일 판정 플래그 처리
FLAG:8 = 1		;평일 플래그를 세운다

;■■■연월일 취득 처리
;윤년에는 대응하지 않고. 향후의 검토 항목에

D = DAY + 6		;D에 경과일수+6일을 대입（4월 7일 스타트에）
SIF D > 365		;D의 값이 366일 이상 경과하고 있었을 경우
	Y += D / 365	;D를 365일에 제산, 그것을 Y에 연차로서 가산

D %= 365		;D를 365일에 제산, 넘치는 수치를 일수로서 산출

IF D == 0		;D가 0（365일째）의 경우
	M = 3
	D = 31		;3월 31일에 고정

ELSEIF D < 31		;D가 31 미만의 경우, D의 값이 그대로 일수로서 확정
	M = 4		;4월로서 확정

ELSEIF D < 62		;D가 62 미만의 경우
	D -= 30		;4월분 30일을 감산해, 일수로서 확정
	M = 5		;5월로서 확정

ELSEIF D < 92		;D가 92 미만의 경우
	D -= 61		;4월～5월분 61일을 감산해, 일수로서 확정
	M = 6		;6월로서 확정

ELSEIF D < 123		;D가 123 미만의 경우
	D -= 91		;4월～6월분 91일을 감산해, 일수로서 확정
	M = 7		;7월로서 확정

ELSEIF D < 154		;D가 154 미만의 경우
	D -= 122	;4월～7월분 122일을 감산해, 일수로서 확정
	M = 8		;8월로서 확정

ELSEIF D < 184		;D가 184 미만의 경우
	D -= 153	;4월～8월분 153일을 감산해, 일수로서 확정
	M = 9		;9월로서 확정

ELSEIF D < 215		;D가 215 미만의 경우
	D -= 183	;4월～9월분 183일을 감산해, 일수로서 확정
	M = 10		;10월로서 확정

ELSEIF D < 245		;D가 245 미만의 경우
	D -= 214	;4월～10월분 214일을 감산해, 일수로서 확정
	M = 11		;11월로서 확정

ELSEIF D < 276		;D가 276 미만의 경우
	D -= 244	;4월～11월분 244일을 감산해, 일수로서 확정
	M = 12		;12월로서 확정

ELSEIF D < 307		;D가 307 미만의 경우
	D -= 275	;4월～12월분 275일을 감산해, 일수로서 확정
	M = 1		;1월로서 확정

ELSEIF D < 335		;D가 335 미만의 경우
	D -= 306	;4월～다음 1월분 306일을 감산해, 일수로서 확정
	M = 2		;2월로서 확정

ELSE			;그 이외（335일～364일）의 경우
	D -= 334	;4월～다음 2월분 334일을 감산해, 일수로서 확정
	M = 3		;3월로서 확정
ENDIF

;■■■요일 취득 처리
W = DAY + 2		;제 1일째는 수요일에 고정
W %= 7			;7로 제산한 나머지를 요일 지정 변수로서 W에 대입

;■■■휴일 판정 처리
SIF D == 1		;매월 첫날에
	P:92 = 0	;대체 휴일 플래그를 클리어
P:91 = D - 1		;해피 먼데이 대책
;----------토요일 처리（주휴 2일）
SIF W == 6		;토요일（W의 값이 6）의 경우
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
;----------제 2토요일의 보고 휴일의 경우
			;일자가 제 2 토요일의 경우
;SIF W == 6 && ( P:91/7) == 1
;	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
;----------일요일 처리
IF W == 0		;일요일（W의 값이 0）의 경우
;	P:95 = 18	;축일명 표기 플래그에 18을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
ENDIF
;----------여름방학
IF M == 7 && D >= 22	;7월 22일부터
	P:95 = 19
	FLAG:8 = 0
ELSEIF M == 8		;8월까지는 여름방학을 위해
	P:95 = 19	;축일명 표기 플래그에 19를 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
;----------겨울방학
ELSEIF M == 12 && D > 21
			;12월 22일부터
	P:95 = 20
	FLAG:8 = 0
ELSEIF M == 1 && D < 7	;다음 1월 6일까지는 겨울방학을 위해
	P:95 = 20	;축일명 표기 플래그에 20을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
;----------봄방학
ELSEIF M == 3 && D >= 24
			;3월 24일부터
	P:95 = 21
	FLAG:8 = 0
ELSEIF M == 4 && D <= 6	;4월 6일까지는 봄방학을 위해
	P:95 = 21	;축일명 표기 플래그에 21을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
ENDIF
;----------설날
SIF M == 1 && D == 1	;일자가 1월 1일의 경우
	P:95 = 1	;축일명 표기 플래그에 1을 대입
;----------성인의 날（해피 먼데이）
IF M == 1
	IF W == 1 && ( P:91 / 7 ) == 1
			;일자가 1월 제 2 월요일의 경우
		P:95 = 2
			;축일명 표기 플래그에 2를 대입
		FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
	ENDIF
ENDIF
;----------건국기념일
IF M == 2 && D == 11	;일자가 2월 11일의 경우
	P:95 = 3	;축일명 표기 플래그에 3을 대입
	IF W == 0	;요일이 일요일의 경우
		P:92 = 1
			;대체 휴일 플래그 1을 세운다
	ELSE		;다른 요일의 경우
		P:92 = 0
			;대체 휴일 플래그를 쓰러뜨려
		FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
	ENDIF
ENDIF
IF M == 2 && D == 12 && P:92 == 1
			;대체 휴일 플래그가 끊어, 2월 12일의 경우
	P:95 = 16	;축일명 표기 플래그에 16을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
ENDIF
;----------춘분의 날（3월 20일／21일의 2가지 있어）
IF M == 3
	P:93 = Y % 2	;파라미터치에 연수를 2로 제산한 나머지를 대입（0 or 1）
	IF P:93 == 0 && D == 20
			;파라미터치가 0으로, 일자가 3월 20일의 경우
		P:95 = 4
			;축일명 표기 플래그에 4를 대입
		IF W == 0
			;요일이 일요일의 경우
			P:92 = 1
			;대체 휴일 플래그 1을 세운다
		ELSE	;다른 요일의 경우
			P:92 = 0
			;대체 휴일 플래그를 쓰러뜨려
			FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
		ENDIF
	ELSEIF P:93 == 1 && D == 21
			;파라미터치가 1으로, 일자가 3월 21일의 경우
		P:95 = 4
			;축일명 표기 플래그에 4를 대입
		IF W == 0
			;요일이 일요일의 경우
			P:92 = 2
			;대체 휴일 플래그 2를 세운다
		ELSE	;다른 요일의 경우
			P:92 = 0
			;대체 휴일 플래그를 쓰러뜨려
			FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
		ENDIF
	ENDIF
ENDIF
IF M == 3 && D == 21 && P:92 == 1
			;대체 휴일 플래그 1이 끊어, 3월 21일의 경우
	P:95 = 16	;축일명 표기 플래그에 16을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
ENDIF
IF M == 3 && D == 22 && P:92 == 2
			;대체 휴일 플래그 2가 끊어, 3월 22일의 경우
	P:95 = 16	;축일명 표기 플래그에 16을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
ENDIF
;----------쇼와의 날
IF M == 4 && D == 29	;일자가 4월 29일의 경우
	P:95 = 5	;축일명 표기 플래그에 5를 대입
	IF W == 0	;요일이 일요일의 경우
		P:92 = 1
			;대체 휴일 플래그 1을 세운다
	ELSE		;다른 요일의 경우
		P:92 = 0
			;대체 휴일 플래그를 쓰러뜨려
		FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
	ENDIF
ENDIF
IF M == 4 && D == 30 && P:92 == 1
			;대체 휴일 플래그가 끊어, 4월 30일의 경우
	P:95 = 16	;축일명 표기 플래그에 16을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
ENDIF
;----------헌법기념일
IF M == 5 && D == 3	;일자가 5월 3일의 경우
	P:95 = 6	;축일명 표기 플래그에 6을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
ENDIF
;----------녹색의 날
IF M == 5 && D == 4	;일자가 5월 4일의 경우
	P:95 = 7	;축일명 표기 플래그에 7을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
ENDIF
;----------어린이의 날
IF M == 5 && D == 5	;일자가 5월 5일의 경우
	P:95 = 8	;축일명 표기 플래그에 8을 대입
	IF W == 0	;요일이 일요일의 경우
		P:92 = 1
			;대체 휴일 플래그 1을 세운다
	ELSE		;다른 요일의 경우
		P:92 = 0
			;대체 휴일 플래그를 쓰러뜨려
		FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
	ENDIF
ENDIF
IF M == 5 && D == 6 && P:92 == 1
			;대체 휴일 플래그가 끊어, 5월 6일의 경우
	P:95 = 16	;축일명 표기 플래그에 16을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
ENDIF
;----------바다의 날（해피 먼데이）
IF M == 7
	IF W == 1 && ( P:91 / 7 ) == 2
			;일자가 7월 제 3 월요일의 경우
		P:95 = 9
			;축일명 표기 플래그에 9를 대입
		FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
	ENDIF
ENDIF
;----------경로의 날（해피 먼데이）
IF M == 9
	IF W == 1 && ( P:91 / 7 ) == 2
			;일자가 9월 제 3 월요일의 경우
		P:95 = 10
			;축일명 표기 플래그에 10을 대입
		FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
	ENDIF
ENDIF
;----------국민의 휴일（있는 경우만）
IF M == 9
	P:94 = Y % 3	;파라미터치에 연수를 3으로 제산한 나머지를 대입（0～2）
			;9월 20일이 월요일（경로의 날）또한 9월 22일이 추분의 날의 경우
	SIF W == 1 && D == 20 && P:94 == 0
		P:92 = 4
			;국민의 휴일 플래그 4를 세운다

			;9월 21일이 월요일（경로의 날）또한 9월 23일이 추분의 날의 경우
	SIF W == 1 && D == 21 && P:94 == 1
		P:92 = 5
			;국민의 휴일 플래그 5를 세운다
ENDIF
IF M == 9 && D == 21 && P:92 == 4
			;국민의 휴일 플래그 4가 끊어, 9월 21일의 경우
	P:95 = 17	;축일명 표기 플래그에 17을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
ENDIF
IF M == 9 && D == 22 && P:92 == 5
			;국민의 휴일 플래그 5가 끊어, 9월 22일의 경우
	P:95 = 17	;축일명 표기 플래그에 17을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
ENDIF
;----------추분의 날（9월 22일～24일의 3가지 있어）
IF M == 9
	P:94 = Y % 3	;파라미터치에 연수를 3으로 제산한 나머지를 대입（0～2）
	IF P:94 == 0 && D == 22
			;파라미터치가 0으로, 일자가 9월 22일의 경우
		P:95 = 11
			;축일명 표기 플래그에 11을 대입
		IF W == 0
			;요일이 일요일의 경우
			P:92 = 1
			;대체 휴일 플래그 1을 세운다
		ELSE	;다른 요일의 경우
			P:92 = 0
			;대체 휴일 플래그를 쓰러뜨려
			FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
		ENDIF
	ELSEIF P:94 == 1 && D == 23
			;파라미터치가 1으로, 일자가 9월 23일의 경우
		P:95 = 11
			;축일명 표기 플래그에 11을 대입
		IF W == 0
			;요일이 일요일의 경우
			P:92 = 2
			;대체 휴일 플래그 2를 세운다
		ELSE	;다른 요일의 경우
			P:92 = 0
			;대체 휴일 플래그를 쓰러뜨려
			FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
		ENDIF
	ELSEIF P:94 == 2 && D == 24
			;파라미터치가 2로, 일자가 9월 24일의 경우
		P:95 = 11
			;축일명 표기 플래그에 11을 대입
		IF W == 0
			;요일이 일요일의 경우
			P:92 = 3
			;대체 휴일 플래그 3을 세운다
		ELSE	;다른 요일의 경우
			P:92 = 0
			;대체 휴일 플래그를 쓰러뜨려
			FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
		ENDIF
	ENDIF
ENDIF
IF M == 9 && D == 23 && P:92 == 1
			;대체 휴일 플래그 1이 끊어, 9월 23일의 경우
	P:95 = 16	;축일명 표기 플래그에 16을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
ENDIF
IF M == 9 && D == 24 && P:92 == 2
			;대체 휴일 플래그 2가 끊어, 9월 24일의 경우
	P:95 = 16	;축일명 표기 플래그에 16을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
ENDIF
IF M == 9 && D == 25 && P:92 == 3
			;대체 휴일 플래그 3이 끊어, 9월 25일의 경우
	P:95 = 16	;축일명 표기 플래그에 16을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
ENDIF
;----------체육의 날（해피 먼데이）
IF M == 10
	IF W == 1 && ( P:91 / 7 ) == 1
			;일자가 10월 제 2 월요일의 경우
		P:95 = 12
			;축일명 표기 플래그에 12를 대입
		FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
	ENDIF
ENDIF
;----------문화의 날
IF M == 11 && D == 3	;일자가 11월 3일의 경우
	P:95 = 13	;축일명 표기 플래그에 13을 대입
	IF W == 0	;요일이 일요일의 경우
		P:92 = 1
			;대체 휴일 플래그 1을 세운다
	ELSE		;다른 요일의 경우
		P:92 = 0
			;대체 휴일 플래그를 쓰러뜨려
		FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
	ENDIF
ENDIF
IF M == 11 && D == 4 && P:92 == 1
			;대체 휴일 플래그가 끊어, 11월 4일의 경우
	P:95 = 16	;축일명 표기 플래그에 16을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
ENDIF
;----------근로감사의 날
IF M == 11 && D == 23	;일자가 11월 23일의 경우
	P:95 = 14	;축일명 표기 플래그에 14를 대입
	IF W == 0	;요일이 일요일의 경우
		P:92 = 1
			;대체 휴일 플래그 1을 세운다
	ELSE		;다른 요일의 경우
		P:92 = 0
			;대체 휴일 플래그를 쓰러뜨려
		FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
	ENDIF
ENDIF
IF M == 11 && D == 24 && P:92 == 1
			;대체 휴일 플래그가 끊어, 11월 24일의 경우
	P:95 = 16	;축일명 표기 플래그에 16을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
ENDIF
;----------천황 생일
IF M == 12 && D == 23	;일자가 12월 23일의 경우
	P:95 = 15	;축일명 표기 플래그에 15를 대입
	IF W == 0	;요일이 일요일의 경우
		P:92 = 1
			;대체 휴일 플래그 1을 세운다
	ELSE		;다른 요일의 경우
		P:92 = 0
			;대체 휴일 플래그를 쓰러뜨려
		FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
	ENDIF
ENDIF
IF M == 12 && D == 24 && P:92 == 1
			;대체 휴일 플래그가 끊어, 12월 24일의 경우
	P:95 = 16	;축일명 표기 플래그에 16을 대입
	FLAG:8 = 0	;평일 플래그를 쓰러뜨린다
ENDIF
;----------체육제의 대체 휴일（9월 제 2 일요일 개최）
IF M == 9
	IF D >= 9 && D <= 15 && W == 1
			;체육제의 다음날의 경우
		P:95 = 16
			;축일명 표기 플래그에 16을 대입
		FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
	ENDIF
ENDIF
;----------문화제의 대체 휴일（10월 제 3 토일요일 개최）
IF M == 10
	IF D >= 17 && D <= 23 && W == 1
			;문화제의 다음달요
		P:95 = 16
			;축일명 표기 플래그에 16을 대입
		FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
	ELSEIF D >= 18 && D <= 24 && W == 2
			;문화제의 다음 화요일
		P:95 = 16
			;축일명 표기 플래그에 16을 대입
		FLAG:8 = 0
			;평일 플래그를 쓰러뜨린다
	ENDIF
ENDIF

;A를 달, B를 날로서 시나리오 파일로 보러 가고 있으므로, 거기에 맞춘다.
A = M
B = D


code:
@DEL_CHARA
#LOCALSIZE 100
LOCAL:1 = 0
P = 99
CALL DISPLAY_COMMON , 16
SIF RESULT == 999
	RETURN 0
LOCAL:1 = RESULT

$INPUT_TOP
PRINTFORML 대상자로 『%NAME:(LOCAL:1)%』%조사만처리(NAME:(LOCAL:1),"가")% 선택되었습니다.
PRINTL
PRINTL 정말 삭제해도 되겠습니까？
DRAWLINE
PRINTFORML [ 0] - 삭제한다
PRINTFORML [99] - 삭제하지 않는다
DRAWLINE
INPUT
IF RESULT == 99
	RETURN 0
ELSEIF RESULT == 0
	PRINTFORMW 『%NAME:(LOCAL:1)%』%조사만처리(NAME:(LOCAL:1),"를")% 삭제했습니다.
	CALL SCENARIO_DEL_CHARACTER ,, (LOCAL:1)
ELSE
	GOTO INPUT_TOP
ENDIF


code:
@SORT_CHARACTER
#LOCALSIZE 100
#DIM index
#DIM index2
#DIM lines
#DIM order
LOCAL:1 = 0
LOCAL:2 = 0
LOCAL:3 = 0
;표시시키는 캐릭터를 추출（Q:*에 표시하는 캐릭터의 등록 번호, LOCAL:2에 인원수）
REPEAT CHARANUM
	;주인공은 제외
	SIF COUNT == 0
		CONTINUE
	SIF IS_UNCONTACTABLE(COUNT)
		CONTINUE
	LOCAL:3 += 1
REND
$TOP_INDEX
IF LOCAL:3 < 2
	PRINTW 정렬할 수 있는 노예가 없습니다
	RETURN 0
ELSE
	PRINTFORML 차례를 정렬합니다
ENDIF

PRINTL [0]캐릭터 번호로 정렬
PRINTL [1]위치 변경(교체)
PRINTL [2]위치 변경(삽입)
PRINTL [3]커스텀 정렬
PRINTL [9]돌아온다
INPUT
IF RESULT == 9
	RETURN 0
ELSEIF RESULT == 0
	DRAWLINE
	PRINTL 정렬하는 순서를 선택해주세요
	DRAWLINE

	PRINTL [0]오름차순(작은 것에서 큰 것으로)
	PRINTL [1]내림차순(큰 것에서 작은 것으로)
	PRINTL [2]돌아온다

	CALL CHECK_TRI
	IF RESULT == 2
		GOTO TOP_INDEX
	ELSEIF RESULT == 0 || RESULT == 1
		PRINT 캐릭터 리스트를 캐릭터 번호의
		IF RESULT == 0
			PRINTW 오름차순으로 정렬했습니다.
			SORTCHARA NO:0
		ELSEIF RESULT == 1
			PRINTW 내림차순으로 정렬했습니다.
			SORTCHARA NO:0,BACK
		ENDIF
	ENDIF
ELSEIF RESULT == 1
;프로필 표시
	P = 11
	CALL DISPLAY_COMMON , 16
	SIF RESULT == 999
		GOTO TOP_INDEX
	LOCAL:1 = RESULT
	C:21 = RESULT

	P = 12
	CALL DISPLAY_COMMON , 16
	SIF RESULT == 999
		GOTO TOP_INDEX
	LOCAL:2 = RESULT

	SIF LOCAL:1 == LOCAL:2
		RETURN 0

	PRINTFORMW %조사처리(NAME:(LOCAL:1),"와")% %조사처리(NAME:(LOCAL:2),"를")% 바꿨습니다.
	CALL SWAP_CHARA(LOCAL:1,LOCAL:2)

ELSEIF RESULT == 2
	P = 13
	CALL DISPLAY_COMMON , 16
	SIF RESULT == 999
		GOTO TOP_INDEX
	LOCAL:8 = RESULT
	C:21 = RESULT

	P = 14
	CALL DISPLAY_COMMON , 16
	SIF RESULT == 999
		GOTO TOP_INDEX
	LOCAL:9 = RESULT

	SIF LOCAL:8 == LOCAL:9
		RETURN 0

	PRINTFORML %조사처리(NAME:(LOCAL:8),"를")% {LOCAL:9}번 위치에 삽입하였습니다.
	CALL INSERT_CHARA(LOCAL:8,LOCAL:9)

ELSEIF RESULT == 3
	index2 = CHARASORT_SET_DEFAULT(LOCAL)
	order = (index2 == -1 ? 1 # LOCAL:index2)
	index2 = MAX(index2,0)
	DRAWLINE
	WHILE 1
		lines = LINECOUNT
		PRINTFORML 정렬 순서를 지정해 주세요.
		PRINTPLAIN [ 0] - 기타
		PRINTL
		FOR index,0,index2
			PRINTPLAINFORM [{index + 1,2}] - %CHARASORT_CUSTOMPATTERN(LOCAL:index,0)%
			PRINTL
		NEXT
		SIF index2 < 9
			PRINTFORML [{index + 1,2}] - %CHARASORT_CUSTOMPATTERN(order,0)%
		DRAWLINE
		SIF index2 > 0
			PRINTFORML [94] - 【돌아온다】
		SIF index2 < 9
			PRINTFORML [95] - 【다음으로】
		PRINTFORML [96] - 【이 패턴을 기본값으로 하여 정렬 실행】
		PRINTFORML [97] - 【정렬 실행】
		PRINTFORML [98] - 【디폴트값 읽기】
		PRINTFORML [99] - 【취소】
		DRAWLINE
		INPUT
		SELECTCASE RESULT
			CASE 99
				RETURN
			CASE 98
				index2 = CHARASORT_SET_DEFAULT(LOCAL)
				order = (index2 == -1 ? 1 # LOCAL:index2)
				index2 = MAX(index2,0)
			CASE 97
				LOCAL:index2 = order
				BREAK
			CASE 96
				WHILE 1
					IF FLAG:11001 != 0
						PRINTFORML 디폴트값은 이미 설정되어 있습니다.덮어쓸까요?
						PRINTFORML [0] - 덮어쓰고 정렬
						PRINTFORML [1] - 정렬만 실행
						PRINTFORML [2] - 취소
						INPUT
						SELECTCASE RESULT
							CASE 0,1,2
								BREAK
							CASEELSE
								;아무것도안한다
						ENDSELECT
					ELSE
						RESULT = 0
						BREAK
					ENDIF
				WEND
				SELECTCASE RESULT
					CASE 0
						LOCAL:index2 = order
						FOR index,0,10
							FLAG:(11001 + index) = LOCAL:index
						NEXT
						BREAK
					CASE 1
						BREAK
					CASE 2
						CONTINUE
				ENDSELECT
			CASE 95
				LOCAL:index2 = order
				index2++
				order = 1
			CASE 94
				index2--
				order = LOCAL:index2
				LOCAL:index2 = 0
			CASE index2 + 1
				order ++
				SIF CHARASORT_CUSTOMPATTERN(order,0) == ""
					order = 1
			CASEELSE
				;아무것도안한다
		ENDSELECT
		CLEARLINE LINECOUNT - lines
	WEND
	FOR index,0,index2+1
		CALL BUBBLE_CHARA(CHARASORT_CUSTOMPATTERN(LOCAL:index,1))
	NEXT
ELSE
	GOTO TOP_INDEX
ENDIF
PRINTL

@SWAP_CHARA(target1,target2)
#LOCALSIZE 100
#DIM target1
#DIM target2
LOCAL:4 = -1
LOCAL:5 = -1
LOCAL:6 = -1
LOCAL:7 = -1

SIF TARGET == target1
	LOCAL:4 = target1
SIF TARGET == target2
	LOCAL:5 = target2
SIF ASSI == target1
	LOCAL:6 = target1
SIF ASSI == target2
	LOCAL:7 = target2

SWAPCHARA target1,target2

SIF LOCAL:4 >= 0
	TARGET = target2
SIF LOCAL:5 >= 0
	TARGET = target1
SIF LOCAL:6 >= 0
	ASSI = target2
SIF LOCAL:7 >= 0
	ASSI = target1

RETURN

@INSERT_CHARA(fromChara,toChara)
#DIM index
#DIM index2
#DIM fromChara
#DIM toChara
index = fromChara
REPEAT 100
	index2 = index + (fromChara < toChara) * 2 - 1
	CALL SWAP_CHARA(index,index2)
	index += (fromChara < toChara) * 2 -1
	SIF index2 == toChara
		BREAK
REND
RETURN

@BUBBLE_CHARA(rulePattern)
#LOCALSIZE 3
#DIM DYNAMIC index = 0
#DIM dynamic movedCount = 0
#DIMS rulePattern
WHILE index < CHARANUM - movedCount
	IF EVALUATE(rulePattern,index)
		LOCAL:1 = index
		REPEAT 100
			LOCAL:2 = LOCAL:1 + 1
			CALL SWAP_CHARA(LOCAL:1,LOCAL:2)

			LOCAL:1 += 1
			SIF LOCAL:2 == CHARANUM - 1
				BREAK
		REND
		movedCount++
	ELSE
		index++
	ENDIF
WEND
RETURN

@CHARASORT_SET_DEFAULT(sortList)
#FUNCTION
#DIM REF sortList
#DIM index
VARSET sortList,0
FOR index,0,10
	sortList:index = FLAG:(11001 + index)
NEXT
RETURNF GET_LIST_LAST_ELEMENT(sortList,0)

@CHARASORT_CUSTOMPATTERN(index,type)
#FUNCTIONS
#DIM index
#DIM pattern
#DIMS answer
#DIM type
SELECTCASE index
	CASE 1
		answer '= "함락완료;IS_FALLEN(index)"
	CASE 2
		answer '= "상위함락완료;IS_UPPER_FALLEN(index)"
	CASE 3
		answer '= "상위함락완료(인계 제외);IS_UPPER_FALLEN(index) && !TALENT:index:인계됨"
	CASE 4
		answer '= "인계됨;TALENT:index:인계됨"
	CASE 5
		answer '= "교제;TALENT:index:교제"
	CASE 6
		answer '= "강간;TALENT:index:강간"
	CASE 7
		answer '= "협박;TALENT:index:협박"
	CASE 8
		answer '= "기생;TALENT:index:기생"
	CASE 9
		answer '= "최면;TALENT:index:최면"
	CASE 10
		answer '= "연모;TALENT:index:연모"
	CASE 11
		answer '= "복종;TALENT:index:복종"
	CASE 12
		answer '= "음란;TALENT:index:음란"
	CASE 13
		answer '= "동화;TALENT:index:동화"
	CASE 14
		answer '= "친애;TALENT:index:친애"
	CASE 15
		answer '= "예속;TALENT:index:예속"
	CASE 16
		answer '= "창녀;TALENT:index:창녀"
	CASE 17
		answer '= "모판;TALENT:index:모판"
	CASE 18
		answer '= "상위함락완료(인계 제외、[AV녀] 취득);IS_UPPER_FALLEN(index) && !TALENT:index:인계됨 && TALENT:index:AV녀"
	CASE 19
		answer '= "AV녀;TALENT:index:AV녀"
	CASE 20
		answer '= "기초조사 중;CFLAG:index:1000 < 5"
	CASE 21
		answer '= "조교가능;CFLAG:index:1000 == 5"
	CASE 22
		answer '= "매춘 중;CFLAG:index:25 == 1"
	CASE 23
		answer '= "공중변소 중;CFLAG:index:25 == 2"
	CASE 24
		answer '= "아르바이트 중;CFLAG:index:25 == 3"
	CASE 25
		answer '= "추가명령 중;CFLAG:index:1100 != 0 && CFLAG:index:1101 != 0"
	CASE 26
		answer '= "붕괴;TALENT:index:붕괴"
;	CASE 27
;		answer '= "전조수;ISASSI:index == 1"
	CASEELSE
		answer '= ";"
ENDSELECT
RETURNF GET_BETWEEN_STRING(answer,";",type)


code:
@CLAB_CLOTH
;CFLAG,44,41;하반신 겉옷
;CFLAG,45,54;상반신 겉옷
;CFLAG,46,0;전신 겉옷
CFLAG:47 = CFLAG:44
CFLAG:48 = CFLAG:45
CFLAG:49 = CFLAG:46

IF CFLAG:1002 == 1201 || CFLAG:1002 == 1202 || CFLAG:1002 == 1203 || CFLAG:1002 == 1207
;육상, 소프트볼, 발레, 축구
	CALL OVERWRITE_CLOTHES_SET_NAME("체육복",TARGET)
ELSEIF CFLAG:1002 == 1205 || CFLAG:1002 == 1253 || CFLAG:1002 == 1263
;테니스, 라크로스, 치어리딩부
	CALL OVERWRITE_CLOTHES_SET_NAME("테니스웨어",TARGET)
ELSEIF CFLAG:1002 == 1204
;수영
	CALL OVERWRITE_CLOTHES_SET_NAME("水着",TARGET)
ELSEIF CFLAG:1002 == 1206 || CFLAG:1002 == 1228 || CFLAG:1002 == 1229
;체조, 아마레스, 신체조
	CALL OVERWRITE_CLOTHES_SET_NAME("레오타드",TARGET)
ELSEIF CFLAG:1002 == 1209 || CFLAG:1002 == 1208
;탁구, 바스켓
	CALL OVERWRITE_CLOTHES_SET_NAME("スポーツウェア",TARGET)
ELSEIF CFLAG:1002 == 1221 || CFLAG:1002 == 1225 || CFLAG:1002 == 1226 || CFLAG:1002 == 1227
;검도, 궁도, 장도, 합기도
	CALL OVERWRITE_CLOTHES_SET_NAME("도복",TARGET)
ELSEIF CFLAG:1002 == 1222 || CFLAG:1002 == 1223
;유도, 가라테
	CALL OVERWRITE_CLOTHES_SET_NAME("空손着",TARGET)
ELSEIF CFLAG:1002 == 1224
;펜싱
	CALL OVERWRITE_CLOTHES_SET_NAME("펜싱・코스춤",TARGET)
ELSEIF CFLAG:1002 == 1256
;전차도부
	CALL OVERWRITE_CLOTHES_SET_NAME("유니폼",TARGET)
ENDIF