code:
@EXIST_FreeAct8
#LOCALSIZE 1
#LOCALSSIZE 1

;オブジェクト本体
@FreeAct8(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
#DIM 경과시간
경과시간 = Activity_Duration:TARGET
SELECTCASE O_DATA
;自由行動に付き合うコマンドの名称
CASE "명칭"
	IF TALENT:ARG:음악지식 == 1
		CALLF MAKE_STR(V_NAME, "세션을 함께하기")
	ELSE
		CALLF MAKE_STR(V_NAME, "음악 반주하기")
	ENDIF
CASE "CHAIN"
;他キャラに連鎖しない場合コメントアウトすること
	CALLF MAKE_INT(V_NAME, 1)
CASE "경과시간"
;自由行動に付き合うコマンドでの경과시간
;0だと30分か残り時間すべての小さい方
	CALLF MAKE_INT(V_NAME, 0)
ENDSELECT

@자유행동내용_8(CHARA, ARGS, 시간계수, CHAIN)
#DIM CHARA
#DIM CHAIN
#DIM 현위치
#DIM 메시지표시
#DIM 시간계수
#DIM 경과시간
현위치 = CFLAG:CHARA:현재위치
메시지표시 = 현위치 == CFLAG:MASTER:현재위치 ? 1 # 0
SELECTCASE ARGS
	CASE "발생"
		;［음악지식］持ちのキャラが訓練できる場所にいる時
		SIF !TALENT:CHARA:음악지식
			RETURN 0
		SIF !전투훈련가능(현위치)
			RETURN 0
		SIF BASE:CHARA:기력 <= MAXBASE:CHARA:기력 / 2
			RETURN 0
		IF 메시지표시
			IF CHAIN
				SELECTCASE TALENT:CHAIN:음악지식
				CASE 1
					SELECTCASE TALENT:CHARA:음악지식
					CASE 1
						PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% %조사처리(CALLNAME:CHAIN,"과")%의 세션을 시작했다.
					CASE 2
						PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% %CALLNAME:CHAIN%의 연주에 맞춰 노래하기 시작했다.
					CASE 3
						PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% %CALLNAME:CHAIN%의 연주에 맞춰 춤추기 시작했다.
					ENDSELECT
				CASE 2
					SELECTCASE TALENT:CHARA:음악지식
					CASE 1
						PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% %CALLNAME:CHAIN%의 노래에 맞춰 연주하기 시작했다.
					CASE 2
						PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% %조사처리(CALLNAME:CHAIN,"과")%의 코러스를 시작했다.
					CASE 3
						PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% %CALLNAME:CHAIN%의 노래에 맞춰 춤추기 시작했다.
					ENDSELECT
				CASE 3
					SELECTCASE TALENT:CHARA:음악지식
					CASE 1
						PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% %CALLNAME:CHAIN%의 안무에 맞춰 연주를 시작했다.
					CASE 2
						PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% %CALLNAME:CHAIN%의 안무에 맞춰 노래하기 시작했다.
					CASE 3
						PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% %조사처리(CALLNAME:CHAIN,"과")% 같이 춤추기 시작했다.
					ENDSELECT
				ENDSELECT
			ELSE
				SELECTCASE TALENT:CHARA:음악지식
				CASE 1
					PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% 천천히 연주를 시작했다.
				CASE 2
					PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% 천천히 노래부르기 시작했다.
				CASE 3
					PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% 천천히 춤추기 시작했다.
				ENDSELECT
			ENDIF
		ENDIF
		RETURN 60 + RAND:30
	CASE "행동중"
		IF 메시지표시
			SELECTCASE TALENT:CHARA:음악지식
			CASE 1
				PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% 속시원하게 연주하고 있다.
			CASE 2
				PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% 마음대로 노래하고 있다.
			CASE 3
				PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% 화려하게 춤추고 있다.
			ENDSELECT
		ENDIF
	CASE "완료"
		SELECTCASE TALENT:CHARA:음악지식
		CASE 1
			EXP:CHARA:연주경험 += 1
			SIF 메시지표시
				PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% 연주를 마치고 한숨 돌렸다.
		CASE 2
			EXP:CHARA:가창경험 += 1
			SIF 메시지표시
				PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% 노래를 마치고 한숨 돌렸다.
		CASE 3
			EXP:CHARA:무도경험 += 1
			SIF 메시지표시
				PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% 안무를 마치고 한숨 돌렸다.
		ENDSELECT
	CASE "중단"
		SELECTCASE TALENT:CHARA:음악지식
		CASE 1
			EXP:CHARA:연주경험 += 1
		CASE 2
			EXP:CHARA:가창경험 += 1
		CASE 3
			EXP:CHARA:무도경험 += 1
		ENDSELECT
	CASE "같이한다"
		IF TFLAG:193 == -2
			SELECTCASE TALENT:TARGET:음악지식
			CASE 1
				PRINTFORML %마스터는% 쓸 수 있는 악기가 없어 %타겟의% 연주를 멍하니 들었다…
			CASE 2
				PRINTFORML %마스터는% 쓸 수 있는 악기가 없어 %타겟의% 노래를 멍하니 들었다…
			CASE 3
				PRINTFORML %마스터는% 쓸 수 있는 악기가 없어 %타겟의% 춤을 멍하니 보았다…
			ENDSELECT
		ELSE
			SELECTCASE TALENT:TARGET:음악지식
			CASE 1
				PRINTFORML %마스터는% %타겟과% 나란히 세션을 했다
				IF TFLAG:193 > 0
					PRINTFORML %타겟은% 리듬을 타며 연주하고 있다…
				ELSEIF TFLAG:193 < 0
					PRINTFORML %타겟은% 떨떠름한 표정을 짓고 있다…
				ELSE
					PRINTFORML %타겟은% 침착하게 연주하고 있다…
				ENDIF
			CASE 2
				PRINTFORML %마스터는% %타겟의% 노래에 맞추어 반주를 했다
				IF TFLAG:193 > 0
					PRINTFORML %타겟은% 리듬을 타며 노래하고 있다…
				ELSEIF TFLAG:193 < 0
					PRINTFORML %타겟은% 떨떠름한 표정을 짓고 있다…
				ELSE
					PRINTFORML %타겟은% 침착하게  노래하고 있다…
				ENDIF
			CASE 3
				PRINTFORML %마스터는% %타겟의% 안무에 맞추어 반주를 했다
				IF TFLAG:193 > 0
					PRINTFORML %타겟은% 리듬을 타며 춤추고 있다…
				ELSEIF TFLAG:193 < 0
					PRINTFORML %타겟은% 떨떠름한 표정을 짓고 있다…
				ELSE
					PRINTFORML %타겟은% 침착하게 춤추고 있다…
				ENDIF
			ENDSELECT
		ENDIF
	CASE "소스"
		IF !GROUPMATCH(1, MUSIC_ABLE(30), MUSIC_ABLE(31), MUSIC_ABLE(32), MUSIC_ABLE(33), MUSIC_ABLE(34), MUSIC_ABLE(35))
			;楽器が使えないと見てるだけ
			TFLAG:193 = -2
			DOWNBASE:MASTER:기력 += 20 * 시간계수
			DOWNBASE:TARGET:체력 += 10 * 시간계수
			DOWNBASE:TARGET:기력 += 20 * 시간계수
			SOURCE:환락 = (50 + ((ABL:친밀 + ABL:MASTER:음악기능) * 10)) * 시간계수
		ELSE
			DOWNBASE:MASTER:체력 += 40 * 시간계수
			DOWNBASE:MASTER:기력 += 40 * 시간계수
			DOWNBASE:TARGET:체력 += 20 * 시간계수
			DOWNBASE:TARGET:기력 += 20 * 시간계수
			SELECTCASE RAND:(10 + ABL:MASTER:음악기능)
			CASE 0
				;失敗
				TFLAG:193 = -1
				SOURCE:환락 = (100 + ((ABL:친밀 + ABL:MASTER:음악기능) * 20)) * 시간계수
			CASE 1 TO 9
				;成功
				SOURCE:환락 = (150 + ((ABL:친밀 + ABL:MASTER:음악기능) * 50)) * 시간계수
				TFLAG:98 = 1
			CASEELSE
				;음악기능があるとその確率で大成功
				TFLAG:193 = 1
				SOURCE:환락 = (200 + ((ABL:친밀 + ABL:MASTER:음악기능) * 80)) * 시간계수
				TFLAG:98 = 2
			ENDSELECT
			;その場にいる他のキャラにもソースが入る
			FOR LOCAL, 1, GET_TARGETNUM() + 1
				SIF TARGET:LOCAL == TARGET
					CONTINUE
				SIF !SHIRAHU(TARGET:LOCAL)
					CONTINUE
				SOURCE:(TARGET:LOCAL):환락 = ((150 + (50 * TFLAG:193)) + ((ABL:(TARGET:LOCAL):친밀 + ABL:MASTER:음악기능) * (50 + (30 * TFLAG:193)))) * 시간계수
			NEXT
			EXP:MASTER:연주경험 ++
		ENDIF
ENDSELECT


code:
@EXIST_FreeAct9
#LOCALSIZE 1
#LOCALSSIZE 1

;オブジェクト本体
@FreeAct9(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
#DIM 경과시간
경과시간 = Activity_Duration:TARGET
SELECTCASE O_DATA
;自由行動に付き合うコマンドの名称
CASE "명칭"
	CALLF MAKE_STR(V_NAME, "채집을 돕기")
CASE "CHAIN"
;他キャラに連鎖しない場合コメントアウトすること
	CALLF MAKE_INT(V_NAME, 1)
CASE "경과시간"
;自由行動に付き合うコマンドでの경과시간
;0だと30分か残り時間すべての小さい方
	CALLF MAKE_INT(V_NAME, 0)
ENDSELECT

@자유행동내용_9(CHARA, ARGS, 시간계수, CHAIN)
#DIM CHARA
#DIM CHAIN
#DIM 현위치
#DIM 메시지표시
#DIM 시간계수
#DIM 경과시간
현위치 = CFLAG:CHARA:현재위치
메시지표시 = 현위치 == CFLAG:MASTER:현재위치 ? 1 # 0
SELECTCASE ARGS
	CASE "발생"
		;採集Lv1以上のキャラが採集できる場所にいる時
		SIF TALENT:CHARA:채집Lv < 1
			RETURN 0
		SIF !GATHERING_SPOT(현위치)
			RETURN 0
		SIF BASE:CHARA:기력 <= 500
			RETURN 0
		SIF 메시지표시
			PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% \@ CHAIN ? %조사처리(CALLNAME:CHAIN,"을")% 돕기 시작했다.# 주위를 둘러본 후, 채집작업을 시작했다.\@
		RETURN 60 + RAND:120
	CASE "행동중"
		IF 메시지표시
			PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% %TEXTR("주위를 샅샅이 뒤지고 있다/무엇인가를 발견한 것 같다/열심히 채집하고 있다/쓸만한 소재를 찾고 있다")%.
		ENDIF
	CASE "완료"
		EXP:CHARA:채집경험 += 1
		SIF 메시지표시
			PRINTFORMW %조사처리(CALLNAME:CHARA,"는")% 채집을 마친 것 같다.
	CASE "중단"
		EXP:CHARA:채집경험 += 1
	CASE "같이한다"
		;自由行動に付き合ったとき用メッセージ
		PRINTFORML %조교자는% %타겟의% 채집을 도왔다
		PRINTFORML %TEXTR(@"%타겟은% 레어한 물건을 찾고 있는 것 같다…/목표로 한 것은 좀처럼 발견되지 않는다…/적당히 주운 것을 %CALLNAME:TARGET%에게 건네주었다…")%
	CASE "소스"
		;付き合うコマンド選択時の入手ソース、시간계수は付き合った時間の1/10
		DOWNBASE:MASTER:체력 += 20 * 시간계수
		DOWNBASE:MASTER:기력 += 40 * 시간계수
		DOWNBASE:TARGET:체력 += 10 * 시간계수
		DOWNBASE:TARGET:기력 += 20 * 시간계수
		SOURCE:환락 = (150 + ((ABL:친밀 + TALENT:MASTER:채집Lv) * 50)) * 시간계수
		SOURCE:수동 = (100 + ((ABL:순종 + TALENT:MASTER:채집Lv) * 50)) * 시간계수
		TFLAG:98 = 1
		EXP:MASTER:채집경험 ++
ENDSELECT

repo_name: DNS/eraTWKR

license: mit


code:
[SKIPSTART]
;SKIPSTART～SKIPENDを外してXXを新しい数値に置換すること
@EXIST_FreeActXX
#LOCALSIZE 1
#LOCALSSIZE 1

;オブジェクト本体
@FreeActXX(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
#DIM 경과시간
경과시간 = Activity_Duration:TARGET
SELECTCASE O_DATA
;自由行動に付き合うコマンドの名称
CASE "명칭"
	CALLF MAKE_STR(V_NAME, "")
CASE "CHAIN"
;他キャラに連鎖しない場合コメントアウトすること
	CALLF MAKE_INT(V_NAME, 1)
CASE "경과시간"
;自由行動に付き合うコマンドでの경과시간
;0だと30分か残り時間すべての小さい方
	CALLF MAKE_INT(V_NAME, 0)
ENDSELECT

@자유행동내용_XX(CHARA, ARGS, 시간계수, CHAIN)
#DIM CHARA
#DIM CHAIN
#DIM 현위치
#DIM 메시지표시
#DIM 시간계수
#DIM 경과시간
현위치 = CFLAG:CHARA:현재위치
메시지표시 = 현위치 == CFLAG:MASTER:현재위치 ? 1 # 0
SELECTCASE ARGS
	CASE "발생"
		;発生条件、ここでRETURN 0すると発生しない
		;CHAINは連鎖元キャラに相当
		SIF 메시지표시
			PRINTFORMW %CALLNAME:CHARA%は\@ CHAIN ? %CALLNAME:CHAIN%を手伝い始めた。# 活動を始めた。\@
		;自由行動にかける時間をRETURNする
		RETURN 60 + RAND:30
	CASE "행동중"
		;行動中の処理、地の文もここで
		IF 메시지표시
			PRINTFORMW %CALLNAME:CHARA%は%TEXTR("呼吸している/瞬きしている/変顔している")%。
		ENDIF
	CASE "완료"
		;行動時間を使い切ったときの処理、地の文もここで
		SIF 메시지표시
			PRINTFORMW %CALLNAME:CHARA%は活動を終えたようだ。
	CASE "중단"
		;中断したときの処理、地の文もここで
	CASE "같이한다"
		;自由行動に付き合ったとき用メッセージ
		PRINTFORML %CALLNAME:PLAYER%は%CALLNAME:TARGET%に付き合った
	CASE "소스"
		;付き合うコマンド選択時の入手ソース、시간계수は付き合った時間の1/10
			;SOURCE:환락 = (50 + ((ABL:친밀 + 호감도계수) * 25)) * 시간계수
			;SOURCE:수동 = (30 + ((ABL:순종 + 호감도계수) * 15)) * 시간계수
ENDSELECT
[SKIPEND]


code:
@자유행동처리(ARG)
;자유행동조건を満たしていない場合は발생せず、중단される
IF !자유행동조건(ARG)
	SIF Activity_Duration:ARG
		TRYCALLFORM 자유행동내용_{Activity_Type:ARG}(ARG, "중단")
	Activity_Duration:ARG = 0
	Activity_Type:ARG = 0
	RETURN
ENDIF
;自由행동중の処理
IF Activity_Duration:ARG
	;경과시간分減っていく
	Activity_Duration:ARG = MAX(Activity_Duration:ARG - TIME_PROGRESS(TIME:1), 0)
	;0になったら종료
	IF !Activity_Duration:ARG
		;CALL 자유행동내용(ARG, Activity_Type:ARG, "완료")
		TRYCALLFORM 자유행동내용_{Activity_Type:ARG}(ARG, "완료")
		;自由行動中口上,X-1,完了時
		SIF CFLAG:ARG:현재위치 == CFLAG:MASTER:현재위치
			CALL KOJO_MESSAGE_SEND("EVENT", 32, ARG, Activity_Type:ARG, 1)
	;まだ행동중
	ELSE
		TRYCALLFORM 자유행동내용_{Activity_Type:ARG}(ARG, "행동중")
		;自由行動中口上,X-0,行動中
		SIF CFLAG:ARG:현재위치 == CFLAG:MASTER:현재위치
			CALL KOJO_MESSAGE_SEND("EVENT", 32, ARG, Activity_Type:ARG, 0)
		;連鎖しない행동は除く（考え事,読書）
		IF FreeAct_Chain(ARG)
			FOR LOCAL, 1, CHARANUM
				;LOCALが連鎖対象でARGが連鎖主
				IF !Activity_Duration:LOCAL && CFLAG:LOCAL:현재위치 == CFLAG:ARG:현재위치 && RELATION:LOCAL:ARG > 100 && LOCAL != ARG && 자유행동조건(LOCAL)
					;引数を付けて발생
					TRYCALLFORM 자유행동내용_{Activity_Type:ARG}(LOCAL, "발생", 0, ARG)
					IF RESULT
						;連鎖主の행동をトレースする
						Activity_Duration:LOCAL = Activity_Duration:ARG
						Activity_Type:LOCAL = Activity_Type:ARG
						TCVAR:LOCAL:가능한한움직이지않는다 = 1
					ENDIF
				ENDIF
			NEXT
		ENDIF
	ENDIF
	;가능한한움직이지않는다ようにする
	TCVAR:ARG:가능한한움직이지않는다 = 1
	RETURN
ENDIF

;自由행동발생処理

;基本발생率,移動率の15を参考
;最初は判定値がRAND1000だったけど800にしてみる
SIF 5 * TIME_PROGRESS(TIME:1) < RAND:800
	RETURN
;とりあえず20個分回す
;22/12/16 口上側からの自由行動制御追加
CALL FISHER_YATES_SHAFFLE(20)
FOR LOCAL, 0, 20
	RESULT = 0
	IF CFLAG:ARG:구상셀렉터
		TRYCALLFORM 자유행동판정_K{ARG}_{CFLAG:ARG:구상셀렉터}(SHAFFLE_ARRAY:LOCAL)
	ELSE
		TRYCALLFORM 자유행동판정_K{ARG}(SHAFFLE_ARRAY:LOCAL)
	ENDIF
	SIF RESULT < 0
		CONTINUE
	RESULT = 0
	TRYCALLFORM 자유행동내용_{SHAFFLE_ARRAY:LOCAL}(ARG, "발생")
	IF RESULT
		;RESULT=행동時間
		Activity_Duration:ARG = RESULT
		Activity_Type:ARG = SHAFFLE_ARRAY:LOCAL
		TCVAR:ARG:가능한한움직이지않는다 = 1
		BREAK
	ENDIF
NEXT

@자유행동조건(ARG)
#FUNCTION
;拠点にいない
SIF !AT_HOME(ARG)
	RETURNF 0
;正常な状態ではない
SIF !SHIRAHU(ARG)
	RETURNF 0
;우후후中
SIF CFLAG:ARG:우후후
	RETURNF 0
;仕事中（행동중）
SIF CFLAG:ARG:행동
	RETURNF 0
;데일리中
SIF CFLAG:ARG:데일리
	RETURNF 0
;동행中
SIF CFLAG:ARG:동행
	RETURNF 0
;移動している
SIF CFLAG:ARG:현재위치 != CFLAG:ARG:전턴위치
	RETURNF 0
;天候ダメージがある
SIF 날씨에의한영향(ARG, CFLAG:ARG:현재위치) < 0
	RETURNF 0
;妊娠中
SIF CFLAG:ARG:임신자각상태 == 1
	RETURNF 0
RETURNF 1

@자유행동식사(CHARA)
#DIM CHARA
;2時間分の食事,あまり頻発するとあなたが食べさせられなくなってしまうので少なめ
TCVAR:CHARA:공복시각 = 1440 * DAY + TIME + 120
CALL RECOVER(CHARA, 3 * TIME_PROGRESS(TIME:1), "체력", "식사에 의한 회복")
CALL RECOVER(CHARA, 3 * TIME_PROGRESS(TIME:1), "기력", "식사에 의한 회복")


code:
[SKIPSTART]
@UNIQUE_FA_XX(CHARA, ARGS,시간계수)
#DIM CHARA
#DIM CHAIN
#DIM 현위치
#DIM 메시지표시
#DIM 시간계수
현위치 = CFLAG:CHARA:현재위치
메시지표시 = 현위치 == CFLAG:MASTER:현재위치 ? 1 # 0

UNIQUE_FA_NAME:CHARA = ナントカする

SELECTCASE ARGS
	CASE "발생"
		;在住キャラが自室にいる時
		SIF !CFLAG:CHARA:신사거주
			RETURN 0
		SIF 현위치 != CFLAG:CHARA:신사거주
			RETURN 0
		SIF BASE:CHARA:기력 <= 500
			RETURN 0
		SIF 메시지표시
			PRINTFORMW %CALLNAME:CHARA%はなにやらナントカし始めた。
		;返し値は行動時間
		RETURN 90
	CASE "행동중"
		IF 메시지표시
			PRINTFORMW %CALLNAME:CHARA%はナントカしている
		ENDIF
	CASE "완료"
		SIF 메시지표시
			PRINTFORMW %CALLNAME:CHARA%はナントカを終えたようだ。
	CASE "중단"
		;중단メッセージはうふふ突入時等でも表示されてしまうので表示しない
	CASE "같이한다"
		PRINTFORML %CALLNAME:PLAYER%は%CALLNAME:CHARA%にナントカを尋ねた
		IF TFLAG:193 < 0
			PRINTFORML %CALLNAME:CHARA%は身体を強張らせ、ナントカしてしまった…
		ELSE
			PRINTFORML ナントカだったようだ…
		ENDIF
	CASE "소스"
		DOWNBASE:MASTER:기력 += 20 * 시간계수
		DOWNBASE:TARGET:기력 += 20 * 시간계수
		SOURCE:환락 = (100 + ((ABL:친밀 + ABL:MASTER:화술기능) * 50)) * 시간계수
		SOURCE:수동 = (60 + ((ABL:순종 + ABL:MASTER:화술기능) * 30)) * 시간계수
ENDSELECT
[SKIPEND]


code:
;-----------------------------------------------------------
;처음부터
;-----------------------------------------------------------
@NEWGAME
게임시작처리중 = 1
;본체버전을 기록
SAVESTR:본체버전 = %eraTW_Version%
;클래스 변수 초기화
CALL MAKE_ALL_CLASS_LIST
;Default 옵션
CALL DEFAULT_OPTION
;카리스마 초기화
CALL SET_CHARISMA("NEW")
PBAND = 12

;일자 1 일째
DAY = 1
DAY:2 = 1
DAY:3 = 1
;FLAG:술벌레 = 1
VAR_FERMENT = 그냥 물
;(天候パッチ)冷害発生回数・風害発生回数・水害発生回数・連続降水カウンターをリセット
IS_COLD_CROP_DAMAGE = 0
IS_STORM_CROP_DAMAGE = 0
IS_FLOOD_CROP_DAMAGE = 0
CONTINUOUS_RAINFALL = 0
;(天候パッチ)降雪・雪崩判定を解除
CONTINUOUS_SNOWFALL = 0
SNOW_COVERAGE = 0
POSSIBLITY_AVALANCHE = 0
;(天候パッチ)時間帯をリセット
WEATHER_TIMEZOME = 0
;(天候パッチ)長期天候傾向をリセット
YEAR_WEATHER_CONTROL = 0
;(天候パッチ)短期予報を行う
CALL WEATHER_FORECAST_1TERM
;(天候パッチ)1日予報を行う
CALL WEATHER_FORECAST_1DAY

;캐릭터 생성
CALL ADD_ALL_CHARACTERS
;MASTER생성
CALL NEWGAME_MAKE
;recolored map or default
CALL DEFAULT_MAP_COLOR
;주거설정
CALL SET_MAINHOME
;옵션
CALL NEWGAME_OPTION

;캐릭터 설정
FOR LOCAL,0,CHARANUM
	;개시 위치
	CFLAG:LOCAL:현재위치 = CFLAG:LOCAL:초기위치
	;복장
	CALL SELECT_CLOTHES(LOCAL, "오늘의 의상")
	CALL CTRL_CLOTHES_SET(LOCAL, "현재 의상의 변경_평상복")
	CALL CLOTHES_SETTING_TRAIN(LOCAL)
	CALL 속옷확인리셋(LOCAL)
	CVARSET BASE, GETNUM(BASE, "술기운"), 0
NEXT
;MASTER기상시간 세트(7시)
TIME:3 = 420
;MASTER수면중 플래그ON
CALL SET_SLEEP(1,MASTER,0)
게임시작처리중 = 0
RETURN 0

;FileName_SHOP_CUSTOM.ERB -------------------------- Rev1.00
;CALL		USER
;ARG		NONE
;RETURN		VOID
;COMMENT
;캐릭터를 추가했을 때에 하나 하나 여기를 만질 필요가 없게
;캐릭터수상한은 ERH 파일로 정의
;-----------------------------------------------------------
@ADD_ALL_CHARACTERS
FOR LOCAL,CHARANUM,캐릭터수상한
	SIF !EXISTCSV(LOCAL)
		CONTINUE
	ADDCHARA LOCAL
	CALL SET_MINIMUM_EXP_ALL(LOCAL)
	CALL KOJO_MULTIPLE(LOCAL)
	IF !EXP:LOCAL:키스경험
		TALENT:LOCAL:키스미경험 = 1
	ENDIF
NEXT

;-----------------------------------------------------------
;설정 변경
;-----------------------------------------------------------
@NEWGAME_OPTION
#DIMS choices, 100
;초기화
;무능력자, 농민
SETBIT FLAG:1000, 1
SETBIT FLAG:1000, 2
;TINKO
SIF !TALENT:MASTER:형상
	TALENT:MASTER:형상 = 3
;복장
SIF !CFLAG:MASTER:기본복장세트
	CALL MASTER_CLOTHES_INIT
;
SIF !게임시작처리중
	뉴게임특전 '= "없음"
;선택지
VARSET choices
PRINTL
PRINTL
PRINTL 게임 개시 전에 각종 설정을 변경할 수 있습니다.
DRAWLINE
;당신설정
SIF !FLAG:역극
	choices:0 '= @"%마스터를% 커스터마이즈한다"
SIF HAS_PENIS(MASTER)
	choices:1 '= @"%CALLNAME:MASTER%의 남성기는 %TINKO_SIMPLE(MASTER)%이다"
choices:2 '= @"%CALLNAME:MASTER%의 복장은 %MASTER_CLOTHES_NAME(CFLAG:MASTER:기본복장세트)%이다"
IF FLAG:생활능력무
	choices:3 '= @"%CALLNAME:MASTER%에겐 고백할만한 담력이 없다"
ELSE
	choices:3 '= @"%CALLNAME:MASTER%의 담력은 보통이다"
ENDIF
IF FLAG:지주
	choices:4 '= @"%마스터는% %CALLNAME:(FLAG:지주)%의 밑에서 일하는 농민이다"
ELSE
	choices:4 '= @"%마스터는% 홀가분한 자유인이다"
ENDIF
choices:5 '= @"%마스터는% %GET_MAPNAME(MAIN_MAP)%의 %STR:(Default초기위치 + (MAIN_MAP ? 8000 # 0) )%에서 삽니다"
;환상향
choices:10 '= @"각 캐릭터의 처녀・비처녀를 변경할 수 있습니다"
choices:11 '= @"각 캐릭터의 체형을 변경할 수 있습니다"
;특전
IF 게임시작처리중
	choices:20 '= NEWGAMEBONUS_TEXT()
ELSEIF 게임인계처리중
	choices:20 '= 주회특전_표시()
ENDIF

CALL ASK_CHOICES(choices, 100, "종료하고 시작한다")
SELECTCASE RESULT
	CASE 0
		IF !FLAG:역극
			CALL CUSTOM_TERMINAL(MASTER)
			CALL SET_MAINHOME
		ENDIF
	CASE 100
		CALL VIRGIN_SET_APPLY
		CALL SET_BODY_APPLY
		CALL NEWGAME_BONUS_APPLY
		CALL SET_APPLY_NOUMIN
		;CALL 주회특전_적용
		ITEM:싸구려식재 = 10
		RETURN
	CASE 1
		SIF HAS_PENIS(MASTER)
			CALL TINKO_DECIDE(MASTER)
	CASE 2
		CALL MASTER_CLOTHES
	CASE 3
		CALL KAISYONASI
	CASE 4
		CALL RESET_NOUMIN
		CALL SET_NOUMIN
	CASE 5
		CALL SET_MAINHOME
	CASE 10
		CALL VIRGIN_SET
	CASE 11
		CALL BODY_SET
	CASE 20
		IF 게임시작처리중
			CALL NEWGAME_BONUS_SELECT
		ELSEIF 게임인계처리중
			CALL 주회특전
		ENDIF
ENDSELECT
RESTART

;-----------------------------------------------------------
;설정 변경
;-----------------------------------------------------------
@NEWGAME_VERUP
;연인수정이 끝난 플래그를 세운다
;KR판은 연인이 구버전 일판 기반 플래그이므로 주석처리
; SETBIT FLAG:1000, 3
; SETBIT FLAG:1000, 4
CALL VERSION_UP
PRINTW 게임 개시처리 종료
SAVEDATA 99, "처음부터"
PRINTL 자동으로 저장되었습니다.
PRINTW 게임 업데이트 처리로 넘어가시겠습니까?
CALL ASK_YN()
IF !RESULT
	CALL UPDATE
ELSE
	PRINTL 업데이트를 건너뛰었습니다.
	PRINTW 기상 전의 SHOP 화면에서 업데이트 해주세요
ENDIF


code:
;처음부터・강하게 뉴게임용
;전원설정 이외 변수는 모드 클리어되니 주의
#DIM 게임시작처리중
#DIM 게임인계처리중

#DIM CHARADATA 초기정조, 1
#DIM SAVEDATA 전원의정조
#DIM SAVEDATA 전원로리화
#DIM SAVEDATA 전원난쟁이화
#DIM SAVEDATA 전원동물귀화
#DIM SAVEDATA 전원후타나리화
#DIM SAVEDATA SuccSetting, 200
#DIM SAVEDATA SuccBASE,200, 2
#DIM SAVEDATA SuccABL,200, 100
#DIM SAVEDATA SuccEXP,200, 100
#DIM SAVEDATA TalentSet, 200, 160

#DIMS 뉴게임특전

#DIM 전회의체력
#DIM 전회의체력증가량
#DIM 전회의기력
#DIM 전회의기력증가량
#DIM 전회의정력
#DIM 전회의정력증가량
#DIM 전회의캐릭터수
#DIM 전회의역극출금
#DIM 전회의팬티, 300, 40
#DIM 전회의CFLAG, 300


code:
;-----------------------------------------------------------
;【뉴게임특전】
;-----------------------------------------------------------
@NEWGAME_BONUS_SELECT
#DIMS buttonText, 10
SETCOLOR 103,228,126
PRINTFORML 【뉴 게임 특전】
RESETCOLOR
PRINTFORML 좋아하는 것을 선택해 주세요
PRINTFORML TWKR에서는 실적보너스로 얻는 능력 중 하나를 선택할 수도 있습니다.
buttonText:0 '= "₩50000"
buttonText:1 '= "초기 호감도・신뢰도 업"
buttonText:2 '= "초기 능력 업"
buttonText:3 '= "애욕을 독점하는 미라다의돌 밀레니엄"
;KR판 오리지날 뉴 게임 특전. 추후 일판 보너스 추가시 배열 buttonText도 같이 만져야함. 일판 기본값 10
buttonText:4 '= "【붉은실】"
buttonText:5 '= "【절륜】"
buttonText:6 '= "【수수께끼의매력】"
buttonText:7 '= "【만능잉태】"
buttonText:8 '= "【익스텐드】"
buttonText:9 '= "【습득 빠름】"
CALL ASK_BUTTONS(buttonText)
SELECTCASE RESULT
	CASE 0
		뉴게임특전 '= "₩50000"
	CASE 1
		CALL NEWGAME_BONUS_CHARA
		IF !RESULT
			RESTART
		ENDIF
	CASE 2
		뉴게임특전 '= "초기 능력 업"
	CASE 3
		뉴게임특전 '= "호색한 세트"
	;KR판 오리지날 뉴게임특전
	CASE 4 TO 9
		CALL TWKR_NEWGMAE_BONUS(buttonText:RESULT)
		IF !RESULT
			RESTART
		ENDIF
ENDSELECT
PRINTFORMW %뉴게임특전%을 선택합니다.
RETURN

;-----------------------------------------------------------
;초기 호감도
;-----------------------------------------------------------
@NEWGAME_BONUS_CHARA
PRINTFORML 캐릭터 한 명의 초기호감도를 500、신뢰도를 50으로 합니다
PRINTFORML 대상을 골라주세요
CALL ASK_CALLNAME
IF RESULT == 999
	RETURN 0
ELSE
	뉴게임특전 '= TOSTR(RESULT)
	RETURN 1
ENDIF

;-----------------------------------------------------------
;특전 적용
;미지정의 경우는 소지금
;-----------------------------------------------------------
@NEWGAME_BONUS_APPLY
#DIM C_ID
C_ID = TOINT(뉴게임특전)
SELECTCASE 뉴게임특전
	CASE "없음"
	CASE ""
		MONEY += 50000
	CASE "₩50000"
		MONEY += 50000
	CASE "초기 능력 업"
		ABL:MASTER:청소기능 = 1
		ABL:MASTER:교양 = 1
		ABL:MASTER:요리기능 = 1
		ABL:MASTER:기교 = 2
		ABL:MASTER:화술기능 = 3
	CASE "호색한 세트"
		ITEM:미라다의돌 += 1
		ITEM:로터 += 1
		ITEM:미약 += 5
		MAXBASE:MASTER:TSP = 500
		BASE:MASTER:TSP = MAXBASE:MASTER:TSP
		MONEY:1 = 1800
	;KR판 오리지날
	CASE "【붉은실】"
		SETBIT FLAG:호감도보너스취득상황, 8
		TALENT:MASTER:붉은실 = 1
	CASE "【절륜】"
		SETBIT FLAG:팬티보너스취득상황, 8
		TALENT:MASTER:절륜 = 1
	CASE "【수수께끼의매력】"
		SETBIT FLAG:함락보너스취득상황, 3
		TALENT:MASTER:수수께끼의매력 = 1
	CASE "【만능잉태】"
		SETBIT FLAG:잉태보너스취득상황, 1
		TALENT:MASTER:만능잉태 = 1
	CASE "【익스텐드】"
		SETBIT FLAG:탄막승부보너스취득상황, 5
		TALENT:MASTER:익스텐드 = 1
	CASE "【습득 빠름】"
		SETBIT FLAG:기술보너스취득상황, 6
		TALENT:MASTER:습득속도 = 1

	CASEELSE
		CFLAG:C_ID:호감도 = 500
		CFLAG:C_ID:신뢰도 = 100
		IF CHECK_CHARA(C_ID, "신령")
			TALENT:MASTER:신령잉태 = 1
		ELSEIF CHECK_CHARA(C_ID, "츠쿠모가미")
			TALENT:MASTER:츠쿠모가미잉태 = 1
		ELSEIF CHECK_CHARA(C_ID, "봉래인")
			TALENT:MASTER:봉래잉태 = 1
		ELSEIF CHECK_CHARA(C_ID, "유령")
			TALENT:MASTER:유령잉태 = 1
		ELSEIF CHECK_CHARA(C_ID, "인형")
			TALENT:MASTER:인형잉태 = 1
		ENDIF
ENDSELECT

;-----------------------------------------------------------
;설정 표시용 텍스트화
;-----------------------------------------------------------
@NEWGAMEBONUS_TEXT
#FUNCTIONS
SELECTCASE 뉴게임특전
	CASE ""
		RETURNF "" + "뉴 게임 특전을 선택할 수 있습니다" + ""
	CASE "₩50000"
		RETURNF "\\50000을 가지고 시작합니다"
	CASE "초기 능력 업"
		RETURNF "일부 능력의 상승으로 빠른 단계부터 가사 등이 편해집니다"
	CASE "애욕을 독점하는 미라다의돌 밀레니엄"
		RETURNF "일부 능력의 상승과 특수한 아이템으로 빠른 단계부터 야한 것을 하기 쉬워집니다"
	CASE "【붉은실】", "【절륜】", "【수수께끼의매력】", "【만능잉태】", "【익스텐드】", "【습득 빠름】"
		RETURNF @"%뉴게임특전%을 가지고 시작합니다"
	CASEELSE
		RETURNF @"%CALLNAME:TOINT(뉴게임특전)%의 호감도와 신뢰도가 오른 상태로 시작합니다 임신이 어려운 종족의 경우 확률 향상 능력도 추가로 취득합니다"
ENDSELECT

;KR판 오리지날 뉴게임 보너스
;ARGS = buttonText:RESULT
@TWKR_NEWGMAE_BONUS(ARGS)
SELECTCASE ARGS
	CASE "【붉은실】"
		PRINTFORML 데이트 중 상대와의 상성을 올릴수 있는 특성입니다.
	CASE "【절륜】"
		PRINTFORML 사정시 체력, 기력이 감소하지 않고 사정량이 2배 증가합니다.
	CASE "【수수께끼의매력】"
		PRINTFORML 대부분의 커맨드에 보정이 붙으며 호감도 상승량이 증가합니다.
	CASE "【만능잉태】"
		PRINTFORML 어떤 종족이라도 임신시키기 쉬워집니다.
	CASE "【익스텐드】"
		PRINTFORML 탄막승부시 잔기가 1개 증가합니다.
	CASE "【습득 빠름】"
		PRINTFORML 기교 및 성기술 ABL이 쉽게 오릅니다.
	CASEELSE
		THROW 상정하지 않은 인자 %ARGS%
ENDSELECT

PRINTFORML 괜찮겠습니까?
CALL ASK_YN
IF !RESULT
	뉴게임특전 '= ARGS
	RETURN 1
ELSE
	RETURN 0
ENDIF


code:
;-----------------------------------------------------------
;캐릭터 커스터마이즈
;-----------------------------------------------------------
@CUSTOM_TERMINAL(ARG, HIKITSUGI)
#DIM HIKITSUGI
CALL CUSTOM_INIT(ARG)
CLEARLINE 1000
;이름 버튼 표시
DRAWLINE
CALL CUSTOM_NAME_BUTTON(ARG)
;BASE 버튼 표시
DRAWLINE
CALL CUSTOM_BASE_BUTTON(ARG)
;능력・성기술표시
CALL PRINT_STATE_ABL(ARG)
PRINTL
CALL COLORMESSAGE(@"　[2000] 능력의 설정",0x70C070,1)
;소질표시
CALL PRINT_STATE_TALENT(ARG)
SETCOLOR 0x70C070
PRINTL 　[3000] 소질의 설정
RESETCOLOR
;경험표시
CALL PRINT_STATE_EXP(ARG)
PRINTL
CALL COLORMESSAGE(@"　[4000] 경험의 설정",0x70C070,1)
IF HIKITSUGI
	CALL COLORMESSAGE(@"　[5000] 인계 설정의 보존",0x70C070,1)
ENDIF
RESETCOLOR
DRAWLINE
PRINTL 　[9999] 설정 종료
PRINTL
INPUT
SELECTCASE RESULT
	CASE 9999
		PRINTL 이걸로 정말 괜찮겠습니까?
		CALL ASK_YN()
		SIF !RESULT
			RETURN 1
	;NAME
	CASE 0 TO 999
		CALL CUSTOM_NAME(ARG, RESULT)
	;BASE
	CASE 1000 TO 1999
		CALL CUSTOM_BASE(ARG, RESULT - 1000)
	;ABL
	CASE 2000
		CALL CUSTOM_MENU("ABL", ARG)
	;TALENT
	CASE 3000
		CALL CUSTOM_MENU("TALENT", ARG)
	;EXP
	CASE 4000
		CALL CUSTOM_MENU("EXP", ARG)
	CASE 5000
		IF HIKITSUGI
			CALL SAVE_CUSTOM_TALENT(ARG, "연인")
		ENDIF
ENDSELECT
RESTART
;-----------------------------------------------------------
;배타 처리
;-----------------------------------------------------------
@CUSTOM_INIT(ARG)
;ARG가 여자, 후타나리일 때의 배타
IF TALENT:ARG:성별 & 1
	ABL:ARG:호모끼 = 0
	ABL:ARG:게이중독 = 0
	EXP:ARG:게이경험 = 0
	IF !(TALENT:ARG:2 & 2)
		EXP:ARG:사정경험 = 0
		EXP:ARG:삽입경험 = 0
	ENDIF
	SIF TALENT:ARG:성별 != 1
		TALENT:ARG:구현 = 0
;ARG가 남자일 때의 배타
ELSE
	ABL:ARG:V감각 = 0
	ABL:ARG:레즈끼 = 0
	ABL:ARG:레즈중독 = 0
	EXP:ARG:레즈경험 = 0
	EXP:ARG:분유경험 = 0
	EXP:ARG:V경험 = 0
	EXP:ARG:파이즈리경험 = 0
	EXP:ARG:V성교경험 = 0
	EXP:ARG:V확장경험 = 0
	EXP:ARG:자궁구개발경험 = 0
	TALENT:ARG:V감도 = 0
	TALENT:ARG:처녀 = 0
	TALENT:ARG:모유체질 = 0
	TALENT:ARG:가슴사이즈 = -2
	TALENT:ARG:걸레 = 0
	TALENT:ARG:초경 = 0
	TALENT:ARG:구현 = 0
ENDIF
;거시기
IF TALENT:ARG:2 & 2
	MAXBASE:ARG:정력 = 1000
	BASE:ARG:정력 = 1000
	MAXBASE:ARG:발기 = 1500
	;실적보너스분
	SIF ARG == MASTER && GETBIT(FLAG:702,8)
		MAXBASE:MASTER:정력 += 100
ELSE
	TALENT:ARG:비동정 = 0
	MAXBASE:ARG:정력 = 0
	BASE:ARG:정력 = 0
	MAXBASE:ARG:발기 = 0
ENDIF
;처녀라면 V계 경험 없음
IF TALENT:ARG:처녀 == 1
	ABL:ARG:V감각 = 0
	EXP:ARG:V경험 = 0
	EXP:ARG:V성교경험 = 0
	EXP:ARG:V확장경험 = 0
	EXP:ARG:자궁구개발경험 = 0
	CSTR:ARG:처녀상실이력 =
	CFLAG:ARG:처녀상실기념일 = 0
	CFLAG:ARG:처녀상실대상 = 0
;비처녀는 V경험 1
ELSEIF TALENT:ARG:2 & 1 && EXP:ARG:V경험 == 0
	EXP:ARG:V경험 = 1
ENDIF

;퍼스트 키스
IF !EXP:ARG:키스경험
	TALENT:ARG:키스미경험 = 1
ELSE
	TALENT:ARG:키스미경험 = 0
ENDIF

;-----------------------------------------------------------
;이름 변경 버튼
;-----------------------------------------------------------
@CUSTOM_NAME_BUTTON(ARG)
#DIMS CONST colortext = "[변경]"
#DIMS html
;이름
html '= @"<button value='{0}'>" + HTML_SPACE(2) + @"이름: %NAME:ARG%"+ HTML_SPACE(2) + colortext + "</button>"
html += HTML_SPACE(4)
;통칭
html += @"<button value='{1}'>" + @"통칭: %CALLNAME:ARG%"+ HTML_SPACE(2) + colortext + "</button>"
HTML_PRINT html + "

"

@CUSTOM_NAME(ARG, ARG:1)
SELECTCASE ARG:1
	CASE 0
		PRINTL
		PRINTFORML 현재의 이름은 %NAME:ARG% 입니다.
		PRINTFORML 변경하시려면 새 이름을 입력해주세요. (공란으로 캔슬)
		PRINTL
		INPUTS
		IF RESULTS != ""
			NAME:ARG '= RESULTS
			PRINTFORMW 변경했습니다. 현재의 이름은 %NAME:ARG% 입니다.
		ENDIF
	CASE 1
		PRINTL
		PRINTFORML 현재의 통칭은 %CALLNAME:ARG% 입니다.
		PRINTFORML 변경하시려면 새 통칭을 입력해주세요. (공란으로 캔슬)
		PRINTL
		INPUTS
		IF RESULTS != ""
			CALLNAME:ARG '= RESULTS
			PRINTFORMW 변경했습니다. 현재의 통칭은 %CALLNAME:ARG% 입니다.
		ENDIF
ENDSELECT

;-----------------------------------------------------------
;베이스 변경 버튼
;-----------------------------------------------------------
@CUSTOM_BASE_BUTTON(ARG)
#DIM baseButtonVal = 1000
PRINT
CALL BASE_BAR(ARG, "체력", 28, "초록")

IF BASE:ARG:체력 > 1000
	SETCOLOR 0x70C070
	PRINTBUTTON "[－]", 0 + baseButtonVal
ELSE
	SETCOLOR 0x969696
	PRINT [－]
ENDIF
IF BASE:ARG:체력 < 2500
	SETCOLOR 0x70C070
	PRINTBUTTON "[＋]", 1 + baseButtonVal
ELSE
	SETCOLOR 0x969696
	PRINT [＋]
ENDIF
RESETCOLOR
PRINTL
PRINT
CALL BASE_BAR(ARG, "기력", 28, "파랑")
IF BASE:ARG:기력 > 1000
	SETCOLOR 0x70C070
	PRINTBUTTON "[－]", 2 + baseButtonVal
ELSE
	SETCOLOR 0x969696
	PRINT [－]
ENDIF
IF BASE:ARG:기력 < 2500
	SETCOLOR 0x70C070
	PRINTBUTTON "[＋]", 3 + baseButtonVal
ELSE
	SETCOLOR 0x969696
	PRINT [＋]
ENDIF
RESETCOLOR
PRINTL
PRINTL

;-----------------------------------------------------------
;베이스 변경
;ARG:0 캐릭터 등록번호
;ARG:1 0=체력감소, 1=체력증가, 2=기력감소, 3=기력증가
;-----------------------------------------------------------
@CUSTOM_BASE(ARG, ARG:1)
SELECTCASE ARG:1
	CASE 0
		MAXBASE:ARG:체력 -= 100
	CASE 1
		MAXBASE:ARG:체력 += 100
	CASE 2
		MAXBASE:ARG:기력 -= 100
	CASE 3
		MAXBASE:ARG:기력 += 100
	CASE 4
ENDSELECT
MAXBASE:ARG:체력 = LIMIT(MAXBASE:ARG:체력, 1000, 2500)
BASE:ARG:체력 = MAXBASE:ARG:체력
MAXBASE:ARG:기력 = LIMIT(MAXBASE:ARG:기력, 1000, 2500)
BASE:ARG:기력 = MAXBASE:ARG:기력

;-----------------------------------------------------------
;메뉴 호출
;-----------------------------------------------------------
@CUSTOM_MENU(ARGS, ARG)
PRINTL
PRINTL
CALLFORM CUSTOM_%ARGS%_MENU(ARG)
RESETCOLOR
PRINTL
PRINTL
PRINTL   [9999] 돌아간다
PRINTL
INPUT
SIF RESULT == 9999
	RETURN
CALLFORM CUSTOM_%ARGS%(RESULT, ARG)
RESTART

;-----------------------------------------------------------
;능력 변경
;-----------------------------------------------------------
@CUSTOM_ABL_MENU(ARG)
LOCAL:1 = 0
FOR LOCAL,0,50
	SIF CUSTOM_선택할수없는능력(LOCAL, ARG)
		CONTINUE
	PRINTFORM %ABLNAME:LOCAL,12%:{ABL:ARG:LOCAL,5,LEFT}
	IF ABL:ARG:LOCAL != 0
		PRINTBUTTON "[－]", LOCAL * 2
	ELSE
		SETCOLOR 0x969696
		PRINT [－]
		RESETCOLOR
	ENDIF
	IF ABL:ARG:LOCAL != 2
		PRINTBUTTON "[＋]", LOCAL * 2 + 1
	ELSE
		SETCOLOR 0x969696
		PRINT [＋]
		RESETCOLOR
	ENDIF
	LOCAL:1 ++
	SIF LOCAL:1 % 3 == 0
		PRINTL
NEXT

;-----------------------------------------------------------
;-----------------------------------------------------------
@CUSTOM_ABL(ARG, ARG:1)
	LOCAL = ARG / 2
;예외 처리
SIF CUSTOM_선택할수없는능력(LOCAL, ARG:1)
	RETURN 0
;증감 및 정상화
;양수(+)
IF (ARG) % 2
	ABL:(ARG:1):LOCAL ++
;음수(-)
ELSE
	ABL:(ARG:1):LOCAL --
ENDIF
ABL:(ARG:1):LOCAL = LIMIT(ABL:(ARG:1):LOCAL, 0, 2)
RETURN 1

;-----------------------------------------------------------
;-----------------------------------------------------------
@CUSTOM_선택할수없는능력(argAbl, ARG)
#DIM argAbl
#FUNCTION
;개별 처리
SELECTCASE ABLNAME:argAbl
	;미사용
	CASE ""
		RETURNF 1
	;시간정지
	CASE "TSLv"
		RETURNF 1
	;동성애 관계
	CASE "레즈끼", "레즈중독"
		SIF !(TALENT:ARG:2 & 1)
			RETURNF 1
	CASE "호모끼", "게이중독"
		SIF TALENT:ARG:2 & 1
			RETURNF 1
ENDSELECT
;범용 처리
SELECTCASE argAbl
	;중독 관계
	CASE 30 TO 39
		RETURNF 1
	;생활계
	CASE 40 TO 49
		RETURNF 1
	;성기술
	CASE 50 TO 59
		RETURNF 1
ENDSELECT
RETURNF 0

;-----------------------------------------------------------
;소질 변경
;-----------------------------------------------------------
@CUSTOM_TALENT_MENU(ARG)
VARSET LOCAL
FOR LOCAL, 0, 157
	IF CUSTOM_선택할수없는소질(LOCAL, ARG) == 1
		CONTINUE
	ELSEIF CUSTOM_선택할수없는소질(LOCAL, ARG) == 2
		;표시는 시킨다
		SETCOLOR 50, 50, 50
		LOCALS = [{LOCAL,3}]%TALENTNAME:LOCAL%
		GOTO SKIP
	ENDIF
	SETCOLOR 150, 150, 150
	SELECTCASE TALENTNAME:LOCAL
	;TALENT.CSV에 등록되지 않았다
	CASE ""
		CONTINUE
	;온 오프형의 소질(TALENTNAME와 소질표시가 일치)
	CASE GET_TALENTNAME(LOCAL,1)
		SIF TALENT:ARG:LOCAL
			SETCOLOR C_AQUA
		LOCALS = [{LOCAL,3}]%TALENTNAME:LOCAL%
	CASE "비동정"
		SIF !TALENT:ARG:LOCAL
			SETCOLOR C_AQUA
		LOCALS = [{LOCAL,3}]동정
	CASE "키스미경험"
		SIF !TALENT:ARG:LOCAL
			SETCOLOR C_AQUA
		LOCALS = [{LOCAL,3}]%TALENTNAME:LOCAL%
	;양적 소질
	CASEELSE
		LOCALS =  [{LOCAL,3}]%TALENTNAME:LOCAL%
		IF STRLENS(GET_TALENTNAME(LOCAL, TALENT:ARG:LOCAL))
			LOCALS:1 = 【%GET_TALENTNAME(LOCAL, TALENT:ARG:LOCAL)%】
			SETCOLOR C_AQUA
		ELSEIF TALENTNAME:LOCAL == "성별"
			LOCALS:1 = 【여자】
			SETCOLOR C_AQUA
		ELSE
			LOCALS:1 = 【－】
		ENDIF
		LOCALS += LOCALS:1
	ENDSELECT
	$SKIP
	IF LOCAL:1 % 3 == 0
		PRINTL
		PRINT
	ENDIF
	IF CUSTOM_선택할수없는소질(LOCAL, ARG) == 2
		PRINTPLAINFORM %LOCALS, 30, LEFT%
	ELSE
		PRINTFORM %LOCALS, 30, LEFT%
	ENDIF
	LOCAL:1 ++
NEXT

;-----------------------------------------------------------
@CUSTOM_TALENT(inputed, chara)
#DIM inputed
#DIM chara
SIF inputed < 0|| inputed > 500
	RETURN 0
SIF TALENTNAME:inputed == ""
	RETURN 0
SIF CUSTOM_선택할수없는소질(inputed, chara)
	RETURN 0
SELECTCASE TALENTNAME:inputed
	;선 예외처리
	CASE "성별"
		IF TALENT:chara:성별 == 3
			TALENT:chara:성별 = 1
		ELSE
			TALENT:chara:성별 ++
		ENDIF
	CASE "성별기호"
		IF TALENT:chara:inputed == 3
			TALENT:chara:inputed = -1
		ELSE
			TALENT:chara:inputed ++
		ENDIF
	CASE "체형" ;KR판 임의수정, 일판은 "성별기호"임. 아마도 오타
		;체형이 「난쟁이(-5)」나 「거인(3)」인 경우를 독립처리
		IF TALENT:chara:inputed == -5
			TALENT:chara:inputed = -2
		ELSEIF TALENT:chara:inputed == 3 ;KR판 임의수정, 일판은 거인 5였던 걸 그대로 사용중
			TALENT:chara:inputed = -5
		ELSEIF TALENT:chara:inputed >= 4 ;KR판 임의수정, 일판은 거인 5였던 걸 그대로 사용중
			TALENT:chara:inputed = -5
		ELSE
			TALENT:chara:inputed ++
		ENDIF
	CASE "비동정", "키스미경험"
		TALENT:chara:inputed = !TALENT:chara:inputed
	CASE "모유체질"
		TALENT:chara:모유체질 = !TALENT:chara:모유체질
		IF TALENT:chara:모유체질
			MAXBASE:chara:모유 = 2000
		ELSE
			MAXBASE:chara:모유 = 0
		ENDIF
	;양적 소질
	CASEELSE
		;진위형 소질은 반전
		IF TALENTNAME:inputed == GET_TALENTNAME(inputed,1)
			TALENT:chara:inputed = !TALENT:chara:inputed
		ELSE
		;;구석까지 가면―1을 건다
			IF STRLENS(GET_TALENTNAME(inputed,TALENT:chara:inputed + 1)) || TALENT:chara:inputed == -1
				TALENT:chara:inputed ++
			ELSE
				TALENT:chara:inputed *= -1
			ENDIF
		ENDIF
ENDSELECT

;-----------------------------------------------------------
@CUSTOM_선택할수없는소질(ARG, CHARA)
#FUNCTION
#DIM CHARA
;RETURNF 2는 표시는 시키는 것
SELECTCASE ARG
	;정욕감지~, 보너스 소질 및 특수 함락, 종족, 잉태계
	CASE IS >=157
		RETURNF 1
	;당신은 선택할 수 없는 1
	CASE GETNUM(TALENT, "습득속도") TO GETNUM(TALENT, "바늘질"), GETNUM(TALENT, "약독내성"), GETNUM(TALENT, "즉각함락"), GETNUM(TALENT, "盲信"), GETNUM(TALENT, "소악마")
		SIF CHARA == NO:MASTER
			RETURNF 1
	;당신은 선택할 수 없는 2
	CASE GETNUM(TALENT, "매력") TO GETNUM(TALENT, "수수께끼의매력"), GETNUM(TALENT, "회복속도") TO GETNUM(TALENT, "이상한뿌리"), GETNUM(TALENT, "광기"), GETNUM(TALENT, "인기")
		SIF CHARA == NO:MASTER
			RETURNF 1
	;당신은 선택하지 못하고, 여성기가 없으면 선택할 수 없다
	CASE GETNUM(TALENT, "모유체질"), GETNUM(TALENT, "임신소망")
		SIF CHARA == NO:MASTER
			RETURNF 1
		SIF !GETBIT(TALENT:CHARA:성별, 0)
			RETURNF 2
	;여성기가 없으면 선택할 수 없다
	CASE GETNUM(TALENT, "처녀"), GETNUM(TALENT, "걸레"), GETNUM(TALENT, "V감도")
		SIF !GETBIT(TALENT:CHARA:성별, 0)
			RETURNF 2
	;남성기가 없으면 선택할 수 없다
	CASE GETNUM(TALENT, "비동정")
		SIF !GETBIT(TALENT:CHARA:성별, 1)
			RETURNF 2
	;남성기가 있으면 선택할 수 없다
	CASE GETNUM(TALENT, "구현")
		SIF GETBIT(TALENT:CHARA:성별, 1)
			RETURNF 2
	;당신 이외는 선택할 수 없다
	CASE GETNUM(TALENT, "연령")
		SIF CHARA != NO:MASTER
			RETURNF 1
	;전원 고를 수 없지만 표시는 한다
	CASE GETNUM(TALENT, "키스미경험")
		RETURNF 2
	;전원 선택할 수 없는 1
	CASE GETNUM(TALENT, "연모") TO GETNUM(TALENT, "사모"), GETNUM(TALENT, "기분"), GETNUM(TALENT, "용모"), GETNUM(TALENT, "약점"), GETNUM(TALENT, "조합지식"), GETNUM(TALENT, "조제Lv"), GETNUM(TALENT, "채집Lv"), GETNUM(TALENT, "낚시Lv"), GETNUM(TALENT, "벌채Lv")
		RETURNF 1
	;전원 선택할 수 없는 2
	CASE GETNUM(TALENT, "자위중독") TO GETNUM(TALENT, "포르치오성감"), GETNUM(TALENT, "망신"), GETNUM(TALENT, "질투"), GETNUM(TALENT, "농후정액"), GETNUM(TALENT, "정애미각"), GETNUM(TALENT, "금단의지식"), GETNUM(TALENT, "절륜") TO GETNUM(TALENT, "모성")
		RETURNF 1
	;여성기가 있고 유아나 유치가 없으면 선택할 수 없다
	CASE GETNUM(TALENT, "초경")
		SIF !GETBIT(TALENT:CHARA:성별, 0)
			RETURNF 2
		SIF !TALENT:CHARA:애같음 && !TALENT:CHARA:유치
			RETURNF 2
ENDSELECT
RETURNF 0

;-----------------------------------------------------------
;경험 변경
;-----------------------------------------------------------
@CUSTOM_EXP_MENU(ARG)
VARSET LOCAL
FOR LOCAL,0,100
	SIF CUSTOM_선택할수없는경험(LOCAL, ARG)
		CONTINUE
	PRINTFORM   [{LOCAL,2}] - %EXPNAME:LOCAL,16%:{EXP:ARG:LOCAL,5,LEFT}
	LOCAL:1 ++
	SIF LOCAL:1 % 3 == 0
		PRINTL
NEXT

;-----------------------------------------------------------
@CUSTOM_EXP(argExp, argChara)
#DIM argExp
#DIM argChara
SIF CUSTOM_선택할수없는경험(argExp, argChara)
	RETURN 0
PRINTFORM %조사처리(EXPNAME:argExp,"를")% 입력해주세요.    (0-30)
	PRINTBUTTON "[캔슬]",-1
	PRINTL   [ 0]  [ 1]  [ 5]  [10]  [20]  [30]
	PRINTL
INPUT
SIF RESULT < 0
	RETURN 0
EXP:argChara:argExp = RESULT
EXP:argChara:argExp = LIMIT(EXP:argChara:argExp, 0, 30)
RETURN 1

;-----------------------------------------------------------
@CUSTOM_선택할수없는경험(argExp, argChara)
#FUNCTION
#DIM argExp
#DIM argChara
SELECTCASE EXPNAME:argExp
	CASE "", "항내사정경험", "질내사정경험"
		RETURNF 1
	;여성가기 앖다면 불가
	CASE "레즈경험", "V경험", "V절정경험", "V성교경험", "V확장경험", "자궁구개발경험", "분유경험", "파이즈리경험"
		SIF !(TALENT:argChara:성별 & 1)
			RETURNF 1
	;여성기가 있다면 불가
	CASE "게이경험"
		SIF TALENT:argChara:성별 & 1
			RETURNF 1
	;남성기가 없다면 불가
	CASE "삽입경험", "사정경험"
		SIF !HAS_PENIS(argChara)
			RETURNF 1
	;시간정지에서 오는 건 불가
	CASE "시간경험", "무자각C경험", "무자각V경험", "무자각A경험", "무자각B경험", "무자각M경험", "무자각절정경험"
		RETURNF 1
ENDSELECT
SELECTCASE argExp
	;생활계
	CASE 70 TO 89
		RETURNF 1
	;행위계는 조정이 귀찮다
	CASE 100 TO 109
		RETURNF 1
ENDSELECT
RETURNF 0


code:
;-----------------------------------------------------------
;캐릭터메이킹
;전 캐릭터 추가 후에 실시
;-----------------------------------------------------------
@NEWGAME_MAKE
;공통 초기화
CALL NEWGAME_MAKE_INIT
;모드 선택
CALL NEWGAME_MAKE_SELECT_MODE
;스테이터스 설정

;-----------------------------------------------------------
;초기화
;-----------------------------------------------------------
@NEWGAME_MAKE_INIT
;NO는 적당하게 설정
NO:MASTER = 0
;MASTER는 초기 성별=남자
;성별(1=여성 2= 남성 3=후타나리)
TALENT:MASTER:성별 = 2
;기력, 체력
MAXBASE:MASTER:체력 = 2000
BASE:MASTER:체력 = MAXBASE:MASTER:0
MAXBASE:MASTER:기력 = 2000
BASE:MASTER:기력 = MAXBASE:MASTER:1
;TSP
MAXBASE:MASTER:TSP = 100
BASE:MASTER:TSP = 100

;-----------------------------------------------------------
;모드 선택
;-----------------------------------------------------------
@NEWGAME_MAKE_SELECT_MODE
CLEARLINE 10000
PRINTL ★★모드를 선택해 주세요★★
CALL ASK_CHOICES10("START","역극 모드(일부 구상이 표시되지 않습니다)")
SELECTCASE RESULT
	CASE 0
		FLAG:게임모드 = 0
		CALL NEWGAME_MAKE_ANATA
	CASE 1
		FLAG:게임모드 = 1
		CALL NEWGAME_MAKE_NARIKIRI
		SIF !RESULT
			RESTART
ENDSELECT

;-----------------------------------------------------------
;통상
;-----------------------------------------------------------
@NEWGAME_MAKE_ANATA
PRINTW 게임 개시 전에 당신을 커스터마이즈할 수 있습니다.
CALL CUSTOM_TERMINAL(MASTER)

;-----------------------------------------------------------
;역극
;-----------------------------------------------------------
@NEWGAME_MAKE_NARIKIRI
#DIM nNo
PRINTL
PRINTL 누가 되겠습니까?
CALL ASK_CALLNAME
IF RESULT == 999
	RETURN 0
ELSEIF !IS_NAMED(RESULT)
	RESTART
ENDIF
nNo = RESULT
PRINTFORMW %조사처리(CALLNAME:nNo,"으로")%서 게임을 개시합니다

;역극 복사
NAME:MASTER = %NAME:nNo%
CALLNAME:MASTER = %CALLNAME:nNo%
FOR LOCAL,0,200
	TALENT:MASTER:LOCAL = TALENT:nNo:LOCAL
NEXT
FOR LOCAL,0,55
	ABL:MASTER:LOCAL = ABL:nNo:LOCAL
NEXT
FOR LOCAL,0,14
	MAXBASE:MASTER:LOCAL = MAXBASE:nNo:LOCAL
	BASE:MASTER:LOCAL = MAXBASE:nNo:LOCAL
NEXT
FOR LOCAL,0,100
	EXP:MASTER:LOCAL = EXP:nNo:LOCAL
NEXT
;체력기력 최저치 올림
IF MAXBASE:MASTER:체력 < 2000
	PRINTFORML 이 캐릭터는 체력이 낮습니다. 2000까지 올릴까요?
	CALL ASK_YN("올린다","이대로")
	SIF RESULT == 0
		MAXBASE:MASTER:체력 = 2000
ENDIF
IF MAXBASE:MASTER:기력 < 2000
	PRINTFORML 이 캐릭터는 기력이 낮습니다. 2000까지 올릴까요?
	CALL ASK_YN("올린다","이대로")
	SIF RESULT == 0
		MAXBASE:MASTER:기력 = 2000
ENDIF
;TSP
MAXBASE:MASTER:TSP = 100
BASE:MASTER:TSP = 100
;처녀
IF !TALENT:MASTER:처녀
	PRINTL 처녀가 되겠습니까?
	CALL ASK_YN("네","아니오")
	IF RESULT == 0
		CALL SET_VIRGIN(MASTER)
	ENDIF
ENDIF

;CFLAG:MASTER:초기위치 = CFLAG:nNo:초기위치
FLAG:역극 = nNo
CFLAG:nNo:출금 = 1
CALL CUSTOM_INIT(MASTER)
RETURN 1

;FileName_SHOP_CUSTOM.ERB -------------------------- Rev1. 00
;복장의 설정
;CALL		USER
;ARG		MASTER 캐릭터 NO
;RETURN		VOID
;COMMENT
;-----------------------------------------------------------
@MASTER_CLOTHES_INIT
IF FLAG:역극
	CFLAG:MASTER:기본복장세트 = FLAG:역극 + 100
ELSEIF TALENT:MASTER:성별 & 1
	CFLAG:MASTER:기본복장세트 = 2
ELSE
	CFLAG:MASTER:기본복장세트 = 1
ENDIF

@MASTER_CLOTHES
#DIMS choices, 100
;리스트 작성
VARSET choices
FOR LOCAL, 0, 10
	IF LOCAL >= 7
		choices:LOCAL '= MASTER_CLOTHES_NAME(LOCAL+1)
	ELSE
		choices:LOCAL '= MASTER_CLOTHES_NAME(LOCAL)
	ENDIF
NEXT
choices:99 '= MASTER_CLOTHES_NAME(99)
;표시
PRINTL
PRINTL
PRINTFORML 평상복을 선택해주세요.
DRAWLINE
CALL ASK_CHOICES(choices, 100)
SELECTCASE RESULT
	CASE 100
		RETURN 0
	CASE 0 TO 99
		CALL MASTER_CLOTHES_SET(RESULT)
		SIF RESULT
			RETURN 1
	CASE 99
		CALL MASTER_CLOTHES_SET(99)
			RETURN 1
ENDSELECT
RESTART

@MASTER_CLOTHES_SET(ARG)
SELECTCASE ARG
	CASE 0
		PRINTFORMW 너무 과격하잖아!
		RETURN 0
	CASE 1 TO 6
		CFLAG:MASTER:기본복장세트 = RESULT
	CASE 7 TO 9
		CFLAG:MASTER:기본복장세트 = RESULT + 1
	CASE 99
		CALL MASTER_CLOTHES_INIT
	CASEELSE
		THROW 유효하지 않은 지정입니다。
ENDSELECT
PRINTFORMW 복장을 %조사처리(MASTER_CLOTHES_NAME(CFLAG:MASTER:기본복장세트),"으로")% 변경했습니다.
RETURN 1

@MASTER_CLOTHES_NAME(ARG)
#FUNCTIONS
SELECTCASE ARG
	CASE 0
		RETURNF "전라"
	CASE 1
		RETURNF "남장 세트"
	CASE 2
		RETURNF "여장 세트"
	CASE 3
		RETURNF "집사 세트"
	CASE 4
		RETURNF "가정부 세트"
	CASE 5
		RETURNF "신관 세트"
	CASE 6
		RETURNF "작업복 세트"
	CASE 7
		THROW
	CASE 8
		RETURNF "도복 세트"
	CASE 9
		RETURNF "서생 세트"
	CASE 10
		RETURNF "여학생 세트"
	CASEELSE
		RETURNF CALLNAME:MASTER + "의 기본 의상"
ENDSELECT
THROW


code:
;-----------------------------------------------------------
;캐릭터 선택용 함수
;-----------------------------------------------------------
;-----------------------------------------------------------
;CALLNAME에 의한선택지
;당신과 몹 이외의 모두를 리스트업
;-----------------------------------------------------------
@ASK_CALLNAME
;생성
FOR LOCAL, 0, CHARANUM
	IF !IS_NAMED(LOCAL)
		CONTINUE
	ENDIF
	PRINTFORMLC [{LOCAL, 3}] %CALLNAME:LOCAL%
NEXT
PRINTL
DRAWLINE
PRINTL [999] 그만둔다
;입력 접수
DO
	INPUT
	SIF RESULT == 999 || IS_NAMED(RESULT)
		RETURN RESULT
	CLEARLINE 1
LOOP 1
;-----------------------------------------------------------
;몹과 당신과 출금 이외라면 1을 반환
;-----------------------------------------------------------
@IS_NAMED(ARG)
#FUNCTION
	IF ARG == MASTER || TALENT:ARG:스침 || CFLAG:ARG:출금
		RETURNF 0
	ENDIF
RETURNF 1
;-----------------------------------------------------------
;10번까지의 선택지
;-----------------------------------------------------------
@ASK_CHOICES10(argChoices:0="", argChoices:1="", argChoices:2="", argChoices:3="", argChoices:4="", argChoices:5="", argChoices:6="", argChoices:7="", argChoices:8="", argChoices:9="")
#DIMS argChoices, 10
CALL ASK_CHOICES(argChoices)
RETURN RESULT

;-----------------------------------------------------------
;참조도에서 수 무제한의 선택지
;공란은 개행하지만 연속해서 개행하진 않음, 모두 공란이면 THROW
;-----------------------------------------------------------
@ASK_CHOICES(refChoices, argCanselNo=-1,argCanselText="캔슬")
#DIMS REF refChoices, 0
#DIM DYNAMIC argCanselNo
#DIMS DYNAMIC argCanselText
#DIMS html
#DIM skip
;생성
VARSET skip
VARSET html
FOR LOCAL, 0, VARSIZE("refChoices")
	;공란
	IF refChoices:LOCAL == ""
		;공란 개행은 연속되지 않는다
		IF !skip
			html += "
"
		ENDIF
		skip ++
	;내용 있음
	ELSE
		html += HTML_SPACE(2) +HTML_BUTTON(refChoices:LOCAL, LOCAL, 3) + "
"
		skip = 0
	ENDIF
NEXT
SIF !skip
	html += "
"
SIF argCanselNo >= 0
	html += HTML_SPACE(2) + HTML_BUTTON(argCanselText, argCanselNo, 3) + "
"
SIF html == "
"
	THROW 선택지가 모두 비었습니다.
;표시
HTML_PRINT "
<nobr>"+ "
" + html + "
" + "</nobr>
"
;입력 접수
DO
	INPUT
	SIF argCanselNo || (RESULT < VARSIZE("refChoices") && refChoices:RESULT != "")
		RETURN RESULT
	CLEARLINE 1
LOOP 1
;-----------------------------------------------------------
;참조도에서 선택지를 버튼으로 나열한다
;공란은 무시, 모두 공란이면 THROW
;-----------------------------------------------------------
@ASK_BUTTONS(refChoices)
#DIMS REF refChoices, 0
#DIMS DYNAMIC html
;생성
FOR LOCAL, 0, VARSIZE("refChoices")
	IF refChoices:LOCAL != ""
		html += HTML_SPACE(2) + HTML_BUTTON(refChoices:LOCAL, LOCAL)
	ENDIF
NEXT
SIF html == ""
	THROW 선택지가 모두 비었습니다.
;표시
HTML_PRINT "
" + html + "
" + "
"
;입력 접수
DO
	INPUT
	SIF RESULT < VARSIZE("refChoices") && refChoices:RESULT != ""
		RETURN RESULT
	CLEARLINE 1
LOOP 1


code:
;-----------------------------------------------------------
;처녀설정
;-----------------------------------------------------------
;-----------------------------------------------------------
;처녀설정 메뉴
;-----------------------------------------------------------
@VIRGIN_SET
#DIMS choices, 11
PRINTL
PRINTL 게임 개시 전에 각 캐릭터의 처녀·비처녀를 변경할 수 있습니다.
PRINTL 일괄설정은 어느것이든 하나만 유효합니다
DRAWLINE
VARSET choices
choices:0 '= "개별 설정"
choices:1 '= "전원 섹스가 뭔지도 몰라"
choices:2 '= "전원 처녀가 당연하잖아 멍텅구리아"
choices:3 '= "환상소녀는 오래 사니까 경험이 풍부해"
choices:4 '= "오히려 전원 걸레야"
choices:5 '= "전원 처녀지만 허벌이야"
SIF 전원의정조
	choices:전원의정조 '= "(유효)" + choices:전원의정조
SIF 전원의정조 ||SUMCARRAY(초기정조)
	choices:10 '= "전원 초기 설정으로 되돌린다"

CALL ASK_CHOICES(choices, 100, "완료")
SELECTCASE RESULT
	;시스템
	CASE 0
		CALL SET_VIRGINITY
	CASE 10
		CVARSET 초기정조
		VARSET 전원의정조
		PRINTW 전원 그대로의 상태에서 시작합니다
	CASE 100
		PRINTW 설정을 종료합니다.
		RETURN
	CASE IS == 전원의정조
		전원의정조 = 0
		PRINTW 전체 설정을 비활성화했습니다.
	;정조
	CASE 1
		전원의정조 = RESULT
		PRINTW 코토히메씨 여기예요
		PRINTW 전원 처녀면서 무지 상태로 시작합니다。
	CASE 2
		전원의정조 = RESULT
		PRINTW 이런 처녀 요리사를 봤나!
		PRINTW 전원 처녀 상태로 시작합니다。
	CASE 3
		전원의정조 = RESULT
		PRINTW 전원 비처녀 상태로 시작합니다。
	CASE 4
		전원의정조 = RESULT
		PRINTW 전원 걸레 상태로 시작합니다。
	CASE 5
		PRINTFORMW 따지는 게 많은 놈이네.
		전원의정조 = RESULT
		PRINTW 전원 처녀면서 걸레 상태로 시작합니다。
	CASEELSE
		THROW 유효하지 않은 입력입니다。
ENDSELECT
RESTART

;-----------------------------------------------------------
;개별 설정
;-----------------------------------------------------------
@SET_VIRGINITY
#DIM CHARA_ID
FOR CHARA_ID, 0, CHARANUM
	SIF !IS_NAMED(CHARA_ID)
		CONTINUE
	SIF TALENT:CHARA_ID:처녀
		SETCOLOR C_PINK
	SIF TALENT:CHARA_ID:걸레
		SETCOLOR C_P_BLUE
	LOCALS '= @"[{CHARA_ID, 3}] %SET_VIRGINITY_KEY(초기정조:CHARA_ID:0)%%CALLNAME:CHARA_ID%"
	PRINTFORMLC %LOCALS%
	RESETCOLOR
NEXT
PRINTL
DRAWLINE
PRINTL [999] 설정 종료
DO
	INPUT
	CHARA_ID = RESULT
	SELECTCASE CHARA_ID
		CASE 999
			PRINTW 개별 설정을 종료합니다.
			RETURN
		CASEELSE
			IF !IS_NAMED(CHARA_ID)
				CLEARLINE 1
				CONTINUE
			ENDIF
			BREAK
	ENDSELECT
LOOP 1

초기정조:CHARA_ID:0 ++
SIF 초기정조:CHARA_ID:0 >= 6
	초기정조:CHARA_ID:0 = 0

SELECTCASE 초기정조:CHARA_ID:0
	CASE 0
		PRINTFORMW %CALLNAME:CHARA_ID%의 능력을 초기 설정으로 되돌립니다
	CASE 1
		PRINTFORMW %조사처리(CALLNAME:CHARA_ID, "를")% 처녀면서 무지로 만듭니다
	CASE 2
		PRINTFORMW %조사처리(CALLNAME:CHARA_ID, "를")% 처녀로 만듭니다
	CASE 3
		PRINTFORMW %조사처리(CALLNAME:CHARA_ID, "를")% 비처녀로 만듭니다
	CASE 4
		PRINTFORMW %조사처리(CALLNAME:CHARA_ID, "를")% 걸레로 만듭니다
	CASE 5
		PRINTFORMW %조사처리(CALLNAME:CHARA_ID, "를")% 처녀면서 걸레로 만듭니다
	CASEELSE
		THROW 정조설정이 부적절합니다
ENDSELECT
RESTART
;-----------------------------------------------------------
;設定略語
;-----------------------------------------------------------
@SET_VIRGINITY_KEY(ARG)
#FUNCTIONS
SELECTCASE ARG
	CASE 0
		RETURNF ""
	CASE 1
		RETURNF "[무지]"
	CASE 2
		RETURNF "[처녀]"
	CASE 3
		RETURNF "[숙련]"
	CASE 4
		RETURNF "[걸레]"
	CASE 5
		RETURNF "[처녀빗치]"
	CASEELSE
		THROW 정조설정이 부적절합니다
ENDSELECT
;-----------------------------------------------------------
;처녀設定適用
;-----------------------------------------------------------
@VIRGIN_SET_APPLY
FOR LOCAL, 1, CHARANUM
	IF 초기정조:LOCAL:0
		CALL VIRGIN_SET_APPLY_PART(LOCAL, 초기정조:LOCAL:0)
	ELSE
		CALL VIRGIN_SET_APPLY_PART(LOCAL, 전원의정조)
	ENDIF
NEXT

;-----------------------------------------------------------
;-----------------------------------------------------------
@VIRGIN_SET_APPLY_PART(ARG, ARG:1)
SELECTCASE ARG:1
	CASE 0
	CASE 1
		CALL SET_VIRGIN(ARG)
		TALENT:ARG:무지 = 1
	CASE 2
		CALL SET_VIRGIN(ARG)
	CASE 3
		CALL SET_WELL_EXP(ARG)
	CASE 4
		CALL SET_YARIMAN(ARG)
	CASE 5
		CALL SET_VIRGIN(ARG)
		SIF TALENT:ARG:성별기호 == 1
			TALENT:ARG:성별기호 = 0
		ABL:ARG:욕망 = 3
		TALENT:ARG:걸레 = 1
		TALENT:ARG:정조 = -1
CASEELSE
	THROW 정조설정이 부적절합니다
ENDSELECT

;-----------------------------------------------------------
;체형 변경
;-----------------------------------------------------------
@BODY_SET
#DIMS choices, 11
PRINTL
PRINTL 게임 개시 전에 각 캐릭터의 체형 소질을 변경할 수 있습니다
PRINTL 복수의 설정을 병용할 수도 있습니다
DRAWLINE
VARSET choices
;ロリ
choices:1 '= "전원 소녀같은 어린아이야"
SIF 전원로리화
	choices:1 '= "(유효)" + choices:1
;小人
choices:2 '= "전원 난쟁이야"
SIF 전원난쟁이화
	choices:2 '= "(유효)" + choices:2
;동물귀
choices:3 '= "전원 동물귀야"
SIF 전원동물귀화
	choices:3 '= "(유효)" + choices:3
;ふたなり
choices:4 '= "전원 자지가 나 있어"
SIF 전원후타나리화
	choices:4 '= "(유효)" + choices:4
;リセット
IF 전원로리화 || 전원난쟁이화 || 전원동물귀화 || 전원후타나리화
	choices:10 '= "전원 초기 설정으로 되돌린다"
ELSE
	choices:10 '= "전원 로리면서 난쟁이고 동물귀면서 나 있어"
ENDIF
CALL ASK_CHOICES(choices, 100, "완료")
SELECTCASE RESULT
	CASE 10
		IF 전원로리화 || 전원난쟁이화 || 전원동물귀화 || 전원후타나리화
			전원로리화 = 0
			전원난쟁이화 = 0
			전원동물귀화 = 0
			전원후타나리화 = 0
			PRINTW 설정을 리셋했습니다.
		ELSE
			전원로리화 = 1
			전원난쟁이화 = 1
			전원동물귀화 = 1
			전원후타나리화 = 1
			PRINTW 전원 로리면서 난쟁이고 동물귀면서 난 듯이 만들었습니다.
		ENDIF
	CASE 100
		PRINTW 설정을 종료합니다.
		RETURN
	CASE 1
		IF 전원로리화
			전원로리화 = 0
		ELSE
			전원로리화 = 1
			IF TALENT:MASTER:형상 < 6
				PRINTFORML 가끔은 로리콘도 좋더라!
				PRINTFORML
				PRINTW 전원 유녀로 만들었습니다.
			ELSE
				PRINTFORML 이 사악한 놈！
				PRINTFORML
				PRINTW 전원 유녀로 만들었습니다.
			ENDIF
		ENDIF
	CASE 2
		IF 전원난쟁이화
			전원난쟁이화 = 0
		ELSE
			전원난쟁이화 = 1
			IF TALENT:MASTER:형상 < 3
				PRINTW 전원 난쟁이로 만들었습니다.
			ELSE
				PRINTFORML 이런 망할놈이!
				PRINTFORML
				PRINTW 전원 난쟁이로 만들었습니다.
			ENDIF
		ENDIF
	CASE 3
		IF 전원동물귀화
			전원동물귀화 = 0
		ELSE
			전원동물귀화 = 1
			PRINTFORMW 전원 동물귀로 만들었습니다.
		ENDIF
	CASE 4
		IF 전원후타나리화
			전원후타나리화 = 0
		ELSE
			전원후타나리화 = 1
			PRINTFORMW 전원 후타나리로 만들었습니다.
		ENDIF
ENDSELECT
RESTART

@SET_BODY_APPLY
;로리 뒤에 난쟁이가 아니라면 난쟁이가 덮어쓴다
IF 전원로리화
	FOR LOCAL,1,CHARANUM
		CALL SET_LOLI(LOCAL)
	NEXT
ENDIF
IF 전원난쟁이화
	FOR LOCAL,1,CHARANUM
		TALENT:LOCAL:체형 = -5
	NEXT
ENDIF
IF 전원동물귀화
	FOR LOCAL,1,CHARANUM
		TALENT:LOCAL:143 = 1
	NEXT
ENDIF
IF 전원후타나리화
	FOR LOCAL,1,CHARANUM
		CALL SET_FUTANARI(LOCAL)
	NEXT
ENDIF

;-----------------------------------------------------------
;초기화
;강하게뉴게임에서도 사용된다
;CFLAG의 리셋는 인계에 지장이 있으므로 금지
;-----------------------------------------------------------
@RESET_CHARA(ARG)
FOR LOCAL, 0, VARSIZE("TALENTNAME")
	TALENT:ARG:LOCAL = CSVTALENT(ARG, LOCAL)
NEXT
FOR LOCAL, 0, VARSIZE("EXPNAME")
	EXP:ARG:LOCAL = CSVEXP(ARG, LOCAL)
NEXT
FOR LOCAL, 0, VARSIZE("ABLNAME")
	ABL:ARG:LOCAL = CSVABL(ARG, LOCAL)
NEXT
FOR LOCAL, 0, VARSIZE("EXPNAME")
	EXP:ARG:LOCAL = CSVEXP(ARG, LOCAL)
NEXT
FOR LOCAL, 0, VARSIZE("BASENAME")
	BASE:ARG:LOCAL = CSVBASE(ARG, LOCAL)
	MAXBASE:ARG:LOCAL = BASE:ARG:LOCAL
NEXT

;-----------------------------------------------------------
;처녀화
;-----------------------------------------------------------
@SET_VIRGIN(ARG)
TALENT:ARG:처녀 = 1
EXP:ARG:C경험 = 0
EXP:ARG:B경험 = 0
EXP:ARG:V경험 = 0
EXP:ARG:A경험 = 0
ABL:ARG:V감각 = 0
ABL:ARG:A감각 = 0
EXP:ARG:V성교경험 = 0
EXP:ARG:V확장경험 = 0
EXP:ARG:자궁구개발경험 = 0
EXP:ARG:A성교경험 = 0
EXP:ARG:A확장경험 = 0
EXP:ARG:수음경험 = 0
EXP:ARG:펠라티오경험 = 0
EXP:ARG:파이즈리경험 = 0
EXP:ARG:키스경험 = 0
EXP:ARG:봉사쾌락경험 = 0
EXP:ARG:애정경험 = 0
EXP:ARG:고통쾌락경험 = 0
EXP:ARG:가학쾌락경험 = 0
EXP:ARG:노출쾌락경험 = 0
EXP:ARG:긴박경험 = 0
EXP:ARG:절정경험 = 0
EXP:ARG:사정경험 = 0
EXP:ARG:분유경험 = 0
EXP:ARG:방뇨경험 = 0
EXP:ARG:정액경험 = 0
EXP:ARG:정음경험 = 0
EXP:ARG:출산경험 = 0
TALENT:ARG:키스미경험 = 1
TALENT:ARG:걸레 = 0
TALENT:ARG:성별기호 = CSVTALENT(ARG,81)
TALENT:ARG:정조 = CSVTALENT(ARG,30)
ABL:ARG:허리 = CSVABL(ARG, GETNUM(ABL, "허리"))
ABL:ARG:욕망 = CSVABL(ARG, GETNUM(ABL, "욕망"))

;-----------------------------------------------------------
;경험 풍부
;-----------------------------------------------------------
@SET_WELL_EXP(ARG)
TALENT:ARG:처녀 = 0
SIF TALENT:ARG:성별기호 == 1
	TALENT:ARG:성별기호 = 0
EXP:ARG:V경험 = MAX(EXP:ARG:V경험, 50)
ABL:ARG:V감각 = MAX(ABL:ARG:V감각, 2)
ABL:ARG:허리 = MAX(ABL:ARG:허리, 2)
EXP:ARG:V성교경험 = MAX(EXP:ARG:V경험, 50)
EXP:ARG:V확장경험 = MAX(EXP:ARG:V확장경험, 3)
EXP:ARG:정액경험 = MAX(EXP:ARG:정액경험, 10)

;-----------------------------------------------------------
;걸레
;-----------------------------------------------------------
@SET_YARIMAN(ARG)
TALENT:ARG:처녀 = 0
SIF TALENT:ARG:성별기호 == 1
	TALENT:ARG:성별기호 = 0
EXP:ARG:V경험 = MAX(EXP:ARG:V경험, 100)
ABL:ARG:V감각 = MAX(ABL:ARG:V감각, 3)
ABL:ARG:허리 = MAX(ABL:ARG:허리, 3)
ABL:ARG:욕망 = 3
EXP:ARG:V성교경험 = MAX(EXP:ARG:V경험, 100)
EXP:ARG:V확장경험 = MAX(EXP:ARG:V확장경험, 3)
EXP:ARG:정액경험 = MAX(EXP:ARG:정액경험, 50)
TALENT:ARG:걸레 = 1
TALENT:ARG:정조 = -1

;-----------------------------------------------------------
;로리
;-----------------------------------------------------------
@SET_LOLI(ARG)
TALENT:ARG:가슴사이즈 = MAX(TALENT:ARG:가슴사이즈 - 2, -2)
TALENT:ARG:체형 = -2

;-----------------------------------------------------------
;후타나리
;-----------------------------------------------------------
@SET_FUTANARI(ARG)
TALENT:ARG:성별 = 3
TALENT:ARG:형상 = 3
MAXBASE:ARG:발기 = 1500
MAXBASE:ARG:정력 = 1000

;-------------------------------
;KR판 구잔재/오리지날 데이터 저장
;@VIRGIN_SET에서 호출하던 함수
;ARG = 0 : 전원 섹스에 미쳐있음
;나머지는 숨겨진 선택지였음.
;-------------------------------
@MAKE_HENTAI(ARG)
FOR LOCAL, 1, CHARANUM
	CFLAG:LOCAL:호감도 = 200
	ABL:LOCAL:욕망 = MAX(30, ABL:LOCAL:욕망)
	ABL:LOCAL:순종 = MAX(10, ABL:LOCAL:순종)
	ABL:LOCAL:자위중독 = MAX(5, ABL:LOCAL:자위중독)
	ABL:LOCAL:C감각 = MAX(3, ABL:LOCAL:C감각)
	ABL:LOCAL:V감각 = MAX(3, ABL:LOCAL:V감각)
	ABL:LOCAL:A감각 = MAX(3, ABL:LOCAL:A감각)
	ABL:LOCAL:B감각 = MAX(3, ABL:LOCAL:B감각)
	ABL:LOCAL:M감각 = MAX(3, ABL:LOCAL:M감각)
	TALENT:LOCAL:자위중독 = 1
	TALENT:LOCAL:도착적 = 1
	TALENT:LOCAL:쾌감응답 = 1
	TALENT:LOCAL:정조 = -1
	TALENT:LOCAL:젖기쉬움 = 1
	TALENT:LOCAL:성별기호 = -1
	TALENT:LOCAL:악취내성 = 1
NEXT

IF ARG > 0
	FOR LOCAL, 1, CHARANUM
		CFLAG:LOCAL:호감도 = 500
		TALENT:LOCAL:악취내성 = 2
		ABL:LOCAL:욕망 = MAX(35, ABL:LOCAL:욕망)
		ABL:LOCAL:순종 = MAX(15, ABL:LOCAL:순종)
		ABL:LOCAL:자위중독 = MAX(10, ABL:LOCAL:자위중독)
		MAXBASE:LOCAL:체력 = MAX(2250, MAXBASE:LOCAL:체력)
		MAXBASE:LOCAL:기력 = MAX(1750, MAXBASE:LOCAL:기력)
		MARK:LOCAL:쾌락각인 = 1

		BASE:LOCAL:체력 = MAXBASE:LOCAL:체력
		BASE:LOCAL:기력 = MAXBASE:LOCAL:기력
	NEXT
ENDIF

IF ARG > 1
	FOR LOCAL, 1, CHARANUM
		CFLAG:LOCAL:호감도 = 1000
		TALENT:LOCAL:악취내성 = 3
		ABL:LOCAL:욕망 = MAX(45, ABL:LOCAL:욕망)
		ABL:LOCAL:순종 = MAX(25, ABL:LOCAL:순종)
		ABL:LOCAL:자위중독 = MAX(20, ABL:LOCAL:자위중독)
		MAXBASE:LOCAL:체력 = MAX(3500, MAXBASE:LOCAL:체력)
		MAXBASE:LOCAL:기력 = MAX(2500, MAXBASE:LOCAL:기력)
		TALENT:LOCAL:즉각함락 = 1
		MARK:LOCAL:쾌락각인 = 2

		BASE:LOCAL:체력 = MAXBASE:LOCAL:체력
		BASE:LOCAL:기력 = MAXBASE:LOCAL:기력
	NEXT
ENDIF

IF ARG > 2
	FOR LOCAL, 1, CHARANUM
		ABL:LOCAL:욕망 = MAX(99, ABL:LOCAL:욕망)
		TALENT:LOCAL:애욕 = 1
		TALENT:LOCAL:섹프 = 1
		CFLAG:LOCAL:호감도 = 3000
		EXP:LOCAL:절정경험 = 500
		MAXBASE:LOCAL:체력 = MAX(5000, MAXBASE:LOCAL:체력)
		MAXBASE:LOCAL:기력 = MAX(3500, MAXBASE:LOCAL:기력)
		MARK:LOCAL:쾌락각인 = 3

		BASE:LOCAL:체력 = MAXBASE:LOCAL:체력
		BASE:LOCAL:기력 = MAXBASE:LOCAL:기력
	NEXT
ENDIF


code:
;-----------------------------------------------------------
;강하게 뉴게임
;-----------------------------------------------------------
@강하게뉴게임

게임인계처리중 = 1
FLAG:주회수 ++
CALL BUFF_RESET
CALL BITE_THE_DUST_BACKUP
CALL BITE_THE_DUST_CLEAR
CALL BITE_THE_DUST_RESTORE
CALL BITE_THE_DUST_NEW
CALL BITE_THE_DUST_SWEEP
게임인계처리중 = 0
CALL NEWGAME_VERUP
RETURN 1

;-----------------------------------------------------------
;변수 백업
;-----------------------------------------------------------
@BITE_THE_DUST_BACKUP
;역극
IF FLAG:역극
	전회의역극출금 = CFLAG:(FLAG:역극):출금
ENDIF
;주회 전의 성장분을 기록
전회의체력 = MAXBASE:MASTER:체력
전회의기력 = MAXBASE:MASTER:기력
전회의정력 = MAXBASE:MASTER:정력

전회의체력증가량 = MAX(0, MAXBASE:MASTER:체력 - CSVBASE(FLAG:역극, GETNUM(BASE, "체력")))
전회의기력증가량 = MAX(0, MAXBASE:MASTER:기력 - CSVBASE(FLAG:역극, GETNUM(BASE, "기력")))
전회의정력증가량 = MAX(0, MAXBASE:MASTER:정력 - 1000)

;리셋 전의 캐릭터인원수를 LOCAL:6에 기록해 둔다.
전회의캐릭터수 = CHARANUM

FOR LOCAL,1,CHARANUM
	전회의CFLAG:LOCAL = CFLAG:LOCAL:구상용인계틀
	IF TALENT:LOCAL:연인 || GETBIT(CFLAG:LOCAL:인계, 1)
		SETBIT TFLAG:(LOCAL + 500), 1
	ELSEIF TALENT:LOCAL:연모 || TALENT:LOCAL:애욕 ||  GETBIT(CFLAG:LOCAL:인계, 0)
		SETBIT TFLAG:(LOCAL + 500), 0
	ENDIF
	SIF TALENT:LOCAL:자위중독 || GETBIT(CFLAG:LOCAL:인계, 2)
		SETBIT TFLAG:(LOCAL + 500), 2
	SIF TALENT:LOCAL:음호 || GETBIT(CFLAG:LOCAL:인계, 3)
		SETBIT TFLAG:(LOCAL + 500), 3
	SIF TALENT:LOCAL:항문광 || GETBIT(CFLAG:LOCAL:인계, 4)
		SETBIT TFLAG:(LOCAL + 500), 4
	SIF TALENT:LOCAL:음유 || GETBIT(CFLAG:LOCAL:인계, 5)
		SETBIT TFLAG:(LOCAL + 500), 5
	SIF TALENT:LOCAL:키스마 || GETBIT(CFLAG:LOCAL:인계, 6)
		SETBIT TFLAG:(LOCAL + 500), 6
	FOR LOCAL:1,0,40
		전회의팬티:LOCAL:(LOCAL:1) = CFLAG:LOCAL:(LOCAL:1 + 100)
	NEXT
NEXT

;-----------------------------------------------------------
;변수 클리어
;-----------------------------------------------------------
@BITE_THE_DUST_CLEAR
VARSET JUEL
VARSET MOBGIRL_PLACE, 99
CALL BITE_THE_DUST_CLEAR_FLAG
CALL BITE_THE_DUST_CLEAR_GLOBAL_VARIABLE
;대본 리셋
VARSET ITEM, 0, 101, 110
CFLAG:MASTER:초대 = 0
CFLAG:MASTER:육아인원수 = 0
CFLAG:MASTER:아이인원수 = 0
;당신의 기정사실 및[연인]을 클리어
CLEARBIT CFLAG:MASTER:기정사실, 2
TALENT:MASTER:연인 = 0
;당신 이외 전원 리셋.
;여기서 CHARANUM의 값이 바뀌므로 주의
TARGET = 0
ASSI = 0
VARSET MOBGIRL_PLACE, 99
PICKUPCHARA MASTER
VARSET JUEL
;당신リセット
PRINTFORML %CALLNAME:MASTER%의 경험·능력도 리셋하겠습니까?
CALL COLORMESSAGE(@"실적으로 취득한 소질 등도 취소되기 때문에 추천하지 않습니다", C_YELLOW,1)
CALL ASK_YN
IF !RESULT
	FOR LOCAL,0, 100
		ABL:MASTER:LOCAL = 0
		EXP:MASTER:LOCAL = 0
	NEXT
	FOR LOCAL,100, 150
		EXP:MASTER:LOCAL = 0
	NEXT
	PRINTFORMW 리셋 했습니다.
ENDIF

;-----------------------------------------------------------
;FLAG 리셋
;-----------------------------------------------------------
@BITE_THE_DUST_CLEAR_FLAG
FOR LOCAL,0, VARSIZE("FLAG")
	;범위로부터 지정
	SELECTCASE LOCAL
		;팬티와 실적
		CASE 700 TO 709
			CONTINUE
		;OPTION
		CASE 4 TO 7
			CONTINUE
		CASE 1001 TO 1099
			IF FLAGNAME:LOCAL != "출금인원수"
				CONTINUE
			ENDIF
		CASE IS >= 1500
			CONTINUE
		CASEELSE
			;명칭으로부터의 지정
			SELECTCASE FLAGNAME:LOCAL
				CASE "주회수", "역극"
					CONTINUE
				CASE "발원내용", "정력강화회수"
					CONTINUE
				CASE "중혼가능인원수", "연모특전", "연모특전2", "연인특전", "연인특전2"
					CONTINUE
				;누적 횟수
				CASE "청소중독"
					CONTINUE
				;OPTION
				CASE "생리주기가시화", "짐작모드", "C스키마자동사양"
					CONTINUE
			ENDSELECT
	ENDSELECT
	FLAG:LOCAL = 0
NEXT

;-----------------------------------------------------------
;캐릭터 복귀
;-----------------------------------------------------------
@BITE_THE_DUST_RESTORE
;리셋이전캐릭터 인원수로 FOR문을 돌린다
FOR LOCAL, 1, 전회의캐릭터수
	;CSV 파일의 존재 판정
	IF !EXISTCSV(LOCAL)
		CONTINUE
	ENDIF
	IF GETCHARA (LOCAL) == -1
		ADDCHARA LOCAL
	;시험 삼아 CALL KOJO_MULTIPLE을 FOR~NEXT 루프 밖으로 내보내기
	;CALL KOJO_MULTIPLE(LOCAL)
	ENDIF
	;효율화 추구를 위해 인계 플래그와 동시에 돌린다
	;파일 체크는 벌써 하고 있기 때문에 그 안에서 돌리면 끝나는 이야기였습니다(반성)
	FOR LOCAL:1,0,40
		;인계 플래그세트
		IF LOCAL:1 < 7 && GETBIT(TFLAG:(LOCAL + 500), LOCAL:1)
			SETBIT CFLAG:LOCAL:인계, LOCAL:1
		ENDIF
		;팬티콜렉션의 인계
		CFLAG:LOCAL:(LOCAL:1 + 100) = 전회의팬티:LOCAL:(LOCAL:1)
	NEXT
	CFLAG:LOCAL:구상용인계틀 = 전회의CFLAG:LOCAL
	;키스미경험의 리셋
	SIF EXP:LOCAL:키스경험 == 0
		 TALENT:LOCAL:키스미경험 = 1
NEXT

;위쪽 루프에서 이사
FOR LOCAL,1,전회의캐릭터수
	CALL KOJO_MULTIPLE(LOCAL)
NEXT
;역극 캐릭터의 출금을 체크
IF 전회의역극출금
	CFLAG:(FLAG:역극):출금 = 전회의역극출금
	FLAG:출금인원수 ++
ENDIF

;-----------------------------------------------------------
;유사 뉴게임
;-----------------------------------------------------------
@BITE_THE_DUST_NEW
;Default 옵션
CALL DEFAULT_OPTION
CALL SET_CHARISMA("RESET")
PBAND = 12
;일자 1 일째
DAY = 1
DAY:2 = 1
DAY:3 = 1
;FLAG:술벌레 = 1
VAR_FERMENT = 그냥 물
;(天候パッチ)冷害発生回数・風害発生回数・水害発生回数・連続降水カウンターをリセット
IS_COLD_CROP_DAMAGE = 0
IS_STORM_CROP_DAMAGE = 0
IS_FLOOD_CROP_DAMAGE = 0
CONTINUOUS_RAINFALL = 0
;(天候パッチ)降雪・雪崩判定を解除
CONTINUOUS_SNOWFALL = 0
SNOW_COVERAGE = 0
POSSIBLITY_AVALANCHE = 0
;(天候パッチ)時間帯をリセット
WEATHER_TIMEZOME = 0
;(天候パッチ)長期天候傾向をリセット
YEAR_WEATHER_CONTROL = 0
;(天候パッチ)短期予報を行う
CALL WEATHER_FORECAST_1TERM
;(天候パッチ)1日予報を行う
CALL WEATHER_FORECAST_1DAY
STR:16 = 낡은 오두막
;MASTER 기상시간 세트(7시)
VARSET TIME
TIME:3 = 420
;MASTER 수면중 플래그 ON
CALL SET_SLEEP(1, MASTER, 0)
CFLAG:MASTER:취침시간 = 0
BASE:MASTER:체력 = MAXBASE:MASTER:체력
BASE:MASTER:기력 = MAXBASE:MASTER:기력
BASE:MASTER:정력 = MAXBASE:MASTER:정력
IF !FLAG:역극
	PRINTFORML %마스터를% 커스터마이즈하겠습니까?
	CALL ASK_YN
	IF !RESULT
		CALL CUSTOM_TERMINAL(MASTER)
	ELSE
		CALL CUSTOM_INIT(MASTER)
	ENDIF
ENDIF
;BASE 성장치의 가산 처리
LOCAL = 0
IF 전회의체력증가량 > 0 && (MAXBASE:MASTER:체력 != 전회의체력)
	PRINTFORML "이전 세계"에서의 경험이 %CALLNAME:MASTER%의 힘이 되었다
	PRINTFORML ……%CALLNAME:MASTER%의 체력이 {전회의체력증가량} 증가했다
	MAXBASE:MASTER:체력 += 전회의체력증가량
	BASE:MASTER:체력 = MAXBASE:MASTER:체력
	LOCAL ++
ENDIF
IF 전회의기력증가량 > 0 && (MAXBASE:MASTER:기력 != 전회의기력)
	SIF !LOCAL
		PRINTFORML "이전 세계"에서의 경험이 %CALLNAME:MASTER%의 힘이 되었다
	PRINTFORML ……%CALLNAME:MASTER%의 기력이 {전회의기력증가량} 증가했다
	MAXBASE:MASTER:기력 += 전회의기력증가량
	BASE:MASTER:기력 = MAXBASE:MASTER:기력
	LOCAL ++
ENDIF
IF 전회의정력증가량 > 0 && (MAXBASE:MASTER:정력 != 전회의정력)
	SIF !LOCAL
		PRINTFORML "이전 세계"에서의 경험이 %CALLNAME:MASTER%의 힘이 되었다
	PRINTFORML ……%CALLNAME:MASTER%의 정력이 {전회의정력증가량} 증가했다
	MAXBASE:MASTER:정력 += 전회의정력증가량
	BASE:MASTER:정력 = MAXBASE:MASTER:정력
	LOCAL ++
ENDIF
SIF LOCAL
	WAIT
CALL SET_MAINHOME
CALL NEWGAME_OPTION

;초기 지점 설정
FOR LOCAL, 0, CHARANUM
	;개시 위치
	CFLAG:LOCAL:현재위치 = CFLAG:LOCAL:초기위치
	;복장
	CALL SELECT_CLOTHES(LOCAL, "오늘의 의상")
	CALL CTRL_CLOTHES_SET(LOCAL, "현재 의상의 변경_평상복")
	CALL 속옷확인리셋(LOCAL)
	;이것 아마 문제 안되겠지만 일단
	CFLAG:LOCAL:파자마 = 0
	CALL CLOTHES_SETTING_TRAIN(LOCAL)
	CVARSET BASE, GETNUM(BASE, "술기운"), 0
NEXT
;罠全リセット
CALL TRAP_V_ALLRESET()
;虫トラップリセット
MUSHI_TRAP = 0

;-----------------------------------------------------------
;변수의 청소
;-----------------------------------------------------------
@BITE_THE_DUST_SWEEP
VARSET 전회의체력
VARSET 전회의체력증가량
VARSET 전회의기력
VARSET 전회의기력증가량
VARSET 전회의캐릭터수
VARSET 전회의역극출금
VARSET 전회의CFLAG
VARSET 전회의팬티

;-----------------------------------------------------------
;동일 캐릭터 구상 둘 이상 확인
;ARG=캐릭터번호
;현재 동일 캐릭터 구상은 최대 4개까지 상정
;-----------------------------------------------------------
@KOJO_MULTIPLE(C_ID)
#DIM C_ID
#DIM DYNAMIC 구상카운트
#DIM DYNAMIC 구상수
#DIM DYNAMIC 구상실장수
VARSET LOCALS
;동일 캐릭터 구상 둘 이상 확인
FOR 구상카운트,0,5
	IF 구상카운트
		RESULT = 0
		TRYCALLFORM M_KOJO_K{C_ID}_{구상카운트}
		IF RESULT
			IF !GETBIT(CFLAG:C_ID:구상실장상황,구상카운트)
				구상수 += 1
				구상실장수 += 1
				SETBIT CFLAG:C_ID:구상실장상황,구상카운트
			ELSEIF GETBIT(CFLAG:C_ID:구상실장상황,구상카운트)
				구상실장수 += 1
			ENDIF
		ENDIF
	ELSE
		TRYCALLFORM M_KOJO_K{C_ID}
		IF RESULT
			IF !GETBIT(CFLAG:C_ID:구상실장상황,구상카운트)
				구상수 += 1
				구상실장수 += 1
				SETBIT CFLAG:C_ID:구상실장상황,구상카운트
			ELSEIF GETBIT(CFLAG:C_ID:구상실장상황,구상카운트)
				구상실장수 += 1
			ENDIF
		ELSE
			CFLAG:C_ID:구상실장상황 = 0
		ENDIF
	ENDIF
	SIF !RESULT
		BREAK
NEXT
;구상 존재 판정
IF 구상수
	;신규 별인구상추가
	IF 구상실장수 > 1
		RESULTS:1 =
		;구상명의 보존 및 구현 현황 덮어쓰기
		FOR 구상카운트,0,구상실장수 + 1
			IF 구상카운트
				RESULT = 0
				TRYCALLFORM M_KOJO_K{C_ID}_{구상카운트}
			ELSE
				TRYCALLFORM M_KOJO_K{C_ID}
			ENDIF
			SIF !RESULT
				BREAK
			SIF RESULTS:1 == ""
				RESULTS:1 = 초기
			IF RESULT
				LOCALS:(구상카운트 + 1) = %CALLNAME:C_ID%%RESULTS:1%구상
				RESULT = 0
			ENDIF
		NEXT
		PRINTFORML %CALLNAME:C_ID%에게는 복수의 구상이 존재합니다
		PRINTFORML 변경하시겠습니까?
		CALL ASK_YN
		;구상선택
		IF !RESULT
			LOCALS:0 = 어떤 구상을 사용할까요?
			CALL CHOICE(LOCALS:0, LOCALS:1, LOCALS:2, LOCALS:3, LOCALS:4)
			CFLAG:C_ID:구상셀렉터 = RESULT
			RETURN 2
		ELSE
			PRINTFORML 변경하지 않았습니다
			RETURN 1
		ENDIF
	ELSE
		RETURN 2
	ENDIF
ENDIF
SIF 구상실장수
	RETURN 1
RETURN 0

;-----------------------------------------------------------
;사용자 정의 광역 변수 초기화
;-----------------------------------------------------------
@BITE_THE_DUST_CLEAR_GLOBAL_VARIABLE
;데일리23
FLAG_DAILY_EV23 = 0
FLAG_DAILY_EV23_판매원 = 0
;외출이벤트06
GO_OUT_FLAG_06 = 0


code:
;-----------------------------------------------------------
;함락 캐릭터의 소질 변경
;-----------------------------------------------------------
@주회특전
PRINTL
PRINTL
PRINTL ＊주회특전＊
PRINTL 이전 연인이었던 적이 있는 캐릭터의 소질을 변경할 수 있습니다
PRINTL 이전 연모 또는 애욕을 취득했던 적이 있는 캐릭터의 일부 소질을 변경할 수 있습니다
PRINTL
PRINTL
CALL 주회특전_캐릭터선택
SELECTCASE RESULT
	CASE 999
		RETURN
	;CASE 997
	;	CALL SaveTalentSet
	CASE 998
		CALL LoadTalentSet
	CASEELSE
		IF GETBIT(CFLAG:RESULT:인계, 1)
			CALL CUSTOM_TERMINAL(RESULT, 1)
		ELSEIF GETBIT(CFLAG:RESULT:인계, 0)
			CALL LIMITED_CUSTOM(RESULT)
		ENDIF
ENDSELECT
RESTART

;-----------------------------------------------------------
;-----------------------------------------------------------
@주회특전_캐릭터선택
;생성
LOCAL:1 = 0
FOR LOCAL, 0, CHARANUM
	IF !IS_NAMED(LOCAL)
		CONTINUE
	ENDIF
	SIF SuccSetting:LOCAL
		FONTBOLD
	IF GETBIT(CFLAG:LOCAL:인계, 1)
		SETCOLOR C_PINK
		PRINTFORMLC [{LOCAL, 3}] %CALLNAME:LOCAL%
		LOCAL:1 ++
	ELSEIF GETBIT(CFLAG:LOCAL:인계, 0)
		SETCOLOR C_YELLOW
		PRINTFORMLC [{LOCAL, 3}] %CALLNAME:LOCAL%
		LOCAL:1 ++
	ENDIF
NEXT
RESETCOLOR
FONTREGULAR
;그 외 선택지
PRINTL
DRAWLINE
;PRINTL [997] 인계설정 세이브
PRINTL [998] 인계설정 일괄 로드
DRAWLINE
PRINTL [999] 설정 종료
PRINTL
;입력 접수
DO
	INPUT
	SELECTCASE RESULT
	;CASE 997
	;	RETURN RESULT
	CASE 998
		RETURN RESULT
	CASE 999
		RETURN RESULT
	CASEELSE
		SIF IS_NAMED(RESULT) && (GETBIT(CFLAG:RESULT:인계, 1) || GETBIT(CFLAG:RESULT:인계, 0))
			RETURN RESULT
	ENDSELECT
	CLEARLINE 1
LOOP 1

;-----------------------------------------------------------
;-----------------------------------------------------------
@주회특전_적용
FOR LOCAL,1,CHARANUM
	SIF TCVAR:LOCAL:감도상승부위
		TALENT:LOCAL:(TCVAR:LOCAL:감도상승부위) ++
NEXT

;-----------------------------------------------------------
;표시명
;-----------------------------------------------------------
@주회특전_표시
#FUNCTIONS
FOR LOCAL, 1, CHARANUM
	IF IS_NAMED(LOCAL) && (GETBIT(CFLAG:LOCAL:인계, 1) || GETBIT(CFLAG:LOCAL:인계, 0))
		RETURNF "" + "주회특전: 소질변경을 할 수 있는 캐릭터가 있습니다" + ""
	ENDIF
NEXT
RETURNF ""

;-----------------------------------------------------------
;저장
;-----------------------------------------------------------
;@SaveTalentSet
;#DIM C_ID
;FOR C_ID,1,CHARANUM
;	FOR LOCAL, 0, 160
;		TalentSet:C_ID:LOCAL = TALENT:C_ID:LOCAL
;	NEXT
;NEXT
;FLAG:인계설정저장완료 = CHARANUM - 1
;PRINTFORMW 인계 설정을 저장했습니다
;-----------------------------------------------------------
@SAVE_CUSTOM_TALENT(C_ID, ARGS)
#DIM C_ID
LOCALS = 현재의 설정을 저장
CALL ASK_M(@"현재의 설정을 저장",1, "보존한 설정을 리셋", SuccSetting:C_ID ,"캔슬",1)
SELECTCASE RESULT
	CASE 0
		FOR LOCAL, 0, 160
			TalentSet:C_ID:LOCAL = TALENT:C_ID:LOCAL
		NEXT
		SuccSetting:C_ID = 1
		IF ARGS == "연인"
			SuccBASE:C_ID:0 = MAXBASE:C_ID:0
			SuccBASE:C_ID:1 = MAXBASE:C_ID:1
			SuccSetting:C_ID = 2
			FOR LOCAL,0,100
				SuccABL:C_ID:LOCAL = ABL:C_ID:LOCAL
				SuccEXP:C_ID:LOCAL = EXP:C_ID:LOCAL
			NEXT
		ENDIF
		PRINTFORMW %CALLNAME:C_ID%의 설정을 저장했습니다.
	CASE 1
		VARSET TalentSet:C_ID:0, 0
		SuccSetting:C_ID = 0
		PRINTFORMW %CALLNAME:C_ID%의 설정을 리셋했습니다.
	CASE 2
ENDSELECT
;-----------------------------------------------------------
@LoadTalentSet
#DIM C_ID
;IF !FLAG:인계설정저장완료
;	THROW 인계설정이 없습니다。
;ENDIF
FOR C_ID, 1, CHARANUM
	SIF !SuccSetting:C_ID
		CONTINUE
	FOR LOCAL,0,160
		TALENT:C_ID:LOCAL = TalentSet:C_ID:LOCAL
	NEXT
	IF SuccSetting:C_ID == 2
		MAXBASE:C_ID:0 = SuccBASE:C_ID:0
		MAXBASE:C_ID:1 = SuccBASE:C_ID:1
		FOR LOCAL,0,100
			ABL:C_ID:LOCAL = SuccABL:C_ID:LOCAL
			EXP:C_ID:LOCAL = SuccEXP:C_ID:LOCAL
		NEXT
	ENDIF
	PRINTFORML %CALLNAME:C_ID%의 인수 설정을 로드했습니다
NEXT

;-----------------------------------------------------------
;주회시 연모특전으로부터의 커스터마이즈용
;-----------------------------------------------------------
@LIMITED_CUSTOM(ARG)
#DIMS choices, 10
#DIM part
;표시
PRINTL
PRINTL
PRINTFORML %NAME:ARG%
PRINTFORML 현재 체형: %GET_TALENTNAME(100,TALENT:ARG:100)%\@ TALENT:ARG:100 == 0? 보통# \@
PRINTFORML 현재 가슴사이즈: %GET_TALENTNAME(105,TALENT:ARG:105)%\@ TALENT:ARG:105 == 0? 평유# \@
FOR LOCAL, 101, 107
	IF LOCAL == 105
		CONTINUE
	ENDIF
	PRINTFORM %TALENTNAME:LOCAL%：
	SELECTCASE TALENT:ARG:LOCAL
		CASE -1
			PRINTFORM 둔감
		CASE 0
			PRINTFORM 보통
		CASE 1
			PRINTFORM 민감
	ENDSELECT
NEXT
PRINTFORML
DRAWLINE
;선택지
VARSET choices
choices:0 '= "체형 변경", "가슴사이즈 변경", "감도 변경", "전 부위 민감","설정 저장"
CALL ASK_CHOICES(choices, 100, "종료")
SELECTCASE RESULT
	CASE 100
		RETURN
	CASE 0
		VARSET choices
		choices:0 '= "난쟁이", "", "", "유아체형", "작은체형", "보통", "장신", "거구"
		CALL ASK_CHOICES(choices, 100, "돌아간다")
		SELECTCASE RESULT
			CASE 0, 3 TO 7
				TALENT:ARG:체형 = RESULT - 5
		ENDSELECT
	CASE 1
		VARSET choices
		choices:0 '= "절벽", "빈유", "평유", "거유", "폭유"
		CALL ASK_CHOICES(choices, 100, "돌아간다")
		SELECTCASE RESULT
			CASE 0 TO 4
				TALENT:ARG:가슴사이즈 = RESULT - 2
		ENDSELECT
	CASE 2
		VARSET choices
		FOR LOCAL, 1, 7
			IF LOCAL == 5
				CONTINUE
			ENDIF
			choices:LOCAL '= TALENTNAME:(LOCAL + 100)
		NEXT
		CALL ASK_CHOICES(choices, 100, "돌아간다")
		part = RESULT + 100
		SELECTCASE TALENTNAME:part
			CASE "C감도", "V감도", "A감도", "B감도", "M감도"
				CALL ASK_M("둔감",1,"보통",1,"민감",1)
				TALENT:ARG:part = RESULT - 1
		ENDSELECT
	CASE 3
		FOR LOCAL, 101, 107
			IF LOCAL == 105
				CONTINUE
			ENDIF
			TALENT:ARG:LOCAL = 1
		NEXT
	CASE 4
		CALL SAVE_CUSTOM_TALENT(ARG, "연모")
ENDSELECT
RESTART


code:
[SKIPSTART]
소작인용 각종 설정 함수

돈은 주지만 구속 시간에 나누면 대단히 박봉, 즉 풍미입니다(에서도 받을 수 있으면(자) 기쁘네요)
표준의 보수 계수를 400으로서 격차 있어, 히가시카타 자세하게 없기 때문에 위화감 있으면(자) 바꾸어 창고 차이
450은 장사 하고 있는 것 같은 사람들

착상을 있는 것 전부 쌓았다
자주(잘) 몰랐던 사람들은 실장하고 있지 않다
추가·정정 구한다

치운 소재
·카센 저택 뒷산에 과일마누(밤, 감, 매화 등)
그냥 이미지대로 있을 듯
여러모로 너무 애매해서 일단 보류
·도레미 씨가 설탕을 생산
여하튼 스위트한 것을 이라고 생각했다
사탕수수나 사탕무이지만 어쩐지 슈르(초현실)이므로 보류
양봉 농가에서 벌꿀을 만드는  방법도 있을까
후에 사탕무는 치르노의작물이 되었다
·모코우 or 카구야로 죽림에서 죽순 농가
죽순은 얻을 것 같지만 이 2명이 작물을 징수하러 오는 이미지가 하지 않는다
지주라고 하는 형태로 타인과 서로 관계가 될까? (이)라고 생각해 그만두고
·렌코의 연근밭, 세이란의 사과원
메리와 세이란의 작물을 생각해내지 못했다
만 지주 설정하고 있다고(면) 위화감
·세이자로 미라클 후르츠 밭
쓴 맛＆산미를 달면 느끼게 한다=확 뒤집었다
대량생산 하는 것 같은 것도 아닌 것 같은이라고 생각해 그만두고
·순호 씨의 생강밭
대단한 형상으로 외치면서 설충분하는 거야? 너무 일발 재료 지나므로 각하
·미마님의 목장
하지만(ry

과일나무에서는 감이나 꿀 감등이 있으면 일본 느낌이 늘어나지만 맡길 수 있는 사람이 생각해내지 못했다
이 밖에 섬유계로 면화, 삼, 염료계로 천 등을 들어 본다

2018/05/19
·각종 거점 맵의 실장에 수반해 버그번호를 수정
·농민계의 데이터의 기술은 각지 주인의 캐릭터데이터함수 곁에 이동시켰습니다
　소작인 패치의 구상 단계에서 캐릭터데이터함수적인 기술은 생각했었습니다만
　함수군이 꽤에 거대해서 소작인 패치만의 위해(때문에) 실장하는 것은 이라고 생각해 그만두고 있었습니다
　만들어 버렸기 때문에 캐릭터데이터함수 곁에 이동
·@STR_NOUMIN()의 사양 변경
　1. STR_NOUMIN/INT_NOUMIN의 2종류로 나누어 TOINT의 필요를 없게 했다
　2. 캐릭터데이터함수로 관리하게 되었으므로 제일 인수로 건네주는 내용을 CALLNAME로부터 등록 번호로 변경
　3. STR/INT_NOUMIN의 제2 인수는 종래대로, STR_NOUMIN(1, "설명") 등으로 움직입니다
　4. 캐릭터데이터함수측의 기술로 사용하고 있는"농민："의 부분은 STR/INT_NOUMIN로 마음대로 부여합니다

[SKIPEND]
@INT_NOUMIN(C_ID, TYPE)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIM  C_ID;지주의 등록 번호
#DIMS TYPE;취득 정보의 종류
RETURNF GET_INT(, "캐릭터데이터", C_ID, "농민：" + TYPE)

@STR_NOUMIN(C_ID, TYPE)
#FUNCTIONS
#LOCALSIZE 1
#LOCALSSIZE 1
#DIM  C_ID;지주의 등록 번호
#DIMS TYPE;취득 정보의 종류
RETURNF GET_STR(, "캐릭터데이터", C_ID, "농민：" + TYPE)

;농민 초기설정 함수
@SET_NOUMIN
#LOCALSIZE 1000
#LOCALSSIZE 1
#DIM LCOUNT
#DIM C_ID
#DIM LIST_ID
#DIM CHARA_COUNT
#DIM LIST_COUNT
#DIM PAGE
#DIMS NAME_지주
PRINTFORML 당신은 농민입니까?
PRINTFORML [1] - 네
PRINTFORML [0] - 아니오
DO
	INPUT
	SELECTCASE RESULT
	CASE 0
		RETURN
	CASE 1
	CASEELSE
		REUSELASTLINE 무효인 입력입니다
		CONTINUE
	ENDSELECT
	BREAK
LOOP 1

PAGE = 0
CHARA_COUNT = 0
;지주 일람의 취득
FOR C_ID, 1, CHARANUM
	SIF C_ID == FLAG:역극
		CONTINUE
	SIF !STRLENS(STR_NOUMIN(C_ID, "설명"))
		CONTINUE
	LOCAL:CHARA_COUNT = C_ID
	CHARA_COUNT ++
NEXT

FLAG:지주 = 0
FLAG:밭일성과 = 0
FLAG:변제연체회수 = 0
FLAG:수확납입회수 = 0
FLAG:누적수확평가 = 0
FLAG:전회수확평가 = 0

DO
	LIST_COUNT = 0
	PRINTFORML 당신을 고용하고 있는 지주를 선택해주세요
	PRINTFORML
	FOR LIST_ID, (PAGE * 20), CHARA_COUNT
		C_ID = LOCAL:LIST_ID
		PRINTFORM [{C_ID , 3}] - 지주：%CALLNAME:C_ID, 10%
		PRINTFORM %STR_NOUMIN(C_ID, "설명"), 14%
		PRINTFORML %STR_NOUMIN(C_ID, "밭의 종류")%의 위치는 %STR_NOUMIN(C_ID, "밭의 맵")%의 부근
		LIST_COUNT ++
		SIF LIST_COUNT > 19
			BREAK
	NEXT
	PRINTFORML
	PRINTFORML [901] - 이전페이지
	PRINTFORML [902] - 다음페이지
	PRINTFORML [  0] - 역시 그만둔다
	DO
		INPUT
		SELECTCASE RESULT
		CASE 0
			RETURN
		CASE 901
			SIF PAGE > 0
				PAGE --
		CASE 902
			SIF (PAGE + 1) * 20 < CHARA_COUNT
				PAGE ++
		CASE 1 TO CHARANUM - 1
			SIF !STRLENS(STR_NOUMIN(RESULT, "설명"))
				GOTO RETRY
			FLAG:지주 = RESULT
		CASEELSE
			$RETRY
			REUSELASTLINE 무효인 입력입니다
			CONTINUE
		ENDSELECT
		BREAK
	LOOP 1
LOOP !(FLAG:지주)

NAME_지주 = %CALLNAME:(FLAG:지주)%
PRINTFORML
PRINTFORML 당신은 %NAME_지주% 밑에서 %STR_NOUMIN(FLAG:지주, "작물")%를 만드는 소작인이 되었습니다
PRINTFORML 당신이 빌린 %STR_NOUMIN(FLAG:지주, "밭의 종류")%은 %STR_NOUMIN(FLAG:지주, "밭의 맵")% 부근에 있습니다
PRINTFORMW 매일 농땡이 피우지 말고 손봅시다

CALL MODE_NOUMIN
CALL LOAN_NOUMIN

[IF_DEBUG]
;거동, 레이 만난다라는 확인용
;MONEY = 100000
;DO
;	SIF FLAG:농민난이도
;		CALL COST_NOUMIN
;	CALL REPAY_NOUMIN
;	WAIT
;LOOP 1
[ENDIF]

@MODE_NOUMIN
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS NAME_지주
NAME_지주 = %CALLNAME:(FLAG:지주)%
PRINTFORML 농민 생활의 난이도를 설정해주세요
PRINTFORML (선택지에 따라서는 캐릭터의 이미지가 붕괴할 우려가 있습니다)
PRINTFORML
PRINTFORML [1] - 노멀 농민　　　%조사처리(NAME_지주,"는")% 무척 친절한 지주입니다
PRINTFORML [2] - 하드코어 농민　%조사처리(NAME_지주,"는")% 평범하게 욕심 많은 지주입니다
PRINTFORML [3] - 익스트림 농민　%조사처리(NAME_지주,"는")% 압정과 횡포를 부리는 지주입니다
DO
	INPUT
	IF INRANGE(RESULT, 1, 3)
		FLAG:농민난이도 = RESULT
		BREAK
	ELSE
		REUSELASTLINE 무효인 입력입니다
		CONTINUE
	ENDIF
LOOP 1
SELECTCASE FLAG:농민난이도
CASE 1
	PRINTFORML 당신의 지주는 매우 친절하고 착한 사람입니다
	FLAG:밭확장 = 1
CASE 2
	PRINTFORML 당신은 지주에게 시달리는 농민이 되었습니다
	FLAG:밭확장 = 2
CASE 3
	PRINTFORML 당신은 지주에게 철저하게 착취당하는 농민이 되었습니다
	FLAG:밭확장 = 3
ENDSELECT
PRINTFORMW (농민 난이도는 컨피그에서 변경 가능합니다)
SETBIT FLAG:1000, 2

;%TOSTR(LOCAL, "#,###")%
;보수 400 * 1000 = 40만엔(표준 금액)
@LOAN_NOUMIN
#DIMS NAME_지주
NAME_지주 = %CALLNAME:(FLAG:지주)%
LOCAL = INT_NOUMIN(FLAG:지주, "보수") * 1000
PRINTFORML 농업을 시작한 %CALLNAME:MASTER%에게 초기 투자 비용으로 %금액표시(LOCAL)%의 차입금이 발생했다
FLAG:지주대출금 = LOCAL
FLAG:연시대출금 = LOCAL
SELECTCASE FLAG:농민난이도
CASE 1
	PRINTFORML %조사처리(NAME_지주,"는")% 무이자로 빌려줄 테니 느긋하게 갚아도 된다고 말해주었다
	IF !ITEM:원예용품일식
		PRINTFORML 더해서 %조사처리(NAME_지주,"는")% 먼저 인간 마을의 꽃집에서 원예용품을 장만두라고 조언해주었다
		PRINTFORML 농기구 구입비용까지는 부담해주지 않을 것 같다
	ENDIF
CASE 2, 3
	PRINTFORML 이 차입금에는 {INT_NOUMIN(FLAG:지주, "금리")}\%의 금리가 발생하는 모양이다
	PRINTFORML 더해서 %조사처리(NAME_지주,"는")% 농기구를 대출하겠다고 제안했다
	PRINTFORML ……아무래도 거절할 권리는 없을 것 같다
	;아마 이 그 밖에 현지에 쓸데없게 다양한 도구가 산만큼 있다
ENDSELECT
WAIT

@RESET_NOUMIN
FLAG:지주 = 0
FLAG:밭일성과 = 0
FLAG:변제연체회수 = 0
FLAG:수확납입회수 = 0
FLAG:누적수확평가 = 0
FLAG:전회수확평가 = 0
FLAG:농민난이도 = 0
FLAG:밭확장 = 0
FLAG:지주대출금 = 0
FLAG:연시대출금 = 0

@SET_APPLY_NOUMIN
SIF FLAG:농민난이도 >= 2 && !ITEM:원예용품일식
	ITEM:원예용품일식 ++

;농민 정보 표시 함수
@SHOW_NOUMIN
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS NAME_지주
#DIM HATAKE
NAME_지주 = %CALLNAME:(FLAG:지주)%
HATAKE = INT_NOUMIN(FLAG:지주, "장소 ID")
SIF GET_MAPID(HATAKE) != MAIN_MAP
	HATAKE = 6000 + (GET_MAP_REPLACEMENT(HATAKE) / 10)

PRINTFORML %NAME_지주%의 소작인(%STR_NOUMIN(FLAG:지주, "작물")%를 만들고 있는 %STR_NOUMIN(FLAG:지주, "설명")%)
PRINTFORML %STR_NOUMIN(FLAG:지주, "밭의 종류")%은 %STR_NOUMIN(FLAG:지주, "밭의 맵")%의 %NAME_FROM_PLACE(HATAKE)% 부근에 있다
;착한 사람이라도 작물은 전부 받아갑니다
SELECTCASE FLAG:농민난이도
CASE 1
	PRINTFORML 지주는 무척 친절하고 착한 사람이다
	SIF FLAG:지주대출금
		PRINTFORML %금액표시(FLAG:지주대출금)%을 무이자로 빌렸다
CASE 2
	PRINTFORML 지주에게 시달리고 있다
	SIF FLAG:지주대출금
		PRINTFORML %금액표시(FLAG:지주대출금)%을 빌렸으며 금리는 {INT_NOUMIN(FLAG:지주, "금리")}\%(연리)다
CASE 3
	PRINTFORML 지주에게 철저하게 착취당하고 있다
	SIF FLAG:지주대출금
		PRINTFORML %금액표시(FLAG:지주대출금)%을 빌렸으며 금리는 {INT_NOUMIN(FLAG:지주, "금리")}\%(월리)다
ENDSELECT
PRINTFORML

;징수 함수
;사실은 연공이든 뭐든 없지만 알기 쉬움 우선
;말대응이라든지 포상 엣찌라든지는 사양을 몰라서 실장할 수 없다
@NENGU_NOUMIN
#LOCALSIZE 1
#LOCALSSIZE 1
#DIM 연공의평가
PRINTFORML %CALLNAME:(FLAG:지주)%가 이번 달 분 성과를 징수하러 왔다
PRINTFORMW (이번 달 수확량：{FLAG:밭일성과})
연공의평가 = FLAG:밭일성과 / 20
LOCAL = (연공의평가 - 3) * 5
SIF LOCAL < 0
	LOCAL = LOCAL - SQRT(MAX(1, CFLAG:(FLAG:지주):신뢰도))
;(天候パッチ)寒気による作物被害が20を超えたら20毎に冷害判定
SIF AMOUNT_COLD_CROP_DAMAGE >= 20
	IS_COLD_CROP_DAMAGE ++
SIF AMOUNT_COLD_CROP_DAMAGE >= 40
	IS_COLD_CROP_DAMAGE ++
SIF AMOUNT_COLD_CROP_DAMAGE >= 60
	IS_COLD_CROP_DAMAGE ++
SELECTCASE 연공의평가
	;(天候パッチ)冷害・風害発生時は態度が軟化
	CASE IS <= 0
		IF IS_COLD_CROP_DAMAGE > 0 || IS_STORM_CROP_DAMAGE > 0 || IS_FLOOD_CROP_DAMAGE > 0
			PRINTFORML 이번 달 분 %STR_NOUMIN(FLAG:지주, "작물")%의 수확량은 거의 제로다
			PRINTFORML 악천우로 인한 심각한 피해에 %조사처리(CALLNAME:(FLAG:지주),"는")% 망연자실해 있다
		ELSE
			PRINTFORML 이번 달 분 %STR_NOUMIN(FLAG:지주, "작물")%의 수확량은 거의 제로다
			PRINTFORML %CALLNAME:(FLAG:지주)%는 이쪽을 험악한 표정으로 노려보고 있다
		ENDIF
	CASE 1
		IF IS_COLD_CROP_DAMAGE > 0 || IS_STORM_CROP_DAMAGE > 0 || IS_FLOOD_CROP_DAMAGE > 0
			PRINTFORML 이번 달 분 %STR_NOUMIN(FLAG:지주, "작물")%의 수확량은 꽤 적다
			PRINTFORML 악천우로 인한 피해에 %조사처리(CALLNAME:(FLAG:지주),"는")% 어깨를 늘어뜨리고 있다
		ELSE
			PRINTFORML 이번 달 분 %STR_NOUMIN(FLAG:지주, "작물")%의 수확량은 꽤 적다
			PRINTFORML %CALLNAME:(FLAG:지주)%는 수확량이 너무나 적어서 명명백백 실망한 눈치다
		ENDIF
	CASE 2
		IF IS_COLD_CROP_DAMAGE > 0 || IS_STORM_CROP_DAMAGE > 0 || IS_FLOOD_CROP_DAMAGE > 0
			PRINTFORML 이번 달 분 %STR_NOUMIN(FLAG:지주, "작물")%의 수확량은 적은 편이다
			PRINTFORML 악천우로 인한 피해에 %조사처리(CALLNAME:(FLAG:지주),"는")% 아쉬운 듯 하다
		ELSE
			PRINTFORML 이번 달 분 %STR_NOUMIN(FLAG:지주, "작물")%의 수확량은 적은 편이다
			PRINTFORML %CALLNAME:(FLAG:지주)%는 수확량이 적어 불만스런 기색이다
		ENDIF
	CASE 3
		PRINTFORML 이번 달 분 %STR_NOUMIN(FLAG:지주, "작물")%의 수확량은 약간 적은 편이다
		PRINTFORML %CALLNAME:(FLAG:지주)%는 수확량에 다소 부족하다 느끼는 모양이다
	CASE 4
		PRINTFORML 이번 달 분 %STR_NOUMIN(FLAG:지주, "작물")%의 수확량은 평범한 축이다
		PRINTFORML %CALLNAME:(FLAG:지주)%는 수확량에 만족해준 모양이다
	CASE 5
		PRINTFORML 이번 달 분 %STR_NOUMIN(FLAG:지주, "작물")%의 수확량은 약간 많은 축이다
		PRINTFORML %CALLNAME:(FLAG:지주)%는 수확량이 많아 흡족한 기색이다
	CASE 6
		PRINTFORML 이번 달 분 %STR_NOUMIN(FLAG:지주, "작물")%의 수확량은 꽤 많다
		PRINTFORML %CALLNAME:(FLAG:지주)%는 예상 이상의 수확량에 웃음을 띠고 있다
	CASEELSE
		PRINTFORML 이번 달 분 %STR_NOUMIN(FLAG:지주, "작물")%의 수확량은 어마어마한 양이다!
		PRINTFORML %CALLNAME:(FLAG:지주)%는 상상을 초월한 수확량에 압도당하고 있다
ENDSELECT
WAIT

;(天候パッチ)冷害・風害発生時は怒らない
IF LOCAL < 0 && IS_COLD_CROP_DAMAGE <= 0 && IS_STORM_CROP_DAMAGE <= 0 && IS_FLOOD_CROP_DAMAGE <= 0
	PRINTFORMW %CALLNAME:(FLAG:지주)%는 당신에게 불신감을 품고 있다
	CFLAG:(FLAG:지주):신뢰도 = MAX(0, CFLAG:(FLAG:지주):신뢰도 + LOCAL)
	IF 연공의평가 <= 0
		PRINTFORMW ……%CALLNAME:(FLAG:지주)%를 화나게 한 것 같다
		CFLAG:(FLAG:지주):언짢음 = 1
		CFLAG:(FLAG:지주):빡침 = 1
		SIF MARK:(FLAG:지주):반발각인 < 3
			MARK:(FLAG:지주):반발각인 ++
	ENDIF
ELSEIF LOCAL > 0
	;(天候パッチ)冷害・風害発生時はより評価される
	IF IS_COLD_CROP_DAMAGE > 0 || IS_STORM_CROP_DAMAGE > 0 || IS_FLOOD_CROP_DAMAGE > 0
		PRINTFORM 악천후임에도 불구하고 풍년이 들었으므로
		PRINTFORMW %CALLNAME:(FLAG:지주)%로부터의 신뢰도가 매우 올랐다
		LOCAL += ((IS_COLD_CROP_DAMAGE + IS_STORM_CROP_DAMAGE + (IS_FLOOD_CROP_DAMAGE * 4)) * 2)
	ELSE
		PRINTFORMW %CALLNAME:(FLAG:지주)%의 신뢰도가 올랐다
	ENDIF
	CFLAG:(FLAG:지주):신뢰도 += LOCAL
	IF !MARK:(FLAG:지주):반발각인
		LOCAL = 연공의평가 * INT_NOUMIN(FLAG:지주, "보수")
		PRINTFORMW %CALLNAME:(FLAG:지주)%는 %금액표시(LOCAL)%의 용돈을 주었다
		MONEY += LOCAL
	ENDIF
ENDIF
FLAG:밭일성과 = 0
FLAG:연공 = 0
FLAG:수확납입회수 ++
FLAG:누적수확평가 += 연공의평가
FLAG:전회수확평가 = 연공의평가
SIF FLAG:야채낭데일리 == 2
	FLAG:야채낭데일리 = 1
CALL REPAY_NOUMIN
SIF FLAG:농민난이도 > 1
	CALL COST_NOUMIN

;(天候パッチ)冷害発生回数と風害発生回数をリセット
IS_COLD_CROP_DAMAGE = 0
IS_STORM_CROP_DAMAGE = 0
IS_FLOOD_CROP_DAMAGE = 0
AMOUNT_COLD_CROP_DAMAGE = 0

@REPAY_NOUMIN
#DIM HENSAI
#DIM MIN_HENSAI
#DIMS NAME_지주
NAME_지주 = %CALLNAME:(FLAG:지주)%
SIF !FLAG:지주대출금
	GOTO KANRYOU
SELECTCASE FLAG:농민난이도
CASE 1
	MIN_HENSAI = 100
CASE 2
	MIN_HENSAI = INT_NOUMIN(FLAG:지주, "보수") * 5
CASE 3
	MIN_HENSAI = INT_NOUMIN(FLAG:지주, "보수") * (10 + FLAG:변제연체회수)
ENDSELECT
MIN_HENSAI = MIN(MIN_HENSAI, FLAG:지주대출금)

PRINTFORML %조사처리(NAME_지주,"는")% 빚의 변제를 요구하고 있다
PRINTFORM 얼마나 내겠습니까? (변제금:
PRINTBUTTON 금액표시(FLAG:지주대출금), FLAG:지주대출금
PRINTFORM , 소지금:
PRINTBUTTON 금액표시(MONEY), MONEY
PRINTFORM , 최저 금액:
PRINTBUTTON 금액표시(MIN_HENSAI), MIN_HENSAI
PRINTFORML 미만이면 연체 판정)
DO
	INPUT
	HENSAI = MIN(RESULT, FLAG:지주대출금)
	SELECTCASE HENSAI
	CASE IS < MIN_HENSAI
		PRINTFORML %마스터는% 제발 변제를 미뤄달라고 %NAME_지주%에게 애원했다
		IF FLAG:농민난이도 == 1
			IF MONEY < MIN_HENSAI
			;진심으로 돈이 없을 때
				PRINTDATAL
					DATAFORM %조사처리(NAME_지주,"는")% 이쪽의 생활 상황을 진심으로 걱정하고 있다
					DATAFORM %조사처리(NAME_지주,"는")% 이쪽의 생활 상황을 진심으로 걱정하고 있다
					DATAFORM %조사처리(NAME_지주,"는")% %마스터를% 격려하고 있다
					DATAFORM %조사처리(NAME_지주,"는")% %마스터를% 위로하고 있다
					DATAFORM %조사처리(NAME_지주,"는")% 건넬 말을 찾지 못하는 눈치다
					DATAFORM %NAME_지주%의 연민 어린 시선이 꽂힌다
					DATAFORM %NAME_지주%의 표정이 어두워졌다
					DATAFORM %조사처리(NAME_지주,"는")% 난처해하고 있다
				ENDDATA
			ELSE
			;조금 기다려!
				PRINTDATAL
					DATAFORM %조사처리(NAME_지주,"는")% 깊은 한숨을 쉬고 있다
					DATAFORM %조사처리(NAME_지주,"는")% 관자놀이를 누르고 있다
					DATAFORM %조사처리(NAME_지주,"는")% 뚱한 눈으로 이쪽을 바라보고 있다
					DATAFORM %조사처리(NAME_지주,"는")% 팔짱을 끼고 떨떠름한 표정을 짓고 있다
					DATAFORM %NAME_지주%의 연민 어린 시선이 꽃힌다
					DATAFORM %NAME_지주%의 얼굴이 실룩거리고 있다
					DATAFORM %NAME_지주%의 미간에 주름이 잡혔다
					DATAFORM %NAME_지주%의 표정이 어두워졌다
					DATAFORM %조사처리(NAME_지주,"는")% 난처해하고 있다
				ENDDATA
				PRINTFORML
				PRINTFORML ……가까스로 납득해준 모양이다
			ENDIF
			FLAG:변제연체회수 ++
		ELSEIF MONEY >= MIN_HENSAI
			PRINTFORML %조사처리(NAME_지주,"는")% %CALLNAME:MASTER%의 말을 가로막고는 지갑에서 강제로 %금액표시(MIN_HENSAI)%을 강탈했다
			MONEY -= MIN_HENSAI
		ELSE
			PRINTFORML %조사처리(NAME_지주,"는")% 혀를 차고 이쪽을 싸늘한 눈으로 노려보고 있다
			FLAG:변제연체회수 ++
		ENDIF
	CASE IS > MONEY
		$RETRY
		REUSELASTLINE 무효인 입력입니다
		CONTINUE
	CASEELSE
		PRINTFORML %마스터는% 빚 가운데 %금액표시(HENSAI)%를 변제했다
		MONEY -= HENSAI
		FLAG:변제연체회수 = 0
		FLAG:지주대출금 -= HENSAI
		IF !FLAG:지주대출금
			IF FLAG:농민난이도 == 1
				PRINTFORML %마스터는% 마침내 빚을 완납했다
				PRINTFORML %NAME_지주%도 함께 기뻐해주고 있다
			ELSE
				PRINTFORML %마스터는% 빚을 완납했다
				PRINTFORML ……그래봤자 또 금방 뭔가 구실을 달아서 돈을 뜯기겠지만
			ENDIF
		ELSE
			PRINTFORML 남은 빚은 %금액표시(FLAG:지주대출금)%이다……
		ENDIF
		$KANRYOU
		PRINTFORML
		IF FLAG:농민난이도 == 1
			PRINTDATAL
				DATAFORM %NAME_지주%과의 잡담으로 꽃을 피웠다
				DATAFORM %조사처리(NAME_지주,"는")% 밭일 보고를 흥미롭게 듣고 있다
				DATAFORM %조사처리(NAME_지주,"는")% 힘든 일이 없는지 신경 써주고 있다
				DATAFORM %NAME_지주%가 가져와 준 과자를 집어먹으며 환담을 나누었다
				DATAFORM %조사처리(NAME_지주,"는")% 농지 개선 요망에 진지하게 귀를 기울이고 있다
				DATAFORM %조사처리(NAME_지주,"는")% 온화한 시선으로 이쪽을 보고 있다
				DATAFORM %NAME_지주%의 웃는 얼굴이 눈부시다
			ENDDATA
		ELSE
			PRINTDATAL
				DATAFORM %조사처리(NAME_지주,"는")% 틈만 나면 %CALLNAME:MASTER%에게 물건을 강매하려든다
				DATAFORM %조사처리(NAME_지주,"는")% 밭일 보고를 대충 듣고 넘기고 있다
				DATAFORM %조사처리(NAME_지주,"는")% 돈 문제를 겪는 사람은 없는지 떠보고 있다
				DATAFORM %조사처리(NAME_지주,"는")% 농지 개선 계획이라며 설비 투자를 제안해왔다…… 그런 돈은 없다
				DATAFORM %NAME_지주%의 시선에선 못된 꿍꿍이의 낌새가 엿보인다
				DATAFORM %NAME_지주%의 웃는 얼굴에는 뭔가 수작이 있다고밖에 안 보인다
				DATAFORM %NAME_지주%의 웃는 얼굴을 봐도 왠지 마음이 편치 않다
			ENDDATA
		ENDIF
	ENDSELECT
	BREAK
LOOP 1

IF FLAG:변제연체회수
	LOCAL = POWER(FLAG:변제연체회수, FLAG:농민난이도 + 1)
	LOCAL = MIN(LOCAL, CFLAG:(FLAG:지주):신뢰도)
	IF LOCAL
		PRINTFORMW %CALLNAME:(FLAG:지주)%는 당신에게 불신감을 품고 있다
		CFLAG:(FLAG:지주):신뢰도 -= LOCAL
	ENDIF
ENDIF

;이러니 저러니 이유 붙여 공제해진다
;표준 레이트 400으로 금리·반제 연체에 의한 패널티를 제외하면(자)
;하드코어로 1만, 익스트림으로 3만의 경비가 매월 발생한다
@COST_NOUMIN
#LOCALSIZE 9
#LOCALSSIZE 9
#DIMS NAME_지주
#DIMS PREV_지주
#DIM COST_RATE
#DIM LCOUNT
NAME_지주 = %CALLNAME:(FLAG:지주)%
COST_RATE = INT_NOUMIN(FLAG:지주, "보수")
LOCAL:0 = 0
LOCAL:8 = 0
PRINTFORML 이번 달 분의 기타 경비로 이하의 요금이 빚에 추가되었다

;금리 계산
;하드코어라면 연시 차입금 준거로 연리 계산
;익스트림이라면 연시 차입금·이번달 차입금의 나 큰 편으로 월리 계산
IF FLAG:지주대출금 < 10000000
	SELECTCASE FLAG:농민난이도
	CASE 2
		LOCAL:1 = FLAG:연시대출금 * INT_NOUMIN(FLAG:지주, "금리") / 1200
	CASE 3
		LOCAL:1 = MAX(FLAG:지주대출금, FLAG:연시대출금) * INT_NOUMIN(FLAG:지주, "금리") / 100
	ENDSELECT
ENDIF

SELECTCASE FLAG:농민난이도
CASE 2
	LOCAL:2 = FLAG:변제연체회수 * COST_RATE
CASE 3
	LOCAL:2 = FLAG:변제연체회수 * COST_RATE * 10
ENDSELECT

;고정치가 대부분 어째서 매회 재계산할 필요는 그다지 없다
;지주의 교체(와 재기동)의 타이밍에 판정하도록(듯이)
IF NAME_지주 != PREV_지주
	LOCALS:0 = 경비 총액
	LOCALS:1 = 이자
	LOCALS:2 = 변제 연체비
	LOCALS:3 = 농구 이용비
	LOCALS:8 = 차입금 총액
	SELECTCASE FLAG:농민난이도
	CASE 2
		LOCAL:3 = COST_RATE * 5
	CASE 3
		LOCAL:3 = COST_RATE * 10
	ENDSELECT

	LOCALS:4 = 비료 구입비
	SELECTCASE FLAG:농민난이도
	CASE 2
		LOCAL:4 = COST_RATE * 5
	CASE 3
		LOCAL:4 = COST_RATE * 10
	ENDSELECT

	LOCALS:5 = 작물 출하비
	SELECTCASE FLAG:농민난이도
	CASE 2
		LOCAL:5 = COST_RATE * 5
	CASE 3
		LOCAL:5 = COST_RATE * 15
	ENDSELECT

	LOCALS:6 = 수장 이용비
	SELECTCASE FLAG:농민난이도
	CASE 2
		LOCAL:6 = COST_RATE * 5
	CASE 3
		LOCAL:6 = COST_RATE * 20
	ENDSELECT

	IF STR_NOUMIN(FLAG:지주, "작물") == "생사"
		LOCALS:7 = 차기란비
	ELSE
		LOCALS:7 = 차기 볍씨비
	ENDIF

	SELECTCASE FLAG:농민난이도
	CASE 2
		LOCAL:7 = COST_RATE * 5
	CASE 3
		LOCAL:7 = COST_RATE * 20
	ENDSELECT
	PREV_지주 = %NAME_지주%
ENDIF

LOCAL:0 = SUMARRAY(LOCAL)
LOCAL:8 = LIMIT(FLAG:지주대출금 + LOCAL:0,  0, 10000000)
FLAG:지주대출금 = LOCAL:8
PRINTFORML ――――――――――――――――――――――――――――――――
PRINTFORML 　기타 경비
PRINTFORML ――――――――――――――――――――――――――――――――
FOR LCOUNT, 1, 8
	SIF LOCAL:LCOUNT
		PRINTFORML 　　%LOCALS:LCOUNT, 12%｜　　　\\%세자리구분(LOCAL:LCOUNT),20%
NEXT
PRINTFORML ――――――――｜―――――――――――――――――――――――
PRINTFORML 　　%LOCALS:0, 12%｜　　　\\%세자리구분(LOCAL:0),20%
PRINTFORML ――――――――｜―――――――――――――――――――――――
PRINTFORM 　　%LOCALS:8, 12%｜　　　\\%세자리구분(LOCAL:8),20%
IF FLAG:지주대출금 == 10000000
	PRINTFORML 　!　상한　!
ELSE
	PRINTFORML
ENDIF
PRINTFORMW ――――――――――――――――――――――――――――――――

;CONFIGからの農民再設定(試作）
@RESTART_NOUMIN
#DIM LOCAL_지주
#DIM LOCAL_밭일성과
#DIM LOCAL_변제연체회수
#DIM LOCAL_수확납입회수
#DIM LOCAL_누적수확평가
#DIM LOCAL_전회수확평가
#DIM LOCAL_농민난이도
#DIM LOCAL_밭확장
#DIM LOCAL_지주대출금
#DIM LOCAL_연시대출금
#DIMS LOCALS_원지주
#DIMS LOCALS_신지주
#DIMS LOCALS_원난이도
#DIMS LOCALS_신난이도

LOCAL_지주 = FLAG:지주
LOCAL_밭일성과 = FLAG:밭일성과
LOCAL_변제연체회수 = FLAG:변제연체회수
LOCAL_수확납입회수 = FLAG:수확납입회수
LOCAL_누적수확평가 = FLAG:누적수확평가
LOCAL_전회수확평가 = FLAG:전회수확평가
LOCAL_농민난이도 = FLAG:농민난이도
LOCAL_밭확장 = FLAG:밭확장
LOCAL_지주대출금 = FLAG:지주대출금
LOCAL_연시대출금 = FLAG:연시대출금
LOCALS_원지주 = %CALLNAME:(FLAG:지주)%

IF FLAG:지주
	PRINTFORML %마스터는% %LOCALS_원지주% 아래에서 일하는 농민입니다
	SIF FLAG:지주대출금 > 0
		PRINTFORML 남은 빚은 \\{FLAG:지주대출금} 입니다
	SELECTCASE FLAG:농민난이도
	CASE 1
		LOCALS_원난이도 = 노멀
	CASE 2
		LOCALS_원난이도 = 하드코어
	CASE 3
		LOCALS_원난이도 = 익스트림
	ENDSELECT
ELSE
	PRINTFORML %마스터는% 홀가분한 자유인입니다
ENDIF

PRINTFORML 농가의 설정을 변경하시겠습니까?
PRINTFORML [1] - 네
PRINTFORML [0] - 아니오
DO
	INPUT
	SELECTCASE RESULT
	CASE 0
		PRINTFORML
		RETURN
	CASE 1
	CASEELSE
		REUSELASTLINE 유효하지 않은 입력입니다
		CONTINUE
	ENDSELECT
	BREAK
LOOP 1

DO
	CALL RESET_NOUMIN
	CALL SET_NOUMIN
	PRINTFORML

	LOCALS_신지주 = %CALLNAME:(FLAG:지주)%
	IF LOCAL_지주 && FLAG:지주 && LOCAL_지주 != FLAG:지주
		PRINTFORML %마스터는% %LOCALS_원지주%의 아래에서 벗어나, 앞으로는 %LOCALS_신지주%의 아래에서 일하게 됩니다
		IF LOCAL_지주대출금 > 0
			PRINTFORML %LOCALS_원지주%에게 진 빚 \\{LOCAL_지주대출금}은 %LOCALS_신지주%가 대신해서 갚기 때문에
			FLAG:지주대출금 += LOCAL_지주대출금
		ENDIF
		PRINTFORML %LOCALS_신지주%에 대한 차입금은 총 \\{FLAG:지주대출금}입니다

	ELSEIF LOCAL_지주 && FLAG:지주 && LOCAL_지주 == FLAG:지주
		; 고용주의 변경이 없어서 원래대로 되돌리다
		SETCOLOR C_YELLOW
		PRINTFORML 고용주의 변경이 없어, 상기의 차입금은 발생하지 않습니다
		SIF LOCAL_지주대출금 > 0
			PRINTFORML %LOCALS_신지주%로의 차입금은 현재와 같이 \\{LOCAL_지주대출금}이 됩니다
		RESETCOLOR
		FLAG:밭일성과 = LOCAL_밭일성과
		FLAG:변제연체회수 = LOCAL_변제연체회수
		FLAG:수확납입회수 = LOCAL_수확납입회수
		FLAG:누적수확평가 = LOCAL_누적수확평가
		FLAG:전회수확평가 = LOCAL_전회수확평가
		FLAG:지주대출금 = LOCAL_지주대출금
		FLAG:연시대출금 = LOCAL_연시대출금

		; 난이도 변경되었는가
		IF LOCAL_농민난이도 != FLAG:농민난이도
			SELECTCASE FLAG:농민난이도
			CASE 1
				LOCALS_신난이도 = 노멀
			CASE 2
				LOCALS_신난이도 = 하드코어
			CASE 3
				LOCALS_신난이도 = 익스트림
			ENDSELECT
			PRINTFORML 난이도를 [%LOCALS_원난이도%]에서 [%LOCALS_신난이도%]로 변경합니다
		ELSE
			PRINTFORML 난이도의 설정은 변경되지 않습니다
		ENDIF

	ELSEIF !LOCAL_지주 && !FLAG:지주
		PRINTFORML 설정에는 변함이 없습니다
	ELSEIF LOCAL_지주 && !FLAG:지주
		IF LOCAL_지주대출금 > 0
			PRINTFORML 빚이 남아 있는 동안은 농민을 그만둘 수는 없다
			CONTINUE
		ENDIF
		PRINTFORML 농민을 그만두고 자유인이 됩니다
	ENDIF

	PRINTFORML
	PRINTFORML 설정을 변경하시겠습니까?
	PRINTFORML [1] - 네
	PRINTFORML [2] - 다시 한번 결정한다
	PRINTFORML [0] - 변경하지 않는다
	DO
		INPUT
		SELECTCASE RESULT
		CASE 0
			FLAG:지주 = LOCAL_지주
			FLAG:밭일성과 = LOCAL_밭일성과
			FLAG:변제연체회수 = LOCAL_변제연체회수
			FLAG:수확납입회수 = LOCAL_수확납입회수
			FLAG:누적수확평가 = LOCAL_누적수확평가
			FLAG:전회수확평가 = LOCAL_전회수확평가
			FLAG:농민난이도 = LOCAL_농민난이도
			FLAG:밭확장 = LOCAL_밭확장
			FLAG:지주대출금 = LOCAL_지주대출금
			FLAG:연시대출금 = LOCAL_연시대출금
			PRINTFORML 설정변경을 중지했습니다
			PRINTFORML
			RETURN
		CASE 1
			PRINTFORML 설정을 변경했습니다
			PRINTFORML
			RETURN
		CASE 2
		CASEELSE
			REUSELASTLINE 유효하지 않은 입력입니다
			CONTINUE
		ENDSELECT
		BREAK
	LOOP 1
LOOP 1


code:
;외투
;요소명→ID변환용 함수의 존부 확인용 함수
;변환 가능(ID와 요소명의 관계가 항상 변화하지 않는다)이라면 설치
;상황에 의해 이름이 바뀌는 것 같은 것은 불가능
@EXIST_외투_ID
#LOCALSIZE 1
#LOCALSSIZE 1

;요소명→ID변환용 함수
;필요하면 각 오브젝트로와 같이  작성
@외투_ID(ARG:0, ARGS:0, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS V_NAME                  ;작성하는 변수명
#DIMS C_NAME, OBJ_ID_LAST + 1 ;데이터 보유
#DIM  O_ID                    ;참조용
IF ARGS:0 == "RESET"
	VARSET C_NAME
	FOR O_ID, 1, OBJ_ID_LAST + 1
		C_NAME:O_ID = %GET_STR(, "외투", O_ID, "이름")%
	NEXT
ELSE
	O_ID = FINDELEMENT(C_NAME, ESCAPE(ARGS:0), , , 1)
	CALLF MAKE_INT(V_NAME, O_ID)
ENDIF

@EXIST_외투1
#LOCALSIZE 1
#LOCALSSIZE 1

@외투1(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "케이프")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「외투」")
;구장비 처리와의 조회용, 외투의 1
ENDSELECT

@EXIST_외투2
#LOCALSIZE 1
#LOCALSSIZE 1

@외투2(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "망토")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「외투」")
;구장비 처리와의 조회용, 외투의 2
ENDSELECT

@EXIST_외투3
#LOCALSIZE 1
#LOCALSSIZE 1

@외투3(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "케이프 망토")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「외투」")
;구장비 처리와의 조회용, 외투의 3
ENDSELECT

@EXIST_외투4
#LOCALSIZE 1
#LOCALSSIZE 1

@외투4(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "일본식 앞치마")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「외투」")
;구장비 처리와의 조회용, 외투의 4
ENDSELECT

@EXIST_외투5
#LOCALSIZE 1
#LOCALSSIZE 1

@외투5(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "솜잠옷")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「외투」")
;구장비 처리와의 조회용, 외투의 5
ENDSELECT

@EXIST_외투6
#LOCALSIZE 1
#LOCALSSIZE 1

@외투6(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "하오리")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「외투」")
;구장비 처리와의 조회용, 외투의 6
ENDSELECT

@EXIST_외투7
#LOCALSIZE 1
#LOCALSSIZE 1

@외투7(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "백의")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「외투」")
;구장비 처리와의 조회용, 외투의 7
ENDSELECT

@EXIST_외투8
#LOCALSIZE 1
#LOCALSSIZE 1

@외투8(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "바람막이")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「외투」")
;구장비 처리와의 조회용, 외투의 8
ENDSELECT

@EXIST_외투9
#LOCALSIZE 1
#LOCALSSIZE 1

@외투9(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "베스트")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「외투」")
;구장비 처리와의 조회용, 외투의 9
ENDSELECT

@EXIST_외투10
#LOCALSIZE 1
#LOCALSSIZE 1

@외투10(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "작업복")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「외투」")
;구장비 처리와의 조회용, 외투의 10
ENDSELECT

@EXIST_외투11
#LOCALSIZE 1
#LOCALSSIZE 1

@외투11(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "파카")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「외투」")
;구장비 처리와의 조회용, 외투의 11
ENDSELECT

@EXIST_외투12
#LOCALSIZE 1
#LOCALSSIZE 1

@외투12(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "가쿠란")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「외투」")
;구장비 처리와의 조회용, 외투의 12
ENDSELECT

@EXIST_외투13
#LOCALSIZE 1
#LOCALSSIZE 1

@외투13(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "쟈켓")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「외투」")
;구장비 처리와의 조회용, 외투의 13
ENDSELECT

@EXIST_외투14
#LOCALSIZE 1
#LOCALSSIZE 1

@외투14(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "슈트 쟈켓")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「외투」")
;구장비 처리와의 조회용, 외투의 14
ENDSELECT

@EXIST_외투15
#LOCALSIZE 1
#LOCALSSIZE 1

@외투15(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "갑옷")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「외투」")
ENDSELECT

@EXIST_외투16
#LOCALSIZE 1
#LOCALSSIZE 1

@외투16(ARG, O_DATA, V_NAME)
#FUNCTION
#LOCALSIZE 1
#LOCALSSIZE 1
#DIMS O_DATA
#DIMS V_NAME
SELECTCASE O_DATA
CASE "이름"
	CALLF MAKE_STR(V_NAME, "작업 앞치마")
CASE "장비부위"
	CALLF MAKE_STR(V_NAME, "「외투」")
ENDSELECT