code:
;벌채한다
@COM442
#DIM CHARA
#DIM 목재종류
#DIM 크기
#DIM 벌채파워
#DIM 감소치
#DIM 벌채시간
#DIM 채집파워
#DIM 채집물
#DIM 장작패기
#DIM 탐색횟수

;통나무を抱えてるときは장작패기するか選択　장작패기したら체력기력消費時間経過させる
IF ITEM:통나무
	;依頼の報酬など、벌채以外で통나무を入手してしまった場合の退避用
	SIF !FLAG:통나무종류
		FLAG:통나무종류 = MAX(RAND:12, 1)
	DRAWLINE
	PRINTFORML 먼저 가지고 있는 통나무를 어떻게든 하지 않으면
	CALL WOOD_CHOPPING(FLAG:통나무종류)
	IF ITEM:통나무 == 0
		벌채파워 = TALENT:MASTER:벌채Lv * 20
		감소치 = 350 - 벌채파워
		벌채시간 = 180 - 벌채파워
		IF ITEM:전기톱
			감소치 /= 2
			벌채시간 /= 2
		ENDIF
		IF FLAG:70
			BASE:MASTER:TSP -= 감소치
		ELSE
			DOWNBASE:MASTER:체력 = 감소치
			IF ITEM:전기톱
				DOWNBASE:MASTER:기력 = 감소치 -50
			ELSE
				DOWNBASE:MASTER:기력 = 감소치 -25
			ENDIF
			TIME += 벌채시간
		ENDIF
		RETURN 1
	ELSE
		RETURN -1
	ENDIF
ENDIF
;夕方～夜の벌채はやめる
IF TIME:2 >= 5 && !FLAG:70
	DRAWLINE
	PRINTFORML 이 시간에 시작하면 자르고 있는 사이에 캄캄해져 버린다…
	RETURN -1
ENDIF
;大雨、吹雪のときはやめる(天候パッチ)強風時もやめる
IF GROUPMATCH(날씨, 5, 9) || GROUPMATCH(FLAG:이상기상, 9, 10) || WIND_VELOCITY >= 1
	DRAWLINE
	PRINTFORML 이런 날씨에서 벌채는 위험할 것 같다
	RETURN -1
ENDIF
;あからさまな人の敷地での盗伐はやめる
SELECTCASE CFLAG:MASTER:현재위치
	CASE 25, 50
		IF ABL:[[레이무]]:친밀 < 5
			DRAWLINE
			PRINTFORML 여기서 무단으로 벌채를 하기에는 좀 거북한 느낌이 든다
			RETURN -1
		ENDIF
	CASE 사각의죽림, 433
		IF ABL:[[모코우]]:친밀 < 5 && ABL:[[테위]]:친밀 < 5 && ABL:[[카구야]]:친밀 < 5 && ABL:[[에이린]]:친밀 < 5
			DRAWLINE
			PRINTFORML 여기서 무단으로 벌채를 하기에는 좀 거북한 느낌이 든다
			RETURN -1
		ENDIF
	CASE 절경의언덕, 805
		IF ABL:[[아야]]:친밀 < 5 && ABL:[[하타테]]:친밀 < 5
			DRAWLINE
			PRINTFORML 여기서 무단으로 벌채를 하기에는 좀 거북한 느낌이 든다
			RETURN -1
		ENDIF
ENDSELECT

TFLAG:무드상승억제 = 1

;先に벌채파워算出
벌채파워 = 1 + (TALENT:MASTER:벌채Lv * 2) + TALENT:MASTER:교양
;参加者判定
IF FLAG:데이트상대 && !FLAG:70
	CHARA = FLAG:데이트상대
ELSEIF TARGET && ABL:TARGET:친밀 >= 10 && !FLAG:70
	CHARA = TARGET
ELSE
	CHARA = 0
ENDIF
;参加者がいる場合は벌채파워追加
SIF CHARA && !FLAG:70
	벌채파워 += (TALENT:TARGET:벌채Lv * 2) + TALENT:TARGET:교양

탐색횟수 = 0

$LOOP_SELECT

REPEAT 5
	REUSELASTLINE  \@ CHARA ? %조사처리(CALLNAME:CHARA,"과")% 함께 #  \@ 벌채할 것을 수색중.%"." * COUNT%
	TWAIT 150, 1
REND

;벌채후보の목재종류とその크기を決定
목재종류 = WOOD_SPECIES(벌채가능(CFLAG:MASTER:현재위치))
크기 = 0
IF RAND:5 == 0 && 목재종류 <= 600 && 목재종류 != 12
	크기 ++
	SIF RAND:3 == 0
		크기 ++
ENDIF

;벌채후보をテキスト出力
IF 목재종류 == 646
	PRINTFORML 잔가지를 꺾어 보니, 향긋한 나무가 나 있다…
ELSEIF 목재종류 == 12
	PRINTFORML 대나무가 규칙적으로 곧게 뻗어 있다…
ELSE
	PRINTFORML 이 나무는 어떨까…
ENDIF
DRAWLINE
SETCOLOR C_YELLOW
PRINTFORM 찾은 \@ 목재종류 == 12 ? 것 # 나무 \@：%WOOD_NAME(목재종류)%
SELECTCASE 크기
	CASE 1
		PRINTFORM (큰 나무)
	CASE 2
		PRINTFORM (거목)
ENDSELECT
RESETCOLOR

;체력기력の감소치と벌채にかかる時間を算出
감소치 = WOOD_EFFORT(목재종류, 크기) - (WOOD_EFFORT(목재종류, 크기) * (벌채파워 / 70))
SIF ITEM:전기톱
	감소치 -= SQRT(WOOD_EFFORT(목재종류, 크기)) * 10
IF CHARA && !FLAG:70
	벌채시간 = 감소치 / (4 + TALENT:MASTER:벌채Lv + SQRT(TALENT:TARGET:벌채Lv))
ELSE
	벌채시간 = 감소치 / (4 + TALENT:MASTER:벌채Lv)
ENDIF

;벌채시간に応じてテキスト出力
SETCOLOR C_L_GRAY
SELECTCASE 벌채시간
	CASE IS <= 60
		PRINTFORML 　（비교적 쉽게 벨 수 있을 것 같다）
	CASE IS <= 120
		PRINTFORML 　（베는 것은 그럭저럭 시간이 걸릴 것이다）
	CASE IS <= 180
		PRINTFORML 　（좀 애를 먹을 것 같다…）
	CASE IS <= 240
		PRINTFORML 　（이건 고생할 것 같다…）
	CASE IS <= 300
		PRINTFORML 　（마음을 다잡고 차근차근 하지 않으면 안될 것 같다…）
	CASE IS <= 360
		PRINTFORML 　（어마어마한 일이 될 것 같다…）
	CASEELSE
		PRINTFORML 　（지금의 솜씨로는 꽤 힘든 일이 될 것 같다…）
ENDSELECT
RESETCOLOR
PRINTL
;체력・기력が実施後マイナスになる場合は、목재종류選択に戻る
IF (!FLAG:70 && (BASE:MASTER:체력 <= 감소치 || BASE:MASTER:기력 <= 감소치)) || (FLAG:70 && BASE:MASTER:TSP <= (벌채시간 * 10) + (탐색횟수 * 5))
	PRINTFORMW 이걸 베기엔 지금은 조금 조건이 나쁘다……다른 것을 찾자
	PRINTL
	탐색횟수 ++
	;탐색횟수が10回を超えた場合は無限ループ除けのためにリターンする
	IF 탐색횟수 >= 10
		PRINTFORMW ……너무 열중하면 헤멜 것 같아, 이번에는 이 정도로 해 두자
		IF !FLAG:70
			TIME += 탐색횟수 * 5
		ELSE
			BASE:MASTER:TSP -= 탐색횟수 * 5
		ENDIF
		RETURN -1
	ENDIF
	GOTO LOOP_SELECT
ENDIF
PRINTFORML 이것을 벌채할까요？
CALL ASK_YN
IF !RESULT
	CLEARLINE 4
ELSE
	CLEARLINE 8
	탐색횟수 ++
	GOTO LOOP_SELECT
ENDIF
CALL DQPRINT("당신은 나무를 자른다ー", 1)
CALL DQPRINT("헤이 헤이 호-", 1)
CALL DQPRINT("헤이 헤이 호-", 1)
SIF 벌채시간 >= 540
	CALL DQPRINT("………………………", 1)
SIF 벌채시간 >= 480
	CALL DQPRINT("……………………", 1)
SIF 벌채시간 >= 420
	CALL DQPRINT("…………………", 1)
SIF 벌채시간 >= 360
	CALL DQPRINT("………………", 1)
SIF 벌채시간 >= 300
	CALL DQPRINT("……………", 1)
SIF 벌채시간 >= 240
	CALL DQPRINT("…………", 1)
CALL DQPRINT("………", 1)
CALL DQPRINT("……", 1)

;時間経過と체력消費
IF FLAG:70
	BASE:MASTER:TSP -= (벌채시간 * 10) + (탐색횟수 * 5)
ELSE
	DOWNBASE:MASTER:체력 = 감소치
	DOWNBASE:MASTER:기력 = 감소치
	TIME += 벌채시간 + (탐색횟수 * 10)
ENDIF

;경험追加処理
EXP:MASTER:벌채경험 += MAX((벌채시간 / 20), 1)
;試行回数が少ないだろうから確定
SIF ITEM:나무꾼의마음가짐
	EXP:MASTER:벌채경험 ++
;크기補正
SIF 크기
	EXP:MASTER:벌채경험 += (크기 * 4)
;手伝ってくれたキャラの경험
IF CHARA
	EXP:CHARA:벌채경험 += MAX((벌채시간 / 20), 1)
	SIF 크기
		EXP:CHARA:벌채경험 += (크기 * 4)
ENDIF

;데이트경험
IF CHK_DATENOW(CFLAG:CHARA:데이트중) && CHARA > 0
	EXP:MASTER:데이트경험 ++
	EXP:CHARA:데이트경험 ++
ENDIF
SETCOLOR 0x00FF00
;アイテム入手処理
SELECTCASE 목재종류
	CASE 12, 646
		IF 목재종류 == 12
			;竹だけはすぐに製材番号に変換 FLAG:통나무종류には記録しない
			PRINTFORMDL 시간정지 능력을 응용하여, 순식간에 건조!
			PRINTFORMW 대나무 제재를 손에 넣었다
			LOG_SALES:12 ++
		ELSE
			;香木ほかの処理
			PRINTFORMW %조사처리(WOOD_NAME(목재종류),"를")% 손에 넣었다
			SIF ITEM:목재종류 < 99
				ITEM:목재종류 ++
		ENDIF
	CASEELSE
		;傷んだ木は即座に목재に変換(未実装　テンポ悪くなりそう)

		;普通の木に関してはまとめて
		ITEM:통나무 ++
		FLAG:통나무종류 = 목재종류
		;크기をFLAGに反映
		FLAG:통나무종류 += 100 * 크기
		PRINTFORML 시간정지 능력을 응용하여, 순식간에 건조!
		PRINTFORMW %WOOD_NAME(FLAG:통나무종류)%의 통나무를 손에 넣었다

ENDSELECT
RESETCOLOR
;デバッグ用
;IF FLAG:통나무종류
;	PRINTFORMW 　　確認：%WOOD_NAME(FLAG:통나무종류)%
;ENDIF
PRINTL

;장작패기確認 장작패기時間・체력消費はサービス
IF FLAG:통나무종류
	CALL WOOD_CHOPPING(FLAG:통나무종류)
ENDIF

;オマケ채집물  채집Lvに依存  あくまでおまけなので控えめに
채집파워 = TALENT:MASTER:채집Lv * 10 + ABL:MASTER:교양 * 5 + TFLAG:행운보정 * 3
SIF CHARA && !FLAG:70
	채집파워 += (10 + TALENT:CHARA:채집Lv * 10 + ABL:CHARA:교양 * 5) / 2

채집물 = 0
SELECTCASE RAND:(1 + 2 * SQRT(채집파워))
	CASE 0 TO 6
		;失敗
	CASE 7, 9, 11, 13, 15, 17, 19, 21, 23
		IF 벌채가능(CFLAG:MASTER:현재위치) == 2
			;竹林では何も手に入らない
		ELSEIF DAY:2 == 1 || DAY:2 == 2;春夏
			채집물 = 626;나무딸기
		ELSEIF DAY:2 == 3;秋
			SELECTCASE RAND:3;나무딸기、アケビ、ぶどう
				CASE 0
					채집물 = 377
				CASE 1
					채집물 = 626
				CASEELSE
					채집물 = 628
			ENDSELECT
		ENDIF
		SIF 채집물
			PRINTFORMW 나무에 무엇인가 달려있다…
	CASEELSE
		IF 벌채가능(CFLAG:MASTER:현재위치) == 2;春の竹林ではタケノコ
			SIF DAY:2 == 1
				채집물 = 629
		ELSEIF DAY:2 == 1 || DAY:2 == 3;春秋
			SELECTCASE RAND:2;普通のキノコか山菜
				CASE 0
					채집물 = 600
				CASEELSE
					채집물 = 611
			ENDSELECT
		ELSEIF DAY:2 == 2;夏
			채집물 = 600;			普通のキノコのみ
		ELSE
			SIF RAND:2 == 0;			冬はさらに50％の確率で氷の鱗
				채집물 = 609
		ENDIF
		SIF 채집물
			PRINTFORMW 땅바닥에 무언가 있다…
ENDSELECT
IF 채집물
	SETCOLOR 0x00FF00
	PRINTFORMW %조사처리(ITEMNAME:채집물,"을")% 손에 넣었다
	RESETCOLOR
	SIF ITEM:채집물 < 99
		ITEM:채집물 ++
	EXP:MASTER:채집경험 ++
	SIF CHARA
		EXP:CHARA:채집경험 ++
ENDIF

;공복시각と参加者の疲労度
TCVAR:MASTER:공복시각 -= 25
IF CHARA
	TCVAR:CHARA:공복시각 -= 25
	CALL ADD_TIRED(CHARA, POWER((크기 + 1) + 1, 3) * 100)
ENDIF

RETURN 1

;-------------------------------------------------
;実行가능判定
;-------------------------------------------------
;벌채する
@COM_ABLE442
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(442)
	RETURN RESULT
SIF CFLAG:우후후
	RETURN 0
;벌목 가능한 장소에서만
SIF !벌채가능(CFLAG:MASTER:현재위치)
	RETURN 0
;데이트중은 데이트상대하고만
SIF FLAG:데이트상대 && TARGET != FLAG:데이트상대
	RETURN 0
;수면중
SIF CFLAG:MASTER:수면
	RETURN 0
;체력・기력부족
SIF BASE:MASTER:기력 < 800 || BASE:MASTER:체력 < 800
	RETURN 0
RETURN 1

;-----------------------------------------------------------
;현재 위치에서 벌목 지점을 산출하는 함수
;-----------------------------------------------------------
@벌채가능(ARG)
#FUNCTION
IF !IN_HOME(ARG)
	SELECTCASE ARG
		CASE 50
			RETURNF 1
		CASE 사각의죽림
			RETURNF 2
		CASE 숲의입구
			RETURNF 3
		CASE 산록의수해
			RETURNF 4
		CASE 절경의언덕
			RETURNF 5
	ENDSELECT
ELSE
	SELECTCASE ARG
		CASE 25;진수의숲
			RETURNF 1
		CASE 433;사각의죽림
			RETURNF 2
		CASE 507 ;버섯군생지
			RETURNF 3
		CASE 702;山道・강으로가는길
			RETURNF 4
		CASE 805;산정
			RETURNF 5
	ENDSELECT
ENDIF
RETURNF 0

;-----------------------------------------------------------
;벌채スポットから伐れる목재종류を割り出す関数
;ARG 벌채가능
;-----------------------------------------------------------
@WOOD_SPECIES(ARG)
#FUNCTION
#DIM 후보

$LOOP

후보 = RAND:12
SELECTCASE ARG
	CASE 1;鎮守の森、妖精の大樹
		SIF GROUPMATCH(후보, 1, 2, 3, 6, 7, 8, 9)
			RETURNF 후보
	CASE 2;사각의죽림
		;竹材に固定
		RETURNF 12
	CASE 3;魔法の森
		SIF 후보 == 0 && RAND:2 == 0
			RETURNF 646
		SIF GROUPMATCH(후보, 1, 2, 4, 6, 7, 8, 9)
			RETURNF 후보
	CASE 4;麓の樹海
		SIF 후보 == 0 && RAND:2 == 0
			RETURNF 646
		SIF GROUPMATCH(후보, 1, 2, 3, 5, 7, 9, 10)
			RETURNF 후보
	CASE 5;절경의언덕 標高高め
		SIF GROUPMATCH(후보, 3, 5, 7, 9, 10, 11)
			RETURNF 후보
ENDSELECT
GOTO LOOP

;-----------------------------------------------------------
;통나무・竹材の名称を返す関数
;ARG:0 …FLAG:통나무종류　（목재종류番号でも通る）
;ARG:1 =1 「の大木・の巨木」を文字列に反映しない
;      省略した場合は =0 (巨木・大木表示あり)
;RETURNF 1～ 普通の木 100～ 〇〇の大木 200～ 〇〇の巨木
;-----------------------------------------------------------
@WOOD_NAME(ARG:0, ARG:1 = 0)
#FUNCTIONS
#DIM 번호보정
#DIMS 가명

번호보정 = ARG:0 % 100

SELECTCASE 번호보정
	CASE 646
		RETURNF "향목"
	CASEELSE
		가명 = %WoodName:번호보정%
ENDSELECT

IF ARG:1 == 0
	SELECTCASE ARG:0
		CASE 101 TO 199
			가명 += "(큰 나무)"
		CASE 201 TO 299
			가명 += "(거목)"
	ENDSELECT
ENDIF
RETURNF 가명
;-----------------------------------------------------------
;통나무・竹材の벌채にかかる체력・기력を返す関数
;ARG:0 목재종류番号	ARG:1 크기
;-----------------------------------------------------------
@WOOD_EFFORT(ARG:0, ARG:1)
#FUNCTION
#DIM 베이스

SELECTCASE ARG:0
	CASE 646;香木
		베이스 = 600
	CASEELSE
		베이스 = WoodEffort:(ARG:0)
ENDSELECT

SELECTCASE ARG:1
	CASE 1;大木
		베이스 += 700
	CASE 2;巨木
		베이스 += 1000
ENDSELECT
RETURNF 베이스

;-----------------------------------------------------------
;장작패기をするかどうかを確認して、목재を入手する
;통나무を割る場合は체력・기력消費と時間の経過は別に記述をすること
;ARG 	FLAG:통나무종류　で통나무の薪割を行う
;		省略時は=0  一般薪割・통나무無しでも가능・체력기력消費あり
;-----------------------------------------------------------
@WOOD_CHOPPING(ARG = 0)
#DIM 장작패기
#DIM 벌채파워
#DIM 감소치
#DIM 벌채시간

IF ARG
	PRINTFORM 통나무를 여기서 쪼개 목재로 해볼까?
	장작패기 = (1 + ARG / 100) * 5
ELSE
	PRINTFORM 장작패기를 해볼까?
	장작패기 = 3
ENDIF

IF (ITEM:목재 + 장작패기) > 99
	CALL COLORMESSAGE(@"　（목재는 더 이상 가질 수 없을만큼 많이 있다…）",C_GRAY,2)
ELSE
	PRINTW
ENDIF
SIF ARG
	CALL COLORMESSAGE(@"　（주의: 목재로 만들어 버리면, 제재로 가공할 수 없습니다）",C_RED,1)
CALL ASK_YN
IF !RESULT
	PRINTFORMW 장작패기를 해서 목재를 {장작패기}개 손에 넣었다
	IF ARG
		ITEM:통나무 = 0
		FLAG:통나무종류 = 0
	;一般薪割の場合は、체력기력時間消費
	ELSE
		벌채파워 = TALENT:MASTER:벌채Lv * 20
		감소치 = 350 - 벌채파워
		벌채시간 = 180 - 벌채파워
		IF ITEM:전기톱
			감소치 /= 2
			벌채시간 /= 2
		ENDIF
		IF FLAG:70
			BASE:MASTER:TSP -= 감소치
		ELSE
			DOWNBASE:MASTER:체력 = 감소치
			IF ITEM:전기톱
				DOWNBASE:MASTER:기력 = 감소치 - 50
			ELSE
				DOWNBASE:MASTER:기력 = 감소치 - 25
			ENDIF
			TIME += 벌채시간
		ENDIF
	ENDIF
	;목재数の増加処理
	ITEM:목재 = MIN(장작패기 + ITEM:목재, 99)
ELSE
	IF ARG
		CLEARLINE 5
		PRINTFORMW 통나무는 마을의 목재상이나 산의 제재소에 이대로 가져가기로 하자……
	ENDIF
ENDIF
PRINTL

path: ERB/커맨드관련/COMF/일상계/COMF442 벌채한다_t.ERB


code:
;-------------------------------------------------
;고유 커맨드
;일상계 커맨드, 레벨 X
;-------------------------------------------------
@COM443
TRYCALLFORM UNIQUE_COM_%NAME_UNIQUE_COM(TARGET)%
SIF RESULT == -1
	RETURN -1
TIME += 3
RETURN 1

@COM_ABLE443
;정지 중에는 불가
SIF FLAG:70 == 1
	RETURN 0
;실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(443)
	RETURN RESULT
SIF TARGET <= 0
	RETURN 0
SIF !SHIRAHU(TARGET)
	RETURN 0
SIF CFLAG:우후후
	RETURN 0
SIF !ABLE_UNIQUE_COM(TARGET)
	RETURN 0
RETURN 1

@NAME_UNIQUE_COM(CHARA)
#FUNCTIONS
#DIM CHARA
RETURNF GET_STR(0, "캐릭터데이터", CHARA, "고유커맨드")

@ABLE_UNIQUE_COM(CHARA)
#FUNCTION
#DIM CHARA
RETURNF GET_INT(0, "캐릭터데이터", CHARA, "고유커맨드 실행 가능")

;-------------------------------------------------
;레이무 용
;-------------------------------------------------
@UNIQUE_COM_운세뽑기계약
#DIM 운세뽑기값
IF FLAG:운세뽑기계약
	PRINTFORML 「이미 계약하고 있잖니」
	RETURN -1
ENDIF
IF !MAIN_MAP
	운세뽑기값 = 30
ELSE
	운세뽑기값 = 50
ENDIF
PRINTFORML 「낙원의 멋진 무녀가 매일 널 위해서 운세를 뽑아줄게」
PRINTFORML 「월 50 카리스마야. 싸지?」
SIF !MAIN_MAP
	PRINTFORML 「신사에 얹혀사는 동안에는 30이면 돼」
CALL ASK_M("부탁한다", MONEY:2 >= 운세뽑기값,"그만둔다", 1)
SIF RESULT
	RETURN -1
PRINTFORMW 「매번 감사! 이사하면 재계약해야 되거든」
MONEY:2 -= 운세뽑기값
FLAG:운세뽑기계약 = 1

;-------------------------------------------------
;아야 용
;-------------------------------------------------
@UNIQUE_COM_신문구독
IF FLAG:신문구독
	PRINTFORML 「이미 구독하고 계시잖아요」
	RETURN -1
ENDIF
PRINTFORML 「월\\3000에 환상향의 『현재』를 알 수 있다! 붕붕마루 신문을 구독하지 않으실래요?」
CALL ASK_M("필요 없어", 1,"구독한다", MONEY >= 3000,"카리스마로 구독한다", MONEY:2 >= 10)
SELECTCASE RESULT
	CASE 0
		RETURN -1
	CASE 1
		MONEY -= 3000
	CASE 2
		MONEY:2 -= 10
ENDSELECT
PRINTFORMW 붕붕마루 신문을 구독하기로 했습니다.
PRINTFORMW 매월 첫날에 계약을 갱신합니다.
FLAG:신문구독 = 1

;-------------------------------------------------
;텐시용
;-------------------------------------------------
@UNIQUE_COM_날씨조작
IF CFLAG:MASTER:현재위치 == 천계
	PRINTFORML 「여기선 무리야」
	RETURN -1
ENDIF
IF FLAG:이상기상
	PRINTFORML 「이 날씨는 못 바꿔」
	RETURN -1
ENDIF
IF GETBIT(TFLAG:일일일회, 6)
	PRINTFORML 「오늘은 이제 안 해」
	RETURN -1
ENDIF
PRINTFORML 「대략적으로밖에 안 해. 귀찮거든」
$LOOP
CALL ASK_M("맑음", 1,"흐림", 1,"비", 1, "눈", DAY:2 == 4, "팬티", 1)
SELECTCASE RESULT
	CASE 0
		;비라면 저확률로 무지개
		SIF INRANGE(TIME:5, 4,7) && !RAND:7
			TIME:7 = 1
		;눈이라면 저확률로 다이아몬드 더스트
		SIF INRANGE(TIME:5, 8,13) && !RAND:7
			TIME:7 = 2
		TIME:5 = RAND:2
	CASE 1
		TIME:5 = RAND:2 + 2
	CASE 2
		;맑음을 바꾸려고 하면 무지개
		IF TIME:5 < 2 && !RAND:4
			TIME:7 = 1
		ELSE
			TIME:5 = 4 + RAND:4
		ENDIF
	CASE 3
		;맑음을 바꾸려고 하면 다이아몬드 더스트
		IF TIME:5 < 2 && !RAND:4
			TIME:7 = 2
		ELSE
			TIME:5 = 8 + RAND:6
		ENDIF
	CASE 4
		PRINTFORML 「바보 아냐?」
		RETURN -1
ENDSELECT

DOWNBASE:기력 = 300
SETBIT TFLAG:일일일회, 6

;(天候パッチ)風速を0にする
WIND_VELOCITY = 0
;(天候パッチ)1日が終わるまで天候変更を禁止する
FORBIDDEN_CHANGE_WEATHER = 1

;-------------------------------------------------
;모미지 용
;-------------------------------------------------
@UNIQUE_COM_천리안
PRINTFORML 「어디를 볼까요?」
CALL BROAD_HITOSAGASI

;-------------------------------------------------
;치르노용
;-------------------------------------------------
;아이스크림의 가격은 계절에 의해 변동한다(여름이 제일 높다)
@UNIQUE_COM_아이스를산다
#DIM 아이스값
#DIM 팩값
SELECTCASE DAY:2
CASE 1
	아이스값 = 400
CASE 2
	아이스값 = 500
CASE 3
	아이스값 = 300
CASE 4
	아이스값 = 200
ENDSELECT
팩값 = 아이스값 * 9

DRAWLINE
PRINTL 「아이스 원해?」
PRINTFORML 소지금 :%금액표시(MONEY)%
DRAWLINE
CALL EX_SHOPPING(GETNUM(ITEM, "아이스크림"), "아이스", "달고 맛있는 아이스", 아이스값, 1)
CALL EX_SHOPPING(GETNUM(ITEM, "아이스크림"), "아이스 세트", "다 같이 먹자", 팩값, 10, GETNUM(ITEM, "아이스크림") + 1)
DRAWLINE
PRINTL [999] 그만둔다
INPUT

IF RESULT == 999
	RETURN -1
ELSEIF RESULT == GETNUM(ITEM, "아이스크림")
	CALL ITEM_CARTON(GETNUM(ITEM, "아이스크림"), 아이스값, 1)
ELSEIF RESULT == GETNUM(ITEM, "아이스크림") + 1
	CALL ITEM_CARTON(GETNUM(ITEM, "아이스크림"), 팩값, 10)
ENDIF
RESTART

;-------------------------------------------------
;사쿠야 용
;-------------------------------------------------
@UNIQUE_COM_홍마관출장서비스
PRINTFORML 「어머, 뭔가 도와드릴까요?」
PRINTFORML
CALL ASK_M("부탁하지 않는다", 1, "청소 대행", !TFLAG:출장청소, "물주기대행", ITEM:150)
SELECTCASE RESULT
CASE 0
	RETURN -1
CASE 1
	PRINTFORML 홉고블린에게 %GET_MAPNAME(MAIN_MAP)%의 청소를 부탁하겠습니까?
	CALL PAY_YEN_OR_CM(3000,10)
	SIF !RESULT
		RETURN -1
	PRINTFORML 출장 청소 서비스를 의뢰했습니다.
	TFLAG:출장청소 = 1
CASE 2
	PRINTFORML 홉고블린에게 텃밭의 물주기를 부탁하겠습니까? (이번 달까지)
	CALL PAY_YEN_OR_CM(15000,70)
	SIF !RESULT
		RETURN -1
	PRINTFORML 물주기대행을 의뢰했습니다.
	FLAG:물주기대행 = 1
ENDSELECT
RETURN 1

;-------------------------------------------------
;나즈린용
;-------------------------------------------------
@UNIQUE_COM_다우징
#DIM DYNAMIC CNT_TALK
#DIM DYNAMIC CNT_DOWSING
#DIM CAN_SLOT
#DIM CHK_SLOT
#DIM TMP_ID
IF !CNT_TALK
	PRINTFORML 「흠. 물건 찾기 상담인가」
	PRINTFORML 「확실히 그건 내 전문 분야인걸」
	PRINTFORMW 「그러면 자세하게 이야기를 들어볼까」
	CNT_TALK ++
	CAN_SLOT = CAN_DOWSING()
	IF !CAN_SLOT
		PRINTFORML 「이봐이봐. 딱히 찾고 싶은 것도 없는데 다우징해달라고 한 거야?」
		PRINTFORMW 「구경거리가 아니라고? 참 내…」
		RETURN
	ENDIF
ELSE
	PRINTFORMW 「뭐가 더 남았어?」
ENDIF

FOR CHK_SLOT, 1, 6
	SIF !GETBIT(CAN_SLOT, CHK_SLOT)
		CONTINUE
	PRINTFORML [{CHK_SLOT}] - 의뢰{CHK_SLOT}　＜%STR_DATA_IRAI(IRAI_SLOT:CHK_SLOT, "의뢰명", IRAI_SLOT_TO_CLIENT(CHK_SLOT))%＞
NEXT
PRINTFORML
PRINTFORML [0] - 그만둔다
DO
	INPUT
	CHK_SLOT = RESULT
	SELECTCASE CHK_SLOT
	CASE 1 TO 5
		SIF !GETBIT(CAN_SLOT, CHK_SLOT)
			CONTINUE
		IF IRAI_EX:CHK_SLOT
			PRINTFORML 「이봐이봐, 그 의뢰라면 이미 조사했잖아」
			CONTINUE
		ENDIF
		PRINTFORML 「그렇군」
		PRINTFORML 「다우징에는 약간의 시주를 받는데, 괜찮겠지?」
		CALL ASK_M("그만둔다", 1, "\\1000을 희사한다", MONEY >= 1000, "5CM를 희사한다", MONEY:2 >= 5)
		SELECTCASE RESULT
		CASE 0
			PRINTFORMW 「이런, 그건 유감인걸」
			BREAK
		CASE 1
			MONEY -= 1000
		CASE 2
			MONEY:2 -= 5
		ENDSELECT
		CNT_DOWSING ++
		SELECTCASE IRAI_SLOT_TO_TASKNAME(CHK_SLOT)
		CASE "수색(인물)"
			CNT_DOWSING ++
			TMP_ID = IRAI_SLOT_TO_PERSON(CHK_SLOT)
			IRAI_EX:CHK_SLOT = TMP_ID
			IF CALLNAME:TMP_ID == "나즈린"
			;나즈 대사는 인물에 대한 반응 분기가 많지만 만들 수 없다
			;분명히 자신이 상대라면 이런 느낌이 될 것이다
				PRINTFORML 「아까부터 조금 전부터 펜듈럼이 쭉 반응하고 있는데」
				PRINTFORML 「그 의뢰는 나와 관련 있는 것 아닐까?」
				PRINTFORMW 「왠지 그런 느낌이 들어」
				BREAK
			ENDIF
			CALL DOWSING_TSUBUYAKI
			PRINTFORML 「결론이 나왔어」
			PRINTFORML 「%조사처리(CALLNAME:TMP_ID,"가")% 중요 인물이야」
			PRINTFORML 「내친 김에 있는 곳도 알아내둘까?」
			CALL ASK_M("그만둔다", 1, "\\500을 희사한다", MONEY >= 500, "3CM를 희사한다", MONEY:2 >= 3)
			SELECTCASE RESULT
			CASE 0
				PRINTFORMW 「이런, 그건 유감인걸」
				BREAK
			CASE 1
				MONEY -= 500
			CASE 2
				MONEY:2 -= 3
			ENDSELECT
			IF CFLAG:TMP_ID:현재위치 == SUKIMA()
				PRINTFORML 「으응~, 반응이 안정되지 않는데」
				PRINTFORMW 「지금 당장 만나는 것은 어려운 것 같네」
			ELSE
				PRINTFORMW 「그녀는 현재, “%STR:(5000 + GET_MAPID(CFLAG:TMP_ID:현재위치))%”의 주변에 있는 것 같아」
			ENDIF
		CASE "수색(장소)"
			CNT_DOWSING ++
			TMP_ID = IRAI_SLOT_TO_PLACE(CHK_SLOT)
			IRAI_EX:CHK_SLOT = TMP_ID + 5000
			CALL DOWSING_TSUBUYAKI
			PRINTFORML 「결론이 나왔어」
			PRINTFORML 「네가 목표로 해야 할 장소는 “%STR:(5000 + GET_MAPID(TMP_ID))%” 다」
			PRINTFORML 「좀 더 상세한 정보가 필요한가?」

			CALL ASK_M("그만둔다", 1, "\\2000을 희사한다", MONEY >= 2000, "10CM를 희사한다", MONEY:2 >= 10)
			SELECTCASE RESULT
			CASE 0
				PRINTFORMW 「이런, 그건 유감인걸」
				BREAK
			CASE 1
				MONEY -= 2000
			CASE 2
				MONEY:2 -= 10
			ENDSELECT
			IRAI_EX:CHK_SLOT = TMP_ID
			PRINTFORMW 「%STR:(5000 + GET_MAPID(TMP_ID))%주변, 특히“%GET_PLACENAME(TMP_ID)%”의 반응이 강하네」
		CASEELSE
			PRINTFORMW 「어? ……으응~, 낚싯대의 상태가 이상한데」
			PRINTFORML
			PRINTFORML 　에러 발생중(로그의 제공을 부탁합니다)
			PRINTFORML 　클릭으로 에러 로그 생성
			PRINTFORMW ◆여기에서
			PRINTFORML IRAI_SLOT:CHK_SLOT　{IRAI_SLOT:CHK_SLOT}
			PRINTFORML IRAI_DATA:CHK_SLOT　{IRAI_DATA:CHK_SLOT}
			CALL SHOW_IRAI_DATA(IRAI_SLOT:CHK_SLOT, CHK_SLOT)
			PRINTFORML
			PRINTFORML ◆여기까지
			PRINTFORMW 　복붙 대기
		ENDSELECT

	CASE 0
		IF CNT_DOWSING
			PRINTDATAL
				DATA 「도움이 되었을까?」
				DATA 「행운을 빌어둘게」
				DATA 「이제 된 거야?」
			ENDDATA
			PRINTFORMW 「뭐, 마음 길게 먹고 찾아봐」
		ELSE
			PRINTFORMW 「변죽만 울리지 말아줬으면 하는데」
		ENDIF
		RETURN
	CASEELSE
		$RETRY
		PRINTFORMW 「응, 뭐라고?」
		CONTINUE
	ENDSELECT
	BREAK
LOOP 1
RESTART

;수탁이 끝난 의뢰의 다우징 가부 판정
;반환값은 BIT로 각 의뢰의 다우징 가부
@CAN_DOWSING()
#FUNCTION
#DIM CHK_SLOT
#DIM DYNAMIC CAN_SLOT
FOR CHK_SLOT, 1, 6
	SIF !IRAI_SLOT_CAN_DOWSING(CHK_SLOT)
		CONTINUE
	SETBIT CAN_SLOT, CHK_SLOT
NEXT
RETURNF CAN_SLOT

;개개의 의뢰슬롯의 다우징 가부 판정
@IRAI_SLOT_CAN_DOWSING(CHK_SLOT)
#FUNCTION
#DIM CHK_SLOT
SIF IRAI_SLOT_TO_PROGRESS(CHK_SLOT) != "의뢰중"
	RETURNF 0
SIF !GROUPMATCH(IRAI_SLOT_TO_TASKNAME(CHK_SLOT), "수색(인물)", "수색(장소)")
	RETURNF 0
RETURNF CHK_SLOT

;다우징중의 혼잣말
@DOWSING_TSUBUYAKI
#DIMS COMMENT, 3
COMMENT:0 '= "「호오…… 이건」"
STRDATA COMMENT:1
	DATA 「……꽤 좁혀냈군」
	DATA 「음, 이러면 앞뒤가 안 맞는데」
	DATA 「이런, 그렇게 되는 건가」
	DATA 「그럼, 이렇게 하면…………」
ENDDATA
STRDATA COMMENT:2
	DATA 「……그런 건가」
	DATA 「뭐야, 간단한 거잖아」
	DATA 「좋아, 이거다」
	DATA 「이쯤일까」
ENDDATA
CALL PRINT_GROUP(COMMENT, 3)

;-------------------------------------------------
;스타용
;-------------------------------------------------
@UNIQUE_COM_기척을찾는다
PRINTFORML 「흐응, 누군가 찾아?」
PRINTFORML 「그렇네…… 용돈 줄래?」
CALL ASK_M("역시 그만", 1, "\\500 줄게", MONEY >= 500, "3CM 줄게", MONEY:2 >= 3)
SELECTCASE RESULT
CASE 0
	PRINTDATAW
		DATAFORM 「우―, %CALLNAME:MASTER% 구두쇠」
		DATAFORM 「……하아」
		DATAFORM 스타 사파이어는 말없이 이쪽을 째려보고 있다
	ENDDATA
	RETURN
CASE 1
	MONEY -= 500
CASE 2
	MONEY:2 -= 3
ENDSELECT
PRINTDATAW
	DATAFORM 「와이~」
	DATAFORM 「했다―」
	DATAFORM 「용돈이다―」
	DATAFORM 「말귀 밝은 사람은 좋아해」
	DATAFORM 스타 사파이어는 흡족해하고 있다
ENDDATA
PRINTFORML 「그럼 시작할게♪」
PRINTFORMW 「음, 보자……」
PRINTFORML
CALL HITOSAGASI
PRINTFORMW

;-------------------------------------------------
;마리사 용
;교우 관계 넓은 것 같고, 귀는 빠를 것이다
;-------------------------------------------------
@UNIQUE_COM_사람돕기
#DIM PREV_DAY
#DIM IRAI_ABLE
#DIM CLIENT_ID
PREV_DAY = DAY
PRINTFORMW 「에? “곤란한 여자아이를 몰라”?」

CALL CAN_IRAI_START
IRAI_ABLE = RESULT
IF IRAI_ABLE && IRAI_CHARA_TO_PROGRESS(TARGET) == "의뢰미수탁"
	PRINTFORML 「있고 말이야, 여기 혼자야!」
	CALL IRAI_START(TARGET)
	SIF IRAI_CHARA_TO_PROGRESS(TARGET) != "의뢰중"
		PRINTFORMW 「뭐야, 보통 이 흐름에서 거절이야?」
	RETURN
ENDIF

CLIENT_ID = SEARCH_UNIQUE_COM_사람돕기()
SELECTCASE CLIENT_ID
CASE 0
	PRINTFORML 「으응~」
	PRINTFORMW 「내가 아는 한에서는 없는 것 같네」
CASEELSE
	PRINTFORML 「%TEXTR("으응~/그러니까/분명히……")%」
	PRINTDATAW
		DATAFORM 「%조사처리(CALLNAME:CLIENT_ID,"가")% 그런 이야기를 하고 있다고 생각해」
		DATAFORM 「%조사처리(CALLNAME:CLIENT_ID,"가")% 무슨 말을 했더라」
		DATAFORM 「%조사처리(CALLNAME:CLIENT_ID,"가")% 곤란하고 있다고 소문으로 들었다구」
		DATAFORM 「%CALLNAME:CLIENT_ID%의 곳에라도 가 보면 괜찮지 않을까?」
		DATAFORM 「%조사처리(CALLNAME:CLIENT_ID,"를")% 만나러 가면 좋을 것 같아」
	ENDDATA
ENDSELECT

@SEARCH_UNIQUE_COM_사람돕기
#FUNCTION
#DIM DYNAMIC CLIENT_ID, 캐릭터수상한
#DIM DYNAMIC CLIENT_CNT
FOR LOCAL:0, 1, CHARANUM
	SIF IRAI_CHARA_TO_PROGRESS(LOCAL:0) != "의뢰미수탁"
		CONTINUE
	CLIENT_ID:CLIENT_CNT = LOCAL:0
	CLIENT_CNT ++
NEXT
SIF !CLIENT_CNT
	RETURNF 0
RETURNF CLIENT_ID:(RAND:CLIENT_CNT)

;-------------------------------------------------
;니토리 용
;-------------------------------------------------
@UNIQUE_COM_도구를산다
#DIM 買うもの
#DIM 割引
TFLAG:194 = 1
割引 = 66
;購入条件設定
FOR LOCAL, 0, 1000
	CALL ITEMDATA(LOCAL, "SHOP:캇파의 도구점")
	IF RESULT
		CALL ITEMDATA(LOCAL, "SALES")
		ITEMSALES:LOCAL = RESULT
	ENDIF
NEXT
DRAWLINE
CALL LIST_ITEM("캇파 도구")
DRAWLINE
PRINTL 「지금이라면 싸게 해 두어」
PRINTFORML 구입할 아이템을 선택해주세요 소지금 :\\%TOSTR(MONEY,"#,###")%
DRAWLINE
CALL SHOW_SHOPPING("캇파의 도구점", "캇파 도구", 割引)
DRAWLINE
;未実装
;PRINTL [990] - 도구의 개조　[991] - 도구의 개발
PRINTL [990] - 도구의 개조
PRINTL [999] - 돌아간다
INPUT

IF RESULT == 999
	RETURN -1
ELSEIF RESULT == 990
	CALL TOOL_CUSTOM
	SIF RESULT
		RETURN RESULT
ELSEIF RESULT == 991
	;未実装
ELSE
	買うもの = RESULT
	CALL ITEMDATA(買うもの, "SHOP:캇파의 도구점", 割引)
	IF RESULT && ITEMSALES:買うもの >= 0 && ITEM:買うもの < 소지수제한
		CALL ITEMDATA(買うもの, "구입", 割引)
		SIF RESULT
			RESTART
	ELSE
		RESTART
	ENDIF
ENDIF

;도구 개조 함수
;현재 상태로서는 풀장 뿐이지만
;개조 아이템이 증가하면(자) 한층 더 비대화 하는 것이 눈에 보이므로 독립
;구입으로 RETURN -1, 구입하지 않을 때는 RETURN 0
;아무것도 하지 않고 말미에 도달하면(자) 구입한 취급이 됩니다
@TOOL_CUSTOM
#DIM 거품개조전제조건
거품개조전제조건 = GETBIT (FLAG:풀장, 0) && GETBIT (FLAG:풀장, 1) && GETBIT (FLAG:풀장, 2)
DRAWLINE
PRINTFORML 개조할 아이템을 선택해주세요 소지금 :\\%TOSTR(MONEY,"#,###")%
DRAWLINE
FOR LOCAL, 0, 1000
	CALL ITEMDATA(LOCAL, "TYPE:개조가능")
	SIF RESULT && ITEM:LOCAL
		PRINTFORML [{LOCAL, 3}] - %ITEMNAME:LOCAL%
NEXT
PRINT [999] - 역시 그만둔다
INPUT
SELECTCASE RESULT
CASE 999
	RETURN
CASE GETNUM(ITEM, "간이풀장")
	SIF !ITEM:간이풀장
		RETURN
	DRAWLINE
	PRINTL 「어떻게 개조해?」
	PRINT 현재 상태：
	DRAWLINE
	SIF GETBIT (FLAG:풀장, 0)
		PRINT [자주모터]
	SIF GETBIT (FLAG:풀장, 1)
		PRINT [온수 기능]
	SIF GETBIT (FLAG:풀장, 2)
		PRINT [샤워]
	SIF GETBIT (FLAG:풀장, 3)
		PRINT [이상한 거품]
	PRINTL

	IF !GETBIT (FLAG:풀장, 0)
		PRINTL [  1] - 모터(\5000)：이동의 부담이 없어진다
	ELSE
		SETCOLOR C_GRAY
		PRINTL [완료] - 모터：이동의 부담이 없어진다
		RESETCOLOR
	ENDIF
	IF !GETBIT (FLAG:풀장, 1)
		PRINTL [  2] - 온수 기능(\5000)：넓은 장소에서 편하게 한다
	ELSE
		SETCOLOR C_GRAY
		PRINTL [완료] - 온수 기능：넓은 장소에서 편하게 한다·목욕탕플레이가 생긴다
		RESETCOLOR
	ENDIF
	IF !GETBIT (FLAG:풀장, 2)
		PRINTL [  3] - 샤워(\5000)：샤워로 씻을 수 있다·물주기도 할 수 있다
	ELSE
		SETCOLOR C_GRAY
		PRINTL [완료] - 샤워：샤워로 씻을 수 있다·물주기도 할 수 있다
		RESETCOLOR
	ENDIF
	IF 거품개조전제조건 == 0
		PRINTFORML [4] - 3개 모두 개조(1개당\\5000)
		PRINTL [?] - ?????
	ELSEIF !GETBIT (FLAG:풀장, 3)
		PRINTL [5] - 이상한 거품(\5000)：와카사기히메가 자유롭게 이동할 수 있게 된다
	ELSE
		SETCOLOR C_GRAY
		PRINTL [완료] - 이상한 거품：와카사기히메가 자유롭게 이동할 수 있게 된다
		RESETCOLOR
		PRINTL 　　　　더 이상 개조할 수 없다
	ENDIF

	PRINTL [999]역시 그만둔다
	INPUT
	SELECTCASE RESULT
	CASE 999
		RETURN
	CASE 1
		IF !GETBIT (FLAG:풀장, 0) && MONEY >= 5000
			PRINTL 이동의 부담이 없어졌다!
			SETBIT FLAG:풀장, 0
			MONEY -= 5000
		ELSE
			RETURN
		ENDIF
	CASE 2
		IF !GETBIT (FLAG:풀장, 1) && MONEY >= 5000
			PRINTL 넓은 장소에서 편하게 있을 수 있게 되었다!
			PRINTL 목욕탕 플레이가 가능해졌다!
			SETBIT FLAG:풀장, 1
			MONEY -= 5000
		ELSE
			RETURN
		ENDIF
	CASE 3
		IF !GETBIT (FLAG:풀장, 2) && MONEY >= 5000
			PRINTL 샤워를 사용할 수 있게 되었다!
			PRINTL 물주기가 편해졌다!
			SETBIT FLAG:풀장, 2
			MONEY -= 5000
		ELSE
			RETURN
		ENDIF
	CASE 4
		IF 거품개조전제조건 == 0 && MONEY >= 5000 * (!GETBIT (FLAG:풀장, 0) + !GETBIT (FLAG:풀장, 1) + !GETBIT (FLAG:풀장, 2))
			PRINTL 여러 가지 기능이 추가되었다!
			MONEY -= 5000 * (!GETBIT (FLAG:풀장, 0) + !GETBIT (FLAG:풀장, 1) + !GETBIT (FLAG:풀장, 2))
			SETBIT FLAG:풀장, 0
			SETBIT FLAG:풀장, 1
			SETBIT FLAG:풀장, 2
		ELSE
			RETURN
		ENDIF
	CASE 5
		IF !GETBIT (FLAG:풀장, 3) && 거품개조전제조건 && MONEY >= 5000
			PRINTL 와카사기히메에게 이상한 거품을 사 주었다!
			SETBIT FLAG:풀장, 3
			MONEY -= 5000
		ELSE
			RETURN
		ENDIF
	ENDSELECT
CASEELSE
	RETURN
ENDSELECT
RETURN -1

;-------------------------------------------------
;우동게용
;-------------------------------------------------
@UNIQUE_COM_약을산다
#DIM 買うもの
DRAWLINE
CALL LIST_ITEM("토끼 약품")
DRAWLINE
PRINTFORML 구입할 아이템을 선택해주세요 소지금 :%금액표시(MONEY)%
DRAWLINE
PRINTL
VARSET LOCALS
CALL EX_SHOPPING(GETNUM(ITEM, "로션"), "로션 물병(와인)", "로션이 든 큰병. 5회분은 있을 것이다. ", 1000, 5)
CALL EX_SHOPPING(GETNUM(ITEM, "콘돔"), "콘돔 이득용 팩", "50개나 들어가 있다. ", 1000, 50)
CALL EX_SHOPPING(GETNUM(ITEM, "피임약"), "필(5정들이)", "밝은 가족 계획", 5000, 5)
CALL ITEM_SHOPPING(GETNUM(ITEM, "춘약"), "호의를 품기 쉬워진다")
CALL ITEM_SHOPPING(GETNUM(ITEM, "수면제"), "악용하면 안 돼요?")
CALL ITEM_SHOPPING(GETNUM(ITEM, "영양드링크"), "타우린 1000mg 배합")
CALL ITEM_SHOPPING(GETNUM(ITEM, "정력제"), "더러운 부자 납품업자")
CALL ITEM_SHOPPING(GETNUM(ITEM, "우콘드링크"), "술 마시기 전에")
CALL ITEM_SHOPPING(GETNUM(ITEM, "붕대"), "상처를 입은 데나 숨기고 싶은 장소에 감자")
CALL ITEM_SHOPPING(GETNUM(ITEM, "영양강화제"), "요리에 섞으면 부족한 영양분을 보충할 수 있다")
SIF TARGET == [[테위]] && !ITEM:토부「개운대문」
	CALL ITEM_SHOPPING(GETNUM(ITEM, "토부「개운대문」"),"럭키 색골이 일어나는 꿈의 아이템")
DRAWLINE
PRINTL [999] 그만둔다
INPUT

IF RESULT == 999
	RETURN -1
ELSEIF RESULT == GETNUM(ITEM, "토부「개운대문」") && TARGET == [[테위]] && !ITEM:토부「개운대문」
	CALL BOTTAKURI
ELSEIF RESULT == GETNUM(ITEM, "로션")
	CALL ITEM_CARTON(RESULT, 1000, 5)
ELSEIF RESULT == GETNUM(ITEM, "콘돔")
	CALL ITEM_CARTON(RESULT, 1000, 50)
ELSEIF RESULT == GETNUM(ITEM, "피임약")
	CALL ITEM_CARTON(RESULT, 5000, 5)
ELSE
	買うもの = RESULT
	CALL ITEMDATA(買うもの, "TYPE:토끼 약품")
	IF RESULT && ITEMSALES:買うもの >= 1 && ITEM:買うもの < 소지수제한
		CALL ITEMDATA(買うもの, "구입")
		SIF !RESULT
			RESTART
	ELSE
		RESTART
	ENDIF
ENDIF
RESTART

@BOTTAKURI
SELECTCASE FLAG:개운대문구입회수
CASE 0
	LOCAL = 1000
CASE 1 TO 3
	LOCAL = 10000
CASE 3 TO 10
	LOCAL = 20000
CASE 11 TO 20
	LOCAL = 30000
CASEELSE
	LOCAL = 50000
ENDSELECT
SIF TALENT:TARGET:연모 && LOCAL >= 20000
	LOCAL /= 2

SIF !FLAG:개운대문구입회수
	PRINTFORML 「지금이라면 시험 가격 \\{LOCAL}! 가져가 이 도둑―!」
IF LOCAL <= 10000
ELSE
	IF TALENT:TARGET:연모
		PRINTFORML 「%마스터라%면 \\{LOCAL}로 좋아」
	ELSE
		PRINTFORML 「그렇다면 \\{LOCAL}가 되겠어」
	ENDIF
	CALL ASK_M("웃기지마", 1, "삽니다", MONEY >= LOCAL, "그런 일 말 할 입장이야? ", CFLAG:TARGET:약점잡힘 && !CFLAG:TARGET:약점잡음)
	SELECTCASE RESULT
		CASE 0
			RETURN
		CASE 1
		CASE 2
			PRINTFORMW 약점과 바꿔 공짜로 Get 했다
			ITEM:130 ++
			CFLAG:TARGET:약점잡힘 = 0
			RETURN
	ENDSELECT
ENDIF

IF MONEY >= LOCAL
	ITEM:130 ++
	MONEY -= LOCAL
	FLAG:개운대문구입회수 ++
	PRINTFORMW \\{LOCAL}를 지불해 토부「개운대문」를 구입했다
ENDIF

;-------------------------------------------------
;미스치 용
;-------------------------------------------------
@UNIQUE_COM_포장마차에서식사
#DIM 동행인원수카운트
#DIM 음주가능인원수
#DIM ATSUKAN
#DIM OOMORI
#DIM KAIKEI
#DIM KAKAKU, 2

동행인원수카운트 = 1
음주가능인원수 = 0
ATSUKAN = 0
KAIKEI = 0
OOMORI = 0
VARSET KAKAKU
SIF CAN_DRINK(MASTER)
	음주가능인원수 = 1
FOR LOCAL, 1, CHARANUM
	SIF !CFLAG:LOCAL:동행
		CONTINUE
	 SIF !TIME_PROGRESS(TCVAR:LOCAL:공복시각)
	 	CONTINUE
	동행인원수카운트 ++
	SIF CAN_DRINK(LOCAL)
		음주가능인원수 ++
NEXT
PRINTFORML 「어서오세요, {동행인원수카운트}명 같네」
KAKAKU:0 = 3 * 동행인원수카운트
KAKAKU:1 = 5 * 동행인원수카운트
CALL ASK_M("꼬치구이 진열 한 사람 몫 3CM", MONEY:2 >= KAKAKU:0 && TIME_PROGRESS(TCVAR:MASTER:공복시각),"꼬치구이 진열(대) 한 사람 몫 5CM", MONEY:2 >= KAKAKU:1 && TIME_PROGRESS(TCVAR:MASTER:공복시각),"테이크 아웃　5CM", MONEY:2 >= 5 && !ITEM:야트메꼬치,"그만둔다", 1)
IF RESULT == 3
	PRINTFORML 「또 와」
	RETURN -1
ENDIF
IF RESULT == 2
	ITEM:야트메꼬치 ++
	MONEY:2 -= 5
	PRINTFORML 「식기 전에 먹어」
	SOURCE:환락 += 200
	TFLAG:98 = 1
	TIME += 5
	RETURN 1
ENDIF
MONEY:2 -= KAKAKU:RESULT
KAIKEI = KAKAKU:RESULT

SIF RESULT == 1
	OOMORI = 1

IF MONEY:2 >= 2 * 음주가능인원수
	PRINTFORML 「한사람당 2 카리스마로 데운 술도 곁들일래?」(술기운·기력회복량 업)
	CALL ASK_YN
	IF !RESULT
		ATSUKAN = 1
		KAIKEI += 2 * 음주가능인원수
		MONEY:2 -= 2 * 음주가능인원수
	ENDIF
ENDIF
;신뢰
TFLAG:98 += 3
;동행중 전원이 돌린다

FOR LOCAL, 0, CHARANUM
	SIF !CFLAG:LOCAL:동행 && LOCAL
		CONTINUE
	 SIF !TIME_PROGRESS(TCVAR:LOCAL:공복시각)
	 	CONTINUE
	CALL EAT_YATSUME(LOCAL, OOMORI, ATSUKAN)
NEXT

SOURCE:환락 += KAIKEI * 100
PRINTFORML 「모두{KAIKEI}카리스마가 되겠습니다」
PRINTFORML 「또 와」
TIME += 30

@EAT_YATSUME(대상, ARG, ARG:1)
#DIM 회복전체력
#DIM 회복전기력
#DIM 회복전정력
#DIM 회복후체력
#DIM 회복후기력
#DIM 회복후정력
#DIM 대상

회복전체력 = BASE:대상:체력
회복전기력 = BASE:대상:기력
회복전정력 = BASE:대상:정력

;수북히 담음의 경우
IF ARG == 1
	CALL 만복도상승(대상,"주식")
	CALL RECOVER_PERMIL(대상, 100,"체력")
	CALL RECOVER_PERMIL(대상, 200,"기력")
	CALL RECOVER_PERMIL(대상, 100,"정력")
ELSE
	CALL 만복도상승(대상,"경식")
	CALL RECOVER_PERMIL(대상, 50,"체력")
	CALL RECOVER_PERMIL(대상, 100,"기력")
	CALL RECOVER_PERMIL(대상, 50,"정력")
ENDIF
IF 대상
;고정으로 획득하는 소스
SOURCE:대상:환락 = 1000
SOURCE:대상:사랑 = 300

;ABL:욕망을 본다
IF ABL:대상:욕망 <= 1
	SOURCE:대상:환락 += (ABL:대상:욕망 * 60)
ELSEIF ABL:대상:욕망 <= 3
	SOURCE:대상:환락 += 400 + (ABL:대상:욕망 * 60)
ELSEIF ABL:대상:욕망 <= 5
	SOURCE:대상:환락 += 800 + (ABL:대상:욕망 * 60)
ELSEIF ABL:대상:욕망 <= 8
	SOURCE:대상:환락 += 1000 + (ABL:대상:욕망 * 75)
ELSEIF ABL:대상:욕망 <= 11
	SOURCE:대상:환락 += 1700 + (ABL:대상:욕망 * 75)
ELSE
	SOURCE:대상:환락 += 2500 + (ABL:대상:욕망 * 35)
ENDIF

;ABL:대상:봉사정신을 본다
IF ABL:대상:봉사정신 <= 1
	SOURCE:대상:사랑 += (ABL:대상:봉사정신 * 30)
ELSEIF ABL:대상:봉사정신 <= 3
	SOURCE:대상:사랑 += 200 + (ABL:대상:봉사정신 * 30)
ELSEIF ABL:대상:봉사정신 <= 5
	SOURCE:대상:사랑 += 500 + (ABL:대상:봉사정신 * 30)
ELSEIF ABL:대상:봉사정신 <= 8
	SOURCE:대상:사랑 += 700 + (ABL:대상:봉사정신 * 45)
ELSEIF ABL:대상:봉사정신 <= 11
	SOURCE:대상:사랑 += 1200 + (ABL:대상:봉사정신 * 45)
ELSE
	SOURCE:대상:사랑 += 1800 + (ABL:대상:봉사정신 * 20)
ENDIF

;호감 도를 본다
IF CFLAG:대상:2 <= 500
	SOURCE:대상:환락 += CFLAG:대상:2
ELSEIF CFLAG:대상:2 <= 5000
	SOURCE:대상:환락 += 750 + (CFLAG:대상:2 - 500) / 3
ELSE
	SOURCE:대상:환락 += 2000 + (CFLAG:대상:2 - 5000) / 4
ENDIF
SIF SOURCE:대상:환락 < 0
	SOURCE:대상:환락 = 0
SOURCE:대상:수동 = 200 + 110 * ABL:대상:순종
SOURCE:대상:정복 = 200 + 110 * ABL:대상:새드끼

SIF TALENT:대식가
	TIMES SOURCE:대상:환락 , 1.50
ENDIF
;데운 술 부탁했을 경우
IF ARG:1 && CAN_DRINK(대상)
	TIMES SOURCE:대상:환락 , 1.10
	CALL RECOVER_PERMIL(대상, 50,"기력")
	SIF 대상 != MASTER
		CALL KIGEN_CHANGE(대상, 50,1)
	CALL DRUNKEN(대상, 52)
ENDIF

회복후체력 = BASE:대상:체력
회복후기력 = BASE:대상:기력
회복후정력 = BASE:대상:정력

; PRINTFORML 체력+{ABS(회복후체력 - 회복전체력)}(%CALLNAME:대상%)
; PRINTFORML 기력+{ABS(회복후기력 - 회복전기력)}(%CALLNAME:대상%)
SIF ABS(회복후정력 - 회복전정력) > 0
; 	PRINTFORML 정력+{ABS(회복후정력 - 회복전정력)}(%CALLNAME:대상%)
; PRINTFORMW
TIME += 20
SIF ARG == 1
	TIME += 10

;-------------------------------------------------
;코가사 용
;-------------------------------------------------
@UNIQUE_COM_우산의수리
PRINTFORML 코가사에게 접는 우산을 고쳐달라고 했다
IF ITEM:망가진우산
	PRINTFORMW 「좀 더 소중하게 써주라」
	DOWNBASE:기력 = 200
	SOURCE:환락 += 1000
	ITEM:망가진우산 = 0
	ITEM:접는우산 = 1
	TIME += 45
ELSE
	PRINTFORMW 「소중하게 써줘」
	DOWNBASE:기력 = 100
	SOURCE:환락 += 1000 + ABL:친밀 * 50
	TFLAG:호감도보너스 = FLAG:우산내구도 / 10
	TFLAG:98 = FLAG:우산내구도 / 1000
	FLAG:우산내구도 = 0
ENDIF
TIME += 30

;-------------------------------------------------
;에이린용
;-------------------------------------------------
@UNIQUE_COM_생약을판다
#DIM 후보번호
#DIM 후보개수
#DIM 매각개수

PRINTFORML 소지금:%금액표시(MONEY)%
DRAWLINE
;소지하고 있는 소재 아이템의 매각 가능물·개수를 리스트화
LOCAL:1 = 999
FOR LOCAL:0 ,600, 700
	IF UNIQUE_COM_HARBAL_SALES(LOCAL:0)
		IF ITEM:(LOCAL:0)
			LOCALS:0 = [{LOCAL:0}] %ITEMNAME:(LOCAL:0), 16, LEFT%×{ITEM:(LOCAL:0)}
			LOCAL:1 += STRLENS(LOCALS:0)
			SIF ITEM:(LOCAL:0) < 10
				LOCAL:1 ++
			IF LOCAL:1 > 90
				IF LOCAL:1 >= 999
				;最初のみ改行しない
				ELSE
					PRINTL
				ENDIF
				LOCAL:1 = 0
				PRINT
			ENDIF
			PRINTFORM [{LOCAL:0}] %ITEMNAME:(LOCAL:0), 16, LEFT%×{ITEM:(LOCAL:0)}
			SIF ITEM:(LOCAL:0) < 10
				PRINT
			PRINT
		ENDIF
	ENDIF
NEXT
PRINTL
PRINTL 　　[100] 그만둔다
DRAWLINE
PRINTFORML 「무엇을 팔까?」
$INPUT_LOOP01
INPUT
후보번호 = RESULT

IF 후보번호 == 100
;100は先送り、売却不能物、600未満および700以上の入力は無効化する
ELSEIF UNIQUE_COM_HARBAL_SALES(후보번호) == 0 || 후보번호 < 600 || 후보번호 > 699
	CLEARLINE 1
	GOTO INPUT_LOOP01
ENDIF
SELECTCASE 후보번호
	CASE 100
		RETURN -1
	CASEELSE
		후보개수 = ITEM:(후보번호)
		CLEARLINE 1
		IF 후보개수
			SELECTCASE 후보번호
				CASE 601, 612, 635
					PRINTFORML 「%조사처리(ITEMNAME:후보번호,"라")%. 강한 독을 가지고 있기 때문이야말로, 사용 방법에 따라서는……말야.
				CASE 603, 618
					PRINTFORML 「%조사처리(ITEMNAME:후보번호,"라")%. 강장의 생약으로서 유명하지만……후후, 어떻게 사용했으면 하는걸까?
				CASE 605, 624
					PRINTFORML 「%조사처리(ITEMNAME:후보번호,"라")%. 평범한 사람이 이것에 손을 대면 쓸모가 없게 되니까 주의하도록 해.
				CASE 634
					PRINTFORML 「%조사처리(ITEMNAME:후보번호,"라")%. 발굴까지 해내다니, 꽤 재주가 있네.
				CASE 646
					PRINTFORML 「%조사처리(ITEMNAME:후보번호,"라")%. 벌목까지 해내다니, 꽤 재주가 있네.
				CASE 606, 609, 615, 625, 640, 643
					PRINTFORML 「%ITEMNAME:후보번호%…!   잘도 손에 넣었군요, 이런 것.
				CASEELSE
					PRINTFORM 「%조사처리(ITEMNAME:후보번호,"라")%.
			ENDSELECT
			PRINTFORM 　\\{(ITEMPRICE:(후보번호) / 2)}로 매입할건데, 어떻게 할래?」
			SETCOLOR 0x777777
			PRINTFORML   몇개 팝니까? (1～{후보개수}의 개수를 입력, 0으로 돌아온다)
			RESETCOLOR
			PRINTL
			PRINTBUTTON "[0] 그만둔다", 0
			PRINT
			PRINTBUTTON "[1] 1개", 1
			PRINT
			IF 후보개수 >= 5
				PRINTBUTTON "[5] 5개", 5
				PRINT
			ENDIF
			IF 후보개수 >= 10
				PRINTBUTTON "[10] 10개", 10
				PRINT
			ENDIF
			$INPUT_LOOP02
			INPUT
			SELECTCASE RESULT
				CASE 0
					RESTART
				CASE 1 TO 후보개수
					CLEARLINE 2
					매각개수 = RESULT
					PRINTFORMW 「고마워. 그러면 %조사처리(ITEMNAME:후보번호,"를")% {매각개수}개, \\{(ITEMPRICE:(후보번호) / 2 * 매각개수)}로 매입할게」
					MONEY += (ITEMPRICE:(후보번호) / 2 * 매각개수)
					ITEM:(후보번호) -= 매각개수
					RESTART
				CASEELSE
					CLEARLINE 1
					GOTO INPUT_LOOP02
			ENDSELECT
		ELSE
			CLEARLINE 1
			GOTO INPUT_LOOP01
		ENDIF
ENDSELECT
RESTART

;売却リストに載せないアイテムを定義
@UNIQUE_COM_HARBAL_SALES(ARG)
#FUNCTION
SELECTCASE ARG
	;★ここに売却リストに載せないアイテムを記入
	CASE 600, 602, 610, 611, 616, 621, 626 TO 631, 636, 638, 639, 642, 644, 645, 647, 648, 660 TO 669
		RETURNF 0
	;まだ未登録のアイテム
	CASE 649 TO 659, 670 TO 699
		RETURNF 0
	CASEELSE
		RETURNF ARG
ENDSELECT

;-------------------------------------------------
;우루미 용
;-------------------------------------------------
@UNIQUE_COM_물고기교환
#DIM PREV_DAY
#DIM CNG_NUM

IF PREV_DAY == DAY
	PRINTFORMW 「뭔디? 오늘은 벌써 교환해 줬잖어?」
	RETURN
ENDIF
CNG_NUM = GET_INT(0, "캐릭터데이터", TARGET, "고유커맨드：물고기교환비율")

PRINTFORML 「맛있는 물고기가 갖고 싶어?」
PRINTFORML 「그러네에。그냥 물고기 {CNG_NUM}마리라면 교환해도 좋아」
PRINTFORML 「어쩔래？」
CALL ASK_M("그만둔다", 1, "교환받는다", ITEM:물고기 >= CNG_NUM)
SELECTCASE RESULT
CASE 0
	PRINTFORML 「고런가」
CASE 1
	PRINTFORML 「매번감사。한나、둘、서이……짜、확실히 수는 맞네」
	PRINTFORML 「자、가져 가라!」
	PREV_DAY = DAY
	CALL LOST_ITEM("물고기", CNG_NUM, 1)
	CALL GET_ITEM("맛있는물고기", 1, 2)
ENDSELECT

@UNIQUE_COM_FISH_CHANGE_RATE
#FUNCTION
RETURNF

;-------------------------------------------------
;瓔花用
;-------------------------------------------------
@UNIQUE_COM_오늘의돌쌓기테마

	PRINTFORMW 「今日の積み石コンテストのカップル部門のテーマが知りたいの？」
IF STONE_PLAYCOUNT:2 == 16 && (STONE_UKETSUKEDAY + 14 - DAY:0) > 0 && (STONE_UKETSUKEDAY + 14 - DAY:0) < 15
	PRINTFORMW 「残念だけど…{STONE_UKETSUKEDAY + 14 - DAY:0}日後まで積み石コンテストはお休みなんだよねー」
	PRINTFORMW 「なんでって……それは%CALLNAME:MASTER%が一番よーく知っているんじゃない？」
ELSE
	SELECTCASE DAY:3
		CASE 1
			PRINTFORMW 「今日のコンテスト名は『積み石は春風とともに』……春がテーマだね」
			PRINTFORML
			PRINTFORML 「春が好きな子が得意だよ。逆に夏秋冬が好きな子は苦手な傾向があるみたい…」
			PRINTFORMW 「春のイメージが強い花が好きな子も得意かも？」
			PRINTFORMW 「四季テーマは定期的にやってるからこの季節が苦手でも別の季節のときにチャレンジしてほしいな」
		CASE 2
			PRINTFORMW 「今日のコンテスト名は『積み上げる皿が一枚足りない…』……お皿がテーマだね」
			PRINTFORML
			PRINTFORML 「私以外の水子はご飯を食べないから食器は積み上げるためのものでしかないんだよねー」
			PRINTFORMW 「食器とかお皿が好きな子が得意だね。ナイフとかお皿以外の食器好きだと影響しない気がするよ」
			PRINTFORMW 「あと料理が得意だったりお皿をよく扱うメイドさんなんかも有利みたい」
		CASE 3
			PRINTFORMW 「今日のコンテスト名は『こんどの積み石はこわい』……ホラーがテーマだね」
			PRINTFORML
			PRINTFORML 「こら、水子の存在がそもそもホラーとか言わない」
			PRINTFORMW 「まあ分かりやすく血とか闇とか血とかそういうのが好きだと得意みたい」
			PRINTFORMW 「ちなみに傘の妖怪がチャレンジしたことがあるんだけどその子はテーマ加点はなかったよ」
		CASE 4
			PRINTFORMW 「今日のコンテスト名は『題名のない積み石コンテスト』……音楽がテーマだね」
			PRINTFORML
			PRINTFORML 「積み石しながら音楽を歌ったり奏でたりしてもらうんだ」
			PRINTFORMW 「だから当然音楽や楽器が得意だったり、好きだと評価が上がるよー」
		CASE 5
			PRINTFORMW 「今日のコンテスト名は『ゆめかわメルヘン積み石』……メルヘンがテーマだね」
			PRINTFORML
			PRINTFORML 「かわいいものが好きだと得意みたい。逆にかっこいいものや怖いものが好きだと少し苦手だね」
			PRINTFORMW 「かわいいものが好きって恥ずかしくて言えない子でもハートとかピンクが好きならセーフだよ」
			PRINTFORMW 「細かいところだと…ゆめかわって名前の通り実は夢要素もちょっぴり加点対象だね」
		CASE 6
			PRINTFORMW 「今日のコンテスト名は『水子にも衣装』……布飾がテーマだね」
			PRINTFORML
			PRINTFORML 「布を使って積み石を飾り立てるデコり大会だね」
			PRINTFORMW 「人形とかぬいぐるみ好きだとちょっと得意になるみたい」
			PRINTFORMW 「ちなみに針が好きでも得意になる傾向があるんだけど…その針って本当に布飾用？」
		CASE 7
			PRINTFORMW 「今日のコンテスト名は『虹色に積み上げて』……カラフルがテーマだね」
			PRINTFORML
			PRINTFORML 「特定の色だけではなくカラフルなのが条件だから特別な美的センスが問われると評判だよ」
			PRINTFORMW 「好きな色が…というよりは嫌いな色が無い人が評価上げやすい傾向にあるかな」
		CASE 8
			PRINTFORMW 「今日のコンテスト名は『積み石は夏風とともに』……夏がテーマだね」
			PRINTFORML
			PRINTFORML 「夏が好きな子が得意だよ。逆に春秋冬が好きな子は苦手な傾向があるみたい…」
			PRINTFORMW 「夏のイメージが強い花が好きな子も得意かも？」
			PRINTFORMW 「四季テーマは定期的にやってるからこの季節が苦手でも別の季節のときにチャレンジしてほしいな」
		CASE 9
			PRINTFORMW 「今日のコンテスト名は『大陸風積み石』……まんま大陸風がテーマだね」
			PRINTFORML
			PRINTFORML 「当然和風や洋風が好きだと苦手みたいだね」
			PRINTFORMW 「ううう…大陸風っていうと…あのこわーい邪仙のイメージが…」
		CASE 10
			PRINTFORMW 「今日のコンテスト名は『積み石動物園』……動物がテーマだね」
			PRINTFORML
			PRINTFORML 「動物っぽい積み石作品を作るのは分かりやすくて大人気テーマなんだよ」
			PRINTFORMW 「注意点としては分かりやすくアニマルイメージの四足歩行動物と鳥みたいなのと虫や魚ではそれぞれ得点が違うって所かな」
			PRINTFORMW 「動物の仲間だって分かってても虫のことアニマルに入れたくなくない？」
		CASE 11
			PRINTFORMW 「今日のコンテスト名は『積み石バトル！！』……戦いがテーマだね」
			PRINTFORML
			PRINTFORML 「戦いがテーマだから…戦いとか刃物や銃が得意な人が得意かなー」
			PRINTFORMW 「逆に刃物や弾や血生臭いのが苦手な私達水子みたいなのはあんま得意なテーマじゃないかも」
			PRINTFORMW 「ちなみに刃物と銃のどちらかは得意だけどもう片方が苦手…みたいな子は心配しちゃうかもだけど…」
			PRINTFORMW 「加点と減点が合わさって得点無し！なんてことは無いから安心してね。ちゃんと加点が優先されるから」
		CASE 12
			PRINTFORMW 「今日のコンテスト名は『ROCK TO THE FUTURE』……未来がテーマだね」
			PRINTFORML
			PRINTFORML 「ま、水子に未来なんてないんだけど…」
			PRINTFORMW 「機械仕掛けとか未来を感じさせるのが好きだと得意で、逆にレトロ好きは苦戦しちゃうみたい」
			PRINTFORMW 「ま、水子には過去なんてのもほぼ存在して無いんだけど…」
		CASE 13
			PRINTFORMW 「今日のコンテスト名は『積み石は秋風とともに』……秋がテーマだね」
			PRINTFORML
			PRINTFORML 「秋が好きな子が得意だよ。逆に春夏冬が好きな子は苦手な傾向があるみたい…」
			PRINTFORMW 「秋のイメージが強い葉っぱが好きな子も得意かも？」
			PRINTFORMW 「四季テーマは定期的にやってるからこの季節が苦手でも別の季節のときにチャレンジしてほしいな」
		CASE 14
			PRINTFORMW 「今日のコンテスト名は『ONCE UPON TSUMIISHI』……レトロがテーマだね」
			PRINTFORML
			PRINTFORML 「ま、水子に過去なんてほぼないんだけど…」
			PRINTFORMW 「失われたとか昔を感じさせるのが好きだと得意で、逆に未来的なもの好きは苦戦しちゃうみたい」
			PRINTFORMW 「ま、水子には未来なんてのも存在して無いんだけど…」
		CASE 15
			PRINTFORMW 「今日のコンテスト名は『積み石マーケット』……高級がテーマだね」
			PRINTFORML
			PRINTFORML 「積み石バイヤーが採点担当で、高値をつけてでも買いたい作品を選ぶんだ」
			PRINTFORMW 「やっぱり高いものを普段から好んでる人ほどうまく作れるみたい」
			PRINTFORMW 「あっ！高いものを好んでようが貧乏神はやめといた方が良いと思う…」
		CASE 16
			PRINTFORMW 「今日のコンテスト名は『ウルトラスーパーデラックス積み石』……派手がテーマだね」
			PRINTFORML
			PRINTFORML 「本来慎ましくあるべきの積み石を派手にするというある意味喧嘩を売ってるテーマだね」
			PRINTFORMW 「派手なものが好きだと得意でシンプルとか繊細なのが好きだと苦手な傾向があるよ」
			PRINTFORMW 「あと白黒灰みたいなシンプルな色が好きでも苦手みたい…」
		CASE 17
			PRINTFORMW 「今日のコンテスト名は『和風積み石』……そのまんま和風がテーマだね」
			PRINTFORML
			PRINTFORML 「当然大陸風や洋風が好きだと苦手みたいだね」
			PRINTFORMW 「三途の河も扱い的には和風…なのかなぁ」
		CASE 18
			PRINTFORMW 「今日のコンテスト名は『石と仲良くなろう』……そのまんま鉱石がテーマだね」
			PRINTFORML
			PRINTFORML 「積み石で扱う普通の石だけでなく、色んな石を使って積み石してもらうよ！」
			PRINTFORMW 「宝石盗もうとしたら地蔵様に押しつぶされるからやめとくのをお勧めするね」
		CASE 19
			PRINTFORMW 「今日のコンテスト名は『ロジカル積み石システム』……知性がテーマだね」
			PRINTFORML
			PRINTFORML 「賢い人が本気で賢く作ったら一体どんな積み石が出来るんだろう…って発想で生まれたテーマだよ」
			PRINTFORMW 「賢い人は勿論、本を好んで読んでる人も得意みたい」
			PRINTFORMW 「私も積み石の本があったら頑張って読むんだけどなー」
		CASE 20
			PRINTFORMW 「今日のコンテスト名は『積み石は冬風とともに』……夏がテーマだね」
			PRINTFORML
			PRINTFORML 「冬が好きな子が得意だよ。逆に春夏秋が好きな子は苦手な傾向があるみたい…」
			PRINTFORMW 「冬のイメージが強い氷とか雪が好きな子も得意かも？」
			PRINTFORMW 「四季テーマは定期的にやってるからこの季節が苦手でも別の季節のときにチャレンジしてほしいな」
		CASE 21
			PRINTFORMW 「今日のコンテスト名は『ツみ石こンてすトカッぷル部もん』……カオスがテーマだね」
			PRINTFORML
			PRINTFORML 「混沌な感じが好きな子が得意で逆に秩序的な感じが好きな子が苦手みたい」
			PRINTFORMW 「明日は秩序テーマだから、こういうのが苦手なら明日改めてってのもありかも」
		CASE 22
			PRINTFORMW 「今日のコンテスト名は『積み石コンテストカップル部門』……秩序がテーマだね」
			PRINTFORML
			PRINTFORML 「秩序な感じが好きな子が得意で逆に混沌的な感じが好きな子が苦手みたい」
			PRINTFORMW 「混沌な感じが好きな人は……昨日だったんだよねぇ残念」
		CASE 23
			PRINTFORMW 「今日のコンテスト名は『洋風積み石』……そのまんま洋風がテーマだね」
			PRINTFORML
			PRINTFORML 「当然大陸風や和風が好きだと苦手みたいだね」
			PRINTFORMW 「洋風積み石といえばストーンヘンジってやつだってメガネかけた女の子が言ってたけど…」
			PRINTFORMW 「ストーンヘンジ…チャレンジしてみる？」
		CASE 24
			PRINTFORMW 「今日のコンテスト名は『積み石の星になれ』……天体がテーマだね」
			PRINTFORML
			PRINTFORML 「星空がテーマなのですけど太陽が好きでも活躍できるよ」
			PRINTFORMW 「ただ闇は天体のイメージがありそうですけど加点も減点も無いので注意してねー」
		CASE 25
			PRINTFORMW 「今日のコンテスト名は『水の子コンテスト』……水がテーマだね」
			PRINTFORML
			PRINTFORML 「ある意味最も身近な存在である水がテーマだよ」
			PRINTFORMW 「水棲生物好きが強いかも？」
			PRINTFORMW 「ちなみに三途の河に潜るのは絶対にやめた方が良いよ。命が惜しいならね」
		CASE 26
			PRINTFORMW 「今日のコンテスト名は『守矢プレゼンツ積み石コンテスト』……守矢がテーマだね」
			PRINTFORML
			PRINTFORML 「今日は守矢の方々が出資している特別回…だから会場に広告がいーっぱい！」
			PRINTFORMW 「守矢は範囲狭いと思いきや、風とか大地とかあと巫女とか神霊好きでも得意な傾向があるみたい」
			PRINTFORMW 「ちなみにカエルとヘビのどちらかは得意だけどもう片方が苦手…みたいな子は心配しちゃうかもだけど…」
			PRINTFORMW 「加点と減点が合わさって得点無し！なんてことは無いから安心してね。ちゃんと加点が優先されるから」
		CASE 27
			PRINTFORMW 「今日のコンテスト名は『マジカルストーンバランシング』……魔法使いがテーマだね」
			PRINTFORML
			PRINTFORML 「そのまま魔法や魔女に精通してる人が勿論強いは強いんだけど…」
			PRINTFORMW 「評価するのは私達水子だからね！カラスや箒だけでも魔女扱いするよ」
			PRINTFORMW 「何なら書物だけでも魔法使い判定しちゃうかも」
		CASE 28
			PRINTFORMW 「今日のコンテスト名は『バニーの日』……文字通りバニーがテーマだね」
			PRINTFORML
			PRINTFORML 「毎月２８日はバニーの日！ということでそれに合わせた企画なんだけど……」
			PRINTFORMW 「いったい何なんだろうねバニーの日って……私も着せられてるし……」
			PRINTFORMW 「えーっと……とりあえずバニーに関連するものが好きな人が有利だよ」
			PRINTFORMW 「月とか……あとカードとか……メダルとか……」
			PRINTFORMW 「あと恥ずかしい服装が苦手な人はダメみたいだね」
		CASE 29
			PRINTFORMW 「今日のコンテスト名は『自然のマリアージュ、石と植物の調和』……植物がテーマだね」
			PRINTFORML
			PRINTFORML 「植物自体が好きだととてもうまくて、そうでなくても花や植物がなにかしら好きならって感じだね」
			PRINTFORMW 「ちなみにキノコは植物ではありません！ざんねーん！」
		CASE 30
			PRINTFORMW 「今日のコンテスト名は『自然のマリアージュ、空と風の調和』……風がテーマだね」
			PRINTFORML
			PRINTFORML 「風そのものや空を飛ぶいきものが好きだと有利みたい」
			PRINTFORMW 「ただの風じゃなくて空って部分も重要だから地底好きな人は苦戦するかもしれないね」
			PRINTFORMW 「天体が好きなのは別に補正かからないからそこは注意かも」
		CASE 31
			PRINTFORMW 「今日は何でもありの特別な日！」
			PRINTFORML
			PRINTFORML 「他の日のテーマの中から一つ選んで、そのテーマで積み石を作ることができるよ」
			PRINTFORMW 「優勝したらその指定した日のテーマで優勝したことになるんだよね」
			PRINTFORMW 「つまりうっかりやり忘れたら次は３１日後ってならないための救済処置だね！」
	ENDSELECT
ENDIF
;-------------------------------------------------
;龍用
;-------------------------------------------------
@UNIQUE_COM_龍珠の取引
#DIM ORB_PRICE
#DIM SALES

IF !ITEM:용주
	PRINTFORML 龍珠を持っていない…
	RETURN
ENDIF

;売価はカリスマ取引レート×90×√話術Lvで決定
ORB_PRICE = CHARISMA_NOW() * 90
SELECTCASE ABL:MASTER:화술기능
	CASE 0
		TIMES ORB_PRICE, 1.0
	CASE 1
		TIMES ORB_PRICE, 1.2
	CASE 2
		TIMES ORB_PRICE, 1.4
	CASE 3
		TIMES ORB_PRICE, 1.7
	CASE 4
		TIMES ORB_PRICE, 2.0
	CASE 5
		TIMES ORB_PRICE, 2.2
	CASE 6
		TIMES ORB_PRICE, 2.4
	CASEELSE
		TIMES ORB_PRICE, 2.6
ENDSELECT

PRINTL
PRINTDATAW
	DATAFORM 「持て余しているならその龍珠、引き取ろう。無論、それなりの対価は支払うよ」
	DATAFORM 「ん？　そんなものを買い取ってどうするのかって？　はてさて、どうしたものか？」
	DATAFORM 「どこから掘り出してきたものやら。まあ、使えるモノであることに変わりはない」
	DATAFORM 「それを手にしているということは、あれに見込まれたということか。いやはや、人は見かけによらないものだね」
	DATAFORM 「誰かにそそのかされて…というわけでもなさそうだ。では、取引といこうか」
	DATAFORM 「レアアースの供給元は多いに越したことはないしな。リスクヘッジ、というやつさ」
ENDDATA
PRINTFORML 「龍珠１個を\\{ORB_PRICE}で買い取ろう。どうかな？」
PRINTL
DRAWLINE
PRINTFORML 所持金:%금액표시(MONEY)%　　現在の￥/カリスマレート:%금액표시(CHARISMA_NOW())%←→1CM
SETCOLOR 0x777777
PRINTFORML 　何個売りますか？(1～{ITEM:용주}の個数を入力、0で戻る)
RESETCOLOR
PRINTL
PRINTBUTTON "[0] やめる", 0
PRINT
PRINTBUTTON "[1] 1個", 1
PRINT
IF ITEM:용주 >= 5
	PRINTBUTTON "[5] 5個", 5
	PRINT
ENDIF
IF ITEM:용주 >= 10
	PRINTBUTTON "[10] 10個", 10
	PRINT
ENDIF
$INPUT_LOOP01
INPUT
SELECTCASE RESULT
	CASE 0
		CLEARLINE 2
		PRINTFORMW 「そうか。取引額はカリスマ取引レートに応じた時価だから、その気になったらまた来てくれ」
		RETURN
	CASE 1 TO ITEM:용주
		CLEARLINE 2
		SALES = RESULT
		PRINTFORMW 「それでは龍珠を{SALES}つ、\\{ORB_PRICE * SALES}で買い取らせてもらおう」
		CALL GET_MONEY_YEN(ORB_PRICE * SALES, 1)
		CALL LOST_ITEM("용주", SALES, 2)
	CASEELSE
		CLEARLINE 1
		GOTO INPUT_LOOP01
ENDSELECT

path: ERB/커맨드관련/COMF/일상계/COMF443 고유커맨드_t.ERB

license: mit


code:
;-------------------------------------------------
;여자아이를 물색
;일상계 커맨드, 레벨 1
;-------------------------------------------------

@COM444
#DIMS YUKIZURI_RACE  ;생성하는 MOB소녀의 종류

IF FLAG:데이트상대
	PRINTFORMW 어마어마하게 귀여운 아가씨가 바로 옆에 있다
	RETURN -1
ENDIF

;潜伏モード中は不可
IF GETBIT(FLAG:잠복,0)
	PRINTFORMW 다른 아이한테 시선을 돌릴 처지가 아니다
	RETURN -1
ENDIF

$BUSSYOKU
IF !FLAG:70
	TIME += 3
ELSE
	BASE:MASTER:TSP -= 10
ENDIF
PRINTFORML %마스터는% 귀여운 아가씨가 없는지 물색했다
PRINTFORMW ……저 아이는 어떨까?
SETBIT TFLAG:일일일회, 9
SELECTCASE CAN_NANPA(CFLAG:MASTER:현재위치)
	CASE 1
		YUKIZURI_RACE '= TEXTR("마을 아가씨/유부녀")
	CASE 2
		YUKIZURI_RACE = 요정
	CASE 3
		YUKIZURI_RACE = 메이드 요정
	CASE 4
		;３日に一度販売員が出没
		IF ((GETTIME()/1000000000) % 100) % 3 == 1 && !RAND:7
			YUKIZURI_RACE = 販売員
		ELSE
			YUKIZURI_RACE = 이나바
		ENDIF
	CASE 5
		YUKIZURI_RACE = 좀비 페어리
	CASE 6
		YUKIZURI_RACE '= TEXTR("둔갑여우/둔갑고양이")
	CASE 7
		YUKIZURI_RACE '= TEXTR("야마와로/캇파")
	CASE 8
		YUKIZURI_RACE '= TEXTR("백랑텐구/카라스텐구")
	CASE 9
		IF !RAND:10
			YUKIZURI_RACE = 오니
		ELSE
			YUKIZURI_RACE = 좀비 페어리
		ENDIF
	CASE 10
		YUKIZURI_RACE = 옥토끼
	CASE 11
		YUKIZURI_RACE '= TEXTR("둔갑너구리/茨たぬき")
ENDSELECT

;PRINTFORMW %YUKIZURI_RACE%
CALL MAKE_YUKIZURI(RANDOM_CHARANUM, YUKIZURI_RACE)
TEQUIP:RANDOM_CHARANUM:상반신착의상황 = 1
$CHOICE
CALL CHARA_STATE(RANDOM_CHARANUM)
IF CSTR:RANDOM_CHARANUM:처녀상실이력 != ""
	DRAWLINE
	CALL COLORMESSAGE(@"처녀상실이력：%CSTR:RANDOM_CHARANUM:처녀상실이력%",C_PINK,1)
	PRINTFORML
ENDIF
DEBUGPRINTFORML %CSTR:RANDOM_CHARANUM:모브코화상문자열_옷_통상%
CALL ASK_M("마음이 간다", 1,"다른 아가씨를 찾는다", 1,"직전의 아가씨를 찾는다", TFLAG:직전모브코맵 == CFLAG:MASTER:현재위치 /100,"이전 알게 된 아가씨를 찾는다", 1,"물색 중지", 1)
IF RESULT == 4
	CFLAG:RANDOM_CHARANUM:현재위치 = SUKIMA()
	CFLAG:RANDOM_CHARANUM:갈아입음실행 = 0
	CFLAG:RANDOM_CHARANUM:출금 = 2
	SIF TARGET == RANDOM_CHARANUM
		TARGET = 0
	RETURN -1
ENDIF
IF RESULT == 1
	TFLAG:직전모브코맵 = CFLAG:MASTER:현재위치 /100
	SAVECHARA "TEMP_MOB", "직전에 만난 아이", RANDOM_CHARANUM
	GOTO BUSSYOKU
ELSEIF RESULT == 3
	CALL LOAD_MOBGIRL(0)
	IF RESULT == -1
		;만약을 위해 신품으로 해 둔다
		CALL 모브코화상리셋(RANDOM_CHARANUM)
		DELCHARA RANDOM_CHARANUM
		ADDCHARA RANDOM_CHARANUM
		RETURN -1
	ENDIF
	CFLAG:RANDOM_CHARANUM:출금 = 0
ELSEIF RESULT == 2
	CALL 모브코화상리셋(RANDOM_CHARANUM)
	DELCHARA RANDOM_CHARANUM
	LOADCHARA "TEMP_MOB"
	TFLAG:직전모브코맵 = 0
	GOTO CHOICE
ENDIF
CFLAG:RANDOM_CHARANUM:현재위치 = CFLAG:MASTER:현재위치
CFLAG:RANDOM_CHARANUM:데이트중 = MAIN_MAP

IF CFLAG:MASTER:현재위치 / 100 == MAIN_MAP
	;拠点内で시간정지せずに物色した場合は、동행扱い
	IF !FLAG:70
		CFLAG:RANDOM_CHARANUM:동행 = 180
		CFLAG:MASTER:동행 = 180
	ENDIF
	CFLAG:RANDOM_CHARANUM:거점내방 = 1
	CFLAG:RANDOM_CHARANUM:만난위치 = 0
	;CFLAG:RANDOM_CHARANUM:자택위치 = 0
	CFLAG:RANDOM_CHARANUM:내방시간 = CSVCFLAG(RANDOM_CHARANUM,352)
	CFLAG:RANDOM_CHARANUM:귀가시간 = CSVCFLAG(RANDOM_CHARANUM,353)
	CFLAG:RANDOM_CHARANUM:취침시간 = CSVCFLAG(RANDOM_CHARANUM,354)
	CFLAG:RANDOM_CHARANUM:기상시간 = CSVCFLAG(RANDOM_CHARANUM,355)
ELSE
	;引っ越ししたりして定義しなおす場合もあるので、毎回確認
	CFLAG:RANDOM_CHARANUM:거점내방 = 0
	CFLAG:RANDOM_CHARANUM:만난위치 = CFLAG:MASTER:현재위치
	;CFLAG:RANDOM_CHARANUM:자택위치 = CFLAG:MASTER:현재위치
	CFLAG:RANDOM_CHARANUM:내방시간 = 0
	CFLAG:RANDOM_CHARANUM:귀가시간 = 0
	CFLAG:RANDOM_CHARANUM:취침시간 = 0
	CFLAG:RANDOM_CHARANUM:기상시간 = 0
ENDIF
CFLAG:RANDOM_CHARANUM:데일리 = 30
TARGET = RANDOM_CHARANUM
RETURN 1

@COM_ABLE444
;일괄관리
SIF GLOBAL_COMABLE(622)
	RETURN RESULT
SIF !CAN_NANPA(CFLAG:MASTER:현재위치)
	RETURN 0
SIF !INRANGE(TIME, 540,1140)
	RETURN 0
;SIF !CFLAG:RANDOM_CHARANUM:출금
;	RETURN 0
RETURN 1

@CAN_NANPA(ARG)
#FUNCTION

SIF ARG == GET_MAP_REPLACEMENT(202)
	RETURNF 1
SIF ARG == GET_MAP_REPLACEMENT(438)
	RETURNF 2
SIF ARG == GET_MAP_REPLACEMENT(309)
	RETURNF 3
SIF ARG == GET_MAP_REPLACEMENT(415)
	RETURNF 4
SIF ARG == GET_MAP_REPLACEMENT(416)
	RETURNF 4
SIF ARG == GET_MAP_REPLACEMENT(431)
	RETURNF 4
SIF ARG == GET_MAP_REPLACEMENT(434)
	RETURNF 4
SIF ARG == GET_MAP_REPLACEMENT(927)
	RETURNF 5
SIF ARG == GET_MAP_REPLACEMENT(928)
	RETURNF 5
SIF ARG == GET_MAP_REPLACEMENT(601)
	RETURNF 6
SIF ARG == GET_MAP_REPLACEMENT(704)
	RETURNF 7
SIF ARG == GET_MAP_REPLACEMENT(806)
	RETURNF 8
SIF ARG == GET_MAP_REPLACEMENT(938)
	RETURNF 9
SIF ARG == GET_MAP_REPLACEMENT(1003)
	RETURNF 10
SIF ARG == GET_MAP_REPLACEMENT(540)
	RETURNF 11
RETURNF 0

@PRINT_SAVED_GIRL_LIST
DRAWLINE
FOR LOCAL,0,MAXMOB
	IF FIND_CHARADATA(TOSTR(LOCAL))
		CHKCHARADATA RESULTS:0
		SIF MOBGIRL_PLACE:LOCAL == CFLAG:MASTER:현재위치 / 100
			SETCOLOR C_P_GREEN
		SIF MOBGIRL_PLACE:LOCAL == 90
			SETCOLOR C_PINK
		PRINTBUTTON @"[%RESULTS:0%]", LOCAL
		PRINTFORML
	ELSE
		PRINTBUTTON "[없음]", LOCAL
		PRINTFORML
	ENDIF
	RESETCOLOR
NEXT
DRAWLINE
PRINTBUTTON "[그만둔다]", 99

@LOAD_MOBGIRL(ARG)
CALL PRINT_SAVED_GIRL_LIST
INPUT
LOCAL = RESULT
SIF !INRANGE(LOCAL, 0, MAXMOB -1)
	RETURN -1
IF !ARG && MOBGIRL_PLACE:LOCAL != CFLAG:MASTER:현재위치 / 100
	IF MOBGIRL_PLACE:LOCAL == 90
		PRINTFORMW 가게 밖에서는 만나 주지 않는다…
	ELSE
		PRINTFORML {MOBGIRL_PLACE:LOCAL}
		PRINTFORMW 여기에는 없을 것이다
	ENDIF
	RETURN -1
ELSEIF ARG && MOBGIRL_PLACE:LOCAL != 90
	PRINTFORMW 「하아！？　그런 암컷 따위、여기에는ー 없ー 어！」
	PRINTFORML
	RETURN -1
ENDIF
IF FIND_CHARADATA(TOSTR(LOCAL))
	CALL 모브코화상리셋(RANDOM_CHARANUM)
	DELCHARA RANDOM_CHARANUM
	LOADCHARA TOSTR(LOCAL)
	PRINTFORML %조사처리(CALLNAME:RANDOM_CHARANUM,"를")% \@ ARG ? 지명했다 # 찾았다 \@
	IF MOBGIRL_FP:LOCAL != ""
		モブ子一人称 = %MOBGIRL_FP:LOCAL%
		モブ子二人称 = %MOBGIRL_SP:LOCAL%
	ENDIF
	IF CSTR:RANDOM_CHARANUM:모브코화상문자열_옷_통상 == ""
		PRINTFORML 외견이 미설정입니다. 타입을 골라 주세요
		PRINTBUTTON "[마을 아가씨] ", "마을 아가씨"
		PRINTBUTTON "[유부녀] ", "유부녀"
		PRINTBUTTON "[요정] ", "요정"
		PRINTBUTTON "[메이드 요정] ", "메이드 요정"
		PRINTBUTTON "[좀비 페어리] ", "좀비 페어리"
		PRINTBUTTON "[캇파] ", "캇파"
		PRINTBUTTON "[백랑텐구] ", "백랑텐구"
		PRINTBUTTON "[이나바] ", "이나바"
		PRINTBUTTON "[옥토끼] ", "옥토끼"
		PRINTBUTTON "[오니] ", "오니"
		PRINTBUTTON "[둔갑너구리] ", "둔갑너구리"
		PRINTBUTTON "[둔갑여우] ", "둔갑여우"
		PRINTBUTTON "[둔갑고양이] ", "둔갑고양이"
		PRINTBUTTON "[랜덤] ", "랜덤"
		INPUTS
		CALL SET_MOB_IMAGE_STR(RANDOM_CHARANUM, RESULTS)
	ENDIF
	;過去に合成されて裸画像の笑顔に[装飾_照れ]が乗ってない場合に追記
	SIF STRFIND(CSTR:RANDOM_CHARANUM:모브코화상문자열_알몸_미소, "装飾_照れ") == -1
		CSTR:RANDOM_CHARANUM:모브코화상문자열_알몸_미소 += "[装飾9:装飾_照れ][乗色:朱色]"

	;過去（ver4.760以前）に保存されて種族のTALENT設定が適合しない場合に修正を行う
	SELECTCASE CAN_NANPA(CFLAG:MASTER:현재위치)
		;里
		CASE 1
			;以前の194 인간が現varでは194 유령になっている
			IF TALENT:RANDOM_CHARANUM:유령
				TALENT:RANDOM_CHARANUM:유령 = 0
				TALENT:RANDOM_CHARANUM:인간 = 1
			ENDIF
		;霧の湖、紅魔館、および地底の요정たち
		CASE 2, 3, 5
			;以前の190 요정が現verでは190 인간になっている
			IF TALENT:RANDOM_CHARANUM:인간
				TALENT:RANDOM_CHARANUM:인간 = 0
				TALENT:RANDOM_CHARANUM:요정 = 1
			ENDIF
		;竹林
		CASE 4
			;イナバ…妖獣が新設された
			SIF TALENT:RANDOM_CHARANUM:요괴 != 6
				TALENT:RANDOM_CHARANUM:요괴 = 6
		;冥界
		CASE 6
			;化け狸、狐、猫…妖獣が新設された
			SIF TALENT:RANDOM_CHARANUM:요괴 != 6
				TALENT:RANDOM_CHARANUM:요괴 = 6
		;요괴の山山麓
		CASE 7
			;河童…河童が新設された
			SIF TALENT:RANDOM_CHARANUM:요괴 != 4
				TALENT:RANDOM_CHARANUM:요괴 = 4
		;요괴の山山頂
		CASE 8
			;白狼天狗…以前の197 天狗が現verでは197 추가종족（巫女）になっている
			IF TALENT:RANDOM_CHARANUM:추가종족
				TALENT:RANDOM_CHARANUM:추가종족 = 0
				TALENT:RANDOM_CHARANUM:요괴 = 5
			ENDIF
		;地底　鬼か요정
		CASE 9
			;鬼…以前の195 鬼が現verでは195　츠쿠모가미になっている
			IF TALENT:RANDOM_CHARANUM:츠쿠모가미
				TALENT:RANDOM_CHARANUM:츠쿠모가미 = 0
				TALENT:RANDOM_CHARANUM:요괴 = 2
			;요정は同上
			ELSEIF TALENT:RANDOM_CHARANUM:인간
				TALENT:RANDOM_CHARANUM:인간 = 0
				TALENT:RANDOM_CHARANUM:요정 = 1
			ENDIF
		;月　一応分けておく
		CASE 10
			;玉兎…妖獣が新設された
			SIF TALENT:RANDOM_CHARANUM:요괴 != 6
				TALENT:RANDOM_CHARANUM:요괴 = 6
	ENDSELECT

	IF FLAG:70	;시간정지中は反応なし
	ELSEIF TALENT:RANDOM_CHARANUM:풍속양
	ELSEIF CFLAG:RANDOM_CHARANUM:패배자 && (TALENT:RANDOM_CHARANUM:섹프 || TALENT:RANDOM_CHARANUM:사모)
		PRINTFORMW %CALLNAME:MASTER%의 모습을 알아차린 %조사처리(CALLNAME:RANDOM_CHARANUM,"는")%분한 듯이, 그러면서도 기대하는 듯한 표정으로 머뭇거리고 있다…
	ELSEIF CFLAG:RANDOM_CHARANUM:패배자 && !TALENT:RANDOM_CHARANUM:연모 && !TALENT:RANDOM_CHARANUM:사모 && !TALENT:RANDOM_CHARANUM:애욕
		PRINTFORMW %CALLNAME:MASTER%의 모습을 알아차린 %조사처리(CALLNAME:RANDOM_CHARANUM,"는")% 표정이 굳어졌다
	ELSEIF TALENT:RANDOM_CHARANUM:연모
		PRINTFORMW %CALLNAME:MASTER%의 모습을 알아차린 %조사처리(CALLNAME:RANDOM_CHARANUM,"는")% 기쁜 듯이 이쪽으로 달려왔다
	ELSEIF TALENT:RANDOM_CHARANUM:애욕
		PRINTFORMW %CALLNAME:MASTER%의 모습을 알아차린 %조사처리(CALLNAME:RANDOM_CHARANUM,"는")% 이쪽으로 오자마자 팔에 기대기 시작했다…
	ELSEIF ABL:RANDOM_CHARANUM:친밀 >= 5
		PRINTFORMW %CALLNAME:MASTER%의 모습을 알아차린 %조사처리(CALLNAME:RANDOM_CHARANUM,"는")% 손을 흔들었다
	ENDIF
ELSE
	RETURN -1
ENDIF

@SAVE_MOBGIRL
#DIM CHOSEN_MOB
#DIMS MOBNAME

$LOOP
CALL PRINT_SAVED_GIRL_LIST
INPUT
SIF RESULT == 99
	RETURN -1
SIF !INRANGE(RESULT, 0, MAXMOB - 1)
	GOTO LOOP

CHOSEN_MOB = RESULT
IF FIND_CHARADATA(TOSTR(CHOSEN_MOB))
	CHKCHARADATA RESULTS:0
	STRFIND RESULTS:0, "："
	SUBSTRING RESULTS:0, 0, RESULT
	MOBNAME = %RESULTS:0%
	PRINTFORML %조사처리(MOBNAME,"를")% 잊어, 대신에 %조사처리(CALLNAME:RANDOM_CHARANUM,"를")% 기억합니까?
	CALL ASK_YN
	IF !RESULT
		PRINTFORM %마스터는% 몰인정하게도 %조사처리(MOBNAME,"를")% 깨끗히 잊고,
	ELSE
		GOTO LOOP
	ENDIF
ENDIF
MOBGIRL_PLACE:CHOSEN_MOB = CFLAG:RANDOM_CHARANUM:자주가는지역
SIF TALENT:RANDOM_CHARANUM:풍속양
	MOBGIRL_PLACE:CHOSEN_MOB = 90
TALENT:RANDOM_CHARANUM:스침 = 2
CFLAG:RANDOM_CHARANUM:모브코세이브슬롯 = CHOSEN_MOB
MOBGIRL_FP:CHOSEN_MOB = %モブ子一人称%
MOBGIRL_SP:CHOSEN_MOB = %モブ子二人称%
SAVECHARA TOSTR(CHOSEN_MOB), CSTR:RANDOM_CHARANUM:모브코프로필1, RANDOM_CHARANUM
PRINTFORMW %조사처리(CALLNAME:RANDOM_CHARANUM,"를")% \@ TALENT:RANDOM_CHARANUM:풍속양 ? 마음에 두려고 킵했다 # 기억했다 \@

;-------------------------------------------------
;모브코프로필2を更新する
;패배자でなければ、その日の過ごし方の様子でプロフィール２を追記
;패배자の場合は、陥落状態に合わせて更新
;-------------------------------------------------
@MOBGIRL_PROFILE2()
#DIM 횟수

횟수 = EXP:RANDOM_CHARANUM:V성교경험 + EXP:RANDOM_CHARANUM:A성교경험

;패배자でない場合は、性的関係の進展でテキストを構成
IF CFLAG:RANDOM_CHARANUM:패배자 == 0
	;出会って日が浅い
	IF DAY:0 - PRINTDATEF_TO_DAY(CSTR:RANDOM_CHARANUM:모브코프로필1) <= 30
		CSTR:RANDOM_CHARANUM:모브코프로필2 = 만난지 얼마 안 된 %CALLNAME:MASTER%
	ELSE
		CSTR:RANDOM_CHARANUM:모브코프로필2 = %CALLNAME:MASTER%
	ENDIF
	;にゅーぷらん
	IF TALENT:RANDOM_CHARANUM:풍속양
		SIF GROUPMATCH(TALENT:RANDOM_CHARANUM:풍속양, 1, 2) && CFLAG:RANDOM_CHARANUM:1001 == 3
			TALENT:RANDOM_CHARANUM:풍속양 += 2
		IF CFLAG:RANDOM_CHARANUM:1001  > 6
			LOCALS = 에게 완전히 정이 들어、더 이상 일인지 진심인지 구분이 가지 않게 되었다
		ELSEIF CFLAG:RANDOM_CHARANUM:1001  > 3
			LOCALS = 에게 단순한 손님 이상의 감정을 가져、봉사를 해드릴 수 있다는 것에 기쁨을 느끼고 있다
		ELSE
			LOCALS = 를 단골 손님으로 간주해 재방문 지명을 기쁘게 생각하고 있다
		ENDIF
	;생해금
	ELSEIF CFLAG:RANDOM_CHARANUM:생해금
		IF TALENT:RANDOM_CHARANUM:유부녀 == 1
			LOCALS = 에게 열중해 버려, 남편이나 가정을 돌보지 않고 문란한 사이가 되어 있다
		ELSE
			LOCALS = %조사만처리(CALLNAME:MASTER,"를")% 암컷으로서 본능적으로 받아들여, 질내사정으로 아이를 배도 좋다고까지 느끼고 있다
		ENDIF
	;합의ックス
	ELSEIF GETBIT(CFLAG:RANDOM_CHARANUM:기정사실 , 1)
		IF TALENT:RANDOM_CHARANUM:유부녀 == 1
			LOCALS = %조사만처리(CALLNAME:MASTER,"를")% 주체할 수 없던 정욕의 배출구로 삼고 있는 것 같다
		ELSE
			LOCALS = 에게 끌려 몸을 허락하고 말았다
		ENDIF
	;수면간(一応)
	ELSEIF EXP:RANDOM_CHARANUM:수면간경험
		LOCALS = 의 계략에 빠져, 자는 사이에 몸을 좋아하게 되었다
	;합의なしックス
	ELSEIF CFLAG:RANDOM_CHARANUM:대주고말았다
		IF TALENT:RANDOM_CHARANUM:유부녀 == 1
			LOCALS = 의, 남편에게는 없는 매력에게 저항할 수 없는 것 같다
		ELSE
			LOCALS = %조사만처리(CALLNAME:MASTER,"와")% 흘러가는대로 음행에 이르고 말았다
		ENDIF
	;괘씸각인
	ELSEIF MARK:RANDOM_CHARANUM:괘씸각인
		IF TALENT:RANDOM_CHARANUM:유부녀 == 1
			LOCALS = 에게 안됀다고 생각하면서도 성적인 시선을 보내고 있다
		ELSE
			LOCALS = 에게 성적인 관심을 가지게 된 것 같다
		ENDIF
	;시간각인
	ELSEIF MARK:RANDOM_CHARANUM:시간각인
		LOCALS = 의 눈에 띄어, 멈춘 시간 속에서 몸을 개발당하고 말았다
	ELSE
		LOCALS = 의 인상은 그럭저럭인 것 같다
	ENDIF
	CSTR:RANDOM_CHARANUM:모브코프로필2 += LOCALS

;패배자の場合は、陥落強度に応じてテキストを構成
ELSE
	IF TALENT:RANDOM_CHARANUM:연모
		CSTR:RANDOM_CHARANUM:모브코프로필2 = 탄막놀이의 승패따위는 아무래도 상관없이, 이제는 %CALLNAME:MASTER%에게 마음 속 깊이 빠져있는 것 같다
	ELSEIF TALENT:RANDOM_CHARANUM:애욕
		IF GETBIT(TALENT:MASTER:성별, 1)
			IF 횟수 >= 75
				CSTR:RANDOM_CHARANUM:모브코프로필2 = %CALLNAME:MASTER%의 자지에 완전히 굴복해, 또 다시 범해지는 것을 이제나저제나 하고 기대하고 있다
			ELSE
				CSTR:RANDOM_CHARANUM:모브코프로필2 = %CALLNAME:MASTER%에게 완전히 굴복해, 또 다시 사랑받는 것을 이제나저제나 하고 기대하고 있다
			ENDIF
		ELSE
			CSTR:RANDOM_CHARANUM:모브코프로필2 = 과거의 위세는 어디로 갔는지, 마음도 몸도 %CALLNAME:MASTER%색으로 흠뻑 물들어 버렸다
		ENDIF
	ELSEIF TALENT:RANDOM_CHARANUM:사모
		CSTR:RANDOM_CHARANUM:모브코프로필2 = %CALLNAME:MASTER%의 완력뿐만 아니라 사람됨이 신경쓰이기 시작했다
	ELSEIF TALENT:RANDOM_CHARANUM:섹프
		CSTR:RANDOM_CHARANUM:모브코프로필2 = %CALLNAME:MASTER%에게 엉망으로 울려져 육욕의 포로가 되어버렸다
	ELSEIF MARK:RANDOM_CHARANUM:쾌락각인
		CSTR:RANDOM_CHARANUM:모브코프로필2 = 입으로는 부정하면서도 몸은 정직하게 쾌락에 반응하는 것 같다
	ENDIF
ENDIF

;-------------------------------------------------
;PRINT_DATE_Fの●年目 ■の★日の文字列を
;DAY:0（총날짜）と同じ日数に読み替える関数
;ARGS CSTR:RANDOM_CHARANUM:모브코프로필1を
;代入して、出会った日付を割り出す使用前提
;-------------------------------------------------
@PRINTDATEF_TO_DAY(ARGS)
#FUNCTION
#DIM YEAR
#DIM MOUTH
#DIMS 계절
#DIM DAYS
#DIMS 컷
#DIM TOTAL

SPLIT ARGS, "：", LOCALS
컷 = %LOCALS:1%
SPLIT 컷, "년째 ", LOCALS
컷 = %LOCALS:1%
YEAR = TOINT(LOCALS:0)
SPLIT 컷, "월", LOCALS
계절 = %LOCALS:0%
컷 = %LOCALS:1%
SPLIT 컷, "일", LOCALS
DAYS = TOINT(LOCALS:0)
SELECTCASE 계절
	CASE "봄"
		MOUTH = 0
	CASE "여름"
		MOUTH = 31
	CASE "가을"
		MOUTH = 62
	CASE "겨울"
		MOUTH = 93
ENDSELECT
TOTAL = (YEAR - 1) * 124 + MOUTH + DAYS
RETURNF TOTAL

path: ERB/커맨드관련/COMF/일상계/COMF444 여자아이를물색_t.ERB


code:
;채집한다
@COM445
#DIM 채집물
#DIM 채집파워
#DIM 채집파워M
#DIM 채집파워T
#DIM 토지의은혜
#DIM CHARA
#DIM 채집위치
;あからさまな人の敷地での無断採集はやめる、弾幕勝負で勝ってれば腕づくで
SELECTCASE CFLAG:MASTER:현재위치
	CASE 태양의밭, 438
		IF ABL:[[유카]]:친밀 < 5 && CFLAG:[[유카]]:탄막승부승리 == 0
			DRAWLINE
			PRINTFORML 여기서 무단으로 채집을 하는 것은 매우 위험할 것 같다…
			RETURN -1
		ENDIF
	;천계, 도원
	CASE 천계, 833
		IF ABL:[[텐시]]:친밀 < 5 && CFLAG:[[텐시]]:탄막승부승리 == 0
			DRAWLINE
			PRINTFORML 여기서 무단으로 채집을 하는 것은 위험할 것 같다…
			RETURN -1
		ENDIF
	;虹龍洞
	CASE 虹龍洞, 855
		IF ABL:[[모모요]]:친밀 < 5 && CFLAG:[[모모요]]:탄막승부승리 == 0
			DRAWLINE
			PRINTFORML 여기서 무단으로 채집을 하는 것은 위험할 것 같다…
			RETURN -1
		ENDIF
ENDSELECT

채집물 = 0
채집파워M = 0
채집파워T = 0
LOCAL:4 = 0

;참가자 판정
IF FLAG:데이트상대 && !FLAG:70
	CHARA = FLAG:데이트상대
ELSEIF TARGET && ABL:TARGET:친밀 >= 5 && SHIRAHU(TARGET) && CFLAG:TARGET:동행 != 5
	CHARA = TARGET
ELSE
	CHARA = 0
ENDIF

;토지의 은혜. 일일로-25～+25의 사이를 랜덤으로 부동. 낚시를 참고에.
토지의은혜 = CFLAG:MASTER:오늘의운세 / 20 - 25

SIF ITEM:세방울의천수
	토지의은혜 += 5

;채집 파워 설정
채집파워M = 10 + TALENT:MASTER:채집Lv * 10 + ABL:MASTER:교양 * 5 + TFLAG:행운보정 * 10
SIF ITEM:108
	채집파워M += 10

SIF CHARA && !FLAG:70
	채집파워T = 10 + TALENT:CHARA:채집Lv * 10 + ABL:CHARA:교양 * 5
;참가자로 가장 파워가 높은 것을 기준에,1/2한 이제(이미/벌써/더는/정말) 1명의 파워를 더한다
IF 채집파워M >= 채집파워T
	채집파워 = 채집파워M + (채집파워T / 2)
ELSE
	채집파워 = 채집파워T + (채집파워M / 2)
ENDIF
채집위치 = GATHERING_SPOT(CFLAG:MASTER:현재위치)
REPEAT 5
	REUSELASTLINE  \@ CHARA ? %조사처리(CALLNAME:CHARA,"와")% 함께 #  \@채집중.%"." * COUNT%
	TWAIT 150, 1
REND
;디버그용
;PRINTFORML 채집위치{채집위치}
;PRINTFORML 채집파워{채집파워}

$TREASURSARCH

CALL Gathering_Drawing(채집위치, 채집파워, 토지의은혜)

채집물 = RESULT:0
TFLAG:194 = RESULT:1
VARSET RESULT
;시행 회수를 1회늘린다
LOCAL:4 ++
;채집물이 마음에 들지 않는 경우는 당겨 수선
IF 채집물 != 0
	IF !FLAG:채집재추첨
		CLEARLINE 3
	ELSE
		SETCOLOR 0x00FF00
		PRINTFORM %ITEMNAME:(채집물)%
		RESETCOLOR
		PRINTFORML (소지수: {ITEM:(채집물)})%조사만처리(ITEMNAME:(채집물),"가")% 발견되었다. 채집합니까?
		CALL ASK_YN("채집한다","다시 찾는다")
		IF !RESULT
			CLEARLINE 4
		ELSE
			CLEARLINE 4
			채집물 = 0
			TFLAG:194 = 0
			REPEAT 5
				REUSELASTLINE  \@ CHARA ? %조사처리(CALLNAME:CHARA,"와")% 함께 #  \@채집중.%"." * COUNT%
				TWAIT 150, 1
			REND
		ENDIF
	ENDIF
ENDIF

;시행 회수 3회 이하로 채집물이 확보되어 있지 않은 경우는 루프
SIF LOCAL:4 <= 3 && 채집물 == 0
	GOTO TREASURSARCH

; 아이템 입수 처리 99개 이상이 되지 않도록 한다
IF 채집물 != 0
	LOCALS = %ITEMNAME:채집물%
	CALL GET_ITEM(LOCALS, TFLAG:194 , 2)
ENDIF

;기본경험
EXP:MASTER:채집경험 ++
SIF !채집물
	EXP:MASTER:채집경험 += 2
SIF CHARA
	EXP:CHARA:채집경험 ++

SIF ITEM:108 && !RAND:2
	EXP:MASTER:채집경험 ++

SIF ABL:MASTER:교양 <= 2
	EXP:MASTER:학습경험 ++

;능력차이로 가르쳐 받는·가르쳐 준다
IF 채집파워M >= 채집파워T && CHARA
	EXP:CHARA:채집경험 ++
ELSEIF CHARA
	EXP:MASTER:채집경험 ++
ENDIF

;데이트 경험
IF CHK_DATENOW(CFLAG:CHARA:데이트중) && CHARA > 0
	EXP:MASTER:데이트경험 ++
	EXP:CHARA:데이트경험 ++
ENDIF

;시간 정지시는 TSP감
IF FLAG:70
	;虹龍洞は採掘困難
	IF 채집위치 == 68
		BASE:MASTER:TSP -= 290
	ELSE
		BASE:MASTER:TSP -= 120
	ENDIF
ELSE
	;시간 경과
	TIME += 60
	;虹龍洞は空気が薄い（無い）ので体力を余計に消耗する　ITEM:空色の勾玉の実装が待たれる
	IF 채집위치 == 68
		DOWNBASE:MASTER:체력 = 320 - (ABL:MASTER:전투능력 * 10)
		DOWNBASE:MASTER:기력 = 280
		PRINTFORML 갱 내부는 공기가 옅어、몹시 지친다…
	ELSE
		;체력 감소는 전투 능력에 의해 감소 억제
		DOWNBASE:MASTER:체력 = 180 - (ABL:MASTER:전투능력 * 15)
		DOWNBASE:MASTER:기력 = 150
	ENDIF
ENDIF

;참가자의 소스, 동일 커맨드 제한을 받지 않기 때문에 소극적으로, 발견되지 않으면 반감
IF CHARA > 0
	;고정으로 획득하는 소스
	SOURCE:CHARA:환락 = 300
	SOURCE:CHARA:사랑 = 50

	;ABL:순종을 본다
	IF ABL:순종 <= 1
		SOURCE:CHARA:환락 += (ABL:순종 * 40)
		SOURCE:CHARA:사랑 += (ABL:친밀 * 20)
	ELSEIF ABL:순종 <= 3
		SOURCE:CHARA:환락 += 200 + (ABL:순종 * 40)
		SOURCE:CHARA:사랑 += 50 + (ABL:친밀 * 30)
	ELSEIF ABL:순종 <= 5
		SOURCE:CHARA:환락 += 500 + (ABL:순종 * 40)
		SOURCE:CHARA:사랑 += 200 + (ABL:친밀 * 30)
	ELSEIF ABL:순종 <= 8
		SOURCE:CHARA:환락 += 750 + (ABL:순종 * 60)
		SOURCE:CHARA:사랑 += 300 + (ABL:친밀 * 40)
	ELSEIF ABL:순종 <= 11
		SOURCE:CHARA:환락 += 1000 + (ABL:순종 * 60)
		SOURCE:CHARA:사랑 += 600 + (ABL:친밀 * 40)
	ELSE
		SOURCE:CHARA:환락 += 1600 + (ABL:순종 * 30)
		SOURCE:CHARA:사랑 += 1000 + (ABL:친밀 * 20)
	ENDIF
	SIF CHARA != FLAG:데이트상대
		SOURCE:CHARA:사랑 = 0

	;호감도는 보지 않는다

	SOURCE:CHARA:수동 = 200 + 100 * ABL:순종
	SOURCE:CHARA:정복 = 200 + 100 * ABL:새드끼

	;채집 성과를 보는, 아이템 가격에 응해 우선 설정
	IF 채집물
		SELECTCASE ITEMPRICE:(채집물)
			CASE 1 TO 499
				TIMES SOURCE:CHARA:환락 , 1.00
				TIMES SOURCE:CHARA:수동 , 1.00
				TIMES SOURCE:CHARA:정복 , 1.00
				SOURCE:CHARA:달성 = 80
			CASE 500 TO 999
				TIMES SOURCE:CHARA:환락 , 1.10
				TIMES SOURCE:CHARA:수동 , 1.10
				TIMES SOURCE:CHARA:정복 , 1.10
				SOURCE:CHARA:달성 = 115
			CASE 1000 TO 2999
				TIMES SOURCE:CHARA:환락 , 1.25
				TIMES SOURCE:CHARA:수동 , 1.25
				TIMES SOURCE:CHARA:정복 , 1.15
				SOURCE:CHARA:달성 = 125
			CASE 3000 TO 5999
				TIMES SOURCE:CHARA:환락 , 1.50
				TIMES SOURCE:CHARA:수동 , 1.50
				TIMES SOURCE:CHARA:정복 , 1.25
				SOURCE:CHARA:달성 = 150
			CASE 6000 TO 9999
				TIMES SOURCE:CHARA:환락 , 1.75
				TIMES SOURCE:CHARA:수동 , 1.75
				TIMES SOURCE:CHARA:정복 , 1.50
				SOURCE:CHARA:달성 = 200
			CASE 10000 TO 14999
				TIMES SOURCE:CHARA:환락 , 2.00
				TIMES SOURCE:CHARA:수동 , 2.00
				TIMES SOURCE:CHARA:정복 , 1.75
				SOURCE:CHARA:달성 = 300
			CASEELSE
				TIMES SOURCE:CHARA:환락 , 2.25
				TIMES SOURCE:CHARA:수동 , 2.25
				TIMES SOURCE:CHARA:정복 , 2.00
				SOURCE:CHARA:달성 = 350
		ENDSELECT
	;발견되지 않는다
	ELSE
		TIMES SOURCE:CHARA:환락 , 0.50
		TIMES SOURCE:CHARA:수동 , 0.50
		TIMES SOURCE:CHARA:정복 , 0.50
	ENDIF
	;채집물의 캐릭터에게 응한 고유 반응（덧쓰기）
	SELECTCASE 채집물
		;개구리
		CASE 706
		;치르노
			IF CHARA == [[치르노]]
				TIMES SOURCE:CHARA:환락 , 2.00
				TIMES SOURCE:CHARA:수동 , 2.00
				TIMES SOURCE:CHARA:정복 , 2.00
			;스와코
			ELSEIF CHARA == [[스와코]]
				TIMES SOURCE:CHARA:환락 , 0.50
				TIMES SOURCE:CHARA:수동 , 0.50
				TIMES SOURCE:CHARA:정복 , 0.50
			ELSE
				TIMES SOURCE:CHARA:환락 , 1.25
				TIMES SOURCE:CHARA:수동 , 1.00
				TIMES SOURCE:CHARA:정복 , 1.00
			ENDIF
			SOURCE:CHARA:달성 = 110
	ENDSELECT
ENDIF

;플래그 인도
TFLAG:SELECTCOM분기 = 채집물

RETURN 1

;-------------------------------------------------
;실행 가능 판정
;-------------------------------------------------
;채집한다
@COM_ABLE445
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(445)
	RETURN RESULT
;채집할 수 있는 장소이다
SIF !GATHERING_SPOT(CFLAG:MASTER:현재위치)
	RETURN 0
;데이트중은 데이트 상대와 만
SIF FLAG:데이트상대 && TARGET != FLAG:데이트상대
	RETURN 0
;수면중
SIF CFLAG:MASTER:수면
	RETURN 0
SIF CFLAG:우후후
	RETURN 0
;체력·기력 부족
SIF BASE:MASTER:기력 < 650 || BASE:MASTER:체력 < 680
	RETURN 0
;시간 정지중도 가능（가짜）
;SIF FLAG:70
;	RETURN 0
RETURN 1

;-----------------------------------------------------------
;현재 위치로부터 채집 스팟을 산출하는 함수
;ARG		현재 위치
;ARG:1		@ShowGatheringSpots부터의 참조용
;RETURN		0 해당 없음	1～30숲, 초원	31～60 수계		61～ 특수
;COMMENT	장소를 추가했을 경우, CASE를 변경의 일
;-----------------------------------------------------------
@GATHERING_SPOT(ARG, ARG:1)
#FUNCTION
IF !IN_HOME(ARG) && !ARG:1
;서브 맵 따위에서의 판정
	SELECTCASE ARG
		CASE 요정의큰나무
			RETURNF 1
		CASE 사각의죽림
			RETURNF 2
		CASE 무명의언덕
			RETURNF 3
		CASE 태양의밭
			RETURNF 4
		CASE 재고의길
			RETURNF 5
		CASE 고목의큰나무
			RETURNF 6
		CASE 마요이가
			RETURNF 7
		CASE 피안
			RETURNF 8
		CASE 산록의수해
			RETURNF 11
		CASE 절경의언덕
			RETURNF 12
		CASE 천계
			RETURNF 13
		CASE 복숭아숲～모래사장
			RETURNF 14
		CASE 안개의호수
			RETURNF 31
		CASE 삼도천
			RETURNF 32
		CASE 현무의늪
			RETURNF 33
		CASE 큰두꺼비의연못
			RETURNF 34
		CASE 구천의폭포
			RETURNF 35
		CASE 산의호수
			RETURNF 36
		CASE 지옥의깊은길
			RETURNF 37
		CASE 묘지
			RETURNF 61
		CASE 무연총
			RETURNF 62
		CASE 간헐천지하센터
			RETURNF 64
		CASE 작열지옥터
			RETURNF 65
		CASE 괴안통로
			RETURNF 66
		CASE 고요의바다
			RETURNF 67
		CASE 홍룡동
			RETURNF 68
	ENDSELECT
ELSE
	;メインマップでの判定
	SELECTCASE ARG
		;하쿠레이신사
		CASE P25수호신의숲
			RETURNF 1
		;명련사
		CASE P121묘지
			RETURNF 61
		;홍마관
		CASE P343호숫가
			RETURNF 31
		;영원정
		CASE P433사각의죽림
			RETURNF 2
		CASE P436무명의언덕
			RETURNF 3
		CASE P438태양의밭
			RETURNF 4
		;마법의숲
		CASE P506무연총
			RETURNF 62
		CASE P507キノコ群生地
			RETURNF 63
		CASE P509재고의길
			RETURNF 5
		CASE P540고목의큰나무
			RETURNF 6
		;명계
		CASE P604피안
			RETURNF 8
		CASE P630야쿠모가현관
			RETURNF 7
		;요괴의산 산록
		CASE P702산길・늪으로가는길
			RETURNF 9
		CASE P703현무의늪
			RETURNF 33
		CASE P705산길・산비탈
			RETURNF 10
		CASE P708큰두꺼비의연못
			RETURNF 34
		CASE P712간헐천지하센터
			RETURNF 64
		;요괴의산 산정
		CASE P805정상
			RETURNF 12
		CASE P806폭포뒤
			RETURNF 35
		CASE P814호숫가
			RETURNF 36
		CASE P833도원
			RETURNF 13
		CASE P855홍룡동
			RETURNF 68
		;지저
		CASE P928작열지옥터
			RETURNF 65
		CASE P945강가
			RETURNF 37
		CASE P948수혈의바닥
			RETURNF 66
		;달
		CASE P1014복숭아숲, P1015모래사장
			RETURNF 14
		CASE P1016후미
			RETURNF 67
	ENDSELECT
ENDIF
RETURNF 0

;-------------------------------------------------
;그 채집 스팟에서의 채집물의 출현 판정을 하는 함수
; 아이템 번호 ARG:0
;GATHERING_SPOT(ARG)의 돌아가 값ARG:1（채집 스팟）  의
;출현 가부를 숫자로 돌려주는 출현==1비출현==0
; 아이템을 추가했을 경우는, GROUPMATCH내에 각각 덧붙여 씀
;-------------------------------------------------
@GATHERING_PRODUCT(ARG:0, ARG:1)
#FUNCTION

;(酒造パッチ)머루665・곰팡이핀포도666を追加
SELECTCASE ARG:1
	;고장을 지키는 신 숲, 요정의 큰 나무
	CASE 1
		SIF GROUPMATCH(ARG:0, 600, 601, 602, 607, 608, 611, 612, 616, 619, 621, 622, 626, 627, 628, 636, 665, 666)
			RETURNF 1
	;경사각의 대나무숲
	CASE 2
		SIF GROUPMATCH(ARG:0, 607, 608, 611, 612, 613, 618, 619, 629, 635, 640)
			RETURNF 1
	;무명의 언덕
	CASE 3
		SIF GROUPMATCH(ARG:0, 600, 601, 602, 603, 612, 616, 620, 626, 627, 631, 636, 638, 665, 666)
			RETURNF 1
	;태양의 밭
	CASE 4
		SIF GROUPMATCH(ARG:0, 612, 613, 614, 615, 617, 618, 619, 620, 623, 624, 626, 627, 665, 666)
			RETURNF 1
	;재고의 길
	CASE 5
		SIF GROUPMATCH(ARG:0, 612, 614, 619, 624, 631, 632, 638)
			RETURNF 1
	;고목의 큰 나무
	CASE 6
		SIF GROUPMATCH(ARG:0, 600, 601, 602, 603, 604, 605, 607, 608, 611, 612, 616, 618, 621, 622, 623, 625, 626, 627, 628, 665, 666)
			RETURNF 1
	;마요이가
	CASE 7
		SIF GROUPMATCH(ARG:0, 600, 601, 602, 603, 607, 608, 611, 612, 616, 617, 619, 621, 622, 626, 627, 628, 665, 666)
			RETURNF 1
	;피안
	CASE 8
		SIF GROUPMATCH(ARG:0, 600, 601, 607, 608, 612, 614, 620, 624, 638)
			RETURNF 1
	;산길·늪에 계속되는 길
	CASE 9
		SIF GROUPMATCH(ARG:0, 600, 601, 602, 607, 608, 611, 612, 616, 617, 621, 622, 626, 627, 628, 636, 665, 666)
			RETURNF 1
	;산길·중턱
	CASE 10
		SIF GROUPMATCH(ARG:0, 611, 613, 616, 619, 621, 622, 623, 633)
			RETURNF 1
	;산기슭의 수해
	CASE 11
		SIF GROUPMATCH(ARG:0, 600, 601, 602, 607, 608, 611, 612, 613, 616, 617, 619, 621, 622, 623, 626, 627, 628, 633, 665, 666)
			RETURNF 1
	;절경의 언덕, 정상
	CASE 12
		SIF GROUPMATCH(ARG:0, 602, 603, 607, 608, 611, 612, 615, 616, 619, 621, 622, 625, 626, 627, 628, 665, 666)
			RETURNF 1
	;천계, 도원
	CASE 13
		SIF GROUPMATCH(ARG:0, 617, 623, 630)
			RETURNF 1
	;도림～모래 사장
	CASE 14
		SIF GROUPMATCH(ARG:0, 607, 608, 613, 617, 618, 624, 625, 630)
			RETURNF 1
	;안개호, 호숫가(홍마관)
	CASE 31
		SIF GROUPMATCH(ARG:0, 606, 607, 608, 609, 611, 612, 617, 624, 633, 706)
			RETURNF 1
	;삼도천
	CASE 32
		SIF GROUPMATCH(ARG:0, 607, 608, 612, 614, 631, 638, 706)
			RETURNF 1
	;현무의 늪
	CASE 33
		SIF GROUPMATCH(ARG:0, 606, 607, 609, 611, 612, 618, 635, 706)
			RETURNF 1
	;대두꺼비의 연못
	CASE 34
		SIF GROUPMATCH(ARG:0, 604, 612, 620, 631, 636, 706)
			RETURNF 1
	;구천의 폭포, 폭포의 뒤
	CASE 35
		SIF GROUPMATCH(ARG:0, 600, 601, 602, 606, 609, 611, 613, 631, 634, 706)
			RETURNF 1
	;산의 호수, 호숫가（요괴의산 산정）
	CASE 36
		SIF GROUPMATCH(ARG:0, 606, 607, 609, 611, 612, 618, 632, 706)
			RETURNF 1
	;지옥의 후카미치, 강가
	CASE 37
		SIF GROUPMATCH(ARG:0, 600, 601, 602, 604, 606, 609, 620, 631, 633, 636, 706)
			RETURNF 1
	;묘지
	CASE 61
		SIF GROUPMATCH(ARG:0, 601, 602, 604, 614, 620, 631, 636, 638)
			RETURNF 1
	;무연총
	CASE 62
		SIF GROUPMATCH(ARG:0, 604, 606, 609, 631, 634, 635, 636, 638)
			RETURNF 1
	;버섯 군생지
	CASE 63
		SIF GROUPMATCH(ARG:0, 600, 601, 602, 603, 604, 605, 605, 629)
			RETURNF 1
	;간헐천 지하 센터
	CASE 64
		SIF GROUPMATCH(ARG:0, 632, 634, 637)
			RETURNF 1
	;작열 지옥자취
	CASE 65
		SIF GROUPMATCH(ARG:0, 631, 634, 635, 637, 638)
			RETURNF 1
	;환상 바람구멍, 세로구멍의 바닥
	CASE 66
		SIF GROUPMATCH(ARG:0, 602, 604, 631, 632)
			RETURNF 1
	;정인가의 바다
	CASE 67
		SIF GROUPMATCH(ARG:0, 639)
			RETURNF 1
	;홍룡동
	CASE 68
		SIF GROUPMATCH(ARG:0, 647)
			RETURNF 1
ENDSELECT
RETURNF 0

;-------------------------------------------------
;채집물의 계절마다의 출현 판정
; 아이템 번호 ARG:0의 계절마다의
;출현 가부를 숫자로 돌려주는 함수 출현==1비출현==0
; 아이템을 추가했을 경우는, CASE에 덧붙여 씀
;ARG:1 に채집지점을 넣으면 아래 목록용 식으로 변환 생략가능
;-------------------------------------------------
@GATHERING_SEASON(ARG:0, ARG:1 = 0)
#FUNCTION

LOCAL = DAY:2
SIF GatheringSeason
	LOCAL = GatheringSeason

;(酒造パッチ)머루665・곰팡이핀포도666を追加
SELECTCASE LOCAL
	;봄:
	CASE 1
		SELECTCASE ARG:0
			CASE 600 TO 602, 604 TO 608, 610 TO 613, 616, 618 TO 627, 629, 631 TO 640, 647, 706
				RETURNF 1
		ENDSELECT
	;여름
	CASE 2
		SELECTCASE ARG:0
			CASE 600 TO 601, 603, 606 TO 608, 612 TO 613, 618 TO 627, 630 TO 640, 647, 665, 706
				RETURNF 1
		ENDSELECT
	;가을
	CASE 3
		SELECTCASE ARG:0
			CASE 600 TO 608, 611 TO 614, 616 TO 623, 625 TO 628, 631 TO 640, 647, 665, 706
				RETURNF 1
		ENDSELECT
		;(酒造パッチ)(天候パッチ)かびたブドウ666は寒気の強さが5の時のみ
		SIF ARG:0 == 666 && POWER_COLD_AIR == 5
			RETURNF 1
	;겨울
	CASE 4
		;天界、地底、月とキノコ群生地、虹龍洞は夏とみなして採集可能
		IF ARG:1
			LOCAL:1 = ARG:1
		ELSE
			LOCAL:1 = GATHERING_SPOT(CFLAG:MASTER:현재위치)
		ENDIF

		IF GROUPMATCH(LOCAL:1, 13, 14, 37, 63, 64, 65, 66, 67, 68)
			SELECTCASE ARG:0
				CASE 600 TO 601, 603, 606 TO 609, 612 TO 613, 618 TO 627, 630 TO 640, 647, 706
					RETURNF 1
			ENDSELECT
		ELSE
			SELECTCASE ARG:0
				CASE 606, 609, 615, 620, 631 TO 635, 637 TO 640
					RETURNF 1
			ENDSELECT
		ENDIF
ENDSELECT
RETURNF 0

@SHOW_GATHERING_LIST
#DIM PLACE
PRINTFORML 채집 장소 일람
CALL COLORMESSAGE(@"중급소재　",C_YELLOW)
CALL COLORMESSAGE(@"고급소재　",C_P_GREEN)
CALL COLORMESSAGE(@"최고급소재",C_AQUA)
PRINTFORML
DRAWLINE
FOR LOCAL,1, 90
	IF ForagePlaceName(LOCAL) != ""
		PRINTFORMLC [{LOCAL}] %ForagePlaceName(LOCAL)%
	ENDIF
NEXT
PRINTFORML
DRAWLINE
; 개인 임의수정, 소재 검색기능 추가
;---- EDIT START ---------------------------------
PRINTFORML [98] 소재 검색
;---- EDIT END -----------------------------------
PRINTFORML [99] 그만둔다
INPUT
PLACE = RESULT
IF ForagePlaceName(PLACE) != ""
	CALL SHOW_GATHERING_ITEM(PLACE)
	PRINTFORMW
	CLEARLINE 1
	RESTART
;---- EDIT START ---------------------------------
ELSEIF PLACE == 98
	CALL SEARCH_GATHERING_ITEM
;---- EDIT END -----------------------------------
ELSE
	RETURN -1
ENDIF

@SHOW_GATHERING_LIST_SELECT(PLACE)
#DIM PLACE
DRAWLINE
PRINTFORML 채집 가능물 일람
CALL COLORMESSAGE(@"중급소재　",C_YELLOW)
CALL COLORMESSAGE(@"고급소재　",C_P_GREEN)
CALL COLORMESSAGE(@"최고급소재",C_AQUA)
PRINTFORML
DRAWLINE

SELECTCASE PLACE
	CASE 99
		RETURN -1
	CASEELSE
		CALL SHOW_GATHERING_ITEM(PLACE)
		PRINTFORML
		DRAWLINE
		PRINTFORMW
ENDSELECT

@SHOW_GATHERING_ITEM(PLACE)
#DIM PLACE

FOR LOCAL,600,710
	IF GATHERING_PRODUCT(LOCAL, PLACE)
		LOCALS = %ITEMNAME:LOCAL%
		IF ITEMPRICE:LOCAL >= 1000
			SETCOLOR C_YELLOW
			SIF ABL:MASTER:교양 < 1
				LOCALS = ？？？
		ENDIF
		IF ITEMPRICE:LOCAL >= 3000
			SETCOLOR C_P_GREEN
			SIF ABL:MASTER:교양 < 2
				LOCALS = ？？？
		ENDIF
		IF ITEMPRICE:LOCAL >= 10000
			SETCOLOR C_AQUA
			SIF ABL:MASTER:교양 < 3
				LOCALS = ？？？
		ENDIF
		;季節条件を満たしていない場合は灰色表記に
		SIF !GATHERING_SEASON(LOCAL, PLACE)
			SETCOLOR 0x606060

		PRINTFORM %LOCALS%
	ENDIF
	RESETCOLOR
NEXT

;-----------------------------
;引数で指定した価格範囲内の素材の中からランダムに入手
;-----------------------------
@GetRandMaterial(QYT, PriceRange:0, PriceRange:1)
#DIM PriceRange, 2
#DIM cArray, 100
#DIM cNumber
#DIM Chosen
#DIM QYT
cNumber = 0
FOR LOCAL, 600, 700
	SIF ITEMNAME:LOCAL == ""
		CONTINUE
	;アイテム価格上限
	SIF ITEMPRICE:LOCAL > PriceRange:0
		CONTINUE
	;下限は省略可
	SIF ITEMPRICE:LOCAL < PriceRange:1
		CONTINUE
	SIF ITEM:LOCAL >= 99
		CONTINUE
	cArray:cNumber = LOCAL
	cNumber ++
NEXT
SIF !cNumber
	RETURN

FOR LOCAL,0,QYT
	Chosen = RAND:cNumber
	ITEM:(cArray:Chosen) ++
	CALL COLORMESSAGE(@"%조사처리(ITEMNAME:(cArray:Chosen),"를")% 손에 넣었다",C_YELLOW,1)
NEXT

@ForagePlaceName(ARG)
#FUNCTIONS
SELECTCASE ARG
CASE 1
	IF MAIN_MAP == 0
		LOCALS = 수호신의 숲
	ELSE
		LOCALS = 요정의 큰나무
	ENDIF
CASE 2
	LOCALS = 사각의 죽림
CASE 3
	LOCALS = 무명의 언덕
CASE 4
	LOCALS = 태양의 밭
CASE 5
	LOCALS = 재고의 길
CASE 6
	LOCALS = 고목의 큰나무
CASE 7
	IF MAIN_MAP == 6
	LOCALS = 야쿠모 가 현관
	ELSE
	LOCALS = 마요이가
	ENDIF
CASE 8
	LOCALS = 피안
CASE 9
	LOCALS = 산길·늪으로 가는 길
CASE 10
	LOCALS = 산길·산비탈
CASE 11
	LOCALS = 산록의 수해
CASE 12
	IF MAIN_MAP == 8
		LOCALS = 정상
	ELSE
		LOCALS = 절경의 언덕
	ENDIF
CASE 13
	IF MAIN_MAP == 8
		LOCALS = 도원
	ELSE
		LOCALS = 천계
	ENDIF
CASE 14
	LOCALS = 복숭아숲~모래사장
CASE 31
	IF MAIN_MAP == 3
		LOCALS = 호숫가(홍마관)
	ELSE
		LOCALS = 안개의 호수
	ENDIF
CASE 32
	LOCALS = 삼도천
CASE 33
	LOCALS = 현무의 늪
CASE 34
	LOCALS = 큰두꺼비의 연못
CASE 35
	IF MAIN_MAP == 8
		LOCALS = 폭포 뒤
	ELSE
		LOCALS = 구천의 폭포
	ENDIF
CASE 36
	IF MAIN_MAP == 8
		LOCALS = 호숫가（요괴의 산 산정）
	ELSE
		LOCALS = 산의 호수
	ENDIF
CASE 37
	IF MAIN_MAP == 9
		LOCALS = 강가（지저）
	ELSE
		LOCALS = 지옥의 깊은길
	ENDIF
CASE 61
	LOCALS = 묘지
CASE 62
	LOCALS = 무연총
CASE 63
	LOCALS = 버섯 군생지
CASE 64
	LOCALS = 간헐천 지하 센터
CASE 65
	LOCALS = 작열지옥터
CASE 66
	IF MAIN_MAP == 9
		LOCALS = 수혈의 바닥
	ELSE
		LOCALS = 환상풍혈
	ENDIF
CASE 67
	LOCALS = 고요의 바다
CASE 68
	LOCALS = 홍룡동
CASEELSE
	LOCALS =
ENDSELECT

RETURNF LOCALS

@Gathering_Drawing(채집위치, 채집파워, Modification)
;RESULT:0	채집아이템
;RESULT:1	채집량
#DIM 채집위치
#DIM 채집파워
#DIM Chosen
#DIM QTY
#DIM Modification
#DIM start			;抽選開始値
#DIM end			;抽選終了値
#DIM difference		;加算or減算
#DIMS 低気圧位置
#DIMS 積乱雲位置
低気圧位置 = %GET_LOCATION_LOW()%
積乱雲位置 = %GET_LOCATION_CUMULUS()%
Chosen = 0
QTY = 0
;채집물의 선출
;랜덤으로 검색 스타트 위치를 비켜 놓거나 검색의 방향을 바꾸거나 한다
SELECTCASE RAND:5
	CASE 0
		start = 600 + RAND:40
		end = 707
		difference = 1
	CASE 1
		start = 706
		end = 599
		difference = -1
	CASE 2
		start = 640 - RAND:40
		end = 599
		difference = -1
	CASEELSE
		start = 600 + (5 * (RAND:9))
		end = 707
		difference = 1
ENDSELECT

FOR LOCAL:0, start, end, difference
	;アイテムが無名でなく、出現条件を満たし、所有数上限でない
	SIF ITEMNAME:(LOCAL:0) == ""
		CONTINUE
	IF ITEM:(LOCAL:0) == 99
		DEBUGPRINTFORML 소지 상한 때문에 %ITEMNAME:(LOCAL:0)%를 스킵
		CONTINUE
	ENDIF
	IF !GATHERING_SEASON(LOCAL:0)
		DEBUGPRINTFORML 철이 지났기에 %ITEMNAME:(LOCAL:0)%를 스킵
		CONTINUE
	ENDIF
	IF  GATHERING_PRODUCT(LOCAL:0, 채집위치) < 1
		DEBUGPRINTFORML 위치가 부적절하기 때문에 %ITEMNAME:(LOCAL:0)%를 스킵
		CONTINUE
	ENDIF
	LOCAL:5 = ITEMPRICE:(LOCAL:0) + 1000
	;채집 파워＋보정치가 √ 아이템 비용+1000을 웃돌면 입수
	;(天候パッチ)猛烈な台風通過後・二つ玉低気圧通過後・スーパーセル通過後は、龍の爪・竜血・竜骨・龍珠の入手成功率が上昇
	IF GROUPMATCH(LOCAL:0, 606, 625, 634, 647) && ((低気圧位置 == "台風一過" && IS_TYPHOON:1 >= 5) || 低気圧位置 == "二つ玉低気圧通過" || (積乱雲位置 == "積乱雲通過" && CAN_CUMULUS:0 == 5))
		DEBUGPRINTFORML %ITEMNAME:(LOCAL:0)% 입수 성공률 상승 중
		IF 採集パワー + Modification < SQRT((LOCAL:5)/2)
			DEBUGPRINTFORML 채집파워 부족 때문에 %ITEMNAME:(LOCAL:0)%를 스킵
			CONTINUE
		ENDIF
	;(天候パッチ)寒冷渦通過後・二つ玉低気圧通過後は、氷の鱗の入手成功率が上昇
	ELSEIF LOCAL:0 == 609 && (低気圧位置 == "寒冷渦通過" || 低気圧位置 == "二つ玉低気圧通過")
		DEBUGPRINTFORML %ITEMNAME:(LOCAL:0)% 입수 성공률 상승 중
		IF 採集パワー + Modification < SQRT((LOCAL:5)/2)
			DEBUGPRINTFORML 채집파워 부족 때문에 %ITEMNAME:(LOCAL:0)%를 스킵
			CONTINUE
		ENDIF
	IF 채집파워 + Modification < SQRT(LOCAL:5)
		DEBUGPRINTFORML 채집파워 부족 때문에 %ITEMNAME:(LOCAL:0)%를 스킵
		CONTINUE
	ENDIF
	DEBUGPRINTFORML %ITEMNAME:(LOCAL:0)%로 결정
	Chosen = LOCAL:0
	;가격 10000을 넘는 희소 아이템은 1개 밖에 손에 들어 오지 않는, 그것 이하의 가격대는 채집 파워에 응해 복수 입수가 가능하게
	SELECTCASE LOCAL:5
		CASE 0 TO 2000
			QTY = MAX((RAND:(SQRT(채집파워)) - 1), 1)
		CASE 2001 TO 4000
			QTY = MAX((RAND:(SQRT(채집파워)) - 2), 1)
		CASE 4001 TO 7000
			QTY = MAX((RAND:(SQRT(채집파워)) - 3), 1)
		CASE 7001 TO 9999
			QTY = MAX((RAND:(SQRT(채집파워)) - 4), 1)
		CASEELSE
			QTY = 1
	ENDSELECT
	BREAK
NEXT
RETURN Chosen, QTY

; 개인 임의수정, 소재 검색기능 추가
;---- EDIT START ---------------------------------
@SEARCH_GATHERING_ITEM
#DIM ITEM_NUM
#DIMS ITME_NAME

PRINTFORML 채집 소재 검색
CALL COLORMESSAGE(@"중급소재　",C_YELLOW)
CALL COLORMESSAGE(@"고급소재　",C_P_GREEN)
CALL COLORMESSAGE(@"최고급소재",C_AQUA)
PRINTFORML
DRAWLINE

FOR ITEM_NUM,600,641

	SIF ITEMNAME:ITEM_NUM == ""
		CONTINUE
	; 나무만 예외처리
	SIF ITEM_NUM == 610
		CONTINUE

	ITME_NAME = %ITEMNAME:ITEM_NUM%
	IF ITEMPRICE:ITEM_NUM >= 1000
		SETCOLOR C_YELLOW
		SIF ABL:MASTER:교양 < 1
			ITME_NAME = ？？？
	ENDIF
	IF ITEMPRICE:ITEM_NUM >= 3000
		SETCOLOR C_P_GREEN
		SIF ABL:MASTER:교양 < 2
			ITME_NAME = ？？？
	ENDIF
	IF ITEMPRICE:ITEM_NUM >= 10000
		SETCOLOR C_AQUA
		SIF ABL:MASTER:교양 < 3
			ITME_NAME = ？？？
	ENDIF

	PRINTFORMLC [{ITEM_NUM, 3}] %ITME_NAME%
	RESETCOLOR
NEXT

PRINTFORML
DRAWLINE
PRINTFORML [99] 그만둔다
INPUT

ITEM_NUM = RESULT
IF ITEM_NUM == 99
	RETURN -1
ELSE
	CALL SEARCH_GATHERING_ITEM_PLACE(ITEM_NUM)
	CLEARLINE 1
	RESTART
ENDIF

@SEARCH_GATHERING_ITEM_PLACE(ITEM_NUM)
#DIM ITEM_NUM
#DIM PLACE
#DIMS PLACE_NAME

IF (ITEMPRICE:ITEM_NUM >= 1000 && ABL:MASTER:교양 < 1) || (ITEMPRICE:ITEM_NUM >= 3000 && ABL:MASTER:교양 < 2) || (ITEMPRICE:ITEM_NUM >= 10000 && ABL:MASTER:교양 < 3)
	PRINTFORMW 해당 소재의 채집 위치를 알기에는 교양이 부족하다…
	RETURN
ENDIF

FOR PLACE,1, 90
	IF ForagePlaceName(PLACE) == ""
		CONTINUE
	ELSE
		IF GATHERING_PRODUCT(ITEM_NUM, PLACE)
			PLACE_NAME '= ForagePlaceName(PLACE)

			SIF !GATHERING_SEASON(ITEM_NUM, PLACE)
				SETCOLOR 0x606060

			PRINTFORMLC [{PLACE, 2}] %PLACE_NAME%
			RESETCOLOR
		ENDIF
	ENDIF
NEXT

PRINTFORMW
;---- EDIT END -----------------------------------

path: ERB/커맨드관련/COMF/일상계/COMF445 채집한다_t.ERB


code:
;조제한다
@COM446
#DIM 조합물
#DIM 조제후보
#DIM 선택레시피
#DIM 조제건수
#DIM 조제파워
#DIM 조제파워M
#DIM 조제파워T
#DIM CHARA
#DIM R_ID
#DIM PRODUCTION
#DIM 체력소비
#DIM 기력소비

조합물 = 0
조제후보 = 0
선택레시피 = 0
조제건수 = 0
조제파워M = 0
조제파워T = 0

;참가자 판정
IF TARGET && ABL:TARGET:친밀 >= 5 && SHIRAHU(TARGET) && CFLAG:TARGET:동행 != 5
	CHARA = TARGET
ELSE
	CHARA = 0
ENDIF

;조제 파워 설정 조합지식과 교양, 약학 교본을 가지고 있으면 가산
조제파워M = TALENT:MASTER:조제Lv * 15 + ABL:MASTER:교양 * 5 + TFLAG:행운보정 * 5 + TALENT:MASTER:조합지식 * 30
SIF ITEM:약학교본
	조제파워M += 10
SIF CHARA
	조제파워T = TALENT:CHARA:조제Lv * 15 + ABL:CHARA:교양 * 5 + TALENT:CHARA:조합지식 * 30
;참가자로 가장 파워가 높은 것을 기준에,1/2한 이제(이미/벌써/더는/정말) 1명의 파워를 더한다
IF 조제파워M >= 조제파워T
	조제파워 = 조제파워M + (조제파워T / 2)
ELSE
	조제파워 = 조제파워T + (조제파워M / 2)
ENDIF

;①조합물 선택 리스트 화면 묘화, 조제 후보를 선택
CALL PHARMACY_LIST

$INPUT_LOOP01
INPUT
SIF RESULT == 1000
	RETURN -1
조제후보 = RESULT

;②조합물 선택 리스트내의 능력에 의한 레시피 해방·조제 가능한가를 판정
SELECTCASE PHARMACY_RANK(조제후보)
	CASE 0
		CLEARLINE 1
		GOTO INPUT_LOOP01
	CASE 1
		;무조건 해방
	CASE 2, 3
		IF TALENT:MASTER:조제Lv < (PHARMACY_RANK(조제후보) - 1) && ITEM:109 == 0
			CLEARLINE 1
			GOTO INPUT_LOOP01
		ENDIF
	CASE 4, 5
		IF TALENT:MASTER:조제Lv < (PHARMACY_RANK(조제후보) - 1)
			CLEARLINE 1
			GOTO INPUT_LOOP01
		ENDIF
ENDSELECT
;체질 변화약은【금단의지식】소유시만 가능
IF PHARMA_VOLATILE(조제후보) && !TALENT:MASTER:금단의지식
	CLEARLINE 1
	GOTO INPUT_LOOP01
ENDIF

;③조제 레시피리스트를 출력
DRAWLINE
;★여기에 아이템 리스트를 내?

; 아이템 해설. ERB로부터 설명문을 표기
SETCOLOR 0x00FF00
PRINTFORML ●%ITEMNAME:조제후보%　（소지 수：{ITEM:조제후보}）
PRINTFORML 　%ITEM_EXPLANATION(조제후보)%
RESETCOLOR
PRINTL
PRINTL 어느 레시피로 조제합니까?
DRAWLINE
CALL PHARMACY_RECIPELIST(조제후보)

;④레시피 번호를 입력, 실행 가부를 판정
$INPUT_LOOP02
INPUT
SIF RESULT == 0
	RESTART
선택레시피 = RESULT
R_ID = 조제후보 * 10 + 선택레시피
IF !CAN_PHARMA(R_ID)
	CLEARLINE 1
	GOTO INPUT_LOOP02
ENDIF

;⑤조제 회수를 입력, 가부를 판정（70 접수대의 체질 변화약의 종류는 1개 한정, 다른 것은 최대 10회까지）
IF PHARMA_VOLATILE(조제후보)
	PRINTFORML %조사처리(ITEMNAME:조제후보,"는")% 1개씩 밖에 조제할 수 없습니다
ELSE
	PRINTFORML 이 레시피로 %조사처리(ITEMNAME:조제후보,"를")% 몇 개 조제합니까? (1～의 개수를 입력, 0으로 돌아온다)
ENDIF
;그 레시피로 소비하는 소재의 현재의 소지수를 표기
PRINT   소비하는 소재의 소지수:

CALL PHARMACY_CONSUME(R_ID, 0, 1)

PRINTBUTTON "[0] 그만둔다", 0
PRINT
PRINTBUTTON "[1] 1회", 1
PRINT
IF !PHARMA_VOLATILE(조제후보)
	IF CAN_PHARMA(R_ID, 5)
		PRINTBUTTON "[5] 5回", 5
		PRINT
	ENDIF
	IF CAN_PHARMA(R_ID, 10)
		PRINTBUTTON "[10] 10回", 10
		PRINT
	ENDIF
ENDIF

$INPUT_LOOP03
INPUT
조제건수 = RESULT
SIF RESULT == 0
	RESTART
PRODUCTION = CAN_PHARMA(R_ID, 조제건수)
IF PRODUCTION && 조제건수 <= 10
	CLEARLINE 1
	;체질 변화薬は入力回数に関わらず強制的に１回に絞る
	SIF PHARMA_VOLATILE(조제후보)
		조제건수 = 1
	PRINTFORML %조사처리(ITEMNAME:조제후보,"를")% {조제건수}번 레시피로 {PRODUCTION}개 조제하기로 했다
	;조제시 전후에서의 소비 아이템의 수를 표기
	PRINT   소비하는 소재:
	CALL PHARMACY_CONSUME(R_ID, 조제건수, 1)
	;조제 성공시 아이템 개수가 99를 넘는 경우는 경고를 낸다
	IF ITEM:(조제후보) + PRODUCTION > 99 ;KR판 임의수정, {PRODUCTION - 99} >> {PRODUCTION - (99 - ITEM:조제후보)} 수정
		PRINTFORML   이 상태로는 %조사처리(ITEMNAME:조제후보,"를")% 전부 보관 할 수 없고, {PRODUCTION - (99 - ITEM:조제후보)}개가 사라져 버린다
	ELSE
		PRINTFORML   조제 성공시 %ITEMNAME:조제후보%의 개수: ({ITEM:조제후보}→{ITEM:조제후보 + PRODUCTION})
	ENDIF
	IF PHARMACY_RANK(조제후보) == 1
		PRINTL 일단 실패 하지는 않을 것 같다…
	ELSEIF PHARMACY_RANK(조제후보) >= 2
		SELECTCASE (조제파워 - (PHARMACY_RANK(조제후보) * 20))
			CASE IS <= -100
				PRINTL 계획은 세웠지만, 미지의 요소투성이다…일단 실패할 것 같다
			CASE -99 TO -50
				PRINTL 이 조제에 성공하는건 지극히 어려운 편이다…
			CASE -49 TO -30
				PRINTL 이 조제는 실패할 확률이 높은 것 같다…
			CASE -29 TO -10
				PRINTL 이 조제에는 실패의 리스크가 있다…
			CASE -9 TO -1
				PRINTL 이 조제는 거의 성공할 것 같다…
			CASEELSE
				PRINTL 일단 실패 하지는 않을 것 같다…
		ENDSELECT
	ENDIF
	PRINT 조제합니까?
	IF PHARMA_VOLATILE(조제후보)
		SETCOLOR 0x666666
		PRINTFORML （이 아이템은 대상을 선택할 수 없으면 파기되기 때문에 소재가 낭비될 위험이 있습니다）
		RESETCOLOR
	ELSE
		PRINTL
	ENDIF
	CALL ASK_YN
	IF !RESULT
	;앞으로 나아간다
	ELSE
		조제건수 = 0
		CLEARLINE 8
		RETURN -1
	ENDIF
ELSE
	조제건수 = 0
	CLEARLINE 1
	GOTO INPUT_LOOP03
ENDIF

;여기까지로 조건을 모두 클리어 하고 있는 경우는 이하에 진행
REPEAT 5
	REUSELASTLINE  \@ CHARA ? %조사처리(CALLNAME:CHARA,"와")% 함께 #  \@조제중.%"." * COUNT%
	TWAIT 150, 1
REND
R_ID = 조합물 * 10 + 선택레시피
;⑥조제의 성공 판정
IF PHARMACY_RANK(조제후보) != 1
	IF 조제파워 >= RAND:(PHARMACY_RANK(조제후보) * 20)
		PRINTFORML 조제에 성공했다!
		조합물 = 조제후보
		;조제 후 입수 개수를 흘려 넣는다
		TFLAG:194 = PRODUCTION
	ELSE
		PRINTFORML 조제에 실패했다…
		조합물 = 0
	ENDIF
;조제 LV1 레시피는 100％성공
ELSE
	PRINTFORML 조제에 성공했다!
	조합물 = 조제후보
	;조제 후 입수 개수를 흘려 넣는다
	TFLAG:194 = PRODUCTION
ENDIF

;소재 아이템 소비 처리를 여기서
PRINT   이번 소비한 소재:
R_ID = (조제후보 * 10 + 선택레시피)
CALL PHARMACY_CONSUME(R_ID, 조제건수)

;⑦ 아이템 입수 처리 99개 이상이 되지 않도록 한다
;  체질 개변약은 입수 처리 대신에 사용 처리로 난다
IF PHARMA_VOLATILE(조합물)
	CALL PHARMACY_CONSTITUTIONAL(조합물)
ELSEIF 조합물 != 0
	IF ITEM:(조합물) + TFLAG:194 > 99
		ITEM:(조합물) = 99
	ELSE
		ITEM:(조합물) += TFLAG:194
	ENDIF
ENDIF

;⑧경험 가산 조제 성공시는 조제 난이도×조제 건수경험
EXP:MASTER:조제경험 += PHARMACY_EXP(조제후보, 조제건수, 조합물)
SIF CHARA
	EXP:CHARA:조제경험 += PHARMACY_EXP(조제후보, 조제건수, 조합물)
;약학 교본 가지고 있으면 추가
SIF ITEM:109
	EXP:MASTER:조제경험 += MAX(RAND:(조제건수), 1)

;능력차이로 가르쳐 받는·가르쳐 준다
IF 조제파워M >= 조제파워T && CHARA
	EXP:CHARA:조제경험 ++
ELSEIF CHARA
	EXP:MASTER:조제경험 ++
ENDIF

;⑨시간 경과 조제 난이도와 조제 건수에 의해 보정
TIME += PHARMACY_TIME(조제후보, 조제건수)

;⑩체력·기력 감소 처리
체력소비 = 30 * SQRT(조제건수)
기력소비 = MAX((((50 * PHARMACY_RANK(조제후보)) - (15 * TALENT:MASTER:조합지식 + 10 * TALENT:MASTER:조제Lv))), 30) * SQRT(조제건수)
;自室かつ机椅子があると体力기력소비低減
IF CFLAG:MASTER:현재위치 == CFLAG:MASTER:초기위치 && ITEM:느티책상의자
	SELECTCASE ITEM:느티책상의자
		CASE 1
			TIMES 체력소비, 0.9
			TIMES 기력소비, 0.9
		CASE 2
			TIMES 체력소비, 0.85
			TIMES 기력소비, 0.85
		CASE 3
			TIMES 체력소비, 0.8
			TIMES 기력소비, 0.8
	ENDSELECT
	PRINTFORML 책상 위는 항상 정리정돈이 잘 되어 있어 효율적으로 조제를 진행할 수 있었다
ENDIF
DOWNBASE:MASTER:체력 = 체력소비
DOWNBASE:MASTER:기력 = 기력소비

;참가자의 소스, 동일 커맨드 제한을 받지 않기 때문에 소극적으로, 조제 실패는 반감
IF CHARA > 0
	;고정으로 획득하는 소스
	SOURCE:CHARA:환락 = 200
	SOURCE:CHARA:사랑 = 50

	;ABL:순종을 본다
	IF ABL:순종 <= 1
		SOURCE:CHARA:환락 += (ABL:순종 * 40)
		SOURCE:CHARA:사랑 += (ABL:친밀 * 20)
	ELSEIF ABL:순종 <= 3
		SOURCE:CHARA:환락 += 200 + (ABL:순종 * 40)
		SOURCE:CHARA:사랑 += 50 + (ABL:친밀 * 30)
	ELSEIF ABL:순종 <= 5
		SOURCE:CHARA:환락 += 500 + (ABL:순종 * 40)
		SOURCE:CHARA:사랑 += 200 + (ABL:친밀 * 30)
	ELSEIF ABL:순종 <= 8
		SOURCE:CHARA:환락 += 750 + (ABL:순종 * 60)
		SOURCE:CHARA:사랑 += 300 + (ABL:친밀 * 40)
	ELSEIF ABL:순종 <= 11
		SOURCE:CHARA:환락 += 1000 + (ABL:순종 * 60)
		SOURCE:CHARA:사랑 += 600 + (ABL:친밀 * 40)
	ELSE
		SOURCE:CHARA:환락 += 1600 + (ABL:순종 * 30)
		SOURCE:CHARA:사랑 += 1000 + (ABL:친밀 * 20)
	ENDIF

	;호감도는 보지 않는다

	SOURCE:CHARA:수동 = 200 + 100 * ABL:순종
	SOURCE:CHARA:정복 = 200 + 100 * ABL:새드끼

	;조제 성과를 보는, 조제 난이도로 설정
	IF 조합물
		SELECTCASE PHARMACY_RANK(조합물)
			CASE 1
				TIMES SOURCE:CHARA:환락 , 1.00
				TIMES SOURCE:CHARA:수동 , 1.00
				TIMES SOURCE:CHARA:정복 , 1.00
				SOURCE:CHARA:달성 = 80
			CASE 2
				TIMES SOURCE:CHARA:환락 , 1.25
				TIMES SOURCE:CHARA:수동 , 1.25
				TIMES SOURCE:CHARA:정복 , 1.15
				SOURCE:CHARA:달성 = 125
			CASE 3
				TIMES SOURCE:CHARA:환락 , 1.50
				TIMES SOURCE:CHARA:수동 , 1.50
				TIMES SOURCE:CHARA:정복 , 1.25
				SOURCE:CHARA:달성 = 150
			CASE 4
				TIMES SOURCE:CHARA:환락 , 1.75
				TIMES SOURCE:CHARA:수동 , 1.75
				TIMES SOURCE:CHARA:정복 , 1.50
				SOURCE:CHARA:달성 = 200
			CASE 5
				TIMES SOURCE:CHARA:환락 , 2.00
				TIMES SOURCE:CHARA:수동 , 2.00
				TIMES SOURCE:CHARA:정복 , 1.75
				SOURCE:CHARA:달성 = 300
			CASEELSE
				TIMES SOURCE:CHARA:환락 , 2.25
				TIMES SOURCE:CHARA:수동 , 2.25
				TIMES SOURCE:CHARA:정복 , 2.00
				SOURCE:CHARA:달성 = 350
		ENDSELECT
	;조제 실패
	ELSE
		TIMES SOURCE:CHARA:환락 , 0.50
		TIMES SOURCE:CHARA:수동 , 0.50
		TIMES SOURCE:CHARA:정복 , 0.50
	ENDIF
ENDIF

;플래그 인도
TFLAG:SELECTCOM분기 = 조합물

RETURN 1

;-------------------------------------------------
;실행 가능 판정
;-------------------------------------------------
;조제한다
@COM_ABLE446
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(446)
	RETURN RESULT
;조제할 수 있는 장소가 아니다
SIF !PHARMACY_SPOT(CFLAG:MASTER:현재위치)
	RETURN 0
;조제 용품 일식을 가지지 않고, 특수 조제 스팟이 아니다
SIF ITEM:(29) == 0 && PHARMACY_SPOT(CFLAG:MASTER:현재위치) == 1
	RETURN 0
;수면중
SIF CFLAG:MASTER:수면
	RETURN 0
SIF CFLAG:우후후
	RETURN 0
;기력 0
SIF BASE:MASTER:기력 <= 0
	RETURN 0
;시간 정지중
SIF FLAG:70
	RETURN 0
RETURN 1

;-----------------------------------------------------------
;조제 가능 스팟인가 어떤가를 판정하는 함수
;ARG		현재 위치
;RETURN		0 불가	1가능	2 조제 세트 없어도 가능（특수 조제 스팟）
;COMMENT	기본은 초기 위치, 그것 같은 장소가 있을 때는 그 쪽도.
;			장소를 추가했을 경우, CASE를 변경의 일
;-----------------------------------------------------------
@PHARMACY_SPOT(ARG)
#FUNCTION

SIF ARG == CFLAG:MASTER:초기위치
	RETURNF 1
;특수 조제 스팟, 메인 맵에서의 판정
SELECTCASE MAIN_MAP
	CASE 0
		;박영험이 있는 신사:무한 유적·연구실
		SIF GROUPMATCH(ARG, 49)
			RETURNF 2
	CASE 1
		;묘우렌절:조약실
		SIF GROUPMATCH(ARG, 132)
			RETURNF 2
	CASE 4
		;영원정:조제실
		SIF GROUPMATCH(ARG, 405)
			RETURNF 2
	CASE 5
		;마법의숲:마리사택·연구부가게, 인형의 관·연구실
		SIF GROUPMATCH(ARG, 513, 524)
			RETURNF 2
	CASE 6
		;명계:케이키의 방
		SIF GROUPMATCH(ARG, 644)
			RETURNF 2
	CASE 7
		;요괴의산 산록:갓빠의 아지트
		SIF GROUPMATCH(ARG, 704)
			RETURNF 2
ENDSELECT

RETURNF 0

@CAN_PHARMA(R_ID, AMT = 1)
#FUNCTION
#DIM R_ID
#DIM AMT
#DIM INGREDIENT

SIF RECIPE_DATA(R_ID) == -1
	RETURNF 0
;SIF RECIPE_DATA(R_ID, 7) && !TFLAG:물긷기
SIF RECIPE_DATA(R_ID, 7) && VAR_WATER == ""
	RETURNF 0

;特定キャラの친밀依存アイテムを弾く
SELECTCASE R_ID / 10
	CASE 513
		SIF ABL:[[아큐]]:친밀 < 5
			RETURNF 0
	CASE 514, 515
		SIF ABL:[[에이린]]:친밀 < 5
			RETURNF 0
	CASE 516, 517
		SIF ABL:[[메디슨]]:친밀 < 5
			RETURNF 0
	CASE 531
		SIF ABL:[[모코우]]:친밀 < 5
			RETURNF 0
	CASE 850
		SIF ABL:[[마리사]]:친밀 < 5
			RETURNF 0
	CASE 851
		SIF ABL:[[치르노]]:친밀 < 5
			RETURNF 0
	CASE 852
		SIF ABL:[[후토]]:친밀 < 5
			RETURNF 0
	CASE 853
		SIF ABL:[[유카리]]:친밀 < 5
			RETURNF 0
	CASE 854
		SIF ABL:[[파츄리]]:친밀 < 5
			RETURNF 0
	CASE 855
		SIF ABL:[[나루미]]:친밀 < 5
			RETURNF 0
ENDSELECT

FOR LOCAL,0,6
	INGREDIENT = RECIPE_DATA(R_ID, LOCAL)
	SIF !INGREDIENT
		BREAK
	SIF ITEM:INGREDIENT < AMT
		RETURNF 0
NEXT
SIF ITEM:RECIPE_DATA(R_ID) < AMT * RECIPE_DATA(R_ID, 8)
	RETURNF 0

RETURNF AMT * RECIPE_DATA(R_ID, 6)

;-----------------------------------------------------------
;조합물 선택 리스트를 묘화 한다
;  MASTER의 조합지식이나 교양의 레벨에 응해 리스트가 해방되는 구조
;  체질 변화약의 종류는【금단의지식】하지만 없으면 해방되지 않는다
;-----------------------------------------------------------
@PHARMACY_LIST
#DIMS 아이템명

PRINTL 무엇을 조제합니까?
PRINTL ■조제 Lv1===========================================================================================================
LOCAL:1 = 999
FOR LOCAL:0 ,0, 1000
	SELECTCASE PHARMACY_RANK(LOCAL:0)
		CASE 1
			CALL PHARMACY_LIST_BUTTON(LOCAL:0, LOCAL:1)
			LOCAL:1 = RESULT
	ENDSELECT
NEXT
PRINTL
PRINTL ■조제 Lv2===========================================================================================================
;교양 혹은 조합지식, 약학 교본으로 리스트 해방
IF TALENT:MASTER:조제Lv >= 1 || ITEM:약학교본
	LOCAL:1 = 999
	FOR LOCAL:0 ,0, 1000
		SELECTCASE PHARMACY_RANK(LOCAL:0)
			CASE 2
				CALL PHARMACY_LIST_BUTTON(LOCAL:0, LOCAL:1)
				LOCAL:1 = RESULT
		ENDSELECT
	NEXT
ELSE
	SETCOLOR 0x666666
	PRINTFORM 　　????
	RESETCOLOR
ENDIF
PRINTL
;후는 교양 레벨과 조합지식 레벨을 바꾸어 반복해, 잘 정리하고 싶다（약학 교본에서의 해금은 Lv3까지）
PRINTL ■조제 Lv3===========================================================================================================
IF TALENT:MASTER:조제Lv >= 2 || ITEM:약학교본
	LOCAL:1 = 999
	FOR LOCAL:0 ,0, 1000
		SELECTCASE PHARMACY_RANK(LOCAL:0)
			CASE 3
				CALL PHARMACY_LIST_BUTTON(LOCAL:0, LOCAL:1)
				LOCAL:1 = RESULT
		ENDSELECT
	NEXT
ELSE
	SETCOLOR 0x666666
	PRINTFORM 　　????
	RESETCOLOR
ENDIF
PRINTL
PRINTL ■조제 Lv4===========================================================================================================
IF TALENT:MASTER:조제Lv >= 3
	LOCAL:1 = 999
	FOR LOCAL:0 ,0, 1000
		SELECTCASE PHARMACY_RANK(LOCAL:0)
			CASE 4
				;체질 변화약은【금단의지식】하지만 없는 경우는 스킵
				SIF PHARMA_VOLATILE(LOCAL:0) && !TALENT:MASTER:금단의지식
					CONTINUE
				CALL PHARMACY_LIST_BUTTON(LOCAL:0, LOCAL:1)
				LOCAL:1 = RESULT
		ENDSELECT
	NEXT
ELSE
	SETCOLOR 0x666666
	PRINTFORM 　　????
	RESETCOLOR
ENDIF
PRINTL
PRINTL ■조제 Lv5===========================================================================================================
IF TALENT:MASTER:조제Lv >= 4
	LOCAL:1 = 999
	FOR LOCAL:0 ,0, 1000
		SELECTCASE PHARMACY_RANK(LOCAL:0)
			CASE 5
				SIF PHARMA_VOLATILE(LOCAL:0) && !TALENT:MASTER:금단의지식
					CONTINUE
				CALL PHARMACY_LIST_BUTTON(LOCAL:0, LOCAL:1)
				LOCAL:1 = RESULT
		ENDSELECT
	NEXT
ELSE
	SETCOLOR 0x666666
	PRINTFORM 　　????
	RESETCOLOR
ENDIF
PRINTL
DRAWLINE
PRINTL 　　[1000] 그만둔다

;-----------------------------------------------------------
;레시피리스트용 버튼 작성·개행
;ARGS:0 레시피명（캐릭터 라인）, ARG:1 레시피 번호, ARG:2 아이템 번호
;PHARMACY 함수로 판정해 소재가 부족한 경우, 버튼을 무효(회색)에
;-----------------------------------------------------------
@BUTTON_RECIPE(ARGS:0, ARG:1, ARG:2)
#DIM R_ID
R_ID = ARG:2 * 10 + ARG:1
IF !CAN_PHARMA(R_ID)
	SETCOLOR 0x606060
	PRINTPLAINFORM [{ARG:1}] %ARGS:0%
	RESETCOLOR
ELSE
	PRINTBUTTON @"[{ARG:1}] %ARGS:0%", ARG:1
ENDIF
PRINTL

;-----------------------------------------------------------
;レシピをテキスト化し表示する
;-----------------------------------------------------------
@TEXT_FOR_RECIPEBUTTON(R_ID)
#DIM R_ID
#DIM INGREDIENT
VARSET LOCALS
;単一素材複数使用レシピは×いくつ表記で省略する
IF RECIPE_DATA(R_ID, 8)
	LOCALS += ITEMNAME:RECIPE_DATA(R_ID, 0)
	LOCALS += "("
	LOCALS += TOSTR(ITEM:RECIPE_DATA(R_ID, 0))
	LOCALS += ")×"
	LOCALS += TOSTR(RECIPE_DATA(R_ID, 8))
	LOCALS += " "
ELSE
	FOR LOCAL,0,6
		INGREDIENT = RECIPE_DATA(R_ID, LOCAL)
		SIF !INGREDIENT
			BREAK
		LOCALS += ITEMNAME:INGREDIENT
		LOCALS += "("
		LOCALS += TOSTR(ITEM:INGREDIENT)
		LOCALS += ")"
		LOCALS += " "
	NEXT
ENDIF
SIF RECIPE_DATA(R_ID, 7)
	LOCALS += "水"
LOCALS += "→（"
LOCALS += TOSTR(RECIPE_DATA(R_ID, 6))
LOCALS += "）"
CALL BUTTON_RECIPE(@"%LOCALS%", R_ID % 10, R_ID / 10)

;-----------------------------------------------------------
;アイテム番号ARG:0の調合レシピをボタン形式でリスト化し描画する
;-----------------------------------------------------------
@PHARMACY_RECIPELIST(ARG:0)
#DIM R_ID

FOR LOCAL,1,6
	R_ID = ARG:0 * 10 + LOCAL
	SIF RECIPE_DATA(R_ID) == -1
		BREAK
	CALL TEXT_FOR_RECIPEBUTTON(R_ID)
NEXT
PRINTL [0] 그만둔다

;-----------------------------------------------------------
; 아이템 번호*10 + 레시피 번호 = ARG:0을 ARG:1회 작성했을 경우에
;기정량의 소재 아이템을 감소시켜, 소비수의 텍스트를 흘린다
;ARG:2가 1 때는 아이템의 감소는 하지 않는다（소비 예정의 텍스트만 흘린다）
;한층 더 ARG:1이 0 때는, 필요 소재의 현소지수만을 텍스트 표기
;ARG:2는 미입력이라면 0
;COMMENT	 아이템이나 레시피를 추가했을 경우는, CASE에 덧붙여 씀
;-----------------------------------------------------------
@PHARMACY_CONSUME(ARG:0, ARG:1, ARG:2 = 0)
#DIM CONSUMED_ITEM
#DIM ING, 6

FOR LOCAL,0,6
	ING:LOCAL = RECIPE_DATA(ARG:0, LOCAL)
NEXT
;単一素材複数利用型レシピの場合は表記を変える
IF RECIPE_DATA(ARG:0, 8)
	CALL PHARMACY_CONSUME_T_LOT(ING:0, ARG:1, RECIPE_DATA(ARG:0, 8))
ELSE
	CALL PHARMACY_CONSUME_T(ING:0, ARG:1, ING:1, ARG:1, ING:2, ARG:1, ING:3, ARG:1, ING:4, ARG:1, ING:5, ARG:1)
ENDIF
;단일소재 복수이용시 왠지 소재소모가 이상해지므로 수정
IF ARG:2 == 0
	IF RECIPE_DATA(ARG:0, 8)
		ITEM:(ING:0) -=  (ARG:1)*RECIPE_DATA(ARG:0, 8)
	ELSE
		FOR LOCAL,0,6
			CONSUMED_ITEM = ING:LOCAL
			SIF !CONSUMED_ITEM
				BREAK
			ITEM:CONSUMED_ITEM -= ARG:1
		NEXT
	ENDIF
ENDIF
;水汲みフラグを0にするのは、ARG:2が0の時（実際に調合が行われた時）のみ
SIF RECIPE_DATA(ARG:0, 7) && ARG:2 == 0
	;TFLAG:물긷기 = 0
	VAR_WATER =
;-----------------------------------------------------------
; 아이템을 조제했을 때의 소재 소비량을 문장으로 표기한다
;（소재는 물을 제외해 6종이 상한）
;ARG:0, 2, 4, 6, 8, 10에는 소재의 아이템 번호,
;ARG:1, 3, 5, 7, 9, 11에는 필요 소재 개수를 입력
;ARG;2이후는 입력하지 않으면 스킵 된다
;ARG:1이 0때는, 소재의 현소지량만이 표기된다
;-----------------------------------------------------------
@PHARMACY_CONSUME_T(ARG:0, ARG:1, ARG:2 = 0, ARG:3 = 0, ARG:4 = 0, ARG:5 = 0, ARG:6 = 0, ARG:7 = 0, ARG:8 = 0, ARG:9 = 0, ARG:10 = 0, ARG:11 = 0)

IF ARG:1 > 0
	PRINTFORM %ITEMNAME:(ARG:0)%({ITEM:(ARG:0)}→{ITEM:(ARG:0) - ARG:1})
	SIF ARG:2
		PRINTFORM 　%ITEMNAME:(ARG:2)%({ITEM:(ARG:2)}→{ITEM:(ARG:2) - ARG:3})
	SIF ARG:4
		PRINTFORM 　%ITEMNAME:(ARG:4)%({ITEM:(ARG:4)}→{ITEM:(ARG:4) - ARG:5})
	SIF ARG:6
		PRINTFORM 　%ITEMNAME:(ARG:6)%({ITEM:(ARG:6)}→{ITEM:(ARG:6) - ARG:7})
	SIF ARG:8
		PRINTFORM 　%ITEMNAME:(ARG:8)%({ITEM:(ARG:8)}→{ITEM:(ARG:8) - ARG:9})
	SIF ARG:10
		PRINTFORM 　%ITEMNAME:(ARG:10)%({ITEM:(ARG:10)}→{ITEM:(ARG:10) - ARG:11})
ELSE
	PRINTFORM %ITEMNAME:(ARG:0)%({ITEM:(ARG:0)})
	SIF ARG:2
		PRINTFORM 　%ITEMNAME:(ARG:2)%({ITEM:(ARG:2)})
	SIF ARG:4
		PRINTFORM 　%ITEMNAME:(ARG:4)%({ITEM:(ARG:4)})
	SIF ARG:6
		PRINTFORM 　%ITEMNAME:(ARG:6)%({ITEM:(ARG:6)})
	SIF ARG:8
		PRINTFORM 　%ITEMNAME:(ARG:8)%({ITEM:(ARG:8)})
	SIF ARG:10
		PRINTFORM 　%ITEMNAME:(ARG:10)%({ITEM:(ARG:10)})
ENDIF
PRINTL
;-----------------------------------------------------------
;アイテムを調合したときの素材消費量を文章で表記する
;同一素材複数必要利用型レシピの表記
;ARG:0に必要素材アイテム番号、ARG:1に必要素材個数を入力
;ARG:2にはRECIPE_DATA(ARG:0, 8)のLOT数を入力する
;現状のレシピでは１種の素材のみを複数個用意すればいいので、とりあえず簡略化
;ARG:1が0の時は、素材の現所持量のみが表記される
;-----------------------------------------------------------
@PHARMACY_CONSUME_T_LOT(ARG:0, ARG:1, ARG:2)

IF ARG:1 > 0
	PRINTFORM %ITEMNAME:(ARG:0)%({ITEM:(ARG:0)}→{ITEM:(ARG:0) - (ARG:1 * ARG:2)})
ELSE
	PRINTFORM %ITEMNAME:(ARG:0)%({ITEM:(ARG:0)})
ENDIF
PRINTL
;-----------------------------------------------------------
;ARG:0번의 아이템의 조제에 걸리는 시간을 산출하는 함수
;ARG:1에 조제 건수를 입력, 건수가 많으면 보정을 걸친다
;-----------------------------------------------------------
@PHARMACY_TIME(ARG:0, ARG:1)
#FUNCTION

SELECTCASE PHARMACY_RANK(ARG:0)
	CASE 1
		LOCAL:0 = 30
	CASE 2
		LOCAL:0 = 40
	CASE 3
		LOCAL:0 = 50
	CASE 4
		LOCAL:0 = 65
	CASE 5
		LOCAL:0 = 80
ENDSELECT
;自室かつ机椅子があると時間短縮
IF CFLAG:MASTER:현재위치 == CFLAG:MASTER:초기위치 && ITEM:느티책상의자
	SELECTCASE ITEM:느티책상의자
		CASE 1
			TIMES LOCAL:0, 0.90
		CASE 2
			TIMES LOCAL:0, 0.85
		CASE 3
			TIMES LOCAL:0, 0.80
	ENDSELECT
ENDIF
;√조제 건수를 걸친다
SELECTCASE ARG:1
	CASE 1
		TIMES LOCAL:0, 1
	CASE 2
		TIMES LOCAL:0, 1.4
	CASE 3
		TIMES LOCAL:0, 1.7
	CASE 4
		TIMES LOCAL:0, 2
	CASE 5
		TIMES LOCAL:0, 2.2
	CASE 6
		TIMES LOCAL:0, 2.4
	CASE 7
		TIMES LOCAL:0, 2.6
	CASE 8
		TIMES LOCAL:0, 2.8
	CASE 9
		TIMES LOCAL:0, 3
	CASE 10
		TIMES LOCAL:0, 3.1
ENDSELECT
RETURNF LOCAL:0

;-----------------------------------------------------------
;ARG:0번의 아이템의 조제로 얻을 수 있는 경험치를 산출하는 함수
;ARG:1에 조제 건수, ARG:2에 조제 결과를 입력
;-----------------------------------------------------------
@PHARMACY_EXP(ARG:0, ARG:1, ARG:2)
#FUNCTION
;성공시
IF ARG:2
	SELECTCASE PHARMACY_RANK(ARG:0)
		CASE 1
			LOCAL:0 = 1
		CASE 2
			LOCAL:0 = 1
		CASE 3
			LOCAL:0 = 2
		CASE 4
			LOCAL:0 = 2
		CASE 5
			LOCAL:0 = 3
	ENDSELECT
ELSE
;실패시
	SELECTCASE PHARMACY_RANK(ARG:0)
		CASE 1
			LOCAL:0 = 2
		CASE 2
			LOCAL:0 = 2
		CASE 3
			LOCAL:0 = 3
		CASE 4
			LOCAL:0 = 5
		CASE 5
			LOCAL:0 = 10
	ENDSELECT
ENDIF
;조제 건수를 걸친다
RETURNF (LOCAL:0 * ARG:1)

;-----------------------------------------------------------
;ARG:0번의 아이템이 체질 개변약이었던 경우의 처리
;-----------------------------------------------------------
@PHARMACY_CONSTITUTIONAL(ARG:0)

SELECTCASE ARG:0
	CASE 71
		PRINTFORML 【약의 재료(쌍)】를 누구에게 사용합니까?
		CALL SHOW_CHARA_LIST("여자")
		LOCAL:1 = RESULT
		SELECTCASE LOCAL:1
			CASE 999
				PRINTFORML 사용할 마음이 사라져 결국 파기하는 일이 되었다…
			CASEELSE
				PRINTFORML %조사처리(CALLNAME:(LOCAL:1),"는")% 후타나리가 되었습니다
				TALENT:(LOCAL:1):성별 |= 2
				MAXBASE:(LOCAL:1):2 = 10000
				MAXBASE:(LOCAL:1):정력 = 1000
				MAXBASE:(LOCAL:1):발기 = 1500
				SIF BASE:(LOCAL:1):정력 > 1000
					BASE:(LOCAL:1):정력 = 1000
			ENDSELECT
	CASE 72
		PRINTFORML 【약의 재료(소)】를 누구에게 사용합니까?
		CALL SHOW_CHARA_LIST("후타나리")
		LOCAL:1 = RESULT
		SELECTCASE LOCAL:1
			CASE 999
				PRINTFORML 사용할 마음이 사라져 결국 파기하는 일이 되었다…
			CASEELSE
				PRINTFORML %조사처리(CALLNAME:(LOCAL:1),"는")% 여자아이가 되었습니다
				TALENT:(LOCAL:1):성별 = 1
				MAXBASE:(LOCAL:1):2 = 0
				MAXBASE:(LOCAL:1):정력 = 0
				TALENT:(LOCAL:1):120 = 0
			ENDSELECT
	CASE 74
		PRINTFORML 【붉은 캔디】를 누구에게 사용합니까?
		CALL SHOW_CHARA_LIST("비처녀")
		LOCAL:1 = RESULT
		SELECTCASE LOCAL:1
			CASE 999
				PRINTFORML 사용할 마음이 사라져 결국 파기하는 일이 되었다…
			CASEELSE
				PRINTFORML %CALLNAME:(LOCAL:1)%의 처녀막이 재생했습니다
				TALENT:(LOCAL:1):처녀 = 2
			ENDSELECT
	CASE 77
		PRINTFORML 【갈색의 캔디】를 누구에게 사용합니까?
		CALL SHOW_CHARA_LIST("인간귀")
		LOCAL:1 = RESULT
		SELECTCASE LOCAL:1
			CASE 999
				PRINTFORML 사용할 마음이 사라져 결국 파기하는 일이 되었다…
			CASEELSE
				PRINTFORML [4]고양이 귀
				PRINTFORML [3]강아지 귀
				PRINTFORML [2]토끼 귀
				PRINTFORML [1]동물귀
				PRINTFORML
				PRINTFORML [0]역시 그만둔다
				DO
					INPUT
					SELECTCASE RESULT
					CASE 0
						PRINTFORML 사용할 마음이 사라져 결국 파기하는 일이 되었다…
					CASE 1, 2, 3, 4
						TALENT:(LOCAL:1):동물귀 = RESULT
						PRINTFORML %CALLNAME:(LOCAL:1)%에게 %GET_TALENTNAME(GETNUM(TALENT, "동물귀"), TALENT:(LOCAL:1):동물귀)%가 났습니다
						BREAK
					CASEELSE
					ENDSELECT
				LOOP 1
		ENDSELECT
	CASE 78
		PRINTFORML 【물색의 캔디】를 누구에게 사용합니까?
		CALL SHOW_CHARA_LIST("동물귀")
		LOCAL:1 = RESULT
		SELECTCASE LOCAL:1
			CASE 999
				PRINTFORML 사용할 마음이 사라져 결국 파기하는 일이 되었다…
			CASEELSE
				PRINTFORML %CALLNAME:(LOCAL:1)%의 %GET_TALENTNAME(GETNUM(TALENT, "동물귀"), TALENT:(LOCAL:1):동물귀)%가 사라졌습니다
				TALENT:(LOCAL:1):동물귀 = 0
		ENDSELECT
ENDSELECT

@PHARMACY_LIST_BUTTON(ARG,개행용)
#DIMS 아이템명
#DIM 개행용
#DIM R_ID
아이템명 = [{ARG}] %ITEMNAME:(ARG), 18, LEFT%
개행용 += STRLENS(아이템명)
SIF LOCAL:0 < 100
	개행용 ++
IF 개행용 > 116
	IF 개행용 >= 999
	;최초만 개행하지 않는다
	ELSE
		PRINTL
	ENDIF
	개행용 = STRLENS(아이템명)
	SIF LOCAL:0 < 100
		개행용 ++
	PRINT
ENDIF
;一旦灰色にセット
SETCOLOR 0x666666
FOR LOCAL,1,6
	R_ID = ARG * 10 + LOCAL
	;可能なレシピがあれば白に戻す
	SIF CAN_PHARMA(R_ID)
		RESETCOLOR
NEXT

PRINTFORM [{ARG}] %ITEMNAME:(ARG), 18, LEFT%
SIF ARG < 100
	PRINT
RESETCOLOR
PRINT
RETURN 개행용

path: ERB/커맨드관련/COMF/일상계/COMF446 조제한다_t.ERB