code:
;-------------------------------------------------
;조개벌리기
;애무系コマンド、レベル2
;-------------------------------------------------
@COMNAME9
RESULTS = \@ !IS_BOTTOMFREE(15) ? 속옷제끼고 # \@%TRAINNAME:9%

@COM9
;-------------------------------------------------
;実行できるかの判定
;-------------------------------------------------
A = 0
S = 0

;すべての命令に共通の要素を考慮
;(순종が高いと命令に従いやすいなど)
CALL COM_ORDER

;ABL:욕망
IF ABL:1
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += ABL:1 * 3
	CALL SET_COLOR_STATUS,1
	PRINTS ABLNAME:1
	PRINTV 'LV,ABL:1,'(,ABL:1 * 3,')
	RESETCOLOR
	S = 1
ENDIF
;ABL:Ｖ감각
IF ABL:4
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += ABL:4 * 2
	CALL SET_COLOR_STATUS,1
	PRINTS ABLNAME:4
	PRINTV 'LV,ABL:4,'(,ABL:4 * 2,')
	RESETCOLOR
	S = 1
ENDIF
;ABL:봉사정신
IF ABL:7
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += ABL:7 * 4
	CALL SET_COLOR_STATUS,1
	PRINTS ABLNAME:7
	PRINTV 'LV,ABL:7,'(,ABL:7 * 4,')
	RESETCOLOR
	S = 1
ENDIF
;ABL:노출증
IF ABL:8
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += ABL:7 * 3
	CALL SET_COLOR_STATUS,1
	PRINTS ABLNAME:7
	PRINTV 'LV,ABL:7,'(,ABL:7 * 3,')
	RESETCOLOR
	S = 1
ENDIF
;ABL:자위중독
IF ABL:15
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += ABL:15 * 3
	CALL SET_COLOR_STATUS,1
	PRINTS ABLNAME:15
	PRINTV 'LV,ABL:15,'(,ABL:15 * 3,')
	RESETCOLOR
	S = 1
ENDIF

IF MARK:1
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += MARK:1 * 3
	CALL SET_COLOR_STATUS,1
	PRINTS MARKNAME:1
	PRINTV 'LV,MARK:1,'(,MARK:1 * 3,')
	RESETCOLOR
	S = 1
ENDIF

;PALAM:윤활（の不足）
IF PALAM:4 < PALAMLV:3
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 5
	PRINT 윤활부족
	PRINTV '(,5,')
	RESETCOLOR
	S = 1
ENDIF
;PALAM:욕정
IF PALAM:6 < PALAMLV:1
	L = 0
ELSEIF PALAM:6 < PALAMLV:2
	L = 1
ELSEIF PALAM:6 < PALAMLV:3
	L = 2
ELSEIF PALAM:6 < PALAMLV:4
	L = 3
ELSEIF PALAM:6 < PALAMLV:5
	L = 4
ELSE
	L = 5
ENDIF
IF L
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += L * 3
	CALL SET_COLOR_STATUS,1
	PRINTS PALAMNAME:5
	PRINTV 'LV,L,'(,L * 3,')
	RESETCOLOR
	S = 1
ENDIF
;겁쟁이
IF TALENT:20
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 5
	PRINTS TALENTNAME:20
	PRINTV '(,5,')
	RESETCOLOR
	S = 1
ENDIF
;부끄럼쟁이
IF TALENT:85
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 10
	PRINTS TALENTNAME:85
	PRINTV '(,10,')
	RESETCOLOR
	S = 1
ENDIF
;쾌감을부정（음란、창녀で無効）
IF TALENT:171 && (TALENT:4 == 0 && TALENT:7 == 0)
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 5
	PRINTS TALENTNAME:171
	PRINTV '(,5,')
	RESETCOLOR
	S = 1
ENDIF
;남성혐오（연모、친애で無効）
IF TALENT:192 && TALENT:PLAYER:290 && ((TALENT:3 == 0 && TALENT:6 == 0) || PLAYER != MASTER)
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 12
	PRINTS TALENTNAME:192
	PRINTV '(,12,')
	RESETCOLOR
	S = 1
ENDIF

;처녀
IF TALENT:0
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 20
	PRINTS TALENTNAME:0
	PRINTV '(,20,')
	RESETCOLOR
	S = 1
ELSEIF EXP:0 < EXPLV:2
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 5
	PRINTS EXPNAME:0
	PRINT 부족
	PRINTV '(,5,')
	RESETCOLOR
	S = 1
ENDIF

;調教者が후타나리
IF TALENT:PLAYER:289
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 4
	PRINTS TALENTNAME:289
	PRINTV '(,4,')
	S = 1
	RESETCOLOR
ENDIF

;감정부족
IF TALENT:30
	CALL SET_COLOR_STATUS,1
	PRINT  +
	A += 4
	PRINTS TALENTNAME:30
	PRINTV '(,4,')
	RESETCOLOR
	S = 1
ENDIF

;내향적
IF TALENT:32
	CALL SET_COLOR_STATUS,1
	PRINT  +
	A += 3
	PRINTS TALENTNAME:32
	PRINTV '(,3,')
	RESETCOLOR
	S = 1
ENDIF

;고결（음란、창녀で無効）
IF TALENT:34 && (TALENT:4 == 0 && TALENT:7 == 0)
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 10
	PRINTS TALENTNAME:34
	PRINTV '(,10,')
	S = 1
	RESETCOLOR
ENDIF

;성악
IF TALENT:35
	CALL SET_COLOR_STATUS,1
	PRINT  +
	A += 3
	PRINTS TALENTNAME:35
	PRINTV '(,3,')
	RESETCOLOR
	S = 1
ENDIF

;굴복
IF TALENT:88
	CALL SET_COLOR_STATUS,1
	PRINT  +
	A += 10
	PRINTS TALENTNAME:88
	PRINTV '(,10,')
	RESETCOLOR
	S = 1
ENDIF

;철벽（陥落素質で無効）
IF TALENT:91 && (TALENT:3 == 0 && TALENT:4 == 0 && TALENT:5 == 0 && TALENT:6 == 0 && TALENT:7 == 0 && TALENT:8 == 0)
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 25
	PRINTS TALENTNAME:91
	PRINTV '(,25,')
	RESETCOLOR
	S = 1
ENDIF

;자위하기쉬움
IF TALENT:150
	CALL SET_COLOR_STATUS,1
	PRINT  +
	A += 8
	PRINTS TALENTNAME:150
	PRINTV '(,8,')
	RESETCOLOR
	S = 1
ENDIF

;거절（陥落素質で無効）
IF TALENT:159 && (TALENT:3 == 0 && TALENT:4 == 0 && TALENT:5 == 0 && TALENT:6 == 0 && TALENT:7 == 0 && TALENT:8 == 0)
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 10
	PRINTS TALENTNAME:159
	PRINTV '(,10,')
	RESETCOLOR
	S = 1
ENDIF

;미약
IF TEQUIP:26
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += 6
	CALL SET_COLOR_STATUS,1
	PRINTS ITEMNAME:41
	PRINTV '(,6,')
	RESETCOLOR
	S = 1
ENDIF

;調教者か助손が소악마
IF ASSI >= 1
	IF TALENT:PLAYER:197 == 1
		CALL SET_COLOR_STATUS,1
		PRINT  +
		A += 10
		PRINTFORM 조교자가 %TALENTNAME:197%
		PRINTV '(,10,')
		RESETCOLOR
		S = 1
	ELSEIF ASSIPLAY == 0 && TALENT:ASSI:197 == 1
		CALL SET_COLOR_STATUS,1
		PRINT  +
		A += 10
		PRINTFORM 조수가 %TALENTNAME:197%
		PRINTV '(,10,')
		RESETCOLOR
		S = 1
	ENDIF
ELSEIF TALENT:PLAYER:197 == 1
	CALL SET_COLOR_STATUS,1
	PRINT  +
	A += 10
	PRINTFORM 조교자가 %TALENTNAME:197%
	PRINTV '(,10,')
	RESETCOLOR
	S = 1
ENDIF

;調教者か助손が고무
IF ASSI >= 1
	IF TALENT:PLAYER:286 == 1
		CALL SET_COLOR_STATUS,1
		PRINT  +
		A += 10
		PRINTFORM 조교자가 %TALENTNAME:286%
		PRINTV '(,10,')
		RESETCOLOR
		S = 1
	ELSEIF ASSIPLAY == 0 && TALENT:ASSI:286 == 1
		CALL SET_COLOR_STATUS,1
		PRINT  +
		A += 10
		PRINTFORM 조수가 %TALENTNAME:286%
		PRINTV '(,10,')
		RESETCOLOR
		S = 1
	ENDIF
ELSEIF TALENT:PLAYER:286 == 1
	CALL SET_COLOR_STATUS,1
	PRINT  +
	A += 10
	PRINTFORM 조교자가 %TALENTNAME:286%
	PRINTV '(,10,')
	RESETCOLOR
	S = 1
ENDIF

;'合計を表示(18以上で実行)
CALL SET_COLOR_STATUS,1
PRINT  =
PRINTV A
RESETCOLOR

V = 18
IF A < V
	CALL SET_COLOR_STATUS,1
	PRINT  <
	RESETCOLOR
ELSEIF A == V
	CALL SET_COLOR_STATUS,1
	PRINT  =
	RESETCOLOR
ELSEIF A > V
	CALL SET_COLOR_STATUS,1
	PRINT  >
	RESETCOLOR
ENDIF

CALL SET_COLOR_STATUS,1
PRINT 실행치
PRINTV V
RESETCOLOR

WAIT

;実行できない
SIF A < V
	RETURN 0

CALL SET_COLOR_STATUS,3
PRINTFORML \@ !IS_BOTTOMFREE(15) ? 속옷제끼고 # \@%TRAINNAME:9%
RESETCOLOR
STR:0 = \@ !IS_BOTTOMFREE(15) ? 속옷제끼고 # \@%TRAINNAME:9%
CALL KOJO_MESSAGE_COM

;実行者が奴隷であるフラグ
TFLAG:28 = 1

;-------------------------------------------------
;ソース追加処理
;-------------------------------------------------
;消費체력、기력
LOSEBASE:0 += 50
LOSEBASE:1 += 90

SOURCE:쾌Ｃ = 43
SOURCE:달성감 = 20
SOURCE:두려움 = 120
SOURCE:액체 = 10
SOURCE:노출 = 300
SOURCE:굴종 = 450
SOURCE:일탈 = 150
SOURCE:반발 = 150

;-------------------------------------------------
;특수ソース処理
;-------------------------------------------------
;겁쟁이持ちは두려움、노출、우울、반감ソース追加、
IF TALENT:20
	SOURCE:두려움 += 150
	SOURCE:노출 += 100
	SOURCE:우울 += 150
	SOURCE:반발 += 200
ENDIF
;억압、저항持ちには、억울ソース追加
SIF TALENT:82
	SOURCE:우울 += 250
SIF TALENT:84
	SOURCE:우울 += 250
;부끄럼쟁이は두려움と노출のソース増加、일탈반감ソース追加
IF TALENT:20
	SOURCE:두려움 += 50
	SOURCE:노출 += 200
	SOURCE:일탈 += 200
	SOURCE:반발 += 200
ENDIF
;내향적には、억울ソース追加
SIF TALENT:32
	SOURCE:우울 += 40
;인간혐오には、반감ソース追加
SIF TALENT:33
	SOURCE:반발 += 100
;거절には、일탈ソース追加
SIF TALENT:159
	SOURCE:일탈 += 180
;調教者か助손が소악마なら達成ソース、욕정ソース、노출ソース、굴종ソース、일탈ソース、반감ソース追加
IF ASSI >= 1
	IF TALENT:PLAYER:197 == 1
		SOURCE:달성감 += 60
		SOURCE:욕정 += 50
		SOURCE:노출 += 200
		SOURCE:굴종 += 200
		SOURCE:일탈 += 100
		SOURCE:반발 += 200
	ELSEIF ASSIPLAY == 0 && TALENT:ASSI:197 == 1
		SOURCE:달성감 += 60
		SOURCE:욕정 += 50
		SOURCE:노출 += 200
		SOURCE:굴종 += 200
		SOURCE:일탈 += 100
		SOURCE:반발 += 200
	ENDIF
ELSEIF TALENT:PLAYER:197 == 1
	SOURCE:달성감 += 60
	SOURCE:욕정 += 50
	SOURCE:노출 += 200
	SOURCE:굴종 += 200
	SOURCE:일탈 += 100
	SOURCE:반발 += 200
ENDIF

;調教者か助손が고무なら達成ソース追加、일탈반감ソース低下
IF ASSI >= 1
	IF TALENT:PLAYER:197 == 1
		SOURCE:달성감 += 50
		SOURCE:일탈 -= 50
		SOURCE:반발 -= 50
	ELSEIF ASSIPLAY == 0 && TALENT:ASSI:197 == 1
		SOURCE:달성감 += 50
		SOURCE:일탈 -= 50
		SOURCE:반발 -= 50
	ENDIF
ELSEIF TALENT:PLAYER:197 == 1
	SOURCE:달성감 += 50
	SOURCE:일탈 -= 50
	SOURCE:반발 -= 50
ENDIF

;처녀、정조관념
IF TALENT:0
	TIMES SOURCE:두려움 , 1.20
	TIMES SOURCE:굴종 , 1.20
	TIMES SOURCE:반발 , 1.20
	SOURCE:노출 += 300
	IF TALENT:80
		TIMES SOURCE:노출 , 2.00
		TIMES SOURCE:일탈 , 2.00
	ENDIF
ENDIF

;-------------------------------------------------
;汚れの処理
;-------------------------------------------------
;奴隷のＶ⇔指の汚れが移動
STAIN:3 |= STAIN:1
STAIN:1 |= STAIN:3

;-------------------------------------------------
;経験の処理
;-------------------------------------------------
;노출증Lv3以上で자위경험加算
IF ABL:8 >= 3
	EXP:10 += 1
	PRINTL 자위경험＋１
ENDIF

A = 1
IF TALENT:290 == 0 && TALENT:PLAYER:290 == 0
	PRINTFORML %EXPNAME:40%+{A}
	EXP:40 += A
ELSEIF TALENT:290 && TALENT:PLAYER:290
	PRINTFORML %EXPNAME:41%+{A}
	EXP:41 += A
ENDIF

;의존도ベクトル
TFLAG:33 = 3

;의존도補正値(복종で1、예속で2）
IF TALENT:5 && ASSIPLAY == 0
	TFLAG:30 += 1
ELSEIF TALENT:8 && ASSIPLAY == 0
	TFLAG:30 += 2
ENDIF

;消費時間5分
FLAG:24 -= 5

TFLAG:301 = 2

RETURN 1


code:
@COMMUNICATION
#DIM friendList,5
#DIM index
#DIM targetChara
#DIM friendChara
#DIM daysCount
CALL DISPLAY_COMMON , 7
SIF RESULT == 999
	RETURN 0
;----------ここまで

daysCount = DAY - SCHOOL_FIRST_GOING_DAY:GET_CHARA_GO_SCHOOL_INDEX(MASTER)
targetChara = RESULT
	PRINTL ･･･････････････････････････････････････････････････････････････････････････････
	RESULT = 0
	TRYCALLFORM SCENARIO_EVENT_CHARACTER_CONTACT_INTERCEPT_EVENT_{NO:targetChara}("BASE",targetChara,-1,-1,daysCount)
	SIF RESULT != 0
		BEGIN TURNEND

	PRINTFORML %NAME:targetChara%의 정보를 모았습니다。

	IF CFLAG:targetChara:1000 < 4
		CALL RESEARCH_BASIC(targetChara)
		IF RESULT == 1 && RAND:3 == 0
;イベント
			CALL SCENARIO_EVENT, 1
		ENDIF
	ELSEIF CFLAG:targetChara:1000 == 4
	;ダミー処理 実際にはここで、입説くか、약점を握るか選べる。
	;입説く場合、数回デートして、「교제」タレントを得てＨ可能に。
	;약점の場合、数回証拠を調べて、「협박」タレントを得てＨ可能に。
		Y = targetChara
		$INPUT_LOOP4
		PRINTFORML 이제 %NAME:Y%의 정보도 나름대로 모였다.
		PRINTFORML 이를 바탕으로 방침을 정하자
		SIF COUNT_RULED_CHARAS("CFLAG:index:1012 == " + TOSTR(NO:Y)) > 0
			PRINTFORML　！현재、%CALLNAME:GET_RULED_SINGLE_CHARA("CFLAG:index:1012 == " + TOSTR(NO:Y))%에게 명령해 유혹중입니다
		PRINTFORML
		SIF TALENT:Y:교제없음 != 1
			PRINTFORML  [0]구애하여 연애관계를 노린다(시간이 걸립니다)
		IF TALENT:Y:남자 != 1
			IF TALENT:Y:강간없음 != 1
				PRINTFORML  [1]남의 눈에 띄지 않는 곳에서 강간(실패할 가능성이 있습니다)
			ENDIF
		ENDIF
		SIF TALENT:Y:협박없음 != 1
			PRINTFORML  [2]약점을 찾아서 협박(조금 시간이 걸립니다)
		CALL SEARCH_FRIEND,Y,1
		SIF RESULT == 1 && TALENT:Y:협박없음 != 1 && (RELATION:Y:(NO:C) > 100 || RELATION:Y:(NO:D) > 100 || RELATION:Y:(NO:E) > 100 || RELATION:Y:(NO:F) > 100 || RELATION:Y:(NO:G) > 100) && !IS_UNCONTACTABLE(index)
			PRINTFORML  [3]친구의 약점을 사용해 협박
		SIF ITEM:최면장치 == 1
			PRINTFORML  [4]최면장치를 사용한다
		SIF COUNT_RULED_CHARAS("IS_FRIEND(Y,index) && (TALENT:index:음란 || TALENT:index:창녀 || TALENT:index:복종 || TALENT:index:예속) && (RELATION:Y:(NO:index) > 100) && !IS_UNCONTACTABLE(index)") > 0 && ITEM:페니스밴드 >= 1
			PRINTFORML  [5]친구에게 명령해 함정으로 유인한다
		SIF COUNT_RULED_CHARAS("IS_FRIEND(Y,index) && (TALENT:index:음란 || TALENT:index:창녀 || TALENT:index:복종 || TALENT:index:예속) && (RELATION:Y:(NO:index) > 100) && !IS_UNCONTACTABLE(index)") > 0 && ITEM:미약 >= 1 && ITEM:페니스밴드 >= 1
			PRINTFORML  [6]친구에게 명령해 미약을 먹인다
		SIF COUNT_RULED_CHARAS("IS_FRIEND(Y,index) && (TALENT:index:창녀 || TALENT:index:예속) && ABL:index:기교 >= 7 && (RELATION:Y:(NO:index) > 100) && !IS_UNCONTACTABLE(index)") > 0 && ITEM:로터 >= 1 && ITEM:페니스밴드 >= 1
			PRINTFORML  [7]친구에게 명령해 쾌락의 포로로 만든다
		SIF ITEM:촉수사역술
			PRINTFORML  [8]억지로 촉수의 씨앗을 심는다
		SIF ITEM:촉수사역술 && COUNT_RULED_CHARAS("IS_FRIEND(Y,index) && (TALENT:index:동화 || TALENT:index:모판) && (RELATION:Y:(NO:index) > 100) && !IS_UNCONTACTABLE(index) && !TALENT:index:정화")
			PRINTFORML  [9]친구에게 명령해 촉수의 포로로 만든다
		PRINTFORML  [99]좀 더 좋은 기회를 기다린다
		$INPUT_LOOP2
		INPUT
		IF RESULT == 0
			RESULT = 0
			TRYCALLFORM SCENARIO_EVENT_CHARACTER_IS_COMMUNICATION_NOT_ALLOWED_{NO:targetChara}("TALK",targetChara,-1,-1,daysCount)
			SIF RESULT != 0
				GOTO INPUT_LOOP2
			PRINTFORMW ‥‥약간 시간은 걸리겠지만、%조사처리(NAME:Y, "과")% 이야기를 시작하자。
			CFLAG:Y:1000 = 7
			CFLAG:Y:1010 = 0
		ELSEIF RESULT == 2
			RESULT = 0
			TRYCALLFORM SCENARIO_EVENT_CHARACTER_IS_COMMUNICATION_NOT_ALLOWED_{NO:targetChara}("WEEKPOINT",targetChara,-1,-1,daysCount)
			SIF RESULT != 0
				GOTO INPUT_LOOP2
			PRINTFORMW ‥‥약간 시간은 걸리겠지만、%NAME:Y%의 주변을 알아보자。
			CFLAG:Y:1000 = 6
			CFLAG:Y:1010 = 0
		ELSEIF RESULT == 1 && TALENT:Y:남자 != 1
			RESULT = 0
			TRYCALLFORM SCENARIO_EVENT_CHARACTER_IS_COMMUNICATION_NOT_ALLOWED_{NO:targetChara}("RAPE",targetChara,-1,-1,daysCount)
			SIF RESULT != 0
				GOTO INPUT_LOOP2
			PRINTFORML ‥‥%NAME:Y%의 행동 패턴은 대부분 파악했다。
			PRINTFORMW 기회를 봐서 시도해 보자‥‥
			CFLAG:Y:1000 = 8
		ELSEIF RESULT == 4
			RESULT = 0
			TRYCALLFORM SCENARIO_EVENT_CHARACTER_IS_COMMUNICATION_NOT_ALLOWED_{NO:targetChara}("HYPNO",targetChara,-1,-1,daysCount)
			SIF RESULT != 0
				GOTO INPUT_LOOP2
			PRINTFORML ‥‥%NAME:Y%의 행동 패턴은 대부분 파악했다。
			PRINTFORMW 기회를 봐서 시도해 보자‥‥
			CFLAG:Y:1000 = 9
		ELSEIF RESULT == 3
			RESULT = 0
			TRYCALLFORM SCENARIO_EVENT_CHARACTER_IS_COMMUNICATION_NOT_ALLOWED_{NO:targetChara}("WEEKPOINT_FRIEND",targetChara,-1,-1,daysCount)
			SIF RESULT != 0
				GOTO INPUT_LOOP2
			PRINTL 어느 친구를 약점으로 사용할까？
			IF C > 0
				PRINTFORML [0] %NAME:C%
			ENDIF
			IF D > 0
				PRINTFORML [1] %NAME:D%
			ENDIF
			IF E > 0
				PRINTFORML [2] %NAME:E%
			ENDIF
			IF F > 0
				PRINTFORML [3] %NAME:F%
				A += 1
			ENDIF
			IF G > 0
				PRINTFORML [4] %NAME:G%
			ENDIF
			PRINTFORML [100] 돌아온다
			$INPUT_LOOP3
			INPUT
			A = 0
			SIF RESULT == 100
				GOTO INPUT_LOOP4
			SIF RESULT == 0 && C > 0
				A = C
			SIF RESULT == 1 && D > 0
				A = D
			SIF RESULT == 2 && E > 0
				A = E
			SIF RESULT == 3 && F > 0
				A = F
			SIF RESULT == 4 && G > 0
				A = G
			SIF A == 0
				GOTO INPUT_LOOP3
			RESULT = 0
			friendChara = A
			TRYCALLFORM SCENARIO_EVENT_CHARACTER_IS_COMMUNICATION_NOT_ALLOWED_{NO:targetChara}("WEEKPOINT_FRIEND",targetChara,friendChara,NO:friendChara,daysCount)
			SIF RESULT != 0
				GOTO INPUT_LOOP2
			PRINTFORML 다행히 %NAME:Y%의 친구인、%조사처리(NAME:A,"는")% 이미 %CALLNAME:MASTER%의 수중에 있다。
			PRINTFORMW ‥‥이걸로、%조사처리(NAME:Y,"를")% 마음대로 할 수 있겠지‥‥
			CFLAG:Y:1000 = 5
			CFLAG:Y:1003 = NO:A + 2
			TALENT:Y:협박 = 1
			TALENT:C:경계 = 0

			;ＮＴＬ取得
			SIF TALENT:Y:좋아하는사람있음 || TALENT:Y:남친있음 || TALENT:Y:남편있음
				TALENT:Y:ＮＴＬ = 1

			CSTR:Y:41 = %NAME:A%

			CALL DIARY_SET,@"%조사처리(NAME:A,"를")% 이용해、%조사처리(NAME:Y,"를")% 마음대로 할 수 있었다。"
		ELSEIF RESULT == 5
			RESULT = 0
			TRYCALLFORM SCENARIO_EVENT_CHARACTER_IS_COMMUNICATION_NOT_ALLOWED_{NO:targetChara}("TRAP_FRIEND",targetChara,-1,-1,daysCount)
			SIF RESULT != 0
				GOTO INPUT_LOOP2
			IF COUNT_RULED_CHARAS("IS_FRIEND(Y,index) && (TALENT:index:음란 || TALENT:index:창녀 || TALENT:index:복종 || TALENT:index:예속) && (RELATION:Y:(NO:index) > 100) && !IS_UNCONTACTABLE(index)") > 0 && ITEM:페니스밴드 >= 1
				PRINTL 누가 함정에 빠뜨릴까？
				CALL GET_RANDOM_CHARAS("IS_FRIEND(Y,index) && (TALENT:index:음란 || TALENT:index:창녀 || TALENT:index:복종 || TALENT:index:예속) && (RELATION:Y:(NO:index) > 100) && !IS_UNCONTACTABLE(index)",friendList)
				WHILE 1
					FOR index,0,varSize("friendList")
						SIF friendList:index < 0
							break
						PRINTFORML [{index,3}] - %NAME:(friendList:index)%
					NEXT
					PRINTFORML [100] 돌아온다
					INPUT
					SIF RESULT == 100
						GOTO INPUT_LOOP4
					SIF !INRANGE(RESULT,0,varSize("friendList")) || friendList:RESULT < 0
						continue
					friendChara = friendList:RESULT
					RESULT = 0
					TRYCALLFORM SCENARIO_EVENT_CHARACTER_IS_COMMUNICATION_NOT_ALLOWED_{NO:targetChara}("TRAP_FRIEND",targetChara,friendChara,NO:friendChara,daysCount)
					SIF RESULT == 1
						GOTO INPUT_LOOP2
					PRINTFORMW %CALLNAME:friendChara%에게 %조사처리(NAME:Y,"를")% 노린 덫을 준비시켰다････。
					CFLAG:Y:1000 = 11
					CFLAG:Y:1015 = NO:friendChara
					break
				WEND
			ENDIF
		ELSEIF RESULT == 6
			RESULT = 0
			TRYCALLFORM SCENARIO_EVENT_CHARACTER_IS_COMMUNICATION_NOT_ALLOWED_{NO:targetChara}("TRAP_FRIEND",targetChara,-1,-1,daysCount)
			SIF RESULT != 0
				GOTO INPUT_LOOP2
			IF COUNT_RULED_CHARAS("IS_FRIEND(Y,index) && (TALENT:index:음란 || TALENT:index:창녀 || TALENT:index:복종 || TALENT:index:예속) && (RELATION:Y:(NO:index) > 100) && !IS_UNCONTACTABLE(index)") > 0 && ITEM:미약 >= 1 && ITEM:페니스밴드 >= 1
				PRINTL 누가 함정에 빠뜨릴까？
				CALL GET_RANDOM_CHARAS("IS_FRIEND(Y,index) && (TALENT:index:음란 || TALENT:index:창녀 || TALENT:index:복종 || TALENT:index:예속) && (RELATION:Y:(NO:index) > 100) && !IS_UNCONTACTABLE(index)",friendList)
				WHILE 1
					FOR index,0,varSize("friendList")
						SIF friendList:index < 0
							break
						PRINTFORML [{index,3}] - %NAME:(friendList:index)%
					NEXT
					PRINTFORML [100] 돌아온다
					INPUT
					SIF RESULT == 100
						GOTO INPUT_LOOP4
					SIF !INRANGE(RESULT,0,varSize("friendList")) || friendList:RESULT < 0
						continue
					friendChara = friendList:RESULT
					RESULT = 0
					TRYCALLFORM SCENARIO_EVENT_CHARACTER_IS_COMMUNICATION_NOT_ALLOWED_{NO:targetChara}("TRAP_FRIEND",targetChara,friendChara,NO:friendChara,daysCount)
					SIF RESULT == 1
						GOTO INPUT_LOOP2
					PRINTFORMW %CALLNAME:friendChara%에게 미약을 건네주고、틈을 노려 %NAME:Y%에게 먹이도록 지시했다････。
					CFLAG:Y:1000 = 12
					CFLAG:Y:1015 = NO:friendChara
					ITEM:미약--
					break
				WEND
			ENDIF
		ELSEIF RESULT == 7
			RESULT = 0
			TRYCALLFORM SCENARIO_EVENT_CHARACTER_IS_COMMUNICATION_NOT_ALLOWED_{NO:targetChara}("TRAP_FRIEND",targetChara,daysCount)
			SIF RESULT != 0
				GOTO INPUT_LOOP2
			IF COUNT_RULED_CHARAS("IS_FRIEND(Y,index) && (TALENT:index:창녀 || TALENT:index:예속) && ABL:index:기교 >= 7 && (RELATION:Y:(NO:index) > 100) && !IS_UNCONTACTABLE(index)") > 0 && ITEM:로터 >= 1 && ITEM:페니스밴드 >= 1
				PRINTL 누구에게 조교를 지시할까？
				CALL GET_RANDOM_CHARAS("IS_FRIEND(Y,index) && (TALENT:index:창녀 || TALENT:index:예속) && ABL:index:기교 >= 7 && (RELATION:Y:(NO:index) > 100) && !IS_UNCONTACTABLE(index)",friendList)
				WHILE 1
					FOR index,0,varSize("friendList")
						SIF friendList:index < 0
							break
						PRINTFORML [{index,3}] - %NAME:(friendList:index)%
					NEXT
					PRINTFORML [100] 돌아온다
					INPUT
					SIF RESULT == 100
						GOTO INPUT_LOOP4
					SIF !INRANGE(RESULT,0,varSize("friendList")) || friendList:RESULT < 0
						continue
					friendChara = friendList:RESULT
					RESULT = 0
					TRYCALLFORM SCENARIO_EVENT_CHARACTER_IS_COMMUNICATION_NOT_ALLOWED_{NO:targetChara}("TRAP_FRIEND",targetChara,friendChara,NO:friendChara,daysCount)
					SIF RESULT == 1
						GOTO INPUT_LOOP2
					PRINTFORMW 기회를 노려、%CALLNAME:friendChara%에게 조교를 맡기기로 했다････。
					CFLAG:Y:1000 = 13
					CFLAG:Y:1015 = NO:friendChara
					break
				WEND
			ENDIF
		ELSEIF RESULT==8
			RESULT = 0
			TRYCALLFORM SCENARIO_EVENT_CHARACTER_IS_COMMUNICATION_NOT_ALLOWED_{NO:targetChara}("TENTACLE",targetChara,-1,-1,daysCount)
			SIF RESULT != 0
				GOTO INPUT_LOOP2
			IF ITEM:촉수사역술
				PRINTFORMW ‥‥빈틈을 노려、촉수의 맛을 새겨 주도록 하자････。
				CFLAG:Y:1000 = 14
				CFLAG:Y:1010 = 0
			ENDIF
		ELSEIF RESULT==9
			RESULT = 0
			TRYCALLFORM SCENARIO_EVENT_CHARACTER_IS_COMMUNICATION_NOT_ALLOWED_{NO:targetChara}("TENTACLE_FRIEND",targetChara,-1,-1,daysCount)
			SIF RESULT != 0
				GOTO INPUT_LOOP2
			IF ITEM:촉수사역술 && COUNT_RULED_CHARAS("IS_FRIEND(Y,index) && (TALENT:index:동화 || TALENT:index:모판) && (RELATION:Y:(NO:index) > 100) && !IS_UNCONTACTABLE(index) && !TALENT:index:정화")
				PRINTL 누가 촉수의 노예로 만들까？
				CALL GET_RANDOM_CHARAS("IS_FRIEND(Y,index) && (TALENT:index:동화 || TALENT:index:모판) && (RELATION:Y:(NO:index) > 100) && !IS_UNCONTACTABLE(index) && !TALENT:index:정화",friendList)
				WHILE 1
					FOR index,0,varSize("friendList")
						SIF friendList:index < 0
							break
						PRINTFORML [{index,3}] - %NAME:(friendList:index)%
					NEXT
					PRINTFORML [100] 돌아온다
					INPUT
					SIF RESULT == 100
						GOTO INPUT_LOOP4
					SIF !INRANGE(RESULT,0,varSize("friendList")) || friendList:RESULT < 0
						continue
					friendChara = friendList:RESULT
					RESULT = 0
					TRYCALLFORM SCENARIO_EVENT_CHARACTER_IS_COMMUNICATION_NOT_ALLOWED_{NO:targetChara}("TRAP_FRIEND",targetChara,friendChara,NO:friendChara,daysCount)
					SIF RESULT == 1
						GOTO INPUT_LOOP2
					PRINTFORMW %CALLNAME:friendChara%에게 %조사처리(NAME:Y,"를")% 촉수의 노예로 만들라고 명령했다････。
					CFLAG:Y:1000 = 15
					CFLAG:Y:1015 = NO:friendChara
					break
				WEND
			ENDIF
		ELSEIF RESULT==99
			RETURN
		ELSE
			GOTO INPUT_LOOP2
		ENDIF
		SIF CFLAG:Y:1000 == 4 ;CFLAG:1000が変化なし=無効な選択肢で処理が行われていない
			GOTO INPUT_LOOP2
	ENDIF
PRINTW
;対象を유혹中だった場合、クリアする
WHILE GET_RANDOM_CHARAS_CORE("CFLAG:index:1012 == " + TOSTR(NO:targetChara),friendList) != 0
	FOR index,0,4
		IF friendList:index > 0
			CFLAG:(friendList:index):1012 = 0
			CFLAG:(friendList:index):1013 = 0
		ENDIF
	NEXT
WEND
BEGIN TURNEND

;1を返すとランダムイベントを起こす(通常の調査時のみ。独自調査中は無視)
@RESEARCH_BASIC(targetChara,isForceSearch = 0)
#DIM targetChara
#DIM isForceSearch
;PRINTFORML {CFLAG:targetCHara:1000}
CFLAG:targetChara:1000 += 1

A = targetChara
CALL LOOK_PROFILE, targetChara

targetChara = A
IF CFLAG:targetChara:1000 == 3 || isForceSearch
	CALL SEARCH_FRIEND,targetChara,0
	RETURN 0
ENDIF
RETURN 1

@LOOK_PROFILE, ARG,ARG:1 = 0
;ARG:1は20140220追加分機能用
;SHOPからの呼び出しかどうかの識別に使用
IF (FLAG:93 % 10) == 1
	R:1 = R
	G:1 = G
	B:1 = B
	R = CFLAG:ARG:195
	G = CFLAG:ARG:196
	B = CFLAG:ARG:197
	;青系見難いのでBだけ突出はリセットします
	IF R == 0 && G == 0 && B == 0
		RESETCOLOR
	ElSEIF R == 0 && G == 0 && B >= 1
		RESETCOLOR
	ELSE
		SETCOLOR R, G, B
	ENDIF
	R = R:1
	G = G:1
	B = B:1
ENDIF

PRINTFORML "%CSTR:ARG:40%" %CSTR:ARG:30%
PRINTL
REPEAT ARG == MASTER ? 8 # LIMIT(CFLAG:ARG:1000,0,5) + (CFLAG:ARG:1000 >= 5)*3
	Y = COUNT + 32
	IF CSTR:ARG:Y != ""
		PRINTS  CSTR:ARG:Y
		PRINTL
	ENDIF
REND
RESETCOLOR
PRINTW
SIF ARG == MASTER
	RETURN

IF TALENT:ARG:실종
	PRINTFORML 그녀는 최근 연락이 닿지 않는다････
ELSEIF TALENT:ARG:사망
	PRINTFORML 그녀는 죽어버렸다････
ELSEIF TALENT:ARG:방출
	IF TALENT:ARG:교제
		PRINTFORML 그녀와는 여러 사정이 있어 헤어졌다。
	ELSE
		PRINTFORML 그녀는 자유의 몸이 되었다。
	ENDIF
ELSEIF CFLAG:ARG:1000 == 5
	IF TALENT:ARG:교제 == 1
		PRINTFORML 그녀와 사귀는 중이다。
	ELSEIF TALENT:ARG:최면 == 1
		PRINTFORML 그녀는 최면에 걸려있다。
	ELSEIF TALENT:ARG:협박 == 1
		IF CFLAG:ARG:1003 > 2
			Y = CFLAG:ARG:1003 - 2
			CALL GET_CHARANUM, Y
			IF RESULT == -1
				ADDCHARA Y
				CALL GET_CHARANUM, Y
				LOCALS:0 = %NAME:RESULT%
				DELCHARA RESULT
			ELSE
				LOCALS:0 = %NAME:RESULT%
			ENDIF
			PRINTFORML 그녀는、%조사처리(LOCALS:0, "라")%는 약점을 잡혀 협박에 굴복했다。
		ELSE
			PRINT 그녀는
			SIF CFLAG:ARG:1015 != 0
				PRINTFORM %GET_FRIEND_NAME_ATTACKED_FROM(ARG,CFLAG:ARG:1015)%의 함정에 빠져서
			PRINT 「
			PRINTS CSTR:ARG:41
			PRINTFORML 」%조사만처리(CSTR:ARG:41, "라")%는 약점을 잡혀 협박에 굴복했다。
		ENDIF
	ELSEIF TALENT:ARG:기생
		PRINTFORMW 그녀는 %GET_FRIEND_NAME_ATTACKED_FROM(ARG,CFLAG:ARG:1015)%의 촉수의 노예가 되어、종자를 이식당했다。
		SIF TALENT:ARG:정화
			PRINTFORMW 그러나、%CSVNAME(CFLAG:ARG:1018)% 덕분에 촉수가 정화되어 지금은 손댈 수 없다。
	ELSEIF TALENT:ARG:유혹
		PRINTFORMW 그녀는 %GET_FRIEND_NAME_ATTACKED_FROM(ARG,CFLAG:ARG:1015)%의 농간에 굴복했다。
	ELSE
		PRINTFORM 그녀는
		IF CFLAG:ARG:1015 == 0
			PRINTFORMW 힘에 굴복했다。
		ELSE
			PRINTFORMW %GET_FRIEND_NAME_ATTACKED_FROM(ARG,CFLAG:ARG:1015)%에게 배신당하고、강간되어 굴복했다。
		ENDIF
	ENDIF
ELSEIF INRANGE(CFLAG:ARG:1000,6,16)
	PRINTFORML 지금은 %GET_AWAIT_STATUS_TEXT(CFLAG:ARG:1000,ARG)% 있는 중이다。
ELSEIF COUNT_RULED_CHARAS("CFLAG:index:1012 == " + TOSTR(NO:ARG)) > 0
	PRINTFORML 지금은 %CSVCALLNAME(NO:GET_RULED_FIRST_CHARA("CFLAG:index:1012 == " + TOSTR(NO:ARG)))%に命じて、快楽の虜にしているところだ。
ENDIF

;20140904 ここから追加
IF CFLAG:ARG:1000 == 5  && !IS_UNCONTACTABLE(ARG)
	IF TALENT:ARG:교제 == 1 && IS_LOVING(ARG) && CFLAG:ARG:1 >= 1
		SETCOLOR 200,255,255
		PRINTFORML 현재、아르바이트로 돈을 벌 수 있습니다。
		RESETCOLOR
	ELSEIF (!TALENT:ARG:교제 || IS_NOTLOVE_FALLEN(ARG)) && CFLAG:ARG:1 >= 1
		SETCOLOR 200,255,255
		PRINTFORML 현재、매춘을 명령할 수 있습니다。
		RESETCOLOR
	ELSEIF TALENT:ARG:교제 == 1 && IS_NOTLOVE_FALLEN(ARG)
		SETCOLOR 255,186,210
		PRINTFORML 그녀는 노역에 부응할 의사가 없는 모양입니다。
		RESETCOLOR
	ELSE
		SETCOLOR 102,153,255
		PRINTFORML 아직 노역 지시는 불가능합니다。
		RESETCOLOR
	ENDIF
ENDIF
PRINTW

;20140220 ここから追加
IF ARG:1 == 1
	IF CFLAG:ARG:1000 >= 2
		LOCAL:1 = 0
		PRINT 체형:
		;小柄
		IF TALENT:ARG:230
			PRINTFORM 【%TALENTNAME:230%】
			LOCAL:1++
		ENDIF
		;가슴
		FOR LOCAL,239,243
			IF TALENT:ARG:LOCAL
				PRINTFORM 【%TALENTNAME:LOCAL%】
				LOCAL:1++
			ENDIF
		NEXT
		SIF LOCAL:1 == 0
			PRINT （특기 사항 없음）
		PRINTL
	ENDIF
	IF CFLAG:ARG:1000 >= 3
		LOCAL:1 = 0
		PRINT 성격:
		FOR LOCAL,20,36
			IF TALENT:ARG:LOCAL
				PRINTFORM 【%TALENTNAME:LOCAL%】
				LOCAL:1++
			ENDIF
		NEXT
		SIF LOCAL:1 == 0
			PRINT （특기 사항 없음）
		PRINTL
	ENDIF
ENDIF

IF ARG:1 == 1 && CFLAG:ARG:1000 >= 3
	PRINTFORML
	PRINTFORML [교우관계]
	FOR LOCAL,1005,1010
		SIF CFLAG:ARG:(LOCAL+20) < 0
			CONTINUE
		IF CFLAG:ARG:LOCAL > 0
			PRINTFORML 　%GET_RELATIONSHIP_TEXT_CORE(CFLAG:ARG:(LOCAL+20),CSVTALENT(CFLAG:ARG:LOCAL,GETNUM(TALENT,"남자")),0),10,LEFT%　%CSVNAME(CFLAG:ARG:LOCAL),20,LEFT% - %GET_FRIEND_DEPTH_TEXT(ARG,CFLAG:ARG:LOCAL)%
		ENDIF
	NEXT
ENDIF
WAIT

@GET_FRIEND_NAME_ATTACKED_FROM(fromCharaIndex,targetCharaNo)
#FUNCTIONS
#DIM fromCharaIndex
#DIM targetCharaNo
IF GETCHARA(targetCharaNo) == -1
	RETURNF "누군가"
ELSE
	RETURNF GET_RELATIONSHIP_TEXT(fromCharaIndex,GETCHARA(targetCharaNo),0) + "인 " + NAME:GETCHARA(targetCharaNo)
ENDIF

@GET_FRIEND_DEPTH_TEXT(charaIndex,friendNo)
#FUNCTIONS
#DIM charaIndex
#DIM friendNo
#DIM index
FOR index,1005,1010
	SIF CFLAG:charaIndex:index == friendNo
		break
NEXT
SIF index == 1011
	THROW 친구 사이가 아닙니다。
index--
IF IS_FAMILY_CORE(CFLAG:charaIndex:(index+20))
	RETURNF "가족"
ELSE
	SELECTCASE RELATION:charaIndex:friendNo
		CASE IS < 100
			RETURNF "혐오한다"
		CASE IS < 110
			RETURNF "얼굴을 알고있다"
		CASE IS < 120
			RETURNF "지인"
		CASE IS < 130
			RETURNF "사이가 좋다"
		CASE IS < 140
			RETURNF "친구"
		CASEELSE
			RETURNF "절친"
	ENDSELECT
ENDIF

@GET_AWAIT_STATUS_TEXT(index,charaIndex)
#FUNCTIONS
#DIM index
#DIM charaIndex
SELECTCASE index
	CASE 6
		RETURNF "그녀의 약점을 찾고"
	CASE 7
		RETURNF "그녀에게 구애하고"
	CASE 8
		RETURNF "그녀를 덮칠 기회를 찾고"
	CASE 9
		RETURNF "그녀에게 최면을 걸 기회를 찾고"
	;10は攻略不可なので省略
	CASE 11
		RETURNF CSVCALLNAME(CFLAG:charaIndex:1015) + "에게 명령해、함정으로 유인하고"
	CASE 12
		RETURNF CSVCALLNAME(CFLAG:charaIndex:1015) + "에게 명령해、미약을 먹일 기회를 찾고"
	CASE 13
		RETURNF CSVCALLNAME(CFLAG:charaIndex:1015) + "에게 명령해、쾌락을 새겨 줄 기회를 찾고"
	CASE 14
		RETURNF "그녀에게 촉수의 종자를 이식할 기회를 찾고"
	CASE 15
		RETURNF CSVCALLNAME(CFLAG:charaIndex:1015) + "에게 명령해、촉수의 맛을 알려주고"
	CASEELSE
		THROW 부정한 index : {index}
ENDSELECT

repo_name: Catalyst/B

license: unknown


code:
@COM_ORDER

;ABL:순종
IF ABL:0
	A += ABL:0 * 5
	CALL SET_COLOR_STATUS,1
	PRINTS ABLNAME:0
	PRINTV 'LV,ABL:0,'(,ABL:0 * 5,')
	RESETCOLOR
	S = 1
ENDIF
;ABL:마조끼
IF ABL:9
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += ABL:9*2
	CALL SET_COLOR_STATUS,1
	PRINTS ABLNAME:9
	PRINTV 'LV,ABL:9,'(,ABL:9*2,')
	RESETCOLOR
	S = 1
ENDIF
;ABL:運動
IF ASSI >= 1
	IF (ABL:MASTER:23 > ABL:23) && ASSIPLAY == 0
		IF S
			CALL SET_COLOR_STATUS,1
			PRINT  +
			RESETCOLOR
		ENDIF
		LOCAL = ABL:MASTER:23 - ABL:23
		A += LOCAL
		CALL SET_COLOR_STATUS,1
		PRINTS ABLNAME:23
		PRINTV ','(,LOCAL,')
		RESETCOLOR
		S = 1
	ELSEIF (ABL:ASSI:23 > ABL:23) && ASSIPLAY == 1
		IF S
			CALL SET_COLOR_STATUS,1
			PRINT  +
			RESETCOLOR
		ENDIF
		LOCAL = ABL:ASSI:23 - ABL:23
		A += LOCAL
		CALL SET_COLOR_STATUS,1
		PRINTS ABLNAME:23
		PRINTV ','(,LOCAL,')
		RESETCOLOR
		S = 1
	ENDIF
ELSEIF ABL:MASTER:23 > ABL:23
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	LOCAL = ABL:MASTER:23 - ABL:23
	A += LOCAL
	CALL SET_COLOR_STATUS,1
	PRINTS ABLNAME:23
	PRINTV ','(,LOCAL,')
	RESETCOLOR
	S = 1
ENDIF

;ABL:戦闘
IF ASSI >= 1
	IF (ABL:MASTER:24 > ABL:24) && ASSIPLAY == 0
		IF S
			CALL SET_COLOR_STATUS,1
			PRINT  +
			RESETCOLOR
		ENDIF
		LOCAL = ABL:MASTER:24 - ABL:24
		A += LOCAL
		CALL SET_COLOR_STATUS,1
		PRINTS ABLNAME:24
		PRINTV ','(,LOCAL,')
		RESETCOLOR
		S = 1
	ELSEIF (ABL:ASSI:24 > ABL:24) && ASSIPLAY == 1
		IF S
			CALL SET_COLOR_STATUS,1
			PRINT  +
			RESETCOLOR
		ENDIF
		LOCAL = ABL:ASSI:24 - ABL:24
		A += LOCAL
		CALL SET_COLOR_STATUS,1
		PRINTS ABLNAME:24
		PRINTV ','(,LOCAL,')
		RESETCOLOR
		S = 1
	ENDIF
ELSEIF ABL:MASTER:24 > ABL:24
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	LOCAL = ABL:MASTER:24 - ABL:24
	A += LOCAL
	CALL SET_COLOR_STATUS,1
	PRINTS ABLNAME:24
	PRINTV ','(,LOCAL,')
	RESETCOLOR
	S = 1
ENDIF

;レズ調教
IF TALENT:PLAYER:290 == 0 && TALENT:TARGET:290 == 0
	;ABL:레즈끼
	IF ABL:11
		IF S
			CALL SET_COLOR_STATUS,1
			PRINT  +
			RESETCOLOR
		ENDIF
		A += ABL:11*3
		CALL SET_COLOR_STATUS,1
		PRINTS ABLNAME:11
		PRINTV 'LV,ABL:11,'(,ABL:11*3,')
		RESETCOLOR
		S = 1
	ENDIF
	;ABL:레즈중독
	IF ABL:17
		IF S
			CALL SET_COLOR_STATUS,1
			PRINT  +
			RESETCOLOR
		ENDIF
		A += ABL:17*3
		CALL SET_COLOR_STATUS,1
		PRINTS ABLNAME:17
		PRINTV 'LV,ABL:17,'(,ABL:17*3,')
		RESETCOLOR
		S = 1
	ENDIF
	;TALENT:바이
	IF TALENT:191
		IF S
			CALL SET_COLOR_STATUS,1
			PRINT  +
			RESETCOLOR
		ENDIF
		A += 10
		CALL SET_COLOR_STATUS,1
		PRINTS TALENTNAME:191
		PRINTV '(,10,')
		RESETCOLOR
		S = 1
	ENDIF
	;調教者が바이
	IF TALENT:PLAYER:191
		IF S
			CALL SET_COLOR_STATUS,1
			PRINT  +
			RESETCOLOR
		ENDIF
		A += 5
		CALL SET_COLOR_STATUS,1
		PRINTFORM 調教者の%TALENTNAME:191%
		PRINTV '(,5,')
		RESETCOLOR
		S = 1
	ENDIF
	;호기심
	IF TALENT:53
		IF S
			CALL SET_COLOR_STATUS,1
			PRINT  +
			RESETCOLOR
		ENDIF
		A += 7
		CALL SET_COLOR_STATUS,1
		PRINTS TALENTNAME:53
		PRINTV '(,7,')
		RESETCOLOR
		S = 1
	ENDIF
	;보수적
	IF TALENT:54
		CALL SET_COLOR_STATUS,1
		PRINT  -
		A -= 13
		PRINTS TALENTNAME:54
		PRINTV '(,13,')
		RESETCOLOR
		S = 1
	ENDIF
;ゲイ調教
ELSEIF TALENT:PLAYER:290 && TALENT:TARGET:290
	;ABL:호모끼
	IF ABL:20
		IF S
			CALL SET_COLOR_STATUS,1
			PRINT  +
			RESETCOLOR
		ENDIF
		A += ABL:20*3
		CALL SET_COLOR_STATUS,1
		PRINTS ABLNAME:20
		PRINTV 'LV,ABL:20,'(,ABL:20*3,')
		RESETCOLOR
		S = 1
	ENDIF
	;ABL:게이중독
	IF ABL:21
		IF S
			CALL SET_COLOR_STATUS,1
			PRINT  +
			RESETCOLOR
		ENDIF
		A += ABL:21*3
		PRINTS ABLNAME:21
		PRINTV 'LV,ABL:21,'(,ABL:21*3,')
		RESETCOLOR
		S = 1
	ENDIF
	;TALENT:바이
	IF TALENT:191
		IF S
			CALL SET_COLOR_STATUS,1
			PRINT  +
			RESETCOLOR
		ENDIF
		A += 10
		CALL SET_COLOR_STATUS,1
		PRINTS TALENTNAME:191
		PRINTV '(,10,')
		RESETCOLOR
		S = 1
	ENDIF
	;調教者が바이
	IF TALENT:PLAYER:191
		IF S
			CALL SET_COLOR_STATUS,1
			PRINT  +
			RESETCOLOR
		ENDIF
		A += 5
		CALL SET_COLOR_STATUS,1
		PRINTFORM 調教者の%TALENTNAME:191%
		PRINTV '(,5,')
		RESETCOLOR
		S = 1
	ENDIF
	;호기심
	IF TALENT:53
		IF S
			CALL SET_COLOR_STATUS,1
			PRINT  +
			RESETCOLOR
		ENDIF
		A += 7
		CALL SET_COLOR_STATUS,1
		PRINTS TALENTNAME:53
		PRINTV '(,7,')
		RESETCOLOR
		S = 1
	ENDIF
	;보수적
	IF TALENT:54
		CALL SET_COLOR_STATUS,1
		PRINT  -
		A -= 13
		PRINTS TALENTNAME:54
		PRINTV '(,13,')
		RESETCOLOR
		S = 1
	ENDIF
ELSE
	;호기심
	IF TALENT:53
		IF S
			CALL SET_COLOR_STATUS,1
			PRINT  +
			RESETCOLOR
		ENDIF
		A += 5
		CALL SET_COLOR_STATUS,1
		PRINTS TALENTNAME:53
		PRINTV '(,5,')
		RESETCOLOR
		S = 1
	ENDIF
	;보수적
	IF TALENT:54
		CALL SET_COLOR_STATUS,1
		PRINT  -
		A -= 10
		PRINTS TALENTNAME:54
		PRINTV '(,10,')
		RESETCOLOR
		S = 1
	ENDIF
ENDIF

;각인チェック
IF MARK:0
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += MARK:0 * 5
	CALL SET_COLOR_STATUS,1
	PRINTS MARKNAME:0
	PRINTV 'LV,MARK:0,'(,MARK:0 * 5,')
	RESETCOLOR
	S = 1
ENDIF

IF TALENT:25
	T = 4
ELSEIF TALENT:27
	T = 1
ELSE
	T = 2
ENDIF

;굴복각인および반발각인
IF MARK:2
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += MARK:2 * 4 * T
	CALL SET_COLOR_STATUS,1
	PRINTS MARKNAME:2
	PRINTV 'LV,MARK:2,'(,MARK:2 * 4 * T,')
	RESETCOLOR
	S = 1
ENDIF
IF MARK:3
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= MARK:3 * 2 * T
	PRINTS MARKNAME:3
	PRINTV 'LV,MARK:3,'(,MARK:3 * 2 * T,')
	RESETCOLOR
	S = 1
ENDIF

IF TALENT:부끄럼쟁이
	T = 3
ELSEIF TALENT:수치심없음
	T = 1
ELSE
	T = 2
ENDIF

;치욕각인
IF MARK:5
	CALL SET_COLOR_STATUS,1
	PRINT  +
	A += MARK:5 * 2 * T
	PRINTS MARKNAME:5
	PRINTV 'LV,MARK:5,'(,MARK:5 * 2 * T,')
	RESETCOLOR
	S = 1
ENDIF

;PALAM:온순
IF PALAM:5 < PALAMLV:1
	L = 0
ELSEIF PALAM:5 < PALAMLV:2
	L = 1
ELSEIF PALAM:5 < PALAMLV:3
	L = 2
ELSEIF PALAM:5 < PALAMLV:4
	L = 3
ELSEIF PALAM:5 < PALAMLV:5
	L = 4
ELSE
	L = 5
ENDIF
IF L
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += L * 3
	CALL SET_COLOR_STATUS,1
	PRINTS PALAMNAME:5
	PRINTV 'LV,L,'(,L * 3,')
	RESETCOLOR
	S = 1
ENDIF

;PALAM:공포
IF PALAM:11 < PALAMLV:1
	L = 0
ELSEIF PALAM:11 < PALAMLV:2
	L = 1
ELSEIF PALAM:11 < PALAMLV:3
	L = 2
ELSEIF PALAM:11 < PALAMLV:4
	L = 3
ELSEIF PALAM:11 < PALAMLV:5
	L = 4
ELSE
	L = 5
ENDIF
IF L
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += L * 3
	CALL SET_COLOR_STATUS,1
	PRINTS PALAMNAME:11
	PRINTV 'LV,L,'(,L * 3,')
	RESETCOLOR
	S = 1
ENDIF
;'(文字色調整用)
;복종
IF TALENT:5
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += 10
	CALL SET_COLOR_STATUS,1
	PRINTS TALENTNAME:5
	PRINTV '(,10,')
	RESETCOLOR
	S = 1
ENDIF
;예속
IF TALENT:8
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOr
	ENDIF
	A += 20
	CALL SET_COLOR_STATUS,1
	PRINTS TALENTNAME:8
	PRINTV '(,20,')
	RESETCOLOR
	S = 1
ENDIF
;반항적（복종、예속で無効）
IF TALENT:21 && (TALENT:5 == 0 && TALENT:8 == 0)
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 5
	PRINTS TALENTNAME:21
	PRINTV '(,5,')
	RESETCOLOR
	S = 1
ENDIF
;꿋꿋함
IF TALENT:22
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 5
	PRINTS TALENTNAME:22
	PRINTV '(,5,')
	RESETCOLOR
	S = 1
ENDIF
;솔직
IF TALENT:23
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += 5
	CALL SET_COLOR_STATUS,1
	PRINTS TALENTNAME:23
	PRINTV '(,5,')
	RESETCOLOR
	S = 1
ENDIF
;自尊心
IF TALENT:25
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 15
	PRINTS TALENTNAME:25
	PRINTV '(,15,')
	RESETCOLOR
	S = 1
ENDIF
;프라이드낮음
IF TALENT:27
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += 5
	CALL SET_COLOR_STATUS,1
	PRINTS TALENTNAME:27
	PRINTV '(,5,')
	RESETCOLOR
	S = 1
ENDIF
;눈에띄고싶어함
IF TALENT:58
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += 2
	CALL SET_COLOR_STATUS,1
	PRINTS TALENTNAME:58
	PRINTV '(,2,')
	RESETCOLOR
	S = 1
ENDIF
;충동적
IF TALENT:59
	A = DAY
	LOCAL:1 = PALAM:12 + 1
	LOCAL:2 = PALAM:13 + 1
	LOCAL:3 = PALAM:6 + 1
	LOCAL:4 = PALAM:14 + 1
	A = A*(LOCAL:1/LOCAL:2)*(LOCAL:3/LOCAL:4)*LOCAL:3
	LOCAL:1 = 1
	REPEAT 20
	SIF A >= 100
		A = A/100
	SIF A <= 100
		BREAK
	REND
	A = (A/2)-10
	SIF A <= 0
		A = 1
	SIF A >= 10
		A+= 10
	LOCAL:1 = 0
	LOCAL:2 = 0
	LOCAL:3 = 0
	LOCAL:4 = 0

	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	CALL SET_COLOR_STATUS,1
	PRINTS TALENTNAME:59
	PRINTFORM ({A})
	RESETCOLOR
	S = 1
ENDIF
;정욕
IF TALENT:61
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += 5
	CALL SET_COLOR_STATUS,1
	PRINTS TALENTNAME:61
	PRINTV '(,5,')
	RESETCOLOR
	S = 1
ENDIF
;금욕
IF TALENT:62
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  -
		RESETCOLOR
	ENDIF
	A -= 5
	CALL SET_COLOR_STATUS,1
	PRINTS TALENTNAME:62
	PRINTV '(,5,')
	RESETCOLOR
	S = 1
ENDIF
;억압
IF TALENT:82
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 10
	PRINTS TALENTNAME:82
	PRINTV '(,10,')
	RESETCOLOR
	S = 1
ENDIF
;저항
IF TALENT:84
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 15
	PRINTS TALENTNAME:84
	PRINTV '(,15,')
	RESETCOLOR
	S = 1
ENDIF
;약점
IF TALENT:87
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += 12
	CALL SET_COLOR_STATUS,1
	PRINTS TALENTNAME:87
	PRINTV '(,12,')
	RESETCOLOR
	S = 1
ENDIF
;즉각함락
IF TALENT:173
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += 20
	CALL SET_COLOR_STATUS,1
	PRINTS TALENTNAME:173
	PRINTV '(,10,')
	RESETCOLOR
	S = 1
ENDIF
;망신
IF TALENT:196
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOr
	ENDIF
	A += 8
	CALL SET_COLOR_STATUS,1
	PRINTS TALENTNAME:196
	PRINTV '(,8,')
	RESETCOLOR
	S = 1
ENDIF
;카리스마
IF TALENT:216
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  -
		RESETCOLOr
	ENDIF
	A -= 30
	CALL SET_COLOR_STATUS,1
	PRINTS TALENTNAME:216
	PRINTV '(,30,')
	RESETCOLOR
	S = 1
ENDIF

;調教者の能力、素質
;ABL:새드끼
IF ABL:PLAYER:10
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += ABL:PLAYER:10*2
	CALL SET_COLOR_STATUS,1
	PRINT 조교자의
	PRINTS ABLNAME:10
	PRINTV 'LV,ABL:PLAYER:10,'(,ABL:PLAYER:10*2,')
	RESETCOLOR
	S = 1
ENDIF
;수수께끼의매력
IF TALENT:PLAYER:214
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += 8
	CALL SET_COLOR_STATUS,1
	PRINT 조교자의
	PRINTS TALENTNAME:214
	PRINTV '(,8,')
	RESETCOLOR
	S = 1
ENDIF
;새드
IF TALENT:PLAYER:193
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += 3
	CALL SET_COLOR_STATUS,1
	PRINT 조교자의
	PRINTS TALENTNAME:193
	PRINTV '(,3,')
	RESETCOLOR
	S = 1
ENDIF
;교섭술
IF ASSI >= 1
	IF (ASSIPLAY == 1 && TALENT:ASSI:131) || (ASSIPLAY == 0 && TALENT:MASTER:131)
		IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
		ENDIF
		A += 4
		CALL SET_COLOR_STATUS,1
		PRINT 조교자의
		PRINTS TALENTNAME:131
		PRINTV '(,4,')
		RESETCOLOR
		S = 1
	ELSEIF ASSIPLAY == 0 && TALENT:ASSI:131
		IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
		ENDIF
		A += 4
		CALL SET_COLOR_STATUS,1
		PRINT 조수의
		PRINTS TALENTNAME:131
		PRINTV '(,4,')
		RESETCOLOR
		S = 1
	ELSEIF ASSIPLAY == 1 && TALENT:MASTER:131
		IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
		ENDIF
		A += 4
		CALL SET_COLOR_STATUS,1
		PRINTFORM %CALLNAME:MASTER%의
		PRINTS TALENTNAME:131
		PRINTV '(,4,')
		RESETCOLOR
		S = 1
	ENDIF
ELSE
	IF TALENT:PLAYER:131
		IF S
			CALL SET_COLOR_STATUS,1
			PRINT  +
			RESETCOLOR
		ENDIF
	A += 4
	CALL SET_COLOR_STATUS,1
	PRINT 조교자의
	PRINTS TALENTNAME:131
	PRINTV '(,4,')
	RESETCOLOR
	S = 1
	ENDIF
ENDIF
;카리스마
IF TALENT:PLAYER:216
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += 30
	CALL SET_COLOR_STATUS,1
	PRINT 조교자의
	PRINTS TALENTNAME:216
	PRINTV '(,30,')
	RESETCOLOR
	S = 1
ENDIF

;助손の素質
;고무
IF ASSI >= 0
	IF TALENT:ASSI:286
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += 1
	CALL SET_COLOR_STATUS,1
	PRINT 조수가
	PRINTS TALENTNAME:286
	PRINTV '(,1,')
	RESETCOLOR
	S = 1
	ENDIF
ENDIF
;상성 チェック
R = NO:PLAYER
IF RELATION:R > 0 && RELATION:R < 30
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 50
	PRINT 상성 최악
	PRINTV '(,50,')
	RESETCOLOR
	S = 1
ELSEIF RELATION:R > 0 && RELATION:R < 70
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 30
	PRINT 상성 나쁨
	PRINTV '(,30,')
	RESETCOLOR
	S = 1
ELSEIF RELATION:R > 0 && RELATION:R < 100
	CALL SET_COLOR_STATUS,1
	PRINT  -
	A -= 10
	PRINT 상성 별로
	PRINTV '(,10,')
	RESETCOLOR
	S = 1
ELSEIF RELATION:R > 100 && RELATION:R < 130
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += 10
	CALL SET_COLOR_STATUS,1
	PRINT 상성 나쁘지 않음
	PRINTV '(,10,')
	RESETCOLOR
	S = 1
ELSEIF RELATION:R >= 130 && RELATION:R < 170
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += 30
	CALL SET_COLOR_STATUS,1
	PRINT 상성 좋음
	PRINTV '(,30,')
	RESETCOLOR
	S = 1
ELSEIF RELATION:R >= 170
	IF S
		CALL SET_COLOR_STATUS,1
		PRINT  +
		RESETCOLOR
	ENDIF
	A += 50
	CALL SET_COLOR_STATUS,1
	PRINT 상성 최고
	PRINTV '(,50,')
	RESETCOLOR
	S = 1
ENDIF

;個別処理用の汎用関数
@COM_ORDER_CALC_VALUE(comValue,valueLabel,addValue)
#DIM REF comValue ;Aを指定
#DIMS valueLabel
#DIM addValue
IF S
	CALL SET_COLOR_STATUS,1
	PRINTFORM  \@ addValue > 0 ? + # - \@
	RESETCOLOR
ENDIF
comValue += addValue
CALL SET_COLOR_STATUS,1
PRINTFORM %valueLabel%({abs(addValue)})
RESETCOLOR
S = 1
RETURN

@COM_ORDER_CALC_VALUE_MULTIPLE_PATTERN(comValue,keyType,keyValue,multipleValue,targetChara = -1,exRule = "",requireLevel = 1,isRevert = 0)
#DIM REF comValue ;Aを指定
#DIMS keyType
#DIMS keyValue
#DIM multipleValue
#DIM level
#DIMS prefix
#DIM targetChara
#DIM requireLevel
#DIM isRevert
#DIMS postfix
#DIMS exRule
SIF targetChara < 0
	targetChara = TARGET
level = EVALUATE(keyType + ":index:" + keyValue,targetChara)
prefix = %GET_COM_ORDER_PREFIX(targetChara)%
postfix = \@ isRevert ? 以下 # \@
SIF exRule == ""
	exRule = 1
SIF ((level == requireLevel) || ((level > requireLevel) ^^ isRevert)) && EVALUATE(exRule,targetChara)
	CALL COM_ORDER_CALC_VALUE(comValue,prefix + keyValue + "LV" + TOSTR(level) + postfix,level * multipleValue)

@COM_ORDER_CALC_VALUE_BY_ABL(comValue,ablKey,multipleValue,targetChara = -1,exRule = "",requireLevel = 1,isRevert = 0)
#DIM REF comValue ;Aを指定
#DIMS ablKey
#DIM multipleValue
#DIM targetChara
#DIMS exRule
#DIM requireLevel
#DIM isRevert
CALL COM_ORDER_CALC_VALUE_MULTIPLE_PATTERN(comValue,"ABL",ablKey,multipleValue,targetChara,exRule,requireLevel,isRevert)

@COM_ORDER_CALC_VALUE_BY_MARK(comValue,markKey,multipleValue,targetChara = -1,exRule = "",requireLevel = 1,isRevert = 0)
#DIM REF comValue ;Aを指定
#DIMS markKey
#DIM multipleValue
#DIM targetChara
#DIMS exRule
#DIM requireLevel
#DIM isRevert
CALL COM_ORDER_CALC_VALUE_MULTIPLE_PATTERN(comValue,"MARK",markKey,multipleValue,targetChara,exRule,requireLevel,isRevert)

@COM_ORDER_CALC_VALUE_TALENT(comValue,talentKey,addValue,targetChara = -1,exRule = "",isRevert = 0)
#DIM REF comValue ;Aを指定
#DIMS talentKey
#DIM addValue
#DIM targetChara
#DIM isRevert
#DIMS prefix
#DIMS postfix
#DIMS exRule
SIF targetChara < 0
	targetChara = TARGET
prefix = %GET_COM_ORDER_PREFIX(targetChara)%
postfix = \@ isRevert ? ではない # \@
SIF exRule == ""
	exRule = 1
SIF (EVALUATE("TALENT:index:" + talentKey,targetChara) ^^ isRevert) && EVALUATE(exRule,targetChara)
	CALL COM_ORDER_CALC_VALUE(comValue,prefix + talentKey + postfix,addValue)

@COM_ORDER_CALC_VALUE_BY_PALAM(comValue,palamKey,multipleValue,exRule = "",requireLevel = 1,isRevert = 0)
#DIM REF comValue ;Aを指定
#DIMS palamKey
#DIM multipleValue
#DIM targetChara
#DIMS exRule
#DIM requireLevel
#DIM isRevert
#DIMS postfix
#DIM palamLevel
palamLevel = GET_PALAM_LV(palamKey)
postfix = \@ isRevert ? 以下 # \@
SIF exRule == ""
	exRule = 1
SIF ((palamLevel == requireLevel) || ((palamLevel > requireLevel) ^^ isRevert)) && EVALUATE(exRule,TARGET) ;PALAMなのでTARGETしかありえない
	CALL COM_ORDER_CALC_VALUE(comValue,palamKey + "LV" + TOSTR(palamLevel) + postfix,palamLevel * multipleValue)

@COM_ORDER_CALC_VALUE_BY_TEQUIP(comValue,palamKey,multipleValue,targetChara = -1,exRule = "",requireLevel = 1,isRevert = 0)
#DIM REF comValue ;Aを指定
#DIMS palamKey
#DIM multipleValue
#DIM targetChara
#DIMS exRule
#DIM requireLevel
#DIM isRevert
CALL COM_ORDER_CALC_VALUE_MULTIPLE_PATTERN(comValue,"TEQUIP",palamKey,multipleValue,targetChara,exRule,requireLevel,isRevert)

@GET_COM_ORDER_PREFIX(targetChara)
#FUNCTIONS
#DIM targetChara
SELECTCASE targetChara
	CASE PLAYER
		RETURNF "調教者が"
	CASE MASTER
		RETURNF "主人が"
	CASE ASSI
		RETURNF "助손が"
	CASEELSE
		RETURNF ""
ENDSELECT

;最終結果の表示部分。戻り値が-1なら閾値未満、0なら同値、1なら閾値以上。つまり0以上で判定成功になる
@SHOW_COMORDER_RESULT(orderValue,thresholdValue)
#DIM orderValue
#DIM thresholdValue
#DIM answer

CALL SET_COLOR_STATUS,1

answer = (orderValue == thresholdValue) ? 0 # (orderValue - thresholdValue) / ABS(orderValue - thresholdValue)
PRINTFORM  = {orderValue} %SUBSTRING("<=>",answer+1,1)% 実行値 {thresholdValue}

RESETCOLOR

WAIT
RETURN answer

@ADD_LES_OR_GAY_EXP(addValue,targetChara = -1,playerChara = -1)
#DIM addValue
#DIM targetChara
#DIM playerChara
#DIM expIndex
SIF targetChara == -1
	targetChara = TARGET
SIF playerChara == -1
	playerChara = PLAYER
expIndex = TALENT:targetChara:남자 ? 41 # 40
IF (TALENT:targetChara:남자 == TALENT:playerChara:남자)
	PRINTFORML %EXPNAME:expIndex%+{addValue}
	EXP:expIndex += addValue
ENDIF

@GET_DEPENDENCE_VALUE(targetChara)
#FUNCTION
#DIM targetChara
SIF targetChara == -1
	targetChara = TARGET
RETURNF (PLAYER == MASTER ? TALENT:targetChara:예속 * 2 + TALENT:targetChara:복종 # 0)


code:
;CONSERT.ERB　コンサートを開いてチケットなどを売る労役コマンド
;奴隷の歌唱力だけでなく、奴隷の能力が高いとフェロモンで売り上げが上がる
;やはり、基本的には厳しい
@CONCERT
;使用する一時変数の初期化
A = 0
B = 0
S = 0
V = 0
C = 0
D = 0

;콘서트에서 노래할 노예를選択
PRINTL 콘서트에서 노래할 노예를 선택해주세요
REPEAT CHARANUM
	SIF COUNT == MASTER
		CONTINUE
	SIF CFLAG:COUNT:1 < 2
		CONTINUE
	SIF CFLAG:COUNT:12 > 0
		CONTINUE
	SIF (TALENT:COUNT:3 || TALENT:COUNT:6) && BASE:COUNT:0 > 800
		PRINTFORML [{COUNT}] - %CALLNAME:COUNT%
REND
PRINTL [100] - 돌아온다
$INPUT_LOOP_2
INPUT
IF RESULT == 100
	RETURN 0
ELSEIF RESULT < 0 || RESULT >= CHARANUM
	GOTO INPUT_LOOP_2
ELSEIF RESULT == MASTER
	GOTO INPUT_LOOP_2
ELSEIF CFLAG:RESULT:1 < 2
	GOTO INPUT_LOOP_2
ELSEIF CFLAG:RESULT:12 > 0
	GOTO INPUT_LOOP_2
ELSEIF (TALENT:RESULT:3 == 0 && TALENT:RESULT:6 == 0) || BASE:RESULT:0 <= 800
	GOTO INPUT_LOOP_2
ELSE
	A = RESULT
ENDIF

;奴隷の가창기능と가창경험のレベルによって値段の基礎値が上昇
;ABL:가창기능をみる
IF ABL:A:14 == 0
	S += 0
ELSEIF ABL:A:14 == 1
	S += 600
ELSEIF ABL:A:14 == 2
	S += 1000
ELSEIF ABL:A:14 == 3
	S += 1500
ELSEIF ABL:A:14 == 4
	S += 2100
ELSEIF ABL:A:14 == 5
	S += 2800
ELSEIF ABL:A:14 == 6
	S += 3600
ELSEIF ABL:A:14 == 7
	S += 4500
ELSEIF ABL:A:14 == 8
	S += 5500
ELSEIF ABL:A:14 == 9
	S += 6600
ELSE
	S += 7800
ENDIF
SIF S
	PRINTFORML %ABLNAME:14%{ABL:A:14}LV +{S}

;가창경험による補正
IF EXP:A:64 < EXPLV:1
	D += 10
ELSEIF EXP:A:64 < EXPLV:2
	D += 200
ELSEIF EXP:A:64 < EXPLV:3
	D += 800
ELSEIF EXP:A:64 < EXPLV:4
	D += 1800
ELSEIF EXP:A:64 < EXPLV:5
	D += 3000
ELSE
	D += 5000
ENDIF
	PRINTFORML %EXPNAME:64%{EXP:A:64} +{D}
S += D

;奴隷の能力、素質による倍率計算（가창기능は前項で見ているので省略）
V = 100
;ABL:순종をみる
IF ABL:A:0 == 0
	C = 0
ELSEIF ABL:A:0 == 1
	C = 10
ELSEIF ABL:A:0 == 2
	C = 20
ELSEIF ABL:A:0 == 3
	C = 30
ELSEIF ABL:A:0 == 4
	C = 40
ELSEIF ABL:A:0 == 5
	C = 50
ELSEIF ABL:A:0 == 6
	C = 60
ELSEIF ABL:A:0 == 7
	C = 70
ELSEIF ABL:A:0 == 8
	C = 80
ELSEIF ABL:A:0 == 9
	C = 90
ELSE
	C = 100
ENDIF
SIF C > 0
	PRINTFORML %ABLNAME:0%{ABL:A:0}LV +{C}％
V += C

;ABL:욕망をみる
IF ABL:A:1 == 0
	C = 0
ELSEIF ABL:A:1 == 1
	C = 10
ELSEIF ABL:A:1 == 2
	C = 20
ELSEIF ABL:A:1 == 3
	C = 30
ELSEIF ABL:A:1 == 4
	C = 40
ELSEIF ABL:A:1 == 5
	C = 50
ELSEIF ABL:A:1 == 6
	C = 60
ELSEIF ABL:A:1 == 7
	C = 70
ELSEIF ABL:A:1 == 8
	C = 80
ELSEIF ABL:A:1 == 9
	C = 90
ELSE
	C = 100
ENDIF
SIF C > 0
	PRINTFORML %ABLNAME:1%{ABL:A:1}LV +{C}％
V += C

;ABL:기교をみる
IF ABL:A:2 == 0
	C = 0
ELSEIF ABL:A:2 == 1
	C = 5
ELSEIF ABL:A:2 == 2
	C = 10
ELSEIF ABL:A:2 == 3
	C = 15
ELSEIF ABL:A:2 == 4
	C = 20
ELSEIF ABL:A:2 == 5
	C = 25
ELSEIF ABL:A:2 == 6
	C = 30
ELSEIF ABL:A:2 == 7
	C = 35
ELSEIF ABL:A:2 == 8
	C = 40
ELSEIF ABL:A:2 == 9
	C = 45
ELSE
	C = 50
ENDIF
SIF C > 0
	PRINTFORML %ABLNAME:2%{ABL:A:2}LV +{C}％
V += C

;ABL:Ｖ감각をみる
IF ABL:A:4 == 0
	C = 0
ELSEIF ABL:A:4 == 1
	C = 5
ELSEIF ABL:A:4 == 2
	C = 10
ELSEIF ABL:A:4 == 3
	C = 15
ELSEIF ABL:A:4 == 4
	C = 20
ELSEIF ABL:A:4 == 5
	C = 25
ELSEIF ABL:A:4 == 6
	C = 30
ELSEIF ABL:A:4 == 7
	C = 35
ELSEIF ABL:A:4 == 8
	C = 40
ELSEIF ABL:A:4 == 9
	C = 45
ELSE
	C = 50
ENDIF
SIF C > 0
	PRINTFORML %ABLNAME:4%{ABL:A:4}LV +{C}％
V += C

;ABL:봉사정신をみる
IF ABL:A:7 == 0
	C = 0
ELSEIF ABL:A:7 == 1
	C = 5
ELSEIF ABL:A:7 == 2
	C = 10
ELSEIF ABL:A:7 == 3
	C = 15
ELSEIF ABL:A:7 == 4
	C = 20
ELSEIF ABL:A:7 == 5
	C = 25
ELSEIF ABL:A:7 == 6
	C = 30
ELSEIF ABL:A:7 == 7
	C = 35
ELSEIF ABL:A:7 == 8
	C = 40
ELSEIF ABL:A:7 == 9
	C = 45
ELSE
	C = 50
ENDIF
SIF C > 0
	PRINTFORML %ABLNAME:7%{ABL:A:7}LV +{C}％
V += C

;ABL:노출증をみる
IF ABL:A:8 == 0
	C = 0
ELSEIF ABL:A:8 == 1
	C = 5
ELSEIF ABL:A:8 == 2
	C = 10
ELSEIF ABL:A:8 == 3
	C = 15
ELSEIF ABL:A:8 == 4
	C = 20
ELSEIF ABL:A:8 == 5
	C = 25
ELSEIF ABL:A:8 == 6
	C = 30
ELSEIF ABL:A:8 == 7
	C = 35
ELSEIF ABL:A:8 == 8
	C = 40
ELSEIF ABL:A:8 == 9
	C = 45
ELSE
	C = 50
ENDIF
SIF C > 0
	PRINTFORML %ABLNAME:8%{ABL:A:8}LV +{C}％
V += C

;ABL:마조끼をみる
IF ABL:A:9 == 0
	C = 0
ELSEIF ABL:A:9 == 1
	C = 5
ELSEIF ABL:A:9 == 2
	C = 10
ELSEIF ABL:A:9 == 3
	C = 15
ELSEIF ABL:A:9 == 4
	C = 20
ELSEIF ABL:A:9 == 5
	C = 25
ELSEIF ABL:A:9 == 6
	C = 30
ELSEIF ABL:A:9 == 7
	C = 35
ELSEIF ABL:A:9 == 8
	C = 40
ELSEIF ABL:A:9 == 9
	C = 45
ELSE
	C = 50
ENDIF
SIF C > 0
	PRINTFORML %ABLNAME:9%{ABL:A:9}LV +{C}％
V += C

;ABL:새드끼をみる
IF ABL:A:10 == 0
	C = 0
ELSEIF ABL:A:10 == 1
	C = 5
ELSEIF ABL:A:10 == 2
	C = 10
ELSEIF ABL:A:10 == 3
	C = 15
ELSEIF ABL:A:10 == 4
	C = 20
ELSEIF ABL:A:10 == 5
	C = 25
ELSEIF ABL:A:10 == 6
	C = 30
ELSEIF ABL:A:10 == 7
	C = 35
ELSEIF ABL:A:10 == 8
	C = 40
ELSEIF ABL:A:10 == 9
	C = 45
ELSE
	C = 50
ENDIF
SIF C > 0
	PRINTFORML %ABLNAME:10%{ABL:A:10}LV +{C}％
V += C

;ABL:섹스중독をみる
IF ABL:A:18 == 0
	C = 0
ELSEIF ABL:A:18 == 1
	C = 10
ELSEIF ABL:A:18 == 2
	C = 20
ELSEIF ABL:A:18 == 3
	C = 30
ELSEIF ABL:A:18 == 4
	C = 40
ELSEIF ABL:A:18 == 5
	C = 50
ELSEIF ABL:A:18 == 6
	C = 60
ELSEIF ABL:A:18 == 7
	C = 70
ELSEIF ABL:A:18 == 8
	C = 80
ELSEIF ABL:A:18 == 9
	C = 90
ELSE
	C = 100
ENDIF
SIF C > 0
	PRINTFORML %ABLNAME:18%{ABL:A:18}LV +{C}％
V += C

;陥落素質
;연모
IF TALENT:A:3
	C = 100
	V += 100
	PRINTFORML %TALENTNAME:3% ＋{C}％
ENDIF
;음란
IF TALENT:A:4
	C = 30
	V -= 30
	PRINTFORML %TALENTNAME:4% －{C}％
ENDIF
;복종
IF TALENT:A:5
	C = 50
	V -= 50
	PRINTFORML %TALENTNAME:5% ＋{C}％
ENDIF
;친애
IF TALENT:A:6
	C = 200
	V += 200
	PRINTFORML %TALENTNAME:6% ＋{C}％
ENDIF
;창녀
IF TALENT:A:7
	C = 60
	V -= 60
	PRINTFORML %TALENTNAME:7% －{C}％
ENDIF
;예속
IF TALENT:A:8
	C = 100
	V -= 100
	PRINTFORML %TALENTNAME:8% ＋{C}％
ENDIF

;その他素質
;겁쟁이
IF TALENT:A:20
	C = 10
	V += 10
	PRINTFORML %TALENTNAME:20% ＋{C}％
ENDIF
;반항적
IF TALENT:A:21
	C = 10
	V -= 10
	PRINTFORML %TALENTNAME:21% －{C}％
ENDIF
;꿋꿋함
IF TALENT:A:22
	C = 20
	V += 20
	PRINTFORML %TALENTNAME:22% ＋{C}％
ENDIF
;솔직
IF TALENT:A:23
	C = 10
	V += 10
	PRINTFORML %TALENTNAME:23% ＋{C}％
ENDIF
;얌전함
IF TALENT:A:24
	C = 10
	V += 10
	PRINTFORML %TALENTNAME:24% ＋{C}％
ENDIF
;프라이드높음
IF TALENT:A:25
	C = 10
	V -= 10
	PRINTFORML %TALENTNAME:25% －{C}％
ENDIF
;건방짐
IF TALENT:A:26
	C = 10
	V -= 10
	PRINTFORML %TALENTNAME:26% －{C}％
ENDIF
;프라이드낮음
IF TALENT:A:27
	C = 10
	V += 10
	PRINTFORML %TALENTNAME:27% ＋{C}％
ENDIF
;츤데레
IF TALENT:A:28
	C = 20
	V += 20
	PRINTFORML %TALENTNAME:28% ＋{C}％
ENDIF
;자제심
IF TALENT:A:50
	C = 10
	V += 10
	PRINTFORML %TALENTNAME:50% ＋{C}％
ENDIF
;무관심
IF TALENT:A:51
	C = 10
	V -= 10
	PRINTFORML %TALENTNAME:51% －{C}％
ENDIF
;감정부족
IF TALENT:A:30
	C = 10
	V -= 10
	PRINTFORML %TALENTNAME:30% －{C}％
ENDIF
;일선을넘지않음
IF TALENT:A:57
	C = 15
	V += 15
	PRINTFORML %TALENTNAME:57% ＋{C}％
ENDIF
;눈에띄고싶어함
IF TALENT:A:58
	C = 10
	V += 10
	PRINTFORML %TALENTNAME:58% ＋{C}％
ENDIF
;정조관념
IF TALENT:A:80
	C = 10
	V += 10
	PRINTFORML %TALENTNAME:80% ＋{C}％
ENDIF
;정조무관심
IF TALENT:A:81
	C = 10
	V -= 10
	PRINTFORML %TALENTNAME:81% －{C}％
ENDIF
;습득빠름
IF TALENT:A:280
	C = 10
	V += 10
	PRINTFORML %TALENTNAME:280% ＋{C}％
ENDIF
;습득느림
IF TALENT:A:281
	C = 10
	V -= 10
	PRINTFORML %TALENTNAME:281% －{C}％
ENDIF
;헌신적
IF TALENT:A:153
	C = 15
	V += 15
	PRINTFORML %TALENTNAME:153% ＋{C}％
ENDIF
;남성혐오
IF TALENT:A:192
	C = 20
	V -= 20
	PRINTFORML %TALENTNAME:192% －{C}％
ENDIF
;망신
IF TALENT:A:196
	C = 15
	V += 15
	PRINTFORML %TALENTNAME:196% ＋{C}％
ENDIF
;소악마
IF TALENT:A:197
	C = 10
	V += 10
	PRINTFORML %TALENTNAME:197% ＋{C}％
ENDIF
;여성혐오
IF TALENT:A:198
	C = 20
	V -= 20
	PRINTFORML %TALENTNAME:198% －{C}％
ENDIF
;요괴여우
IF TALENT:A:211
	C = 10
	V += 10
	PRINTFORML %TALENTNAME:211% ＋{C}％
ENDIF
;수수께끼의매력
IF TALENT:A:214
	C = 50
	V += 50
	PRINTFORML %TALENTNAME:214% ＋{C}％
ENDIF
;빈유
IF TALENT:A:239
	C = 10
	V -= 10
	PRINTFORML %TALENTNAME:239% －{C}％
ENDIF
;절벽
IF TALENT:A:240
	C = 20
	V -= 20
	PRINTFORML %TALENTNAME:240% －{C}％
ENDIF
;거유
IF TALENT:A:241
	C = 20
	V += 20
	PRINTFORML %TALENTNAME:241% ＋{C}％
ENDIF
;폭유
IF TALENT:A:242
	C = 10
	V += 10
	PRINTFORML %TALENTNAME:242% ＋{C}％
ENDIF
;흡혈귀
IF TALENT:A:282
	C = 10
	V -= 10
	PRINTFORML %TALENTNAME:282% －{C}％
ENDIF
;동물귀
IF TALENT:A:293
	C = 10
	V += 10
	PRINTFORML %TALENTNAME:293% ＋{C}％
ENDIF
;인기
IF TALENT:A:145
	C = 25
	V += 25
	PRINTFORML %TALENTNAME:145% ＋{C}％
ENDIF
;임신
IF TALENT:A:303
	C = 30
	V += 30
	PRINTFORML %TALENTNAME:303% ＋{C}％
ENDIF
;모성
IF TALENT:A:305
	C = 60
	V += 60
	PRINTFORML %TALENTNAME:305% ＋{C}％
ENDIF

;補正値が0以下の場合は1にする
SIF V <= 0
	V = 1

PRINTFORML 최종 배율 {V}％

;補正値の適用
S *= V
S /= 100

;붕괴,광기は利潤をかなり低くする（순종によって、80％まで回復）
IF TALENT:A:9 || TALENT:A:291
PRINTL
	IF TALENT:A:9
		S *= ABL:A:0
		TIMES S , 0.08
		Z = ABL:A:0
		Z *= 8
		PRINTFORML %TALENTNAME:9% ×{Z}％
	ELSEIF TALENT:A:291
		S *= ABL:A:0
		TIMES S , 0.08
		Z = ABL:A:0
		Z *= 8
		PRINTFORML %TALENTNAME:291% ×{Z}％
	ENDIF
PRINTL
ENDIF

;難易度処理
;EASY
IF FLAG:4 == 1
	PRINTFORML 난이도：EASY ×120％
	TIMES S , 1.20
;NORMAL
ELSEIF FLAG:4 == 2
	TIMES S , 1.00
;HARD
ELSEIF FLAG:4 == 3
	PRINTFORML 난이도：HARD ×80％
	TIMES S , 0.80
ENDIF

;コンサートを実行するか？
IF S > 0
	PRINTFORMW 이윤은 ${S}정도 기대할 수 있습니다
ELSE
	PRINTFORMW 이윤을 기대할 수 없기 때문에 콘서트를 중지합니다
	RETURN 0
ENDIF
PRINTFORML %CALLNAME:A%의 콘서트를 실행합니까？
PRINTL [0] -  실행한다
PRINTL [100] - 돌아온다
$INPUT_LOOP_3
INPUT
IF RESULT == 0
	PRINTFORML %CALLNAME:A%의 콘서트를 실행합니다
	;評判判定
	IF ABL:A:14 == 0
		IF RAND:5 == 0
			F = 1
			Z = S
			TIMES Z , 0.05
			S += Z
		ELSE
			F = 0
			Z = S
			TIMES Z , 0.05
			S -= Z
		ENDIF
	ELSEIF ABL:A:14 < 4
		IF RAND:3 == 0
			F = 1
			Z = S
			TIMES Z , 0.05
			S += Z
		ELSE
			F = 0
			Z = S
			TIMES Z , 0.05
			S -= Z
		ENDIF
	ELSE
		IF RAND:5 == 0
			F = 0
			Z = S
			TIMES Z , 0.05
			S -= Z
		ELSE
			F = 1
			Z = S
			TIMES Z , 0.05
			S += Z
		ENDIF
	ENDIF
	;イベント입上呼び出し
	U = 0
	IF ASSI >= 0
		SIF ASSI == A
			U = 1
	ENDIF
	T = TARGET
	TARGET = A
	TFLAG:13 = 20
	CALL KOJO_MESSAGE_EVENT
	TARGET = T
	SIF U
		ASSI = A
	;奴隷の経験、能力処理
	IF ABL:A:14 == 0
		R = 8
		Q = 5
	ELSEIF ABL:A:14 == 1
		R = 50
		Q = 5
	ELSEIF ABL:A:14 == 2
		R = 300
		Q = 5
	ELSEIF ABL:A:14 == 3
		R = 900
		Q = 5
	ELSEIF ABL:A:14 == 4
		R = 2400
		Q = 10
	ELSEIF ABL:A:14 == 5
		R = 3000
		Q = 20
	ELSEIF ABL:A:14 == 6
		R = 3500
		Q = 30
	ELSEIF ABL:A:14 == 7
		R = 4000
		Q = 40
	ELSEIF ABL:A:14 == 8
		R = 4500
		Q = 50
	ELSEIF ABL:A:14 == 9
		R = 5000
		Q = 60
	ELSEIF ABL:A:14 >= 10
		R = 6000
		Q = 80
	ENDIF
	BASE:A:0 -= 300
	EXP:A:23 += 5
	EXP:A:64 += Q
	JUEL:A:8 += R
	CFLAG:A:10 -= 1
	PRINTFORML %EXPNAME:23%＋5
	PRINTFORML %EXPNAME:64%＋{Q}
	PRINTFORML %PALAMNAME:8%＋{R}
	PRINTFORMW 콘서트에서 노래를 피로한 결과 ${S}의 이윤을 얻었습니다
	MONEY += S
	DRAWLINE
	;休憩フラグを立てる
	FLAG:0 = 1
	BEGIN TURNEND
ELSEIF RESULT == 100
	RETURN 0
ELSE
	GOTO INPUT_LOOP_3
ENDIF

;料理기교に応じた料理名関数
@SONG_NAME_TOHO
;キャラの持ち歌
IF NO:TARGET == 1
	;霊夢
	PRINT 『楽園の巫女』
ELSEIF NO:TARGET == 2
	;魔理沙
	PRINT 『弾幕はパワー』
ELSEIF NO:TARGET == 3
	;ルーミア
	PRINT 『宵闇飛行隊』
ELSEIF NO:TARGET == 4
	;大妖精
	P = RAND:2
	IF P == 0
		PRINT 『名もなき者の詩』
	ELSE
		PRINT 『大ちゃん子守唄』
	ENDIF
ELSEIF NO:TARGET == 5
	;チルノ
	P = RAND:2
	IF P == 0
		PRINT 『あたいったらサイキョーね！～⑨重奏』
	ELSE
		PRINT 『あたいったらサイキョーね！』
	ENDIF
ELSEIF NO:TARGET == 6
	;美鈴
	PRINT 『彩光円舞』
ELSEIF NO:TARGET == 7
	;こぁ
	PRINT 『名もなき者の詩』
ELSEIF NO:TARGET == 8
	;パチュリー
	PRINT 『唱えて今日の魔法』
ELSEIF NO:TARGET == 9
	;咲夜さん
	PRINT 『本気狩る☆咲夜ちゃん』
ELSEIF NO:TARGET == 10
	;レミリア
	P = RAND:2
	IF P == 0
		PRINT 『私のこの손が真っ赤に燃える！全世界ナイトメア・흡혈귀れみりあちゃん』
	ELSE
		PRINT 『モケーレムベンベのバラード』
	ENDIF
ELSEIF NO:TARGET == 11
	;フラン
	P = RAND:2
	IF P == 0
		PRINT 『キュッとしてどーん』
	ELSE
		PRINT 『クランベリートラップ』
	ENDIF
ELSEIF NO:TARGET == 12
	;レティ
	P = RAND:3
	IF P == 0
		PRINT 『猛吹雪のセレナーデ』
	ELSE
		PRINT 『吹雪のセレナーデ』
	ENDIF
ELSEIF NO:TARGET == 13
	;橙
	P = RAND:2
	IF P == 0
		PRINT 『黒猫のワルツ』
	ELSE
		PRINT 『黒猫の団子』
	ENDIF
ELSEIF NO:TARGET == 14
	;アリス
	PRINT 『突撃マイハニー』
ELSEIF NO:TARGET == 15
	;リリー
	PRINT 『春の歌』
ELSEIF NO:TARGET == 16 || NO:TARGET == 17 || NO:TARGET == 18
	;騒霊三姉妹
	PRINTFORM 『%CALLNAME:TARGET%・ソロ』
ELSEIF NO:TARGET == 19
	;妖夢
	P = RAND:2
	IF P == 0
		PRINT 『白玉楼ブルース』
	ELSE
		PRINT 『丁々発止』
	ENDIF
ELSEIF NO:TARGET == 20
	;ゆゆ様
	PRINT 『幽雅に咲かせ、墨染めの桜』
ELSEIF NO:TARGET == 21
	;藍様
	PRINT 『四面楚歌☆チャーミング』
ELSEIF NO:TARGET == 22
	;ゆかりん
	PRINT 『美しく残酷に』
ELSEIF NO:TARGET == 23
	;萃香
	PRINT 『幻想郷酒飲み音頭』
ELSEIF NO:TARGET == 24
	;リグル
	PRINT 『全世界ナイトバグ』
ELSEIF NO:TARGET == 25
	;みすちー
	P = RAND:3
	IF P == 0
		PRINT 『ミスティア音頭』
	ELSEIF P == 1
		PRINT 『みっすみすにしてやんよ！』
	ELSE
		PRINT 『ちんちんワールド』
	ENDIF
ELSEIF NO:TARGET == 26
	;慧音
	PRINT 『満月必堀』
ELSEIF NO:TARGET == 27
	;てゐ
	PRINT “Lucky joker”
ELSEIF NO:TARGET == 28
	;鈴仙
	P = RAND:2
	IF P == 0
		PRINT 『月兎自暴自棄曲(バーサーカーノイズ) ～エーリングセンス～』
	ELSE
		PRINT 『月兎自暴自棄曲(バーサーカーノイズ)』
	ENDIF
ELSEIF NO:TARGET == 29
	;永琳
	P = RAND:2
	IF P == 0
		PRINT 『胡蝶夢丸ナイトメア』
	ELSE
		PRINT 『アポロ11号』
	ENDIF
ELSEIF NO:TARGET == 30
	;輝夜
	PRINT 『男は黙って金閣寺』
ELSEIF NO:TARGET == 31
	;妹紅
	P = RAND:3
	IF P == 0
		PRINT 『無限一夜』
	ELSEIF P == 1
		PRINT 『蓬莱蓮華』
	ELSE
		PRINT 『凱風快晴』
	ENDIF
ELSEIF NO:TARGET == 33
	;メディスン
	PRINT 『スイート☆ポイズン』
ELSEIF NO:TARGET == 34
	P = RAND:4
	IF P == 0
		PRINT 『破滅のスカッド』
	ELSEIF P == 1
		PRINT 『붕괴デュアルスパーク』
	ELSEIF P == 2
		PRINT “Inanimate Dream”
	ELSE
		PRINT 『散り逝く花へのレクイエム』
	ENDIF
ELSEIF NO:TARGET == 35
	;小町
	PRINT 『Sabotage ～ もう何もしたくない』
ELSEIF NO:TARGET == 36
	;えーき様
	PRINT 『ヤマザナドゥ音頭』
ELSEIF NO:TARGET == 37
	;静葉
	PRINT 『紅葉一巡』
ELSEIF NO:TARGET == 38
	;穣子
	PRINT 『豊作祈願の舞』
ELSEIF NO:TARGET == 39
	;雛
	PRINT 『厄い日曜日』
ELSEIF NO:TARGET == 40
	;にとり
	P = RAND:2
	IF P == 0
		PRINT 『超妖怪弾頭』
	ELSE
		PRINT 『キュウリハンター』
	ENDIF
ELSEIF NO:TARGET == 41
	;椛
	P = RAND:2
	IF P == 0
		PRINT 『将棋は歩から』
	ELSE
		PRINT 『犬のみまわりさん』
	ENDIF
ELSEIF NO:TARGET == 42
	;早苗
	PRINT 『信濃の子守唄』
ELSEIF NO:TARGET == 43
	;神奈子
	P = RAND:4
	IF P == 0
		PRINT 『神話戦隊オンバシラー』
	ELSEIF P == 1
		PRINT 『神話戦隊オンバシラーDX』
	ELSEIF P == 2
		PRINT 『神話戦隊オンバシラー外伝』
	ELSE
		PRINT 『神話戦隊オンバシラー・FinalEdition』
	ENDIF
ELSEIF NO:TARGET == 44
	;ケロちゃん
	PRINT 『蛙の気持ち』
ELSEIF NO:TARGET == 45
	;サニー
	PRINT 『太陽燦々』
ELSEIF NO:TARGET == 46
	;ルナ
	PRINT 『夜だから眠らない』
ELSEIF NO:TARGET == 47
	;スター
	P = RAND:2
	IF P == 0
		PRINT 『星に願いを』
	ELSE
		PRINT 『星を見る妖精』
	ENDIF
ELSEIF NO:TARGET == 48
	;阿求
	PRINT 『転生人 ～ Reincarnation』
ELSEIF NO:TARGET == 49
	;蓮子
	P = RAND:2
	IF P == 0
		PRINT 『少女秘封倶楽部』
	ELSE
		PRINT 『時詠み』
	ENDIF
ELSEIF NO:TARGET == 50
	;メリー
	P = RAND:2
	IF P == 0
		PRINT 『少女秘封倶楽部』
	ELSE
		PRINT 『夢現』
	ENDIF
ELSEIF NO:TARGET == 51
	;魅魔様
	PRINT “Darkness Soul”
ELSEIF NO:TARGET == 52
	;神綺様
	PRINT “Song of GOD”
ELSEIF NO:TARGET == 53
	;衣玖さん
	P = RAND:3
	IF P == 0
		;フィーバーを無理やり和訳
		PRINT 『土曜日狂想曲』
	ELSEIF P == 1
		;カブキロックスってゲームにあるんだこれ
		PRINT 『お嫁サンダー』
	ELSE
		PRINT 『君の頭上に100万ボルト』
	ENDIF
ELSEIF NO:TARGET == 54
		;天子
		PRINT 『ピーチアップ・ガール』
ELSEIF NO:TARGET == 55
	;キスメ
	PRINT 『釣瓶落としの冬休み』
ELSEIF NO:TARGET == 56
	;ヤマメ
	P = RAND:2
	IF P == 0
		PRINT “Lunatic Underground”
	ELSE
		PRINT “Hi-tension Feaver”
	ENDIF
ELSEIF NO:TARGET == 57
	;パルスィ
	P = RAND:2
	IF P == 0
		PRINT 『叶わぬ恋の질투歌』
	ELSE
		PRINT “Slinking Cat”
	ENDIF
ELSEIF NO:TARGET == 58
	;勇儀
	PRINT 『三歩必殺』
ELSEIF NO:TARGET == 59
	;さとり
	PRINT 『少女S』
ELSEIF NO:TARGET == 60
	;燐
	P = RAND:2
	IF P == 0
		PRINT 『おりんりんワールド』
	ELSE
		PRINT 『おりんりんランド』
	ENDIF
ELSEIF NO:TARGET == 61
	;おくう
	P = RAND:2
	IF P == 0
		PRINT “Melty Kiss”
	ELSE
		PRINT 『灼熱のファイヤーガール』
	ENDIF
ELSEIF NO:TARGET == 62
	;こいし
	PRINT 『一粒無意識に300メートル』
ENDIF


code:
@CONFIRM_LOST_VIRGIN
$INPUT_LOOP_01
IF TALENT:0
	PRINTFORML %CALLNAME:TARGET%의 처녀를 빼앗습니까？
	PRINTL  [0] - 네
	PRINTL  [1] - 아니오
	INPUT
	IF RESULT == 1
		RETURN 0
	ELSEIF RESULT != 0
		GOTO INPUT_LOOP_01
	ENDIF
ENDIF
RETURN 1


code:
;일기
;使用する変数は、ERHで宣言

@STRLEN_FUNC, ARGS
#FUNCTION
LOCAL:2 = RESULT

STRLENS ARGS
LOCAL = RESULT

RESULT = LOCAL:2

RETURNF LOCAL

@DIARY_PRINT
#DIM PAGE
#DIM MAXPAGE

;現在の페이지
PAGE = 0
SIF NOW_DIARY_PAGE
	PAGE = NOW_DIARY_PAGE

;総페이지数
MAXPAGE = (DIARY_COUNT / 15) + 1

;出力される項目
$PRINT_LIST
DRAWLINE
PRINTFORML 일기　총 {MAXPAGE} 페이지 중 　{PAGE+1} 페이지 째

DRAWLINE
FOR LOCAL, PAGE*15, (PAGE+1)*15
	IF STRLEN_FUNC(DIARY:LOCAL) == 0
		PRINTL
		CONTINUE
	ENDIF

	PRINTFORML 　{LOCAL+1, 4, RIGHT}. %DIARY:LOCAL%
NEXT
DRAWLINE

;페이지의 관리
PRINTFORMLC \@(PAGE == 0) ? %" " * 16% # [1001]이전 페이지\@
PRINTLC [1000]돌아온다
PRINTFORMC \@(PAGE+1 == MAXPAGE) ? %" " * 16% # [1009]다음 페이지\@

$INPUT_LOOP
INPUT
IF RESULT == 1000
	RETURN 0
ELSEIF RESULT == 1001 && PAGE != 0
	PAGE -= 1
	NOW_DIARY_PAGE = PAGE
	GOTO PRINT_LIST
ELSEIF RESULT == 1009 && PAGE+1 < MAXPAGE
	PAGE += 1
	NOW_DIARY_PAGE = PAGE
	GOTO PRINT_LIST
ELSE
	GOTO INPUT_LOOP
ENDIF

@DIARY_SET, ARGS
;RESULTを修正しないために
LOCAL = RESULT

LOCALS =

;日付の取得
CALL GET_CALENDER

;現在の日を記録する
LOCALS = {Y + 1}년차 {M, 2}월 {D, 2}일
LOCALS = %LOCALS%：
;入力された内容を記録する
LOCALS = %LOCALS%%ARGS%

;変数に実際に追加する
DIARY:DIARY_COUNT = %LOCALS%
DIARY_COUNT += 1

;RESULTを修正しないために
RESULT = LOCAL


code:
@DIVORCED,ARG
TRYCALL DIVORCED_KOJO, ARG
PRINTFORML %CALLNAME:ARG%에게 헤어지자는 말을 들었다……
PRINTFORML 지나치게 터무니 없는 짓을 많이 했기 때문인가.
CALL DIARY_SET,NAME:ARG+"에게 이별선언을 듣고 헤어졌다."
CFLAG:ARG:1000 = 10

@VISIT_POLICE,ARG
;各種ローカル変数の宣言
;相談、駆け込んだ相손（1:警官、2:事務所の男、3:黒服）
#DIM T_TARGET
;今回の解決方法（1:ヤクザ、2:お金、3:女）
;ヤクザに相談：少し安く済むが、借金扱い。かつ治安悪化、もみ消しの難易度も上がる
;お金　　　　：金は比較的多く必要だが、治安が悪化しない
;女　　　　　：陥落済みの奴隷(교제不可)が必要。
#DIM T_SOLVE
;ストレス増加値
#DIM STRESS_UP
;相談、駆け込んだ相손の呼び方
#DIMS T_NAME
#DIM POLICE_TYPE
#DIM POLICE_PREFERENCE
#DIM DYNAMIC slaveIndex1 = -1
#DIM DYNAMIC slaveIndex2 = -1

T_TARGET = 0
T_SOLVE = 0
STRESS_UP = 0
T_NAME =

;T_NAME =
;%T_NAME%

SIF CFLAG:ARG:1011 < DAY - 3
	CFLAG:ARG:1011 = 0
IF CFLAG:ARG:1011 == 0
	;すでに裏切られていると事務所の者には相談しない
	IF TALENT:ARG:연예인 && GETBIT(CFLAG:ARG:1014,11) == 0 && GETBIT(CFLAG:ARG:1014,12) == 0 && GETBIT(CFLAG:ARG:1014,13) == 0
		PRINTFORML 집에 %ARG가% 소속한 사무소에서 나왔다는 남자가 왔다
		PRINTFORML 듣자하니 반광란이 된 %CALLNAME:ARG%에게 %마스터호칭을% 어떻게든 해 달라고 상담받은 것 같다。
		PRINTL
		PRINTFORML 남자는 비열한 웃음을 지으면서 내놓는 물건에 따라 그냥 넘어가 줄 수도 있다고 말했다……。

		T_TARGET = 2
		T_NAME = 사무소의남자
	;すでに裏切られていると黒服には相談しない
	ELSEIF (TALENT:ARG:영애 || TALENT:ARG:프린세스) && GETBIT(CFLAG:ARG:1014,21) == 0 && GETBIT(CFLAG:ARG:1014,22) == 0 && GETBIT(CFLAG:ARG:1014,23) == 0
		PRINTFORML 집에 검은 슈트를 입고 선글라스를 쓴 남자가 왔다
		PRINTFORML 듣자하니 반광란이 된 %CALLNAME:ARG%에게 %마스터호칭을% 어떻게든 해 달라고 상담받은 것 같다。
		PRINTL
		PRINTFORML 남자는 %CALLNAME:ARG%의 집에 고용된 입장이지만 내놓는 물건에 따라 그냥 넘어가 줄 수도 있다고 말했다……。

		T_TARGET = 3
		T_NAME = 검은옷
	ELSE
		CALL GET_POLICE_TYPE(POLICE_TYPE,POLICE_PREFERENCE)
		PRINTFORML 집에 %조사처리(GET_POLICE_DESCRIPTION(POLICE_TYPE),"가")% 방문했다.
		PRINTFORML 반미치광이가 된 %ARG가% 경찰에 들이닥쳤다고 한다.
		PRINTL
		IF POLICE_UNHUSH_PER > RAND:200
			PRINTFORMW 경찰은 유무를 묻지 않고 %CALLNAME:MASTER%의 팔에 금속 고리를 걸었다.
			PRINTFORMW 뇌물이나 여자의 거래를 제안해도 전혀 들어주지 않는다.
			PRINTFORMW 단지 너는 지나쳤어、라고 말할 뿐이다････。
			PRINTL
			PRINTFORMW ―%마스터는% 체포되었습니다―
			PRINTFORMW ―GameOver―
			QUIT
		ENDIF
		IF IS_POLICE_MONEY_SOLVABLE(POLICE_TYPE)
			PRINTFORML 경찰은 음흉한 미소를 지으며 뇌물을 요구해 왔다……。
		ELSE
			PRINTFORML 경관은 뭔가 할 말이 있다면 들어는 주겠다고 한다.
			PRINTFORML 뇌물로는 설득할 수 없을 것 같다････。
		ENDIF

		T_TARGET = 1
		T_NAME = 경찰
	ENDIF
	PRINTL
	IF T_TARGET == 1
		;警官の場合は専用処理
		LOCAL = GET_POLICE_REQUEST_MONEY()
		LOCAL:1 = LOCAL * 10 / 8
	ELSE
		IF FLAG:4 == 1
			LOCAL = 30000
			LOCAL:1 = 50000
		ELSEIF FLAG:4 == 2
			LOCAL = 50000
			LOCAL:1 = 80000
		ELSE
			LOCAL = 100000
			LOCAL:1 = 200000
		ENDIF
	ENDIF
	PRINT [0] - 야쿠자에게 상담한다(대출+
	PRINTFORML {LOCAL:1}엔)
	SIF MONEY >= LOCAL && T_TARGET == 1 && IS_POLICE_MONEY_SOLVABLE(POLICE_TYPE)
		PRINTL [1] - 순순히 건네준다
	;駆け込んだのが女
	SIF TALENT:ARG:남자 == 0 && T_TARGET == 1 && IS_POLICE_PREF_GIRL_PLAYABLE(POLICE_TYPE)
		PRINTFORML [2] - %CALLNAME:ARG%의 몸으로 교섭한다
	SIF T_TARGET == 1 && IS_POLICE_PREF_GIRL_PLAYABLE(POLICE_TYPE) && COUNT_RULED_CHARAS("index != MASTER && IS_FALLEN(index) && !TALENT:index:교제 && !IS_UNCONTACTABLE(index)")
		PRINTFORML [3] - 다른 노예의 몸으로 교섭한다
	PRINTL [10] - 하지 않는다
	$INPUT_LOOP
	INPUT
	IF RESULT == 0
		PRINTFORML 잘 아는 야쿠자에게 연락했다.
		PRINTFORML 이걸로 잘 해결해 줄 것이다……
		PRINTL
		PRINTFORML ―대출이 추가되었습니다―
		MONEY:1 += LOCAL:1

		IF T_TARGET == 2
			;事務所の男がヤクザに懐柔された
			SETBIT CFLAG:ARG:1014,11
		ELSEIF T_TARGET == 3
			;黒服がヤクザに懐柔された
			SETBIT CFLAG:ARG:1014,21
		ELSEIF T_TARGET == 1
			;警官がヤクザに懐柔された
			SETBIT CFLAG:ARG:1014,1
		ENDIF
		;今回の解決方法、ヤクザ
		T_SOLVE = 1
;7日間再判定しない
		POLICE_UNHUSH_PER += 2
		CFLAG:ARG:1011 = DAY + 4

	ELSEIF RESULT == 1 && T_TARGET == 1 && IS_POLICE_MONEY_SOLVABLE(POLICE_TYPE)
		PRINTL
		PRINTFORML ―뇌물로 돈을 빼앗겼습니다―
		MONEY -= LOCAL

		IF T_TARGET == 2
			;事務所の賄賂で懐柔された
			SETBIT CFLAG:ARG:1014,12
		ELSEIF T_TARGET == 3
			;黒服が賄賂で懐柔された
			SETBIT CFLAG:ARG:1014,22
		ELSEIF T_TARGET == 1
			;警官が賄賂で懐柔された
			SETBIT CFLAG:ARG:1014,2
		ENDIF
		;今回の解決方法、お金
		T_SOLVE = 2
;3日間再判定しない
		CFLAG:ARG:1011 = DAY
	ELSEIF RESULT == 2 && T_TARGET == 1 && IS_POLICE_PREF_GIRL_PLAYABLE(POLICE_TYPE)
		;事務所の男
		IF T_TARGET == 2
			PRINTFORML %ARG를% 안게 해줄테니 넘어가 줄 수 없을까?
			PRINTFORML %CALLNAME:MASTER%의 제안에 남자는 조금 생각한 후、비열한 웃음과 함께 고개를 끄덕였다
			PRINTL
			PRINTFORMW 그러면 지금 바로 %ARG를% 호출할까……
			PRINTL
			PRINTL
			PRINTFORML 호출된 %ARG는% %마스터호칭과% 상담한 남자가 함께 있는 것을 보고、도움받을 수 있을까 하고 기대의 표정을 띄웠다
			PRINTFORM 그러나 남자의 눈이 욕망에 물들어 있는 것을 본 순간、
			;반항적、꿋꿋함、프라이드높음、건방짐、츤데레、저항、남성혐오であなたが남자、쾌활、천연、보이쉬、쿨함、기가셈、고결
			IF TALENT:ARG:반항적 || TALENT:ARG:꿋꿋함 || TALENT:ARG:프라이드높음 || TALENT:ARG:건방짐 || TALENT:ARG:츤데레 || TALENT:ARG:저항 || (TALENT:ARG:남성혐오 && TALENT:MASTER:남자) || TALENT:ARG:쾌활 || TALENT:ARG:천연 || TALENT:ARG:보이쉬 || TALENT:ARG:쿨함 || TALENT:ARG:기가셈 || TALENT:ARG:고결
				PRINTFORML 남자가 배반한 것을 깨닫고 비명을 지르며 도망치려고 했다
				PRINTFORM 그 저항을 즐기는 것처럼 남자는 %ARG를% 억누르고
			ELSE
				PRINTFORML 배신당했음을 깨닫고 눈을 크게 뜬 채 눈물을 흘리기 시작했다
				PRINTFORM 그 눈물에 흥분한 남자는 %ARG를% 쓰러트리고
			ENDIF
			PRINTFORM 보통이라면 있을 수 없는 행위를 할 수 있다는 것에 흥분해
			SIF TALENT:처녀
				PRINTFORM 더러움을 모르는
			PRINTFORMW %CALLNAME:ARG%의 몸을 유린했다……
			PRINTL
			PRINTFORML ―입막음료로 %CALLNAME:ARG%의 몸을 제공했습니다―

			;事務所の男が女で懐柔された
			SETBIT CFLAG:ARG:1014,13
		;黒服
		ELSEIF T_TARGET == 3
			PRINTFORML %ARG를% 안게 해줄테니 넘어가 줄 수 없을까?
			PRINTFORML %CALLNAME:MASTER%의 제안에 처음엔 당황한 남자였지만 그 몸을 맛볼 수 있는 찬스는 두번 다시 없을거라고 속삭이자,
			PRINTFORML 주저하면서도 고개를 끄덕였다
			PRINTL
			PRINTFORMW 그러면 지금 바로 %ARG를% 호출할까……
			PRINTL
			PRINTL
			PRINTFORML 호출된 %ARG는% %마스터호칭과% 상담한 남자가 함께 있는 것을 보고、도움받을 수 있을까 하고 기대의 표정을 띄웠다
			PRINTFORM 그러나 남자의 눈이 욕망에 물들어 있는 것을 본 순간、
			;반항적、꿋꿋함、프라이드높음、건방짐、츤데레、저항、남성혐오であなたが남자、쾌활、천연、보이쉬、쿨함、기가셈、고결
			IF TALENT:ARG:반항적 || TALENT:ARG:꿋꿋함 || TALENT:ARG:프라이드높음 || TALENT:ARG:건방짐 || TALENT:ARG:츤데레 || TALENT:ARG:저항 || (TALENT:ARG:남성혐오 && TALENT:MASTER:남자) || TALENT:ARG:쾌활 || TALENT:ARG:천연 || TALENT:ARG:보이쉬 || TALENT:ARG:쿨함 || TALENT:ARG:기가셈 || TALENT:ARG:고결
				PRINTFORML 남자가 배반한 것을 깨닫고 비명을 지르며 도망치려고 했다
				PRINTFORM 그 저항을 즐기는 것처럼 남자는 %ARG를% 억누르고
			ELSE
				PRINTFORML 배신당했음을 깨닫고 눈을 크게 뜬 채 눈물을 흘리기 시작했다
				PRINTFORM 그 눈물에 흥분한 남자는 %ARG를% 쓰러트리고
			ENDIF
			PRINTFORM 신분이 다른 귀하신 몸을 맛볼 수 있다는 것에 흥분해
			SIF TALENT:처녀
				PRINTFORM 더러움을 모르는
			PRINTFORMW %CALLNAME:ARG%의 몸을 유린했다……
			PRINTL
			PRINTFORML -입막음료로 %CALLNAME:ARG%의 몸을 제공했습니다―

			;黒服が女で懐柔された
			SETBIT CFLAG:ARG:1014,23
		;警官
		ELSEIF T_TARGET == 1
			PRINTFORML %ARG를% 안게 해줄테니 넘어가 줄 수 없을까?
			PRINTFORML %CALLNAME:MASTER%의 제안에 경찰은 조금 생각한 후、비열한 웃음과 함께 고개를 끄덕였다
			PRINTL
			PRINTFORMW 그러면 지금 바로 %ARG를% 호출할까……
			PRINTL
			PRINTL
			PRINTFORML 호출된 %ARG를% 경찰에게 인도했다
			PRINTFORML 처음엔 %마스터호칭을% 체포해 줄 것이라고 생각한 %ARG는%
			PRINTFORM 시민을 지켜야 할 경찰이 배신한 것을 알면、
			;반항적、꿋꿋함、프라이드높음、건방짐、츤데레、저항、남성혐오であなたが남자、쾌활、천연、보이쉬、쿨함、기가셈、고결
			IF TALENT:ARG:반항적 || TALENT:ARG:꿋꿋함 || TALENT:ARG:프라이드높음 || TALENT:ARG:건방짐 || TALENT:ARG:츤데레 || TALENT:ARG:저항 || (TALENT:ARG:남성혐오 && TALENT:MASTER:남자) || TALENT:ARG:쾌활 || TALENT:ARG:천연 || TALENT:ARG:보이쉬 || TALENT:ARG:쿨함 || TALENT:ARG:기가셈 || TALENT:ARG:고결
				PRINTFORML 비명을 지르며 도망치려고 했다
				PRINTFORM 그 저항을 즐기는 것처럼 경찰은 %ARG를% 억누르고、
			ELSE
				PRINTFORML 믿기지 않는다는 얼굴로 경찰을 보며 눈물을 흘리기 시작했다
				PRINTFORM 그 눈물에 흥분한 경찰은 %ARG를% 쓰러트리고
			ENDIF
			PRINTFORM 욕망에 물들어
			SIF TALENT:처녀
				PRINTFORM 더러움을 모르는
			PRINTFORMW %CALLNAME:ARG%의 몸을 유린했다……
			PRINTL
			PRINTFORML -입막음료로 %CALLNAME:ARG%의 몸을 제공했습니다―

			;警官が女で懐柔された
			SETBIT CFLAG:ARG:1014,3
		ENDIF
		;今回の解決方法、女
		T_SOLVE = 3

		;ひどい目にあったので20日間再判定しない
		CFLAG:ARG:1011 = DAY + 17
	ELSEIF RESULT == 3 && IS_POLICE_PREF_GIRL_PLAYABLE(POLICE_TYPE) && COUNT_RULED_CHARAS("index != MASTER && IS_FALLEN(index) && !IS_LOVING(index) && !IS_UNCONTACTABLE(index)")
		PRINTFORML 다른 여자를 소개할 테니 봐줄 수 없을까?
		PRINTFORMW %CALLNAME:MASTER%의 제안에 %조사처리(GET_POLICE_DESCRIPTION(POLICE_TYPE),"는")% 조금 생각한 후 상대방에 따라 생각해도 된다고 대답했다.
		PRINTFORML 경찰은 %GET_POLICE_PREFERENCE_TEXT(POLICE_PREFERENCE)%이다.
		PRINTFORML 누구로 할까?
		WHILE 1
			CALL DISPLAY_COMMON,0,,,,,,,"index != MASTER && IS_FALLEN(index) && !TALENT:index:교제 && !IS_UNCONTACTABLE(index)", "DISPLAY_SET01_ARGUMENT"
			SIF RESULT != 999
				BREAK
		WEND
		slaveIndex1 = RESULT
		PRINTFORMW %GET_POLICE_DESCRIPTION(POLICE_TYPE)%에게 %NAME:slaveIndex1%의 몸으로 어떠냐고 물어봤다.
		IF IS_POLICE_SATISFIED(POLICE_TYPE,POLICE_PREFERENCE,slaveIndex1,-1)
			PRINTFORMW 경찰은 잠시 생각하더니 야비한 웃음과 함께 고개를 끄덕여 주었다.
			PRINTFORMW 그렇게 됐으니 즉시 %조사처리(CALLNAME:slaveIndex1, "를")% 호출하자....
		ELSE
			slaveIndex2 = GET_RULED_SINGLE_CHARA("index != MASTER && index != " + TOSTR(slaveIndex1) + " && IS_FALLEN(index) && !TALENT:index:교제 && IS_UNCONTACTABLE(index) && IS_POLICE_SATISFIED(" + TOSTR(POLICE_TYPE) + "," + TOSTR(POLICE_PREFERENCE) + "," + TOSTR(slaveIndex1) + ",index)")
			IF slaveIndex2 > 0
				PRINTFORMW 경관은 잠시 생각한 후 %CALLNAME:slaveIndex2%도 있다면 눈감아주겠다、고 대답했다.
				PRINTFORMW 등과 배는 바꿀 수 없다. 두 사람을 불러내자...
			ELSE
				PRINTFORMW 경찰은 잠시 생각한 뒤 아니、역시 이 이야기는 없었던 것으로 하자,고 말했다.
				PRINTFORMW 갑작스러운 변심에 항의할 틈도 없이、%CALLNAME:MASTER%의 팔에 수갑이 채워졌다...
				PRINTL
				PRINTFORMW ―%CALLNAME:MASTER%은 체포되었습니다―
				PRINTFORMW ―GameOver―
				QUIT
			ENDIF
		ENDIF
		PRINTL
		PRINTFORML %CALLNAME:slaveIndex1%\@ slaveIndex2 > 0 ? 들 # \@은 그리 텀을 두지 않고 모습을 보였다.
		PRINTFORMW 경관과 %마스터호칭이% 자신\@ slaveIndex2 > 0 ? 들 # \@을 보는 호색적인 시선에、바로 사정을 헤아린 것 같다.
		SELECTCASE 1
			CASE TALENT:slaveIndex1:음란 || TALENT:slaveIndex1:창녀 || TALENT:slaveIndex1:동화 || TALENT:slaveIndex1:모판
				PRINTFORMW 낯선 타인에게 범해진다는 상황에 흥분했는지 부랴부랴 옷을 벗기 시작했다
			CASE TALENT:slaveIndex1:복종
				PRINTFORMW 울컥한 눈으로 %CALLNAME:MASTER%에게 용서를 구하지만 %마스터호칭이% 고개를 흔들자 절망을 드러내며 고개를 푹 숙였다.
			CASE TALENT:slaveIndex1:예속
				PRINTFORMW 확인하듯 %CALLNAME:MASTER%를 보기에 %CALLNAME:slaveIndex1%에게 다시 명령하자、옷을 벗기 시작했다.
			CASEELSE
				;来ないはずだが一応
				PRINTFORMW 무심코 도망가려는 % CALLNAME:slaveIndex1%를 억지로 끌고와 강제로 옷을 벗기기 시작했다.
		ENDSELECT
		PRINTL
		PRINTFORMW -입막음료로써 %CALLNAME:slaveIndex1%\@ slaveIndex2 > 0 ? 들 # \@의 몸을 사용하게 했습니다-
		SETBIT CFLAG:ARG:1014,3
		T_SOLVE = 3
		CFLAG:ARG:1011 = DAY + 5 ;しばらく様子を見るため8日間判定しない
	ELSEIF RESULT == 10
		IF T_TARGET == 2
			PRINTFORML 하지만 %마스터호칭은% 남자를 입다물게 할만한 것을 준비할 수 없었다.
			PRINTFORML 남자의 표정이 차갑게 변해 경찰에 전화를 걸기 시작한다.
			PRINTFORML 신고된 %CALLNAME:MASTER%의 팔에 수갑이 채워질 때까지 긴 시간은 걸리지 않았다……
		ELSEIF T_TARGET == 3
			PRINTFORML 하지만 %마스터호칭은% 남자를 입다물게 할만한 것을 준비할 수 없었다.
			PRINTFORML 남자의 표정이 선글라스 너머로도 알 만큼 차갑게 변해 %CALLNAME:MASTER%에게로 가까워져 온다.
			PRINTFORML 다음 순간 %CALLNAME:MASTER%의 의식은 사라지고 두 번 다시 눈을 뜨는 일은……
		ELSE
			PRINTFORML 하지만 %마스터호칭은% 경찰이 만족할 만큼 뇌물을 준비할 수 없었다.
			PRINTFORML 경찰의 표정이 차갑게 변하고 %CALLNAME:MASTER%의 팔에 차가운 고리가……
		ENDIF
		PRINTL
		PRINTFORML ―GameOver―
		QUIT
	ELSE
		GOTO INPUT_LOOP
	ENDIF

	;事務所の男
	IF T_TARGET == 2
		PRINTFORMW 소속한 사무소의 사람에게 배신당해 %CALLNAME:ARG%의 스트레스가 증가했다
	;黒服
	ELSEIF T_TARGET == 3
		PRINTFORMW 자신의 집안을 시중드는 사람에게 배신당해 %CALLNAME:ARG%의 스트레스가 증가했다
	;警官
	ELSEIF T_TARGET == 1
		PRINTFORMW 의지하고 있던 경찰에게 배신당해 %CALLNAME:ARG%의 스트레스가 증가했다
	ENDIF

	;裏切られたことでストレス増加
	IF FLAG:4 == 1
		STRESS_UP += 10
	ELSEIF FLAG:4 == 2
		STRESS_UP += 15
	ELSE
		STRESS_UP += 20
	ENDIF
	;蓄積値をリセット
	CFLAG:ARG:1115 = 0

;		;裏切られ済みで体で解決するとストレスがさらに増加
;		;事務所の男に裏切られ済み
;		SIF GETBIT(CFLAG:ARG:1014,13)
;			STRESS_UP += 10
;		;黒服に裏切られ済み
;		SIF  GETBIT(CFLAG:ARG:1014,23)
;			STRESS_UP += 10
;		;警官に裏切られ済み
;		SIF  GETBIT(CFLAG:ARG:1014,3)
;			STRESS_UP += 10

	;体で解決してる
	IF T_SOLVE == 3
		IF slaveIndex1 == -1
			CALL POLICE_GIRL_PLAYED(ARG,STRESS_UP)
			CALL CHECK_MINDBREAK_DIVORCED(ARG,ARG,T_NAME,1)
		ELSE
			CALL POLICE_GIRL_PLAYED(slaveIndex1,STRESS_UP)
			CALL CHECK_MINDBREAK_DIVORCED(slaveIndex1,ARG,T_NAME)
			IF slaveIndex2 > 0
				CALL POLICE_GIRL_PLAYED(slaveIndex2,STRESS_UP)
				CALL CHECK_MINDBREAK_DIVORCED(slaveIndex2,ARG,T_NAME)
			ENDIF
			CALL ADD_STRESS_DIVORCED(ARG,5)
			CALL CHECK_MINDBREAK_DIVORCED(ARG,ARG,T_NAME,0)
		ENDIF
	ELSE
		CALL ADD_STRESS_DIVORCED(ARG,STRESS_UP)
		CALL CHECK_MINDBREAK_DIVORCED(ARG,ARG,T_NAME,0)
	ENDIF

	DRAWLINE
	POLICE_UNHUSH_PER ++
ENDIF

@ESCAPE_POLICE,ARG
;警察駆け込み蓄積値の設定
;CFLAG:1115が100超えると警察へ
;스트레스치の影響
;ストレスの1/10が毎日加算
CFLAG:ARG:1115 += CFLAG:ARG:10 / 10
;부정の株の1/1000が毎日加算
CFLAG:ARG:1115 += JUEL:ARG:100 / 1000
;반발각인に応じた数値が毎日加算 반발3 = 15 반발2 = 10 반발1 =5
SIF MARK:ARG:3 == 3
	CFLAG:ARG:1115 += 15
SIF MARK:ARG:3 == 2
	CFLAG:ARG:1115 += 10
SIF MARK:ARG:3 == 1
	CFLAG:ARG:1115 += 5

IF TALENT:ARG:음란
	CFLAG:ARG:1115 -= 5
ENDIF
IF TALENT:ARG:복종
	CFLAG:ARG:1115 -= 8
ENDIF
IF TALENT:ARG:창녀
	CFLAG:ARG:1115 -= 10
ENDIF
IF TALENT:ARG:예속
	CFLAG:ARG:1115 -= 15
ENDIF
IF TALENT:ARG:겁쟁이
	CFLAG:ARG:1115 -= 1
ENDIF
IF TALENT:ARG:기생 ;촉수系は思考制御されるから。
	CFLAG:ARG:1115 -= 3
ENDIF
IF TALENT:ARG:동화
	CFLAG:ARG:1115 -= -10
ENDIF
IF TALENT:ARG:모판
	CFLAG:ARG:1115 -= -20
ENDIF
IF TALENT:ARG:반항적
	CFLAG:ARG:1115 += 1
ENDIF
IF TALENT:ARG:꿋꿋함
	CFLAG:ARG:1115 += 2
ENDIF
IF TALENT:ARG:얌전함
	CFLAG:ARG:1115 -= 1
ENDIF
IF TALENT:ARG:프라이드높음
	CFLAG:ARG:1115 += 1
ENDIF
IF TALENT:ARG:감정풍부
	CFLAG:ARG:1115 += 1
ENDIF
IF TALENT:ARG:감정부족
	CFLAG:ARG:1115 -= 2
ENDIF
IF TALENT:ARG:건방짐
	CFLAG:ARG:1115 += 1
ENDIF
IF TALENT:ARG:프라이드낮음
	CFLAG:ARG:1115 -= 1
ENDIF
IF TALENT:ARG:비관적
	CFLAG:ARG:1115 -= 1
ENDIF
IF TALENT:ARG:정조관념
	CFLAG:ARG:1115 += 1
ENDIF
IF TALENT:ARG:정조무관심
	CFLAG:ARG:1115 -= 1
ENDIF
IF TALENT:ARG:저항
	CFLAG:ARG:1115 += 2
ENDIF
IF TALENT:ARG:부끄럼쟁이
	CFLAG:ARG:1115 -= 1
ENDIF
IF TALENT:ARG:수치심없음
	CFLAG:ARG:1115 += 1
ENDIF
IF TALENT:ARG:협박
	CFLAG:ARG:1115 += 1
ENDIF
IF TALENT:ARG:사교적
	CFLAG:ARG:1115 += 1
ENDIF
IF TALENT:ARG:내향적
	CFLAG:ARG:1115 -= 1
ENDIF
IF TALENT:ARG:고결
	CFLAG:ARG:1115 += 2
ENDIF
IF TALENT:ARG:성악
	CFLAG:ARG:1115 -= 2
ENDIF
IF TALENT:ARG:굴복
	CFLAG:ARG:1115 -= 1
ENDIF
SIF TALENT:ARG:약점
	CFLAG:ARG:1115 -= 3
SIF TALENT:ARG:좋아하는사람있음 || TALENT:ARG:남친있음 ;彼氏などにバレるのを두려움て思いとどまる
	CFLAG:ARG:1115 -= 1
SIF TALENT:ARG:남편있음 ;夫にバレるのを두려움て思いとどまる
	CFLAG:ARG:1115 -= 2

;事前に奴隷を撮影したビデオがある
IF CFLAG:ARG:20 != 0
	CFLAG:ARG:1115 -= 2
ENDIF
;레이프소망は望んでいた状況なのでよほどでなければ状況を変えようとしない
IF TALENT:ARG:레이프소망
	CFLAG:ARG:1115 -= 10
ENDIF

;순종に応じてマイナス
IF ABL:ARG:0 == 1
	CFLAG:ARG:1115 -= 1
ELSEIF ABL:ARG:0 == 2
	CFLAG:ARG:1115 -= 2
ELSEIF ABL:ARG:0 == 3
	CFLAG:ARG:1115 -= 6
ELSEIF ABL:ARG:0 == 4
	CFLAG:ARG:1115 -= 15
ELSEIF ABL:ARG:0 >= 5
	CFLAG:ARG:1115 = 0
ENDIF

;교제と붕괴は絶対に駆け込まない
IF TALENT:ARG:교제
	CFLAG:ARG:1115 = 0
ENDIF
IF TALENT:ARG:붕괴
	CFLAG:ARG:1115 = 0
ENDIF
;警察はロボットの依頼など受けない
IF TALENT:ARG:로봇소녀
	CFLAG:ARG:1115 = 0
ENDIF
;人外は人間などあてにしない
IF TALENT:ARG:흡혈귀 || TALENT:ARG:요마
	CFLAG:ARG:1115 = 0
ENDIF

;연예인は事務所の男に裏切られていなければまずそこへ
IF CFLAG:ARG:1115  > 100 && TALENT:ARG:연예인 && GETBIT(CFLAG:ARG:1014,11) == 0 && GETBIT(CFLAG:ARG:1014,12) == 0 && GETBIT(CFLAG:ARG:1014,13) == 0
	CALL VISIT_POLICE,ARG
;영애か프린세스は黒服に裏切られていなければまずそこへ
ELSEIF CFLAG:ARG:1115  > 100 &&  (TALENT:ARG:영애 || TALENT:ARG:프린세스) && GETBIT(CFLAG:ARG:1014,21) == 0 &&  GETBIT(CFLAG:ARG:1014,22) == 0 &&  GETBIT(CFLAG:ARG:1014,23) == 0
	CALL VISIT_POLICE,ARG
;それ以外は警察へ
ELSEIF CFLAG:ARG:1115  > 100 && GETBIT(CFLAG:ARG:1014,1) == 0 && GETBIT(CFLAG:ARG:1014,2) == 0 && GETBIT(CFLAG:ARG:1014,3) == 0
	CALL VISIT_POLICE,ARG
;一度裏切られても蓄積値200で再度警察へ
ELSEIF CFLAG:ARG:1115  > 200
	CALL VISIT_POLICE,ARG
ENDIF

;警察のタイプ。誰かを抱かせる場合の満足度に影響する
;婦警の場合は抱かせる系のもみ消しが使えない(同性愛ならOK)。真面目だと賄賂を受けない
@GET_POLICE_TYPE(policeType,policePreference)
#DIM REF policeType   ;0bitが性別(1が婦警)、1bitが性別嗜好(1なら同性愛OK)、2bitが真面目(1なら真面目)、3bitが好みにうるさい(1なら好みの要求値が高い)
#DIM REF policePreference ;好みのパターン。0:청초、1:음란、2:쾌활、3:보이쉬、4:優しい、5:ロリコン、6:大人好き、7:꿋꿋함
policeType = 0
SIF RAND:10 < 2 ;婦警
	SETBIT policeType,0
SIF RAND:10 == 0 ;同性愛可
	SETBIT policeType,1
SIF RAND:20 < 5 ;賄賂不可
	SETBIT policeType,2
SIF RAND:10 < 3 ;好みにうるさい(抱かせて解決する場合の基準値上昇)
	SETBIT policeType,3

SIF !IS_POLICE_PREF_GIRL_PLAYABLE(policeType) ;抱かせて解決できない場合は以後の処理は不要
	RETURN
policePreference = GET_VALUE_FROM_RANGED_DATA(RAND:100,"10,0|25,1|35,2|40,3|65,4|70,5|90,6|*,7")
RETURN

@GET_POLICE_DESCRIPTION(policeType)
#FUNCTIONS
#DIM policeType
RETURNF \@ GETBIT(policeType,2) == 1 ? 真面目そうな # \@ + \@ GETBIT(policeType,0) == 1 ? 婦警 # 警官 \@

@GET_POLICE_PREFERENCE_TEXT(policePreference,pattern=0)
#FUNCTIONS
;好みのテキスト設定
#DIM policePreference
#DIM pattern = 0
#DIMS answer
SELECTCASE policePreference
	CASE 0
		answer '= "청초한 아이가 취향;솔직*4,겁쟁이*2,얌전함*5,프라이드낮음*2,감정부족*4,정조관념*5,부끄럼쟁이*4,청초*8,무기력*4"
	CASE 1
		answer '= "음란한 아이가 취향;음란*5,창녀*10,정욕*5,정조무관심*4,걸레녀*7,쾌감에솔직*6,영구발정*8,쾌활*5,색기*5"
	CASE 2
		answer '= "건강한 아이가 취향;감정풍부*5,사교적*4,성악*2,소악마*4,어린애같음*8,음험*4"
	CASE 3
		answer '= "보이쉬한 아이가 취향;보이쉬*10,빈유*5,쿨함*8,남장*8,성별위장*12"
	CASE 4
		answer '= "포용력 있는 아이가 취향;내향적*4,헌신적*6,모성*4,치유계*7,수수께끼의매력*20"
	CASE 5
		answer '= "로리콘 취미;작은체형*7,절벽*5,빈유*3,초등학생*20,중학생*10"
	CASE 6
		answer '= "어른의 매력이 취향;남편있음*2,미망인*2,기혼*2,모성*4,교사*5,사회인*4,주부*7,색기*6"
	CASE 7
		answer '= "강한 여자가 취향;반항적*5,꿋꿋함*5,프라이드높음*7,건방짐*4,츤데레*2,고결*3,천연*10,기가셈*5"
	CASEELSE
		THROW 부정한 preference : {policePreference}
ENDSELECT
RETURNF GET_BETWEEN_STRING(answer,";",pattern)

;警官の好みと奴隷をマッチングし、満足する場合は1
@IS_POLICE_SATISFIED(policeType,policePreference,targetSlave1,targetSlave2)
#FUNCTION
#DIM policeType
#DIM policePreference
#DIM targetSlave1
#DIM targetSlave2 ;これは-1の可能性あり
#DIM border
#DIM DYNAMIC satisfaction = 0
border = (FLAG:4 + POLICE_UNHUSH_PER / 2) * (GETBIT(policeType,3) + 1)
satisfaction += CALC_CHARA_SINGLE_DATA("TALENT",targetSlave1,GET_POLICE_PREFERENCE_TEXT(policePreference,1))
SIF targetSlave2 > 0
	satisfaction += CALC_CHARA_SINGLE_DATA("TALENT",targetSlave2,GET_POLICE_PREFERENCE_TEXT(policePreference,1))
RETURNF border < satisfaction

;賄賂の額を決定。難易度、治安の現在地(高いと上がる)、もみ消し可能性を考慮する
@GET_POLICE_REQUEST_MONEY()
#FUNCTION
RETURNF (FLAG:4 ^ 2 + (5 - FLAG:1015) + POLICE_UNHUSH_PER) * 10000

@IS_POLICE_PREF_GIRL_PLAYABLE(policeType)
#FUNCTION
#DIM policeType
RETURNF !GETBIT(policeType,0) || GETBIT(policeType,1)

@IS_POLICE_MONEY_SOLVABLE(policeType)
#FUNCTION
#DIM policeType
RETURNF !GETBIT(policeType,2)

@POLICE_GIRL_PLAYED(targetChara,stressAdd)
#DIM targetChara
#DIM stressAdd
;陥落済みの場合は스트레스치上書き。교제はそもそもここに来ないので考慮不要
SELECTCASE 1
	CASE TALENT:targetChara:음란 || TALENT:targetChara:창녀
		stressAdd = 0
	CASE TALENT:targetChara:동화 || TALENT:targetChara:모판
		stressAdd = 2
	CASE TALENT:targetChara:복종
		stressAdd = 5
	CASE TALENT:targetChara:예속
		stressAdd = 1
ENDSELECT
;体で解決だと更にストレス増加
stressAdd += IS_FALLEN(targetChara) ? 0 # 10

PRINTL
IF TALENT:targetChara:처녀
	PRINTFORML 처녀상실
	PRINTL
ENDIF
PRINTFORML 【%CALLNAME:targetChara%】
;経験の増加
PRINTFORML 펠라경험+2
EXP:targetChara:펠라경험 += 2
PRINTFORML Ｖ경험+2
EXP:targetChara:Ｖ경험 += 2
PRINTFORML 성교경험+2
EXP:targetChara:성교경험 += 2
PRINTFORML 질사경험+2
EXP:targetChara:질사경험 += 2
;Ｖ감각ある程度あるとイってしまう
IF ABL:targetChara:Ｖ감각 > 3
	PRINTFORML %CALLNAME:targetChara%의 절정경험+2
	EXP:targetChara:절정경험 += 2
ENDIF
PRINTFORML 정액경험+2
EXP:targetChara:정액경험 += 4
IF TALENT:targetChara:처녀
	PRINTL
	PRINTFORML 이상경험+1
	EXP:targetChara:이상경험 += 1
	TALENT:targetChara:처녀 = 0
	;처녀喪失でストレス増加
	stressAdd += 10
ENDIF
CALL ADD_STRESS_DIVORCED(targetChara,stressAdd)
;ARG以外の붕괴処理は汎用側に委譲する

@ADD_STRESS_DIVORCED(targetChara,stressAdd)
#DIM targetChara
#DIM stressAdd
PRINTL
PRINTFORML %CALLNAME:targetChara% ストレス+{stressAdd}
CFLAG:targetChara:10 += stressAdd

@CHECK_MINDBREAK_DIVORCED(targetChara,divorcedChara,betrayedCharaName,isFucked)
#DIM targetChara
#DIM divorcedChara
#DIMS betrayedCharaName
#DIM isFucked
;裏切られて【붕괴】
;스트레스치100以上で붕괴を得る
IF CFLAG:targetChara:10 >= 100 && !TALENT:targetChara:붕괴
	PRINTFORMW %CALLNAME:targetChara%의 모습이 이상하다
	IF targetChara == divorcedChara
		PRINTFORM %betrayedCharaName%에게 배신당했
		;体で解決してる
		SIF isFucked
			PRINTFORM 에게 범해졌
		CALL DIARY_SET,betrayedCharaName+"에게 배신당했" + \@ isFucked ? 에게 범해졌 # \@ + "던 일 때문에 "+NAME:targetChara+"의 정신이 무너져 버렸다。"
	ELSE
		PRINTFORM %CALLNAME:MASTER%의 명령으로、%betrayedCharaName%\@ isFucked ? 에게 원치않는 성상납을 했 # 에게 불행한 일을 당하게 했 \@
		CALL DIARY_SET,CALLNAME:MASTER + "의 명령으로、" + betrayedCharaName + \@ isFucked ? 에게 원치않는 성상납을 했 # 에게 불행한 일을 당하게 했 \@ + "던 일 때문에 "+NAME:targetChara+"의 정신이 무너져 버렸다。"
	ENDIF
	PRINTFORMW 던 일이 마지막 계기가 되어、정신에 이상이 생겨버린 것 같다
	PRINTFORMW %타겟캐릭은% 【붕괴】해 버렸다
	TALENT:targetChara:붕괴 = 1
ENDIF


code:
;オープニングの処理は完全に分離した上でフレームワーク化(ファイル名ENDINGでオープニングの処理があるってなんだよ)
;エンディングの処理は1文字変数を使わない前提でリファクタリング

;エンディングチェック
@ENDING_CHECK
#DIM index
#DIM index2
#DIM sp_opening_index
#DIM belongSchoolRangeStart
#DIM belongSchoolRangeEnd
#DIM DYNAMIC inschoolCount = 0
#DIM DYNAMIC inschoolFallenCount = 0
#DIM DYNAMIC totalSchoolCount = 0
#DIM DYNAMIC totalSchoolFallenCount = 0
#DIM targetNo
#DIMS endingPatternList,5
#DIM targetCharaList,5
#DIM targetNoList,5
#DIMS fallenInfoText,5
#DIMS extraInfoText,5
#DIMS historyText,SCENARIO_EVENT_GOODENDING_MAXINDEX
#DIM JISSEKI_PATTERN
#DIM ret

;学内キャラと学外キャラのカウント
belongSchoolRangeStart = (GET_CHARA_BELONG_SCHOOL_INDEX(MASTER) - 1) * 100 + 1
belongSchoolRangeEnd = belongSchoolRangeStart + 100 ;1学園につき上限100人固定。今後変動した場合は修正要

FOR targetNo,belongSchoolRangeStart, belongSchoolRangeEnd
	;남자は攻略の対象外
	IF EXISTCSV(targetNo) && !CSVTALENT(targetNo,GETNUM(TALENT,"남자")) && !CSVTALENT(targetNo,GETNUM(TALENT,"엔딩조건제외"))
		totalSchoolCount++
		SIF CSVCFLAG(targetNo,1001) == GET_CHARA_GO_SCHOOL_INDEX(MASTER)
			inschoolCount++
		index = GETCHARA(targetNo)
		SIF index == -1
			CONTINUE
		SIF IS_FALLEN(index) && !IS_UNCONTACTABLE(index)
			totalSchoolFallenCount++
		SIF IS_FALLEN(index) && !IS_UNCONTACTABLE(index) && CSVCFLAG(targetNo,1001) == GET_CHARA_GO_SCHOOL_INDEX(MASTER)
			inschoolFallenCount++
	ENDIF
NEXT

PRINTL 납금할 수단을 선택해주세요（엔딩 내용이 변합니다）
FOR index,1,SCENARIO_EVENT_GOODENDING_MAXINDEX + 1
	RESULT = 0
	TRYCALLFORM SCENARIO_EVENT_GOODENDING_IS_EXIST_{index}()
	SIF RESULT == 0
		CONTINUE
	sp_opening_index = FUNC_INDEX_CALL("SCENARIO_EVENT_GOODENDING_IS_SP_OPENING_PATTERN",index)
	SIF sp_opening_index != -1 && sp_opening_index != OPENING_PATTERN
		CONTINUE
	ret = INIT_LIST(targetCharaList)
	CALLFORM SCENARIO_EVENT_GOODENDING_ENDING_TARGETCHARAMAP_{index}(targetCharaList)
	;一旦クリア。エンディング番号と全体の枝番は後でつける
	historyText:index =
	ret = INIT_LIST(targetCharaList)
	ret = INIT_STR_LIST(endingPatternList,CHAR_ESC)
	ret = INIT_STR_LIST(fallenInfoText,CHAR_ESC)
	ret = INIT_STR_LIST(extraInfoText,CHAR_ESC)
	CALLFORM SCENARIO_EVENT_GOODENDING_ENDING_TARGETCHARAMAP_{index}(targetCharaList)
	FOR index2,0,VARSIZE("targetCharaList")
		SIF targetCharaList:index2 == -1
			BREAK
		endingPatternList:index2 = %FUNC_STR_INDEX_CALL_V("SCENARIO_EVENT_GOODENDING_ENDING_PATTERN",index,targetCharaList:index2)%
		fallenInfoText:index2 = %GET_CHARA_FALLEN_TEXT(targetCharaList:index2)%
		extraInfoText:index2 = %FUNC_STR_INDEX_CALL_VS("SCENARIO_EVENT_GOODENDING_ENDING_TARGETCHARA_EXTRAINFO",index,targetCharaList:index2,endingPatternList:index2)%
		historyText:index = %historyText:index%[{NO:(targetCharaList:index2)},%fallenInfoText:index2%,%endingPatternList:index2%,%extraInfoText:index2%]
	NEXT
	historyText:index = {index},%endingPatternList:0%,{GET_CHARA_GO_SCHOOL_INDEX(MASTER)},"%NAME:MASTER%","%CALLNAME:MASTER%"%historyText:index%
	RESULT = 0
	CALLFORM SCENARIO_EVENT_GOODENDING_IS_ENDING_SELECTABLE_{index}(inschoolCount,inschoolFallenCount,totalSchoolCount,totalSchoolFallenCount,targetCharaList,endingPatternList)
	SIF RESULT == 0
		CONTINUE
	PRINTFORML [{index,3}] - %FUNC_STR_INDEX_CALL_VVS("SCENARIO_EVENT_GOODENDING_SELECTION_TEXT",index,GET_CHARA_GO_SCHOOL_INDEX(MASTER),targetCharaList:0,endingPatternList:0)%
NEXT
PRINTL [999] 그만둔다

WHILE 1
	INPUT
	IF RESULT == 999
		RETURN 0
	ELSE
		index = RESULT
		RESULT = 0
		TRYCALLFORM SCENARIO_EVENT_GOODENDING_IS_EXIST_{index}()
		SIF RESULT == 0
			CONTINUE
		sp_opening_index = FUNC_INDEX_CALL("SCENARIO_EVENT_GOODENDING_IS_SP_OPENING_PATTERN",index)
		SIF sp_opening_index != -1 && sp_opening_index != OPENING_PATTERN
			CONTINUE

		RESULT = 0
		CALL GET_TARGETNOLIST_FROM_HISTORY(historyText:index,targetNoList)
		CALL FOR_EACH(targetNoList,"GETCHARA(value)",targetCharaList)
		CALL GET_ENDINGPATTERNLIST_FROM_HISTORY(historyText:index,endingPatternList)
		CALL GET_FALLENTEXT_FROM_HISTORY(historyText:index,fallenInfoText)
		CALL GET_EXTRAINFOLIST_FROM_HISTORY(historyText:index,extraInfoText)
		CALLFORM SCENARIO_EVENT_GOODENDING_IS_ENDING_SELECTABLE_{index}(inschoolCount,inschoolFallenCount,totalSchoolCount,totalSchoolFallenCount,targetCharaList,endingPatternList)
		SIF RESULT == 0
			CONTINUE

		MONEY -= MONEY:1
		CALL DIARY_SET, "대출을 상환하고 자유의 몸이 되었다。"
		JISSEKI_PATTERN = FUNC_INDEX_CALL("SCENARIO_EVENT_GOODENDING_SEIHA_PATTERN",index)
		SEIHA:GET_CHARA_GO_SCHOOL_INDEX(MASTER):JISSEKI_PATTERN = 1
		CALLFORM JISSEKI_GET_END{JISSEKI_PATTERN}
		DRAWLINE
		PRINTW ………………
		PRINTW …………
		PRINTW ……
		CALLFORM SCENARIO_EVENT_GOODENDING_ENDING_TEXT_{index}(GET_CHARA_GO_SCHOOL_INDEX(MASTER),targetNoList,endingPatternList,fallenInfoText,extraInfoText)
		PRINTFORMW 　　　　　　　　―― Ending No.{index}\@ endingPatternList:0 == CHAR_ESC ? # _%endingPatternList:0% \@ (%FUNC_STR_INDEX_CALL_VVS("SCENARIO_EVENT_GOODENDING_ENDING_NAME",index,GET_CHARA_GO_SCHOOL_INDEX(MASTER),targetNoList:0,endingPatternList:0)%)
		ret = STR_LIST_ADD(ENDING_HISTORY_DATA,historyText:index,,CHAR_ESC)
		BREAK
	ENDIF
WEND
CALL GAME_CONTINUE

@JISSEKI_GET_END0
LOCAL:0 = 0
REPEAT CHARANUM
	IF TALENT:COUNT:인계됨 == 0
		SIF IS_FALLEN(COUNT)
			LOCAL:0 += 1
		SIF IS_UPPER_FALLEN(COUNT)
			LOCAL:0 += 1
	ENDIF
REND
LOCAL:0 = LOCAL:0 * 20
LOCAL:0 += (344 - DAY)/2
SIF FLAG:4 == 1
	TIMES LOCAL:0 , 0.50
SIF FLAG:4 == 3
	TIMES LOCAL:0 , 2.00
SETCOLOR 0xFFFF00
PRINTFORMW 엔딩을 달성해 실적포인트를『{LOCAL:0}』얻었다。
JISSEKI_POINT += LOCAL:0
RESETCOLOR
PRINTW

@JISSEKI_GET_END1
LOCAL:0 = 0
LOCAL:1 = 0
REPEAT CHARANUM
	IF TALENT:COUNT:인계됨 == 0
		SIF IS_FALLEN(COUNT)
			LOCAL:0 += 1
		SIF IS_UPPER_FALLEN(COUNT)
			LOCAL:0 += 1
		SIF IS_FALLEN(COUNT)
			LOCAL:1 += 1
	ENDIF
REND
IF LOCAL:1 >= 50
	TIMES LOCAL:0 , 5.00
ELSEIF LOCAL:1 >= 30
	TIMES LOCAL:0 , 3.00
ELSEIF LOCAL:1 >= 20
	TIMES LOCAL:0 , 2.00
ELSEIF LOCAL:1 >= 10
	TIMES LOCAL:0 , 1.50
ELSEIF LOCAL:1 <= 5
	TIMES LOCAL:0 , 0.75
ENDIF
LOCAL:0 = LOCAL:0 * 50
LOCAL:0 += (344 - DAY)/2
SIF FLAG:4 == 1
	TIMES LOCAL:0 , 0.50
SIF FLAG:4 == 3
	TIMES LOCAL:0 , 2.00
SETCOLOR 0xFFFF00
PRINTFORMW 엔딩을 달성해 실적포인트를『{LOCAL:0}』얻었다。
JISSEKI_POINT += LOCAL:0
RESETCOLOR
PRINTW

@JISSEKI_GET_END2
LOCAL:0 = 0
LOCAL:1 = 0
REPEAT CHARANUM
	IF TALENT:COUNT:인계됨 == 0
		SIF IS_FALLEN(COUNT)
			LOCAL:0 += 1
		SIF IS_UPPER_FALLEN(COUNT)
			LOCAL:0 += 1
		SIF IS_FALLEN(COUNT)
			LOCAL:1 += 1
	ENDIF
REND
IF LOCAL:1 >= 50
	TIMES LOCAL:0 , 5.00
ELSEIF LOCAL:1 >= 30
	TIMES LOCAL:0 , 3.00
ELSEIF LOCAL:1 >= 20
	TIMES LOCAL:0 , 2.00
ELSEIF LOCAL:1 >= 10
	TIMES LOCAL:0 , 1.50
ELSEIF LOCAL:1 <= 5
	TIMES LOCAL:0 , 0.75
ENDIF
LOCAL:0 = LOCAL:0 * 70
LOCAL:0 += (344 - DAY)/2
SIF FLAG:4 == 1
	TIMES LOCAL:0 , 0.50
SIF FLAG:4 == 3
	TIMES LOCAL:0 , 2.00
LOCAL:0 += LOCAL:0 * COUNT_RULED_CHARAS("IS_FALLEN(index) && TALENT:index:엔딩조건제외") / 10
LOCAL:0 += LOCAL:0 * COUNT_RULED_CHARAS("IS_UPPER_FALLEN(index) && TALENT:index:엔딩조건제외") / 10
SETCOLOR 0xFFFF00
PRINTFORMW 엔딩을 달성해 실적포인트를『{LOCAL:0}』얻었다。
JISSEKI_POINT += LOCAL:0
RESETCOLOR
PRINTW

@GAME_CONTINUE
;	入손実績表示
TRYCALLFORM GET_TROPHY

PRINTL 게임을 계속합니까？
PRINTC [0] 종료한다
PRINTC [1] 계속한다
PRINTL

$INPUT_LOOP
INPUT

IF RESULT == 0
	QUIT
ELSEIF RESULT == 1
	MONEY:1 = 0
	FLAG:2 += 1
	FLAG:3 += 1
	FLAG:5 = 9
	SIF FLAG:43 == 1
		FLAG:43 = 0
	;SIF FLAG:97 == 1
	;	FLAG:97 = 0
	CALL DIARY_SET,"------이번 주차를 종료하고 다음 주차로 이행합니다------"
ELSE
	GOTO INPUT_LOOP
ENDIF
RETURN 1

;周回処理
;条件を満たすことで可能
;クリア回数により、引き継げる奴隷の数が増える
@SUCCESSION
#DIM index
PRINTFORML {FLAG:2+1}주차를 개시합니까？
PRINTFORML [0] 네
PRINTFORML [1] 아니오
$INPUT_LOOP
INPUT
SIF RESULT < 0 || RESULT > 1
	GOTO INPUT_LOOP
SIF RESULT == 1
	RETURN 0

D = 0

D = HIKITUGI_NINZU

$SUCCESSION＿LOOP
OPENING_PATTERN = 0
PRINTFORML 함락완료된 노예를 앞으로 {D}명 인계할 수 있습니다.
PRINTFORML 누구를 인계합니까？
REPEAT CHARANUM
	SIF COUNT == MASTER
		CONTINUE
;2段階陥落してないと인계됨不可
	SIF !IS_UPPER_FALLEN(COUNT) || CFLAG:COUNT:50 != 0
		CONTINUE
	SIF TALENT:COUNT:정화
		CONTINUE
	SIF IS_UNCONTACTABLE(COUNT)
		CONTINUE
	PRINTFORM [{COUNT}]
	SIF COUNT < 10
		PRINT
	SIF COUNT < 100
		PRINT
	PRINTFORML %CALLNAME:COUNT%
REND
PRINTL [10000] 인계하지 않는다
INPUT
SIF RESULT == 10000
	D = 0
IF D > 0
	SIF RESULT < 0 || RESULT > CHARANUM
		GOTO SUCCESSION＿LOOP
ENDIF

A = RESULT
SIF D > 0
	CALL SUCCESSION_CHARA(A)
D -= 1
SIF D > 0
	GOTO SUCCESSION＿LOOP

C = CHARANUM
FOR D,C - 1,0,-1
	PRINTFORML {CHARANUM}:{D}
	IF D == MASTER
		PRINTFORML 주인공:%NAME:D%
		CONTINUE
	ELSEIF CFLAG:D:50 == 2
		PRINTFORML 인계:%NAME:D%
		CFLAG:D:50 = 0
		CONTINUE
	ENDIF
	PRINTFORML 삭제:%NAME:D%
	DELCHARA D
NEXT

;20120628 인계됨キャラの知りあいチェック
;引き継いだキャラの知り合いの情報をもったまま引き継ぐ処理
;REPEAT CHARANUM
;	;主人と奴隷と労役中のキャラは排除
;	SIF COUNT == MASTER
;		CONTINUE
;	CALL SEARCH_FRIEND,COUNT,2
;REND

VARSET DIARY
VARSET DIARY_COUNT,0
NOW_DIARY_PAGE = 0
REPEAT VARSIZE("FLAG")
	SIF COUNT == 2 || COUNT == 3
		CONTINUE
	;	実績引継ぎ処理
TRYCCALLFORM TROPHY_ENABLE
	SIF COUNT >= 1600 && COUNT <= 1699
		CONTINUE
CATCH
ENDCATCH
	SIF GROUPMATCH(COUNT,6,7,92,93,95,96,97,98,99,150,151,152,160,161,11000) > 0
		CONTINUE
	SIF INRANGE(COUNT,11001,110010)
		CONTINUE
	FLAG:COUNT = 0
REND

REPEAT VARSIZE("ITEM")
	ITEM:COUNT = 0
REND

REPEAT VARSIZE("PBAND")
	PBAND:COUNT = 0
REND

TARGET = -1
ASSI = -1

REPEAT 99
	ITEMSALES:COUNT = 1
REND
VARSET SCHOOL_FIRST_GOING_DAY,0
VARSET SCHOOL_EXTRA_FLAGS,0
VARSET CHARA_FIRST_FLAGS,0
VARSET CHARA_APPEAR_FLAGS,0
VARSET CHARA_WARNING_FLAGS,0
VARSET CHARA_EXTRA_FLAGS,0

CALL CHARA_PRICE

PBAND = 12
;FLAG:6 = 1
FLAG:30 = 0
;素質変動あり
;FLAG:92 = 1
;色変更あり
;FLAG:93 = 1
;能力アップ新方式
;FLAG:152 = 1
;売春メッセージ表示
;FLAG:161 = 1
;能力自動上昇ボタンON
;FLAG:143 = 1
;FLAG:99 = 8
;周回処理　フラグリセット
FLAG:94 = 0
DAY = 1
TIME = 0
MONEY = 3000
MONEY:1 = 1000000
VARSET MONEY,0,2
;周回によるマイナスの停止　2017/01/06
;LOCAL = MONEY:1 / 20
;LOCAL *= FLAG:2
REPEAT CHARANUM
	SIF COUNT == MASTER
		CONTINUE
	LOCAL += 100000
REND
SIF LOCAL >= 500000
	LOCAL = 500000
MONEY:1 += LOCAL
IF TALENT:MASTER:체육부
	TALENT:MASTER:체육부 = 0
	ABL:MASTER:운동능력 -= 1
ELSEIF TALENT:MASTER:문화부
	TALENT:MASTER:문화부 = 0
	ABL:MASTER:감성 -= 1
ELSEIF TALENT:MASTER:격투기부
	TALENT:MASTER:격투기부 = 0
	ABL:MASTER:전투능력 -= 1
ELSEIF TALENT:MASTER:위원회
	TALENT:MASTER:위원회 = 0
	ABL:MASTER:학력 -= 1
ELSE
	TALENT:MASTER:귀가부 = 0
ENDIF
;売春客生成
CALL PROSTITUTION_CUSTOMER_MAKE,1,199

FLAG:1100 = 0
FLAG:2000 = 0

;モード選択
PRINTL ★★모드를 선택해 주세요★★
PRINTL [0]START （1년 기한）
PRINTL [9]EXTRA （기한 없음 엔들리스）

$INPUT_LOOP_3
INPUT
IF RESULT == 0
	FLAG:5 = 0
ELSEIF RESULT == 9
	FLAG:5 = 9
ELSE
	GOTO INPUT_LOOP_3
ENDIF

;難易度選択
PRINTL ★★난이도를 선택해 주세요★★
PRINTL [0]EASY
PRINTL [1]NORMAL
PRINTL [2]HARD

$INPUT_LOOP_2
INPUT
IF RESULT >= 0 && RESULT <= 2
	FLAG:4 = RESULT + 1
ELSE
	GOTO INPUT_LOOP_2
ENDIF
;OP選択処理は一旦実装なし。
CALL NONINTERACIVE_OPENING

MONEY = 10000
SIF MONEY:1 == 0 ;借金がOPで設定されていないなら設定する
	MONEY:1 = 1000000
FOR index,2,VARSIZE("MONEY")
	MONEY:index = 0
NEXT
TIME = 0
CALL SELECT_FIRST_SCHOOL
MONEY:1 += MONEY:2
MONEY:2 = 0
CALL SCENARIO_EVENT,0
CALL EXTRA_DEBT

RETURN 0

@SUCCESSION_CHARA(選択キャラ)
#DIM 選択キャラ,1

ADDCHARA (NO:選択キャラ)

TARGET = CHARANUM -1
REPEAT VARSIZE("MAXBASE")
	MAXBASE:COUNT = MAXBASE:選択キャラ:COUNT
REND
REPEAT VARSIZE("ABL")
	ABL:COUNT = ABL:選択キャラ:COUNT
REND
REPEAT VARSIZE("EXP")
	EXP:COUNT = EXP:選択キャラ:COUNT
REND
REPEAT VARSIZE("MARK")
	MARK:COUNT = MARK:選択キャラ:COUNT
REND
REPEAT VARSIZE("RELATION")
	RELATION:COUNT = RELATION:選択キャラ:COUNT
REND
REPEAT VARSIZE("JUEL")
	JUEL:COUNT = JUEL:選択キャラ:COUNT
REND
REPEAT VARSIZE("CFLAG")
	SELECTCASE COUNT
		;스트레스치は引き継がない
		CASE 10,1012,1013,1014
			CONTINUE
		CASE 110
			CFLAG:110 = MAX(CFLAG:110 - DAY + 1,0)
		CASE 1101
			CFLAG:COUNT = -1
		CASEELSE
			CFLAG:COUNT = CFLAG:選択キャラ:COUNT
	ENDSELECT
REND
REPEAT VARSIZE("TALENT")
	TALENT:COUNT = TALENT:選択キャラ:COUNT
REND
REPEAT VARSIZE("CSTR")
	CSTR:COUNT = %CSTR:選択キャラ:COUNT%
REND

TALENT:인계됨 = 1

CFLAG:50 = 2
CFLAG:選択キャラ:50 = 1

;各バッドエンドごとに条件を満たすか判定し、プライオリティが最も高く、かつインデックスが最も若いものを呼び出す
@BADEND_CHECK()
#DIM DYNAMIC badendIndex = -1
#DIM DYNAMIC lastPriority = -1
#DIM currentPriority
#DIM index
#DIM index2
#DIM sp_opening_index
#DIM targetCharaList,5
#DIM targetNoList,5
#DIMS endingPatternList,5
#DIMS fallenInfoText,5
#DIMS extraInfoText,5
#DIM ret
#DIMS currentHistoryText
#DIMS newHistoryText
FOR index,1,SCENARIO_EVENT_BADENDING_MAXINDEX + 1
	RESULT = 0
	TRYCALLFORM SCENARIO_EVENT_BADENDING_IS_EXIST_{index}()
	SIF RESULT == 0
		CONTINUE
	sp_opening_index = FUNC_INDEX_CALL("SCENARIO_EVENT_BADENDING_IS_SP_OPENING_PATTERN",index)
	SIF sp_opening_index != -1 && sp_opening_index != OPENING_PATTERN
		CONTINUE
	newHistoryText =
	ret = INIT_LIST(targetCharaList)
	ret = INIT_STR_LIST(endingPatternList,CHAR_ESC)
	ret = INIT_STR_LIST(fallenInfoText,CHAR_ESC)
	ret = INIT_STR_LIST(extraInfoText,CHAR_ESC)
	CALLFORM SCENARIO_EVENT_BADENDING_ENDING_TARGETCHARAMAP_{index}(targetCharaList)
	FOR index2,0,VARSIZE("targetCharaList")
		SIF targetCharaList:index2 == -1
			BREAK
		endingPatternList:index2 = %FUNC_STR_INDEX_CALL_V("SCENARIO_EVENT_BADENDING_ENDING_PATTERN",index,targetCharaList:0)%
		fallenInfoText:index2 = %GET_CHARA_FALLEN_TEXT(targetCharaList:index2)%
		extraInfoText:index2 = %FUNC_STR_INDEX_CALL_VS("SCENARIO_EVENT_BADENDING_ENDING_TARGETCHARA_EXTRAINFO",index,targetCharaList:index2,endingPatternList:index2)%
		newHistoryText = %newHistoryText%[{NO:(targetCharaList:index2)},%fallenInfoText:index2%,%endingPatternList:index2%,%extraInfoText:index2%]
	NEXT
	newHistoryText = -{badEndIndex},%endingPatternList:0%,{GET_CHARA_GO_SCHOOL_INDEX(MASTER)},"%NAME:MASTER%","%CALLNAME:MASTER%"%newHistoryText%
	RESULT = 0
	CALLFORM SCENARIO_EVENT_BADENDING_IS_ENDING_EXECUTE_{index}(targetCharaList,endingPatternList)
	SIF RESULT == 0
		CONTINUE
	currentPriority = FUNC_INDEX_CALL("SCENARIO_EVENT_BADENDING_ENDING_PRIOROITY",index)
	IF lastPriority < currentPriority
		lastPriority = currentPriority
		badendIndex = index
		currentHistoryText = %newHistoryText%
	ENDIF
NEXT
SIF badEndIndex == -1
	RETURN
CALL GET_TARGETNOLIST_FROM_HISTORY(currentHistoryText,targetNoList)
CALL FOR_EACH(targetNoList,"GETCHARA(value)",targetCharaList)
CALL GET_ENDINGPATTERNLIST_FROM_HISTORY(currentHistoryText,endingPatternList)
CALL GET_FALLENTEXT_FROM_HISTORY(currentHistoryText,fallenInfoText)
CALL GET_EXTRAINFOLIST_FROM_HISTORY(currentHistoryText,extraInfoText)
DRAWLINE
PRINTFORMW 　　　　　　　　　　　　　　―――%FUNC_STR_INDEX_CALL_VS("SCENARIO_EVENT_BADENDING_ENDING_FIRSTTRAPPED",badendIndex,targetNoList:0,endingPatternList:0)%―――
PRINTW ………………
PRINTW …………
PRINTW ……
CALLFORM SCENARIO_EVENT_BADENDING_ENDING_TEXT_{badendIndex}(GET_CHARA_GO_SCHOOL_INDEX(MASTER),targetNoList,endingPatternList,fallenInfoText,extraInfoText)
PRINTL
PRINTFORMW 　　　　　　　　―― Bad Ending No.{badendIndex}\@ endingPatternList:0==CHAR_ESC ? # _%endingPatternList:0% \@ (%FUNC_STR_INDEX_CALL_VVS("SCENARIO_EVENT_BADENDING_ENDING_NAME",badendIndex,GET_CHARA_GO_SCHOOL_INDEX(MASTER),targetNoList:0,endingPatternList:0)%)
PRINTL
PRINTL
PRINTW ――――――――――――――――――GAMEOVER――――――――――――――――――
QUIT

@IS_ENDING_SELECT_OK()
#FUNCTION
RETURNF FUNC_INDEX_CALL("SCENARIO_EVENT_OPENING_ENDING_CHECK", OPENING_PATTERN)

@GET_TARGETNOLIST_FROM_HISTORY(historyText,targetCharaList)
#DIMS historyText
#DIM REF targetCharaList
#DIMS charaInfoList,5
#DIM index
#DIM ret
CALL GET_CHARAINFO_FROM_HISTORY(historyText,charaInfoList,0)
FOR index,0,GET_STR_LIST_LAST_ELEMENT(charaInfoList,CHAR_ESC) + 1
	targetCharaList:index = TOINT(charaInfoList:index)
NEXT
RETURN

@GET_FALLENTEXT_FROM_HISTORY(historyText,fallenTextList)
#DIMS historyText
#DIMS REF fallenTextList
#DIM ret
CALL GET_CHARAINFO_FROM_HISTORY(historyText,fallenTextList,1)
RETURN

@GET_ENDINGPATTERNLIST_FROM_HISTORY(historyText,endingPatternList)
#DIMS historyText
#DIMS REF endingPatternList
#DIM ret
CALL GET_CHARAINFO_FROM_HISTORY(historyText,endingPatternList,2)
RETURN

@GET_EXTRAINFOLIST_FROM_HISTORY(historyText,extraInfoList)
#DIMS historyText
#DIMS REF extraInfoList
#DIM ret
CALL GET_CHARAINFO_FROM_HISTORY(historyText,extraInfoList,3)
RETURN

@GET_CHARAINFO_FROM_HISTORY(historyText,charaInfoList,offset)
#DIMS historyText
#DIM DYNAMIC searchPosition = 0
#DIMS REF charaInfoList
#DIM offset
#DIM ret
ret = INIT_STR_LIST(charaInfoList,CHAR_ESC)
WHILE 1
	searchPosition = STRFIND(historyText,"[",searchPosition)
	SIF searchPosition < 0
		BREAK
	ret = STR_LIST_ADD(charaInfoList,GET_BETWEEN_STRING(SUBSTRING(historyText,searchPosition + 1,STRFIND(historyText,"]",searchPosition) - searchPosition - 1),",",offset),,CHAR_ESC)
	searchPosition++
WEND
RETURN


code:
;흡정処理
@ENERGY_ABSORPTION_IN
#FUNCTION
#DIM W_1

W_1 = 0

SIF TALENT:흡정 == 0
	RETURNF 0

;콘돔射精
SIF TEQUIP:PLAYER:35 == 1
	RETURNF 0

;大量射精
IF E == 2
	W_1 = 100
;通常の射精
ELSEIF E == 1
	W_1 = 50
;その他
ELSE
	W_1 = 20
ENDIF

;입で射精
IF TFLAG:0
	IF ABL:기교 == 0
		TIMES W_1 , 0.20
	ELSEIF ABL:기교 == 1
		TIMES W_1 , 0.40
	ELSEIF ABL:기교 == 2
		TIMES W_1 , 0.60
	ELSEIF ABL:기교 == 3
		TIMES W_1 , 0.80
	ELSEIF ABL:기교 == 4
		TIMES W_1 , 1.00
	ELSEIF ABL:기교 == 5
		TIMES W_1 , 1.20
	ELSEIF ABL:기교 == 6
		TIMES W_1 , 1.40
	ELSEIF ABL:기교 == 7
		TIMES W_1 , 1.60
	ELSEIF ABL:기교 == 8
		TIMES W_1 , 1.80
	ELSEIF ABL:기교 == 9
		TIMES W_1 , 2.00
	ELSE
		TIMES W_1 , 3.00
	ENDIF
;セックスで射精
ELSEIF TFLAG:2
	;질내射精
	IF TFLAG:703 == 1
		IF ABL:Ｖ감각 == 0
			TIMES W_1 , 0.20
		ELSEIF ABL:Ｖ감각 == 1
			TIMES W_1 , 0.40
		ELSEIF ABL:Ｖ감각 == 2
			TIMES W_1 , 0.60
		ELSEIF ABL:Ｖ감각 == 3
			TIMES W_1 , 0.80
		ELSEIF ABL:Ｖ감각 == 4
			TIMES W_1 , 1.00
		ELSEIF ABL:Ｖ감각 == 5
			TIMES W_1 , 1.20
		ELSEIF ABL:Ｖ감각 == 6
			TIMES W_1 , 1.40
		ELSEIF ABL:Ｖ감각 == 7
			TIMES W_1 , 1.60
		ELSEIF ABL:Ｖ감각 == 8
			TIMES W_1 , 1.80
		ELSEIF ABL:Ｖ감각 == 9
			TIMES W_1 , 2.00
		ELSE
			TIMES W_1 , 3.00
		ENDIF
	;애널射精
	ELSEIF TFLAG:703 == 2
		IF ABL:Ａ감각 == 0
			TIMES W_1 , 0.20
		ELSEIF ABL:Ａ감각 == 1
			TIMES W_1 , 0.40
		ELSEIF ABL:Ａ감각 == 2
			TIMES W_1 , 0.60
		ELSEIF ABL:Ａ감각 == 3
			TIMES W_1 , 0.80
		ELSEIF ABL:Ａ감각 == 4
			TIMES W_1 , 1.00
		ELSEIF ABL:Ａ감각 == 5
			TIMES W_1 , 1.20
		ELSEIF ABL:Ａ감각 == 6
			TIMES W_1 , 1.40
		ELSEIF ABL:Ａ감각 == 7
			TIMES W_1 , 1.60
		ELSEIF ABL:Ａ감각 == 8
			TIMES W_1 , 1.80
		ELSEIF ABL:Ａ감각 == 9
			TIMES W_1 , 2.00
		ELSE
			TIMES W_1 , 3.00
		ENDIF
	ENDIF
ELSE
	;上位陥落
	IF TALENT:6 || TALENT:7 || TALENT:8
		TIMES W_1 , 0.80
	;下位陥落
	ELSEIF TALENT:3 || TALENT:4 || TALENT:5
		TIMES W_1 , 0.50
	ELSE
		TIMES W_1 , 0.20
	ENDIF
ENDIF

;정액중독
IF ABL:정액중독 == 1
	TIMES W_1 , 1.10
ELSEIF ABL:정액중독 == 2
	TIMES W_1 , 1.20
ELSEIF ABL:정액중독 ==3
	TIMES W_1 , 1.30
ELSEIF ABL:정액중독 ==4
	TIMES W_1 , 1.50
ELSEIF ABL:정액중독 ==5
	TIMES W_1 , 1.60
ELSEIF ABL:정액중독 ==6
	TIMES W_1 , 1.60
ELSEIF ABL:정액중독 ==7
	TIMES W_1 , 1.80
ELSEIF ABL:정액중독 ==8
	TIMES W_1 , 1.90
ELSEIF ABL:정액중독 ==9
	TIMES W_1 , 2.00
ELSEIF ABL:정액중독 > 9
	TIMES W_1 , 3.00
ENDIF

;難易度 EASY
IF FLAG:4 == 1
	TIMES W_1 , 1.50
;難易度 NORMAL
ELSEIF FLAG:4 == 2
	TIMES W_1 , 1.00
;難易度 HARD
ELSE
	TIMES W_1 , 0.70
ENDIF

RETURNF W_1

;흡정による回復
@ENAGY_ABSORPTION_OUT, ARG
SIF TALENT:흡정 == 0
	RETURN 0

IF BASE:0 < MAXBASE:0
	DRAWLINE
	IF BASE:0 + ARG > MAXBASE:0
		BASE:0 += MAXBASE:0
		PRINTFORML 【흡정】의 효과 덕분에 %CALLNAME%의 체력이 {(BASE:0 + ARG) - MAXBASE:0} 회복했다
	ELSE
		BASE:0 += ARG
		PRINTFORML 【흡정】의 효과 덕분에 %CALLNAME%의 체력이 {ARG} 회복했다
	ENDIF
ENDIF


code:
@CHECK_LIKES, ARG, ARG:1, ARG:2
;好感度判定　ARGで与えられたキャラの好感度を最大ARG:1の乱数が下回れば成功と見なす
LOCAL = ARG:1
IF RAND:LOCAL + ARG:2 < CFLAG:ARG:1010
	RETURN 1
ELSE
	RETURN 2
ENDIF

@CHECK_KANSIN, ARG
#DIM backupVar,2
;関心の確認 1:勉強　2:課外活動　3:遊戯
;LOCAL = RAND:10
;IF ABL:ARG:30 > LOCAL
;勉強
;	RETURN 1
;ELSE
;	LOCAL -= ABL:ARG:30
;	IF ABL:ARG:31 > LOCAL
;		RETURN 2
;	ELSE
;		RETURN 3
;	ENDIF
;ENDIF
;各関心
LOCAL:1 = ABL:ARG:30
LOCAL:2 = ABL:ARG:31
LOCAL:3 = ABL:ARG:32

;ランダムな修正
IF RAND:3 == 2
	IF RAND:3 == 0
		LOCAL:1 += 1
		IF RAND:2 == 0
			LOCAL:2 -= 1
		ELSE
			LOCAL:3 -= 1
		ENDIF
	ELSEIF RAND:2 == 0
		LOCAL:2 += 1
		IF RAND:2 == 0
			LOCAL:1 -= 1
		ELSE
			LOCAL:3 -= 1
		ENDIF
	ELSE
		LOCAL:3 += 1
		IF RAND:2 == 0
			LOCAL:1 -= 1
		ELSE
			LOCAL:2 -= 1
		ENDIF
	ENDIF
ENDIF
backupVar:0 = A
backupVar:1 = B

;時期による修正
CALL GET_CALENDER
;試験が近い
IF (A == 6 && B > 24) || (A == 7 && B < 7) || (A == 11 && B > 24) || (A == 12 && B < 7) || (A == 2 && B > 15)
	LOCAL:1 += 2
	LOCAL:2 -= 1
	LOCAL:3 -= 1
ENDIF
A = backupVar:0
B = backupVar:1

;決定
SIF LOCAL:1 > LOCAL:2 && LOCAL:1 > LOCAL:3
	RETURN 1
SIF LOCAL:2 > LOCAL:1 && LOCAL:2 > LOCAL:3
	RETURN 2
SIF LOCAL:3 > LOCAL:2 && LOCAL:3 > LOCAL:1
	RETURN 3
IF LOCAL:1 == LOCAL:2 && LOCAL:1 == LOCAL:3
	LOCAL = RAND:3 + 1
	RETURN LOCAL
ELSEIF LOCAL:1 == LOCAL:2
	LOCAL = RAND:2 + 1
	RETURN LOCAL
ELSEIF LOCAL:2 == LOCAL:3
	LOCAL = RAND:2 + 2
	RETURN LOCAL
ELSE
	LOCAL = RAND:2 + 1
	SIF LOCAL == 2
		LOCAL = 3
	RETURN LOCAL
ENDIF

@CHECK_YN
PRINTFORML [0]YES
PRINTFORML [1]NO
$INPUT_LOOP
INPUT
IF RESULT == 0
	RETURN 0
ELSEIF RESULT == 1
	RETURN 1
ELSE
	GOTO INPUT_LOOP
ENDIF

@CHECK_TRI
$INPUT_LOOP
INPUT
IF RESULT == 0
	RETURN 0
ELSEIF RESULT == 1
	RETURN 1
ELSEIF RESULT == 2
	RETURN 2
ELSE
	GOTO INPUT_LOOP
ENDIF