code:
;-------------------------------------------------
;식사한다
;日常系コマンド、レベル1
;-------------------------------------------------
@COM414
#DIM NOW_TARGET
#DIM EAT_TIME
CALL AssembleForMeal
CVARSET TCVAR, GETNUM(TCVAR, "요리평가치"), 0

IF DISH_TYPE == "주식"
	EAT_TIME = 40
ELSE
	EAT_TIME = 20
ENDIF

;특수요리판정
IF DISH_NAME == "샤브샤브" && TARGET
	FOR LOCAL, 1, GET_TARGETNUM() + 1
		SIF EQUIP:(TARGET:LOCAL):하반신속옷2 > 0
			CONTINUE
		TFLAG:194 = 1
		DISH_TASTE += "정력/"
		BREAK
	NEXT
ELSEIF STRCOUNT(DISH_TASTE, "로터/")
	TFLAG:194 = 2
ELSEIF DISH_NAME == "모짜렐라 치즈와 토마토의 샐러드"
	TFLAG:194 = 30
ELSEIF DISH_NAME == "도핑 콘소메 수프"
	TFLAG:194 = 31
ELSEIF DISH_NAME == "긴기 요리"
	TFLAG:194 = 34
ENDIF

;우선 MASTER 말고
IF TARGET
	;구상 측의 제어
	CALL KOJO_MESSAGE_SEND("SUCCESS",-1,TARGET,-1,-1)
	SELECTCASE TFLAG:192
	CASE 1
		IF RAND:(100 - ABL:MASTER:요리기능 * 2) <= 9
			TCVAR:TARGET:요리평가치 = 700
		ELSE
			TCVAR:TARGET:요리평가치 = 500
		ENDIF
	CASE -1
		TCVAR:TARGET:요리평가치 = 400
	CASE -2
		TFLAG:193 = -2
		RETURN
	CASEELSE
		TCVAR:TARGET:요리평가치 = 0
	ENDSELECT
	NOW_TARGET = TARGET
	;일단 현재 TARGET 이외가 먹는다
	FOR LOCAL, 1, GET_TARGETNUM() + 1
		TARGET = TARGET:LOCAL
		SIF TARGET == NOW_TARGET
			CONTINUE
		;구상 측의 제어
		CALL KOJO_MESSAGE_SEND("SUCCESS",-1,TARGET,-1,-1)
		SELECTCASE TFLAG:192
		CASE 1
			IF RAND:(100 - ABL:MASTER:요리기능 * 2) <= 9
				TCVAR:TARGET:요리평가치 = 700
			ELSE
				TCVAR:TARGET:요리평가치 = 500
			ENDIF
		CASE -1
			TCVAR:TARGET:요리평가치 = 300
		CASE -2
			CONTINUE
		CASEELSE
			TCVAR:TARGET:요리평가치 = 0
		ENDSELECT
		;시식
		CALL COM414_実食(TARGET, EAT_TIME, TARGET == DISH_ASSI || CFLAG:TARGET:행동 == 5)
	NEXT
	;그 후에 TARGET이 먹는다
	TARGET = NOW_TARGET
	;현재의 TARGET은 보너스 확정
	CALL COM414_実食(TARGET, EAT_TIME, 1)
	;신뢰도,약간 큰, 평균 3
	TFLAG:98 = (TCVAR:TARGET:요리평가치 / 100) / 2 + 1
ENDIF

CALL 식사(MASTER)
TIME += EAT_TIME
SIF CFLAG:MASTER:동행
	CFLAG:MASTER:동행 += EAT_TIME
RETURN 1

;-------------------------------------------------
;食べる処理と獲得ソースの計算
;CHARA     食べる人
;EAT_TIME  食べる時間
;BONUS     DISH_ASSIと현재의TARGETと仕事中のキャラは보너스2倍
;-------------------------------------------------
@COM414_実食(CHARA, EAT_TIME, BONUS)
#DIM CHARA
#DIM EAT_TIME
#DIM BONUS
#DIM 空腹
#DIM 評価点係数
#DIM 호감도係数
#DIM 순종係数
#DIM 時間係数

#DIM DISH_ITAZURA
空腹 = 0
;食べられない状況
SIF CFLAG:CHARA:수면
	RETURN
SIF CFLAG:CHARA:쇠약
	RETURN
;만복なので食べない
IF DISH_TYPE == "디저트"
	SIF TIME_PROGRESS(TCVAR:디저트공복시각)
		空腹 = 1
ELSE
	SIF TIME_PROGRESS(TCVAR:공복시각)
		空腹 = 1
ENDIF
SIF !空腹
	RETURN
;먹는다
CALL 식사(CHARA)

;계수 설정
IF ABL:순종 <= 1
	순종係数 = 0
ELSEIF ABL:순종 <= 3
	순종係数 = 1
ELSEIF ABL:순종 <= 5
	순종係数 = 2
ELSEIF ABL:순종 <= 8
	순종係数 = 3
ELSEIF ABL:순종 <= 11
	순종係数 = 4
ELSEIF ABL:순종 <= 14
	순종係数 = 5
ELSE
	순종係数 = 6
ENDIF
IF CFLAG:CHARA:호감도 < 100
	호감도係数 = 0
ELSEIF CFLAG:CHARA:호감도 < 500
	호감도係数 = 1
ELSEIF CFLAG:CHARA:호감도 < 1000
	호감도係数 = 2
ELSEIF CFLAG:CHARA:호감도 < 5000
	호감도係数 = 4
ELSEIF CFLAG:CHARA:호감도 < 10000
	호감도係数 = 6
ELSEIF CFLAG:CHARA:호감도 < 30000
	호감도係数 = 8
ELSE
	호감도係数 = 10
ENDIF
;1~3? , 간식&디저트1, 주식2
時間係数 = EAT_TIME / 20
;1~9
IF TCVAR:CHARA:요리평가치 < 300
	評価点係数 = 0
ELSEIF TCVAR:CHARA:요리평가치 < 400
	評価点係数 = 1
ELSEIF TCVAR:CHARA:요리평가치 < 500
	評価点係数 = 3
ELSEIF TCVAR:CHARA:요리평가치 < 600
	評価点係数 = 12
ELSEIF TCVAR:CHARA:요리평가치 < 650
	評価点係数 = 16
ELSEIF TCVAR:CHARA:요리평가치 < 700
	評価点係数 = 20
ELSEIF TCVAR:CHARA:요리평가치 < 750
	評価点係数 = 24
ELSEIF TCVAR:CHARA:요리평가치 < 800
	評価点係数 = 30
ELSEIF TCVAR:CHARA:요리평가치 < 850
	評価点係数 = 36
ELSEIF TCVAR:CHARA:요리평가치 < 900
	評価点係数 = 40
ELSE
	評価点係数 = 45
ENDIF

;평가치의 영향 강화
SOURCE:CHARA:환락 = (100 * 評価点係数 + 500 * 호감도係数 + 30 * ABL:CHARA:친밀) * 時間係数
SOURCE:CHARA:수동 = (20 * 評価点係数 + 300 * 순종係数 + 30 * ABL:CHARA:순종) * 時間係数
SIF CHARA == DISH_ASSI
	SOURCE:CHARA:정복 = (10 * 評価点係数 + ABL:CHARA:새드끼 * 30) * 時間係数
SOURCE:CHARA:불결 = STRCOUNT(DISH_TASTE, "열화/") * (100 - TCVAR:CHARA:요리평가치 / 10) * 2
SOURCE:CHARA:반감 = STRCOUNT(DISH_TASTE, "열화/") * (100 - TCVAR:CHARA:요리평가치 / 10) * 2
;노팬티샤브샤브
SIF TFLAG:194 == 1 && ! EQUIP:CHARA:하반신속옷2
	SOURCE:CHARA:노출 = 1000

SIF TALENT:대식가
	TIMES SOURCE:환락, 1.50
IF BONUS
	TIMES SOURCE:환락, 1.50
	TIMES SOURCE:수동, 1.50
	TIMES SOURCE:정복, 1.50
ENDIF

IF TCVAR:CHARA:요리평가치 >= 750
	IF TALENT:CHARA:기분 < 0
		CALL KIGEN_CHANGE(CHARA, 100, 1)
	ELSE
		CALL KIGEN_CHANGE(CHARA, 50, 1)
	ENDIF
	TFLAG:193 = 1
ELSEIF TCVAR:CHARA:요리평가치 >= 400
	CALL KIGEN_CHANGE(CHARA, 30, 1)
	TFLAG:193 = 0
ELSE
	SIF TALENT:CHARA:기분 >= 0
		CALL KIGEN_CHANGE(CHARA, 100, -1)
	TFLAG:193 = -1
ENDIF

SIF CFLAG:CHARA:동행
	CFLAG:CHARA:동행 += EAT_TIME
;-------------------------------------------------
;実行判定
;-------------------------------------------------
@COM_ABLE414
;식사実行判定
SIF !TFLAG:100
	RETURN 0
;一括管理
SIF GLOBAL_COMABLE(414)
	RETURN RESULT
;停止中は不可
SIF FLAG:70 == 1
	RETURN 0
;요리がない
SIF DISH_NAME == ""
	RETURN 0
;주식は屋内じゃなきゃ無理
SIF DISH_TYPE == "주식" && !INROOM(CFLAG:MASTER:현재위치)
	RETURN 0
;食べたばかり
IF DISH_TYPE == "디저트"
	SIF !TIME_PROGRESS(TCVAR:MASTER:디저트공복시각)
		RETURN 0
ELSE
	SIF !TIME_PROGRESS(TCVAR:MASTER:공복시각)
		RETURN 0
ENDIF
;風呂場飯禁止
SIF BATHCHECK(CFLAG:MASTER:현재위치)
	RETURN 0
SIF CFLAG:MASTER:우후후
	RETURN 0
RETURN 1

;-------------------------------------------------
;실제로 음식을 먹는 처리
;-------------------------------------------------
@식사(ARG)
; #DIM 정력회복량
; #DIM 기력회복량
; #DIM 체력회복량
; #DIM TSP회복량
#DIM 정력회복율
#DIM 기력회복율
#DIM 체력회복율
#DIM TSP회복율
#DIM 만복도
;회복율은 0.1%단위

; TSP회복량 = 0
TSP회복율 = 0

;기본 회복율과 만복도
SELECTCASE DISH_TYPE
	CASE "경식"
		체력회복율 = 200
		기력회복율 = 300
		정력회복율 = 100
		만복도 = 180
	CASE "주식"
		체력회복율 = 400
		기력회복율 = 400
		정력회복율 = 200
		만복도 = 360
	CASE "디저트"
		체력회복율 = 100
		기력회복율 = 500
		정력회복율 = 100
		만복도 = 180
ENDSELECT
;追加回復率
SIF STRCOUNT(DISH_TASTE, "신력/")
	TIMES 기력회복율, 1.2
SIF STRCOUNT(DISH_TASTE, "요력/")
	TIMES 기력회복율, 1.2
SIF STRCOUNT(DISH_TASTE, "생명력/")
	TIMES 체력회복율, 1.2
SIF STRCOUNT(DISH_TASTE, "영장/")
	TSP회복율 += 100
;오니의마력と区別
SIF STRCOUNT(DISH_TASTE, "/마력/")
	TSP회복율 += 100
SIF STRCOUNT(DISH_TASTE, "선술/")
	TSP회복율 += 100
SIF STRCOUNT(DISH_TASTE, "비술/")
	TSP회복율 += 100
IF STRCOUNT(DISH_TASTE, "약효/")
	기력회복율 += 100
ENDIF
IF STRCOUNT(DISH_TASTE, "약선/")
	기력회복율 += 100
	CALL BUFF_BASE(ARG, BASE_기력, MIN(MAXBASE:ARG:기력 * 10 / 100, 200))
ENDIF
; IF STRCOUNT(DISH_TASTE, "오니의마력/")
; 	정력회복율 = 1000
; 	CALL BUFF_BASE(ARG, BASE_정력, MIN(MAXBASE:ARG:정력 * 50 / 100, 500))
; ENDIF
; IF STRCOUNT(DISH_TASTE, "피의마력/") && ARG == MASTER
; 	TSP회복율 = 1000
; 	CALL BUFF_BASE(ARG, BASE_TSP, MIN(MAXBASE:ARG:TSP * 50 / 100, 500))
; ENDIF
IF STRCOUNT(DISH_TASTE, "정력/")
	정력회복율 += 100
ENDIF
IF STRCOUNT(DISH_TASTE, "강정/")
	정력회복율 += 100
	CALL BUFF_BASE(ARG, BASE_정력, MIN(MAXBASE:ARG:정력 * 10 / 100, 200))
ENDIF
SIF STRCOUNT(DISH_TASTE, "기적/")
	TFLAG:행운보정 = 5
SIF STRCOUNT(DISH_TASTE, "행운/")
	TFLAG:행운보정 = 3
;添加物
SELECTCASE DISH_DRG_2
CASE GETNUM(ITEM, "영양강화제")
	TIMES 기력회복율, 1.1
	TIMES 체력회복율, 1.1
	TIMES 정력회복율, 1.1
ENDSELECT
;特殊バフ系
;祝福：妊娠率がほんの少し上昇,妊娠対象に付与されていないと効果なし（種側は効果なし）
SIF STRCOUNT(DISH_TASTE, "축복/")
	TCVAR:ARG:축복 = 1
;エンチャント：弾幕勝負で自分のダイス目がアップ,対戦相手に付与されてると対戦相手もアップ
SIF STRCOUNT(DISH_TASTE, "인챈트/")
	TCVAR:ARG:인챈트 = 1
;加護：弾幕勝負で相手のダイス目がダウン,対戦相手に付与されてると自分もダウン
SIF STRCOUNT(DISH_TASTE, "가호/")
	TCVAR:ARG:가호 = 1
;豊穣：野菜収穫時の収穫量アップ
SIF STRCOUNT(DISH_TASTE, "풍요/")
	TCVAR:ARG:풍요 = 1

;MASTER 이외의 처리
IF ARG != MASTER
	;맛의 평가, 구상측에서 제어되는 경우 컷
	SIF !TCVAR:ARG:요리평가치
		CALL REVIEW_DISH(ARG, DISH_TASTE)
	;투입
	SELECTCASE DISH_DRG
	CASE GETNUM(ITEM, "미약")
		TCVAR:ARG:미약 = 210
	CASE GETNUM(ITEM, "이뇨제")
		TCVAR:ARG:이뇨제 = 210
	CASE GETNUM(ITEM, "춘약")
		TCVAR:ARG:춘약 = 210
	CASE GETNUM(ITEM, "수면제")
		IF TCVAR:ARG:수면제강도 < 2
			TCVAR:ARG:수면제강도 = 2
			TCVAR:ARG:수면제차사용 = 1
		ENDIF
	ENDSELECT
	;;평가치 보정,기력과 체력 뿐
	SELECTCASE TCVAR:ARG:요리평가치
	CASE IS < 400
		TIMES 체력회복율, 0.6
		TIMES 기력회복율, 0.6
	CASE IS < 600
		TIMES 체력회복율, 0.8
		TIMES 기력회복율, 0.8
	CASE IS < 750
		TIMES 체력회복율, 1.0
		TIMES 기력회복율, 1.0
	CASEELSE
		TIMES 체력회복율, 1.1
		TIMES 기력회복율, 1.1
	ENDSELECT
ENDIF

;회복량 계산
; 체력회복량 = MAXBASE:ARG:체력 * 체력회복율 / 1000
; 기력회복량 = MAXBASE:ARG:기력 * 기력회복율 / 1000
; 정력회복량 = MAXBASE:ARG:정력 * 정력회복율 / 1000
; TSP회복량 = MAXBASE:ARG:TSP * TSP회복율 / 1000

;로터 요리
SIF STRCOUNT(DISH_TASTE, "로터/")
	EXP:ARG:C경험 += 30

;만복도상승
SIF STRCOUNT(DISH_TASTE, "푸짐/")
	TIMES 만복도, 1.2
SIF STRCOUNT(DISH_TASTE, "가벼운/")
	TIMES 만복도, 0.8
CALL 만복도상승(ARG, DISH_TYPE, 만복도)

;回復処理
; CALL RECOVER(ARG, 체력회복량, "체력", "식사에 의한 회복")
; CALL RECOVER(ARG, 기력회복량, "기력", "식사에 의한 회복")
CALL RECOVER_PERMIL(ARG, 체력회복율, "체력", 0, "식사에 의한 회복")
CALL RECOVER_PERMIL(ARG, 기력회복율, "기력", 0, "식사에 의한 회복")
CALL RECOVER_PERMIL(ARG, 정력회복율, "정력", 0, "식사에 의한 회복")
IF ARG == MASTER
	; CALL RECOVER(ARG, 정력회복량, "정력", "식사에 의한 회복")
	; CALL RECOVER(ARG, TSP회복량, "TSP", "식사에 의한 회복")
	CALL RECOVER_PERMIL(ARG, TSP회복율, "TSP", 0, "식사에 의한 회복")
ELSE
	PRINTFORML %CALLNAME:ARG + "의 평가…………", 40, LEFT%{TCVAR:ARG:요리평가치, 3}점
ENDIF

;動かないフラグ
TCVAR:ARG:가능한한움직이지않는다 = 1

;-------------------------------------------------
;요리を評価する関数
;ARGS	DISH_TASTE
;-------------------------------------------------
@REVIEW_DISH(CHARA, ARGS)
#DIM CHARA
#DIMS TASTE_CHARA_GOOD
#DIMS TASTE_CHARA_BAD
#DIM TASTE_GOOD
#DIM TASTE_BAD

TASTE_CHARA_GOOD = %GET_STR(, "캐릭터데이터", CHARA, "요리：좋아하는 맛")%
TASTE_CHARA_BAD = %GET_STR(, "캐릭터데이터", CHARA, "요리：싫어하는 맛")%

;共通設定；好き
;디저트はみんな好き
TASTE_CHARA_GOOD += "디저트/"
;갓만든はみんな好き
TASTE_CHARA_GOOD += "갓만든/"
;[요괴]は요력が好き
SIF CHECK_CHARA(CHARA, "요괴") && !CHECK_CHARA(CHARA, "반인간")
	TASTE_CHARA_GOOD += "요력/"
;[신령][인간]は신력が好き
SIF CHECK_CHARA(CHARA, "신령") || (CHECK_CHARA(CHARA, "인간") && !CHECK_CHARA(CHARA, "반인간"))
	TASTE_CHARA_GOOD += "신력/"
;[요정]は생명력が好き
SIF CHECK_CHARA(CHARA, "요정")
	TASTE_CHARA_GOOD += "생명력/"
;[마법사]は마력が好き
SIF CHECK_CHARA(CHARA, "마법사")
	TASTE_CHARA_GOOD += "마력/"
;[유령][츠쿠모가미]は영장が嫌いじゃないなら好き
SIF (CHECK_CHARA(CHARA, "유령") || CHECK_CHARA(CHARA, "츠쿠모가미")) && !STRCOUNT(TASTE_CHARA_BAD, "영장/")
	TASTE_CHARA_GOOD += "영장/"
;[츠쿠모가미]は오니의마력が好き
SIF CHECK_CHARA(CHARA, "츠쿠모가미")
	TASTE_CHARA_GOOD += "오니의마력/" * 3
;[유치]は어머니의 맛が好き
SIF TALENT:CHARA:유치
	TASTE_CHARA_GOOD += "어머니의 맛/"
;[유치]は어린이 런치が好き
SIF TALENT:CHARA:유치
	TASTE_CHARA_GOOD += "어린이 런치/" * 5
;DISH_ASSIなら질투は好き(보너스）
SIF CHARA == DISH_ASSI
	TASTE_CHARA_GOOD += "질투/" * 3
;BASEPOINTが500以上なら숨김맛は好き(보너스）
SIF DISH_BASEPOINT >= 500
	TASTE_CHARA_GOOD += "숨김맛/" * 2
;[動物耳]はまんまが好き
SIF TALENT:CHARA:동물귀
	TASTE_CHARA_GOOD += "맘마/" * 3
;夏は冷たいものが、冬は温かいものが好き(嫌いじゃなければ）
IF GET_MONTH() == "여름의 달" && !STRCOUNT(TASTE_CHARA_BAD, "차가운/")
	TASTE_CHARA_GOOD += "차가운/"
ELSEIF GET_MONTH() == "겨울의 달" && !STRCOUNT(TASTE_CHARA_BAD, "따뜻한/")
	TASTE_CHARA_GOOD += "따뜻한/"
ENDIF
;애정,ASSI→MASTERへの애정であって点数化できないのでは？,今のところフレーバー

;共通設定：嫌い
;[열화]はみんな嫌い
TASTE_CHARA_BAD += "열화/" * 3
;[철지난]はNG
TASTE_CHARA_BAD += "철지난/" * 6
;[요괴][유령][츠쿠모가미]は신력が好きじゃないなら嫌い
SIF (CHECK_CHARA(CHARA, "요괴") || CHECK_CHARA(CHARA, "유령") || CHECK_CHARA(CHARA, "츠쿠모가미")) && !STRCOUNT(TASTE_CHARA_GOOD, "신력/")
	TASTE_CHARA_BAD  += "신력/"
;[인간][신령]は요력が好きじゃないなら嫌い
SIF (CHECK_CHARA(CHARA, "인간") || CHECK_CHARA(CHARA, "신령")) && !STRCOUNT(TASTE_CHARA_GOOD, "요력/")
	TASTE_CHARA_BAD  += "요력/"
;[인간]は영장が好きじゃないなら嫌い
SIF CHECK_CHARA(CHARA, "인간") && !CHECK_CHARA(CHARA, "반인간") && !STRCOUNT(TASTE_CHARA_GOOD, "영장/")
	TASTE_CHARA_BAD  += "영장/"
;DISH_ASSIでないなら질투は嫌い(減点）
IF CHARA != DISH_ASSI
	IF TALENT:CHARA:연인
		TASTE_CHARA_BAD  += "질투/" * 5
	ELSEIF TALENT:CHARA:연모
		TASTE_CHARA_BAD  += "질투/" * 3
	ELSEIF TALENT:CHARA:사모
		TASTE_CHARA_BAD  += "질투/"
	ENDIF
ENDIF
;BASEPOINTが500未満なら숨김맛は嫌い(減点）
SIF DISH_BASEPOINT < 500
	TASTE_CHARA_BAD += "숨김맛/" * 2

;評価得点,得点はブレる
TASTE_GOOD = 300 + (80 + RAND:20) * STR_MULTI_COUNT(TASTE_CHARA_GOOD, ARGS)
;評価減点,減点は1.5倍
TASTE_BAD = 300 + 150 * STR_MULTI_COUNT(TASTE_CHARA_BAD, ARGS)

;総評
TCVAR:CHARA:요리평가치 = TASTE_GOOD * DISH_BASEPOINT * 2 / (TASTE_GOOD + TASTE_BAD)
[IF_DEBUG]
	PRINTFORML 좋아함：%TASTE_CHARA_GOOD%
	PRINTFORML 싫어함：%TASTE_CHARA_BAD%
	PRINTFORML 품목：%ARGS%
	PRINTFORML 기본：{DISH_BASEPOINT}
	PRINTFORML 득점：{TASTE_GOOD}
	PRINTFORML 감점：{TASTE_BAD}
	PRINTFORML 결과：{TCVAR:CHARA:요리평가치}
	WAIT
[ENDIF]

;-------------------------------------------------
;주로 오래된 구상에 맞추기 위한 자극적 미각 함수
;엄청매운/격감/매우 신 에는 대응하지만,고추냉이에는 대응 불가……
;-------------------------------------------------
@TASTE_REACTION(ARGS)
#FUNCTION
SIF STRCOUNT(DISH_TASTE, ARGS + "/") >= 5
	RETURNF 1

;-------------------------------------------------
;만복도상승
;-------------------------------------------------
@만복도상승(ARG, ARGS, ARG:1 = 0)
#DIM 만복도
IF ARG:1 == 0
	SELECTCASE ARGS
		CASE "경식"
			만복도 = 180
		CASE "주식"
			만복도 = 360
		CASE "디저트"
			만복도 = 180
	ENDSELECT
ELSE
	만복도 = ARG:1
ENDIF

SIF TALENT:ARG:대식가
	TIMES 만복도, 0.7
IF ARGS == "디저트"
	TCVAR:ARG:디저트공복시각 = 1440 * DAY + TIME + 만복도
ELSE
	TCVAR:ARG:공복시각 = 1440 * DAY + TIME + 만복도
ENDIF

path: ERB/커맨드관련/COMF/일상계/COMF414 식사한다.ERB


code:
;-------------------------------------------------
;식사를 대접한다
;日常系コマンド、レベル1
;414_[먹는다]와 거의 같음,함수도 그쪽의 것을 유용
;-------------------------------------------------
@COM415
#DIM NOW_TARGET
#DIM EAT_TIME
CALL AssembleForMeal
CVARSET TCVAR, GETNUM(TCVAR, "요리평가치"), 0

IF DISH_TYPE == "주식"
	EAT_TIME = 40
ELSE
	EAT_TIME = 20
ENDIF

;구상 측의 제어
CALL KOJO_MESSAGE_SEND("SUCCESS",-1,TARGET,-1,-1)
SELECTCASE TFLAG:192
CASE 1
	IF RAND:(100 - ABL:MASTER:요리기능 * 2) <= 9
		TCVAR:TARGET:요리평가치 = 700
	ELSE
		TCVAR:TARGET:요리평가치 = 500
	ENDIF
CASE -1
	TCVAR:TARGET:요리평가치 = 400
CASE -2
	TFLAG:193 = -2
	RETURN
CASEELSE
	TCVAR:TARGET:요리평가치 = 0
ENDSELECT
NOW_TARGET = TARGET
;일단 현재 TARGET 이외가 먹는다
FOR LOCAL, 1, GET_TARGETNUM() + 1
	TARGET = TARGET:LOCAL
	SIF TARGET == NOW_TARGET
		CONTINUE
	;구상 측의 제어
	CALL KOJO_MESSAGE_SEND("SUCCESS",-1,TARGET,-1,-1)
	SELECTCASE TFLAG:192
	CASE 1
		IF RAND:(100 - ABL:MASTER:요리기능 * 2) <= 9
			TCVAR:TARGET:요리평가치 = 700
		ELSE
			TCVAR:TARGET:요리평가치 = 500
		ENDIF
	CASE -1
		TCVAR:TARGET:요리평가치 = 300
	CASE -2
		CONTINUE
	CASEELSE
		TCVAR:TARGET:요리평가치 = 0
	ENDSELECT
	;시식
	CALL COM414_実食(TARGET, EAT_TIME, TARGET == DISH_ASSI || CFLAG:TARGET:행동 == 5)
NEXT
;그 후에 TARGET이 먹는다
TARGET = NOW_TARGET
;현재의 TARGET은 보너스 확정
CALL COM414_実食(TARGET, EAT_TIME, 1)
;신뢰도,약간 큰, 평균 3
TFLAG:98 = (TCVAR:TARGET:요리평가치 / 100) / 2 + 1
TIME += EAT_TIME
SIF CFLAG:MASTER:동행
	CFLAG:MASTER:동행 += EAT_TIME
RETURN 1

;-------------------------------------------------
;実行判定
;-------------------------------------------------
@COM_ABLE415
;停止中は不可
SIF FLAG:70 == 1
	RETURN 0
;식사実行判定
SIF !TFLAG:100
	RETURN 0
;一括管理
SIF GLOBAL_COMABLE(415)
	RETURN RESULT
;停止中は不可
SIF FLAG:70 == 1
	RETURN 0
;TARGETがいない
SIF TARGET < 1
	RETURN 0
;수면中
SIF CFLAG:수면
	RETURN 0
;요리가 없다
SIF DISH_NAME == ""
	RETURN 0
;風呂場飯禁止
SIF BATHCHECK(CFLAG:MASTER:현재위치)
	RETURN 0
;주식は屋内じゃなきゃ無理
SIF DISH_TYPE == "주식" && !INROOM(CFLAG:MASTER:현재위치) ;KR판 임의수정, 일판 414 대응에 따라 일단 같이 수정함
	RETURN 0
;食べたばかり
IF DISH_TYPE == "디저트"
	SIF !TIME_PROGRESS(TCVAR:디저트공복시각)
		RETURN 0
ELSE
	SIF !TIME_PROGRESS(TCVAR:공복시각)
		RETURN 0
ENDIF
SIF CFLAG:MASTER:우후후
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF415 대접한다.ERB

license: mit


code:
;-------------------------------------------------
;연주한다
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM416
#DIM DYNAMIC NOW_TARGET
#DIM DYNAMIC NUM_TARGET
#DIM DYNAMIC MUSIC_BONUS
#DIM DYNAMIC BAND_BONUS
#DIM DYNAMIC DANCE_BONUS
#DIM OHINERI
#DIM INTERRUPTED
#DIM OMAKE, 20 = 40,120,195,212,213,214,215,216,500,510,520,521,600,601,610,611,612,636,642,706
#DIM CHOSEN_OMAKE

TFLAG:사용악기 = 0
IF 연회장소재판정(MASTER)
;IF CFLAG:MASTER:현재위치 == TFLAG:연회장 && MASTER != TARGET && DAY >= FLAG:개시일 && TIME >= FLAG:33 && FLAG:참가인수
	IF ABL:MASTER:음악기능 < 3
		PRINTL 지금의 음악기능으로는 연회에 걸맞은 연주를 할 자신이 없다……
		RETURN -1
	ELSEIF ABL:MASTER:음악기능 <= ABL:TARGET:전투능력 - TALENT:TARGET:기분
		PRINTFORML 잘 연주하지 않으면 %조사처리(CALLNAME:TARGET, "는")% 돌을 던질 것 같\@ TALENT:TARGET:기분 < 0 ? 이 기분이 나빠보인다 # 다 \@
	ELSEIF ABL:MASTER:음악기능 < 5
		PRINTL 서투른 연주를 하다간 돌이 날아올지도 모른다
	ELSE
		PRINTL 연회를 어떤 악기로 흥을 돋울까……
	ENDIF
ELSE
	PRINTL 무엇을 사용할까……
ENDIF
{
	CALL ASK_M(
		"돌아간다", 1,
		ITEMNAME:30, MUSIC_ABLE(30),
		ITEMNAME:31, MUSIC_ABLE(31),
		ITEMNAME:32, MUSIC_ABLE(32),
		ITEMNAME:33, MUSIC_ABLE(33),
		ITEMNAME:34, MUSIC_ABLE(34)
	)
}
TFLAG:사용악기 = RESULT
SIF ITEM:연주지도서 && !RAND:2
	EXP:MASTER:연주경험 ++
SIF !TFLAG:사용악기
	RETURN -1
INTERRUPTED = 0
FOR LOCAL,1,CHARANUM
	SIF CFLAG:LOCAL:현재위치 != CFLAG:MASTER:현재위치
		CONTINUE
	SIF CFLAG:LOCAL:행동 != 5
		CONTINUE
	IF GROUPMATCH(CFLAG:LOCAL:직종, 40, 41, 42, 43, 44, 47, 48, 50)
		PRINTFORML 「시끄러워！」
		CALL THROW_STONE(LOCAL)
	ELSEIF CFLAG:LOCAL:직종 == ENKAI_SANKA && !ACCOMPANY_ABLE(LOCAL)
		EXP:MASTER:연주경험 ++
		SIF ABL:LOCAL:전투능력 >= 4
			EXP:MASTER:연주경험 ++
		IF ABL:MASTER:음악기능 + TALENT:LOCAL:기분 >= ABL:LOCAL:전투능력
			PRINTFORML %조사처리(CALLNAME:LOCAL,"는")% %TEXTR("황홀해한다/눈을 반짝였다/당신의 연주를 칭찬했다")%
			OHINERI = MAX(RAND:(ABL:LOCAL:전투능력 + 1), 1)
			MONEY:2 += OHINERI
			PRINTPLAIN *짤랑*
			CALL COLORMESSAGE(@"{OHINERI}카리스마가 종이에 싸여 날아왔다！",C_YELLOW,1)
			IF !RAND:7
				IF !RAND:2
					;はずれくじ
					CHOSEN_OMAKE = 131
				ELSE
					CHOSEN_OMAKE = OMAKE:(RAND:20)
				ENDIF
				CALL COLORMESSAGE(@"%조사처리(ITEMNAME:(CHOSEN_OMAKE),"가")% 날아왔다！",C_YELLOW,1)
				ITEM:CHOSEN_OMAKE ++
			ENDIF
		ELSE
			PRINTFORML 「%TEXTR("시끄러워！/꺼져！/존나못해！")%」
			CALL THROW_STONE(LOCAL)
		ENDIF
	ENDIF
	SIF RESULT == -1
		INTERRUPTED ++
NEXT
IF INTERRUPTED
	PRINTFORML 「까다로운 손님이네」
	CALL COLORMESSAGE(@"%마스터는% 연주를 중단했다",C_YELLOW,1)
	RETURN -1
ENDIF

SELECTCASE TFLAG:192
	;통상
	CASE 0
		LOCAL = RAND:100
		LOCAL:1 = 90 + GET_SUCCESS_RATE() / 5
		SIF LOCAL:1 > 99
			LOCAL:1 = 99
		IF LOCAL <= (9 + ABL:MASTER:음악기능)
			;10%로 대성공
			EXP:MASTER:연주경험 ++
			EXP:MASTER:연주경험 += 5
			TFLAG:193 = 1
		ELSEIF LOCAL >= LOCAL:1
			;10~1%로 실패
			TFLAG:193 = -1
		ELSE
			;나머지는 성공
			EXP:MASTER:연주경험 ++
			TFLAG:193 = 0
		ENDIF
	;강제 성공 or대성공
	CASE 1
		IF RAND:100 <= (9 + ABL:MASTER:음악기능)
			;10%로 대성공
			EXP:MASTER:연주경험 ++
			EXP:MASTER:연주경험 += 5
			TFLAG:193 = 1
		ELSE
			;나머지는 성공
			EXP:MASTER:연주경험 ++
			TFLAG:193 = 0
		ENDIF
	;강제 실패
	CASE -1
		TFLAG:193 = -1
	;커맨드 종료
	CASE -2
		TFLAG:193 = -1
		RETURN 0
ENDSELECT

DOWNBASE:MASTER:체력 = 300
DOWNBASE:MASTER:기력 = 300

;그 자리에 있는 TARGET 전원이 돌린다
NOW_TARGET = TARGET
NUM_TARGET = GET_TARGETNUM()
CVARSET TCVAR, GETNUM(TCVAR, "연주참가"), 0

FOR LOCAL, 1, NUM_TARGET + 1
	SIF !SHIRAHU(TARGET:LOCAL)
		CONTINUE
	TARGET = TARGET:LOCAL
	CALL COM416_1
	SELECTCASE TCVAR:연주참가
	CASE 1, 2
		MUSIC_BONUS += ABL:음악기능 + 2 * TALENT:음감
	CASE 3
		DANCE_BONUS += ABL:음악기능
	ENDSELECT
NEXT

BAND_BONUS = CMATCH(TCVAR:연주참가, 1, 1) + CMATCH(TCVAR:연주참가, 2, 1)
IF TFLAG:193 < 0
	FOR LOCAL, 1, NUM_TARGET + 1
		SOURCE:(TARGET:LOCAL):반감 += MUSIC_BONUS * ABL:(TARGET:LOCAL):음악기능
		SIF TCVAR:(TARGET:LOCAL):연주참가
			SOURCE:(TARGET:LOCAL):울굴 += 3 * MUSIC_BONUS * ABL:음악기능
		SOURCE:(TARGET:LOCAL):반감 = SOURCE:(TARGET:LOCAL):반감 * (2 + BAND_BONUS + DANCE_BONUS) / 2
		SOURCE:(TARGET:LOCAL):울굴 = SOURCE:(TARGET:LOCAL):울굴 * (2 + BAND_BONUS + DANCE_BONUS) / 2
		SOURCE:(TARGET:LOCAL):환락 = SOURCE:(TARGET:LOCAL):환락 * 2 / (2 + BAND_BONUS + DANCE_BONUS)
		SOURCE:(TARGET:LOCAL):정복 = SOURCE:(TARGET:LOCAL):정복 * 2 / (2 + BAND_BONUS + DANCE_BONUS)
		;이 손의 개별 처리는 없는 편이 좋지만 생각나 버린 것은 어쩔 수 없다
		;루나사
		SIF TCVAR:[[루나사]]:연주참가
			TIMES SOURCE:(TARGET:LOCAL):울굴, 1.1
		SIF TCVAR:[[마이]]:연주참가
			TIMES SOURCE:(TARGET:LOCAL):울굴, 0.9
		SIF TCVAR:[[사토노]]:연주참가
			TIMES SOURCE:(TARGET:LOCAL):반감, 0.9
	NEXT
ELSE
	BAND_BONUS += TFLAG:193
	BAND_BONUS += MAX(SQRT(MUSIC_BONUS) - 1, 0)
	FOR LOCAL, 1, NUM_TARGET + 1
		SIF !SHIRAHU(TARGET:LOCAL)
			CONTINUE
		SOURCE:(TARGET:LOCAL):환락 += MUSIC_BONUS * 15
		SOURCE:(TARGET:LOCAL):정복 += MUSIC_BONUS * 10
		SOURCE:(TARGET:LOCAL):환락 = MAX(0, SOURCE:(TARGET:LOCAL):환락 * (2 + BAND_BONUS + DANCE_BONUS) / 2)
		SOURCE:(TARGET:LOCAL):정복 = MAX(0, SOURCE:(TARGET:LOCAL):정복 * (2 + BAND_BONUS + DANCE_BONUS) / 2)
		;메를랑
		SIF TCVAR:[[메를랑]]:연주참가
			TIMES SOURCE:(TARGET:LOCAL):환락, 1.1
		;라이코
		SIF TCVAR:[[라이코]]:연주참가
			TIMES SOURCE:(TARGET:LOCAL):정복, 1.1
		;코코로
		SIF TCVAR:[[코코로]]:연주참가
			TIMES SOURCE:(TARGET:LOCAL):환락, 1.2
		SIF TCVAR:[[코코로]]:연주참가
			TIMES SOURCE:(TARGET:LOCAL):정복, 1.2
	NEXT
ENDIF

TFLAG:호감도보너스 = BAND_BONUS * 50
TARGET = NOW_TARGET

TIME += 30
RETURN 1

@COM416_1

DOWNBASE:기력 += 100

;환락 강도
SOURCE:환락 = 700 + ABL:MASTER:음악기능 * 300 + ABL:친밀 * 50
;정복 강도
SOURCE:정복 = 100 * (ABL:MASTER:음악기능 + 1) + ABL:친밀 * 30

IF TFLAG:193 == -1
	TIMES SOURCE:환락 , 0.10
	TIMES SOURCE:정복 , 0.50
ELSEIF TFLAG:193 == 0
	TIMES SOURCE:환락 , 1.00
	TIMES SOURCE:정복 , 1.00
ELSE
	TIMES SOURCE:환락 , 2.00
	TIMES SOURCE:정복 , 2.00
ENDIF
;음악기능으로 환락이 한층 더 증감
IF ABL:MASTER:음악기능 >= 5
	TIMES SOURCE:환락 , 2.00
ELSEIF ABL:MASTER:음악기능 == 4
	TIMES SOURCE:환락 , 1.50
ELSEIF ABL:MASTER:음악기능 == 3
	TIMES SOURCE:환락 , 1.00
ELSEIF ABL:MASTER:음악기능 == 2
	TIMES SOURCE:환락 , 0.50
ELSE
	TIMES SOURCE:환락 , 0.10
ENDIF
;[음악지식]을 가지고 있는 경우, 환락 증가
SIF TALENT:MASTER:음악지식
	TIMES SOURCE:환락 , 1.50
;음감의 있고 없음으로 좀 더 증감
IF TALENT:MASTER:음감 == 2
	TIMES SOURCE:환락 , 2.00
ELSEIF TALENT:MASTER:음감 == 1
	TIMES SOURCE:환락 , 1.50
ELSEIF TALENT:MASTER:음감 == -1
	TIMES SOURCE:환락, 0.50
ENDIF

SIF TARGET <= 0
	RETURN 1
SELECTCASE TALENT:TARGET:음악지식
;악기 소유 캐릭터, 프리리바3 자매와 츠쿠모 자매와 라이코가 TARGET
CASE 1
	EXP:MASTER:연주경험 ++
	IF ACCOMPANY_ABLE(TARGET)
		TCVAR:연주일시 = TIME
		DOWNBASE:기력 += 200
		DOWNBASE:체력 += 100
		TIMES SOURCE:환락 , 2.00
		TCVAR:연주참가 = 1
		EXP:연주경험 ++
		PRINTFORMW %타겟은% 악기를 연주하기 시작했다!
		IF ABL:MASTER:음악기능 >= ABL:TARGET:음악기능
			EXP:연주경험 ++
			TIMES SOURCE:정복 , 1.50
		ENDIF
	ENDIF
;가창 캐릭터, 미스티아와 쿄코, 엘렌이 TARGET
CASE 2
	EXP:MASTER:연주경험 ++
	IF ACCOMPANY_ABLE(TARGET)
		TCVAR:연주일시 = TIME
		DOWNBASE:기력 += 200
		DOWNBASE:체력 += 100
		TIMES SOURCE:환락 , 2.00
		TCVAR:연주참가 = 2
		EXP:가창경험 ++
		PRINTFORMW %타겟은% %CALLNAME:MASTER%의 선율에 맞추어 노래하기 시작했다!
		IF ABL:MASTER:음악기능 >= ABL:TARGET:음악기능
			EXP:가창경험 ++
			TIMES SOURCE:정복 , 1.50
		ENDIF
	ENDIF
;무도 캐릭터, 마음, 마이, 사토노
CASE 3
	EXP:MASTER:연주경험 ++
	IF ACCOMPANY_ABLE(TARGET)
		TCVAR:연주일시 = TIME
		DOWNBASE:기력 += 200
		DOWNBASE:체력 += 100
		TIMES SOURCE:환락 , 2.00
		TCVAR:연주참가 = 3
		EXP:무도경험 ++
		PRINTFORMW %타겟은% %CALLNAME:MASTER%의 선율에 맞추어 활약하기 시작했다!
		IF ABL:MASTER:음악기능 >= ABL:TARGET:음악기능
			EXP:무도경험 ++
			TIMES SOURCE:정복 , 1.50
		ENDIF
	ENDIF
CASEELSE
	SIF ABL:MASTER:음악기능 <= ABL:TARGET:음악기능 || TALENT:TARGET:음악지식
		EXP:MASTER:연주경험 ++
ENDSELECT
RETURN 1

;-------------------------------------------------
;실행 판정
;-------------------------------------------------
@COM_ABLE416
;연주 실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(416)
	RETURN RESULT

;어느 악기(30~34)도 사용할 수 없다
LOCAL:1 = 0
FOR LOCAL,30,35
	SIF MUSIC_ABLE(LOCAL)
		LOCAL:1 ++
NEXT
SIF !LOCAL:1
	RETURN 0

;악기 삼종의 어느쪽이든을 가지고 있어도 13,24,30 목욕탕과 14,40 화장실에서는 연주할 수 없다
;SIF CFLAG:MASTER:현재위치 == 13 || CFLAG:MASTER:현재위치 == 14 || CFLAG:MASTER:현재위치 == 24 || CFLAG:MASTER:현재위치 == 30 || CFLAG:MASTER:현재위치 == 39 || CFLAG:MASTER:현재위치 == 40
SIF (IN_TOILET(CFLAG:MASTER:현재위치) || BATHCHECK(CFLAG:MASTER:현재위치)) && GET_MAPID(CFLAG:MASTER:현재위치) == MAIN_MAP
	RETURN 0
;기력 0
SIF BASE:MASTER:기력 <= 0
	RETURN 0
SIF CFLAG:우후후 == 2
	RETURN 0
;수면중
;차라리 억지로 기상시킨다고 하는 안도 있거나
SIF CFLAG:수면 && !CFLAG:동침중 || CFLAG:동침중
	RETURN 0
;업무중
SIF CFLAG:행동 == 5 && CFLAG:직종 != ENKAI_SANKA
	RETURN 0
;정지 중에는 불가
SIF FLAG:70
	RETURN 0
RETURN 1

@MUSIC_ABLE(ARG)
#FUNCTION
SIF !ITEM:ARG
	RETURNF 0
SELECTCASE ARG
;키보드, 기타, 애완동물
	CASE 30,32,33
		RETURNF 1
;피아노
;하쿠레이 신사 거실, 홍마관의 광장과 폐양관, 지령전의 광장, 서당에 설치하고 있다고 하는 형태입니다.
	CASE 31
		SIF GROUPMATCH(CFLAG:MASTER:현재위치,GET_MAP_REPLACEMENT(9),GET_MAP_REPLACEMENT(222),GET_MAP_REPLACEMENT(309),GET_MAP_REPLACEMENT(335))
			RETURNF 1
		;KR판 오리지날 저택 지원 업데이트
		SIF GROUPMATCH(CFLAG:MASTER:현재위치, GET_MAP_REPLACEMENT(1403),GET_MAP_REPLACEMENT(1412),GET_MAP_REPLACEMENT(1421))
			RETURNF 1
;바이올린
	CASE 34
		SIF ABL:MASTER:음악기능 >= 2
			RETURNF 1
	CASEELSE
		RETURNF 0
ENDSELECT
RETURNF 0

@ACCOMPANY_ABLE(ARG)
#FUNCTION
SIF BASE:ARG:기력 < 200
	RETURNF 0
SIF TIME_PROGRESS(TCVAR:ARG:연주일시) < 90
	RETURNF 0
SIF ABL:MASTER:음악기능 < 3
	RETURNF 0
SIF !SHIRAHU(ARG)
	RETURNF 0
SIF CFLAG:ARG:행동 == 5
	RETURNF 0

RETURNF 1

@THROW_STONE(ARG)
#DIM LISTENER_P
CALL COLORMESSAGE(@"%ARG는% 돌을 던졌다",C_YELLOW,1)
LISTENER_P = ABL:ARG:전투능력
IF RAND:(ABL:MASTER:전투능력 * (2 + CFLAG:ARG:탄막승부승리) + 1) > LISTENER_P
	CALL COLORMESSAGE(@"%마스터는% 화려하게 공격을 회피했다",C_YELLOW,1)
ELSE
	CALL RECOVER(MASTER, (LISTENER_P + 1) * (-150), "체력", @"%CALLNAME:ARG%의 투석")
	RETURN -1
ENDIF

path: ERB/커맨드관련/COMF/일상계/COMF416 연주한다_t.ERB


code:
;-------------------------------------------------
;선잠
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM417
#DIM 회복전체력, 2
#DIM 회복전기력, 2
#DIM 회복후체력, 2
#DIM 회복후기력, 2
#DIM 회복률_체력, 4
#DIM 회복률_기력, 4
#DIM 회복률_정력, 4

회복률_체력:0 = 200
회복률_기력:0 = 250
회복률_정력:0 = 100

회복률_체력:1 = 240
회복률_기력:1 = 300
회복률_정력:1 = 120

회복률_체력:2 = 280
회복률_기력:2 = 320
회복률_정력:2 = 140

회복률_체력:3 = 300
회복률_기력:3 = 360
회복률_정력:3 = 160

회복전체력:0 = BASE:MASTER:체력
회복전기력:0 = BASE:MASTER:기력
IF TARGET > 0 && CFLAG:TARGET:6 > 0
	회복전체력:1 = BASE:TARGET:체력
	회복전기력:1 = BASE:TARGET:기력
	CALL RECOVER_PERMIL(TARGET, 회복률_체력:(ITEM:오동나무침대), "체력", 1)
	CALL RECOVER_PERMIL(TARGET, 회복률_기력:(ITEM:오동나무침대), "기력", 1)
	CALL RECOVER_PERMIL(TARGET, 회복률_정력:(ITEM:오동나무침대), "정력", 1)
	회복후체력:1 = BASE:TARGET:체력
	회복후기력:1 = BASE:TARGET:기력
		;ABL:친밀을 본다
		IF ABL:친밀 <= 1
			SOURCE:사랑 += (ABL:친밀 * 30)
		ELSEIF ABL:친밀 <= 3
			SOURCE:환락 += 100 + (ABL:친밀 * 40)
			SOURCE:사랑 += 200 + (ABL:친밀 * 30)
		ELSEIF ABL:친밀 <= 5
			SOURCE:환락 += 400 + (ABL:친밀 * 50)
			SOURCE:사랑 += 300 + (ABL:친밀 * 30)
		ELSEIF ABL:친밀 <= 8
			SOURCE:환락 += 700 + (ABL:친밀 * 60)
			SOURCE:사랑 += 400 + (ABL:친밀 * 40)
		ELSEIF ABL:친밀 <= 11
			SOURCE:환락 += 1200 + (ABL:친밀 * 80)
			SOURCE:사랑 += 600 + (ABL:친밀 * 40)
		ELSE
			SOURCE:환락 += 2000 + (ABL:친밀 * 50)
			SOURCE:사랑 += 1500 + (ABL:친밀 * 20)
		ENDIF
		;호감도를 본다
		IF CFLAG:2 <= 500
			SOURCE:환락 += CFLAG:2
		ELSEIF CFLAG:2 <= 5000
			SOURCE:환락 += 500 + (CFLAG:2 - 500) / 3
		ELSE
			SOURCE:환락 += 2000 + (CFLAG:2 - 5000) / 5
		ENDIF
		SIF SOURCE:환락 < 0
		SOURCE:환락 = 0
		CFLAG:333 += 90
		TFLAG:98 += 3
	TFLAG:194 = 1
	PRINTFORML %타겟과% 함께 \@ TIME > 660 && TIME < 900? 낮잠# 선잠\@자기로 했다
ELSE
 	PRINTFORML %마스터는% 조금 \@ TIME > 660 && TIME < 900? 낮잠# 선잠\@자기로 했다
 	TFLAG:194 = 2
ENDIF

CALL RECOVER_PERMIL(MASTER, 회복률_체력:(ITEM:오동나무침대), "체력", 1)
CALL RECOVER_PERMIL(MASTER, 회복률_기력:(ITEM:오동나무침대), "기력", 1)
CALL RECOVER_PERMIL(MASTER, 회복률_정력:(ITEM:오동나무침대), "정력", 1)

TIME += 90
TFLAG:낮잠 = 90
회복후체력:0 = BASE:MASTER:체력
회복후기력:0 = BASE:MASTER:기력
; DRAWLINE
; PRINTFORML 체력+{ABS(회복후체력- 회복전체력)}(%CALLNAME:MASTER%)
; PRINTFORML 기력+{ABS(회복후기력- 회복전기력)}(%CALLNAME:MASTER%)
IF TFLAG:194 == 1
	; PRINTFORML 체력+{ABS(회복후체력:1 - 회복전체력:1)}(%CALLNAME:TARGET%)
	; PRINTFORML 기력+{ABS(회복후기력:1 - 회복전기력:1)}(%CALLNAME:TARGET%)
ENDIF
RETURN 1

;-------------------------------------------------
;실행 판정
;-------------------------------------------------
@COM_ABLE417
;정지 중에는 불가
SIF FLAG:70 == 1
	RETURN 0
;이동 실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(417)
	RETURN RESULT
;개인 방 설정
SIF CFLAG:MASTER:현재위치 != CFLAG:MASTER:311
	RETURN 0
SIF NEMUKE() < 180
	RETURN 0
SIF NEMUKE() > 720
	RETURN 0
SIF TFLAG:낮잠 > 0
	RETURN 0
SIF CFLAG:우후후 == 2
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF417 낮잠잔다_t.ERB


code:
;-------------------------------------------------
;텃밭
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM418
;LOCAL:1 = 1 + FLAG:畑拡張
LOCAL:1 = GETUNELENGTH418()

FOR LOCAL,0, LOCAL:1
	CALL SHOW_PLANT(LOCAL)
NEXT
PRINTL [999] 그만둔다
$INPUT_LOOP
INPUT
;현재 시간정지중은 표시만 가능
IF INRANGE(RESULT / 100, 0, LOCAL:1) && FLAG:70 == 0
	CALL FARMING(RESULT / 100, RESULT % 100)
	IF RESULT == 0
		RETURN -1
	ELSEIF FLAG:70 == 0
		TIME += RESULT
	ELSE
		BASE:MASTER:TSP -= RESULT * 3
	ENDIF
	RETURN 0
ELSE
	;TIME += 5
	RETURN -1
ENDIF

@FARMING(ARG, 행동번호)
#DIM 행동번호
#DIM 행동코스트
#DIM 밭사이즈

행동코스트 = 0
LOCALS = %HATAKE_NAME:ARG%
IF 행동번호 == 0
	IF PLANT_TYPE:ARG > 0
		PRINTFORML 이미 %조사처리(LOCALS,"가")% 심어져 있다
		;행동코스트 += 5
	ELSE
		PRINTL 어떤 것을 심습니까?
		CALL INPLANT(ARG)
		IF RESULT
			행동코스트 += 10
		ENDIF
	ENDIF
ELSEIF 행동번호 == 1
	IF !PLANT_DRY:ARG
		PRINTL 오늘은 이제 괜찮겠지
	;ELSEIF !TFLAG:물긷기
	ELSEIF VAR_WATER == ""
		PRINTL 물를 길어 와야해
	ELSE
		PLANT_DRY:ARG = 0
		PRINTFORML %LOCALS%에게 물을 주었다
		SIF ITEM:세방울의천수
			FLAG:천적곤신 = 1
		행동코스트 += 5
	ENDIF
ELSEIF 행동번호 == 2
	;채소가게에서 구매할 수 있게 되었기에 수확조건의 엄격화
	IF 수확가능(ARG) == 0
		PRINTL 수확할 형편이 못된다
		RETURN 0
	ENDIF
	SIF PLANT_DAYS:ARG > 9
		PLANT_GROW:ARG += 2
	SIF PLANT_FOOD:ARG
		PLANT_GROW:ARG ++
	SIF FLAG:천적곤신 && RAND:2 == 1
		PLANT_GROW:ARG += 2
	;大豊作…天滴と거름補正でないと到達不能
	IF PLANT_GROW:ARG > 12
		PRINTL 대풍작이다!
		IF PLANT_FOOD:ARG
			LOCAL = 20 + RAND:6 + RAND:4
		ELSE
			LOCAL = 20
		ENDIF
	ELSEIF PLANT_GROW:ARG > 10
		PRINTL 풍작이다!
		IF PLANT_FOOD:ARG
			LOCAL = 14 + RAND:4 + RAND:3
		ELSE
			LOCAL = 14
		ENDIF
	ELSEIF PLANT_GROW:ARG > 7
		IF PLANT_FOOD:ARG
			LOCAL = 7 + RAND:3 + RAND:2
		ELSE
			LOCAL = 7
		ENDIF
	ELSE
		LOCAL = 5
	ENDIF
	SIF TCVAR:MASTER:풍요
		LOCAL += LOCAL / 5
	;ローター一強を崩すため収穫量ダウン
	IF 모종대응작물번호취득(PLANT_TYPE:ARG) == 0
		LOCAL /= 2
	ENDIF

	PRINTFORML {LOCAL}개의 %조사처리(LOCALS,"를")% 수확했다
	ITEM:(모종대응작물번호취득(PLANT_TYPE:ARG)) += LOCAL
	PLANT_TYPE:ARG = 0
	PLANT_DAYS:ARG = 0
	PLANT_GROW:ARG = 0
	PLANT_DRY:ARG = 0
	HATAKE_NAME:ARG =
	PLANT_FOOD:ARG = 0
	행동코스트 += 20
ELSEIF 행동번호 == 3
	IF PLANT_DRY:ARG <= 4 && PLANT_GROW:ARG <= 10
		PRINTFORML %조사처리(LOCALS,"를")% 뽑아냅니까?
		CALL ASK_YN
		IF RESULT
			;행동코스트 += 5
			RETURN 0
		ENDIF
	ENDIF
	PLANT_TYPE:ARG = 0
	PLANT_DAYS:ARG = 0
	PLANT_GROW:ARG = 0
	PLANT_DRY:ARG = 0
	HATAKE_NAME:ARG =
	PLANT_FOOD:ARG = 0
	PRINTFORML %조사처리(LOCALS,"를")% 뽑아냈다
	행동코스트 += 10
;밭이 확장되면 전체로 합니다
ELSEIF 행동번호 == 4 && ITEM:간이풀장 && GETBIT (FLAG:풀장, 2)
	IF !PLANT_DRY:ARG
		PRINTL 오늘은 이제 괜찮겠지
	ELSE
		;PLANT_DRY:ARG = 0

		밭사이즈 = GETUNELENGTH418()
		FOR LOCAL,0, 밭사이즈
			PLANT_DRY:LOCAL = 0
		NEXT
		PRINTFORML %LOCALS%에게 물을 주었다
		SIF ITEM:세방울의천수
			FLAG:천적곤신 = 1
		행동코스트 += 5
	ENDIF
ELSEIF 행동번호 == 5 && ITEM:거름
	IF PLANT_FOOD:ARG
		PRINTL 비료를 너무 뿌리는 것도 좋지 않다
	ELSE
		PLANT_FOOD:ARG = 1
		PRINTFORML %LOCALS%에게 비료를 뿌렸다
		행동코스트 += 20
		ITEM:거름 --
	ENDIF
ELSE
	행동코스트 += 5
	RETURN 0
ENDIF
RETURN 행동코스트

@INPLANT(ARG)
FOR LOCAL, 0, 1000
	IF STRCOUNT(ITEMNAME:LOCAL, "의모종")
		;모종 이외를 제외
		SIF ITEM:LOCAL
			PRINTFORML [{LOCAL}]%ITEMNAME:(LOCAL), 14, LEFT%({ITEM:(LOCAL), 2, RIGHT}/{ITEM:(모종대응작물번호취득(LOCAL)), 2, RIGHT})
	ENDIF
NEXT
PRINTL [999] 그만둔다
$INPUT_LOOP
INPUT
IF ITEM:RESULT && STRCOUNT(ITEMNAME:RESULT, "의모종")
	PRINTFORML 밭 {ARG}에 %조사처리(ITEMNAME:(RESULT),"를")% 심었다
	ITEM:RESULT -= 1
	PLANT_TYPE:ARG = RESULT
	PLANT_DRY:ARG = 1
	;세방울의천수を持っている場合、植えてすぐに施肥、水撒き完了状態に
	IF ITEM:세방울의천수
		PLANT_DRY:ARG = 0
		PLANT_FOOD:ARG = 1
		FLAG:천적곤신 = 1
	ENDIF
	HATAKE_NAME:ARG = %ITEMNAME:(모종대응작물번호취득(PLANT_TYPE:ARG))%
	RETURN 1
ELSE
	RETURN 0
ENDIF

@SHOW_PLANT(ARG)
PRINTFORM 밭 {ARG}：
;正常なアイテムかチェック
IF ITEMNAME:모종대응작물번호취득(PLANT_TYPE:ARG) == ""
	PLANT_TYPE:ARG = 0
	PLANT_DAYS:ARG = 0
	PLANT_GROW:ARG = 0
	PLANT_DRY:ARG = 0
	HATAKE_NAME:ARG =
	PLANT_FOOD:ARG = 0
ENDIF
IF PLANT_TYPE:ARG > 0
	SETCOLOR 0x00FF00
	PRINTFORM %HATAKE_NAME:ARG + "재배중", 16, LEFT%
	IF PLANT_DRY:ARG > 4 || PLANT_GROW:ARG > 10
		SETCOLOR 0x994C00
		PRINT (마름)
	ELSE
		SELECTCASE PLANT_GROW:ARG
			CASE 10
				SETCOLOR 0xFF0000
				PRINT (익음)
			CASE 8,9
				SETCOLOR 0xFF8000
				PRINT (열매)
			CASE 6,7
				SETCOLOR 0xFFFF00
				PRINT (꽃)
			CASE 4,5
				PRINT (잎)
			CASEELSE
				PRINT (모종)
		ENDSELECT
	ENDIF
	IF !PLANT_DRY:ARG
		SETCOLOR C_AQUA
		PRINT 　물 뿌리기가 끝난 상태
	ENDIF
	IF PLANT_FOOD:ARG
		SETCOLOR C_CREAM
		IF ITEM:세방울의천수
			PRINT 　곤신의 축복이 느껴진다
		ELSE
			PRINT   거름주기가 끝난 상태
		ENDIF
	ENDIF
	RESETCOLOR
	PRINTL
	;시간정지중에는 텃밭의 상태를 보는것만
	SIF FLAG:70 == 1
		RETURN
	;물 뿌리기
	IF PLANT_DRY:ARG
		LOCAL = ARG * 100 + 1
		LOCALS = [%TOSTR(LOCAL, "000")%] - 물을 뿌린다
		PRINTBUTTONLC LOCALS, LOCAL
	ELSE
		PRINTLC
	ENDIF
	;수확
	IF 수확가능(ARG)
		LOCAL = ARG * 100 + 2
		LOCALS = [%TOSTR(LOCAL, "000")%] - 수확한다
		SIF PLANT_GROW:ARG == 10
			SETCOLOR 0xFF0000
		PRINTBUTTONLC LOCALS, LOCAL
		RESETCOLOR
	ELSE
		PRINTLC
	ENDIF
	;정지
	LOCAL = ARG * 100 + 3
	LOCALS = [%TOSTR(LOCAL, "000")%] - 뽑아낸다
	PRINTBUTTONLC LOCALS, ARG * 100 + 03
	;스프링 쿨러
	IF ITEM:간이풀장 && GETBIT (FLAG:풀장, 2) && PLANT_DRY:ARG
		LOCAL = ARG * 100 + 4
		LOCALS = [%TOSTR(LOCAL, "000")%] - 스프링 쿨러
		PRINTBUTTONLC LOCALS, LOCAL
	ELSE
		PRINTLC
	ENDIF
	;비료를 뿌린다
	IF ITEM:거름 && PLANT_FOOD:ARG == 0
		LOCAL = ARG * 100 + 5
		LOCALS = [%TOSTR(LOCAL, "000")%] - 비료를 뿌린다
		PRINTBUTTONLC LOCALS, LOCAL
	ELSE
		PRINTLC
	ENDIF
ELSE
	PRINTL 빈 곳
	;시간정지중에는 텃밭의 상태를 보는것만
	SIF FLAG:70 == 1
		RETURN
	;모종 심기
	LOCAL = ARG * 100 + 0
	LOCALS = [%TOSTR(LOCAL, "000")%] - 모종을 심는다
	PRINTBUTTONLC LOCALS, LOCAL
ENDIF
PRINTL

@모종대응작물번호취득(ARG)
#FUNCTION
IF STRCOUNT(ITEMNAME:ARG, "의모종")
	IF ARG == GETNUM(ITEM, "로터의모종")
		LOCAL = GETNUM(ITEM, "로터")
	ELSE
		LOCAL = ARG + 200
	ENDIF
ELSE
	LOCAL = ARG
ENDIF
RETURNF LOCAL

@수확가능(ARG)
#FUNCTION
RETURNF PLANT_GROW:ARG > 7 && !(PLANT_DRY:ARG > 4 || PLANT_GROW:ARG > 10)

;-------------------------------------------------
;실행 판정
;-------------------------------------------------
@COM_ABLE418
;정지 중에는 불가
;SIF FLAG:70 == 1
;	RETURN 0
;청소 실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(418)
	RETURN RESULT
;뜰
SIF !텃밭가능(CFLAG:MASTER:현재위치)
	RETURN 0
;텃밭 세트
SIF !ITEM:150
	RETURN 0
;기력 0
SIF BASE:MASTER:기력 <= 0
	RETURN 0
SIF CFLAG:우후후 == 2
	RETURN 0
RETURN 1

@GETUNELENGTH418()
#FUNCTION
#DIM 밭사이즈

IF TALENT:MASTER:채집Lv > 5
	밭사이즈 = 1 + 3
ELSEIF TALENT:MASTER:채집Lv > 4
	밭사이즈 = 1 + 2
ELSEIF TALENT:MASTER:채집Lv > 2
	밭사이즈 = 1 + 2
ELSEIF TALENT:MASTER:채집Lv > 0
	밭사이즈 = 1 + 1
ELSE
	밭사이즈 = 1
ENDIF
RETURNF 밭사이즈

path: ERB/커맨드관련/COMF/일상계/COMF418 텃밭_t.ERB


code:
;-------------------------------------------------
;물긷기
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM419
SELECTCASE CFLAG:MASTER:현재위치
	CASE 안개의호수
		;TFLAG:水汲み = 2
		VAR_WATER = 안개의 호수의 물
	CASE 347
		VAR_WATER = 안개의 호수의 물
	CASE 옛지옥온천
		;TFLAG:水汲み = 3
		VAR_WATER = 지옥 온천의 물
	CASE 934
		VAR_WATER = 지옥 온천의 물
	CASE 산의호수
		VAR_WATER = 기적의 물
	CASE 814
		VAR_WATER = 기적의 물
	;아이템 설정 있어도 입수 경로가 생각해내지 못하기 때문에 코멘트 아웃
	;CASE
	;	TFLAG:물긷기 = 5
	;CASE
	;	TFLAG:물긷기 = 5
	;CASE 부엌
	;	TFLAG:물긷기 = 6
	;CASE 11
	;	TFLAG:물긷기 = 6
	;CASE 주택가
	;	TFLAG:물긷기 = 7
	;CASE 270
	;	TFLAG:물긷기 = 7
	CASEELSE
		VAR_WATER = 그냥 물
ENDSELECT

STAIN:MASTER:0 = 0
STAIN:MASTER:1 = 0
CFLAG:MASTER:구내정액 = 0
CFLAG:MASTER:안면정액 = 0
CFLAG:MASTER:손에정액 = 0
IF TARGET
	STAIN:0 = 0
	STAIN:1 = 0
	CFLAG:구내정액 = 0
	CFLAG:안면정액 = 0
	CFLAG:손에정액 = 0
ENDIF
PRINTFORML %조사처리(VAR_WATER,"를")% 퍼 올렸다
IF GET_MAPID(CFLAG:MASTER:현재위치) != MAIN_MAP
	PRINTL 가진 채로 걷는 것은 힘들기 때문에 귀가합니다
	CALL 외출처로부터귀가
ENDIF
TIME += 3
RETURN -1
;-------------------------------------------------
;실행 판정
;-------------------------------------------------
@COM_ABLE419
;정지 중에는 불가
SIF FLAG:70 == 1
	RETURN 0
;실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(419)
	RETURN RESULT
SIF !물긷기가능(CFLAG:MASTER:현재위치)
	RETURN 0
SIF CFLAG:우후후 == 2
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF419 물긷기_t.ERB


code:
;-------------------------------------------------
;루코토와 대화
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM420
PRINTL 「뭔가 용무가 있으신가요?」
PRINTL [0] - 사람을 찾고 있다
PRINTL [1] - 청소를 하고 싶다
PRINTL [2] - git에 대해
PRINTL [100] - 돌아간다
INPUT
IF RESULT == 0
	PRINTL 「누구를 찾으세요?」
	CALL HITOSAGASI()
ELSEIF RESULT == 1
CALL OHEYA_CHECK
ELSEIF RESULT == 2
	PRINTDATA
		DATAFORM 「git을 사용하면 패치를 한 방에 Merge할 수 있어요」
		DATAFORM 「git이 있으면 변경한 곳을 쉽게 파악 가능해져요」
		DATAFORM 「과거의 코드도 확실하게 보존해주고요」
	ENDDATA
	PRINTW 아무래도 굉장한 것인가 보다
	RETURN -1
ELSEIF RESULT == 100
	RETURN -1
ELSE
	RETURN -1
ENDIF
INPUTS
RESULT = TOINT(RESULTS)
IF RESULT == 0
	REPLACE RESULTS, CALLNAME:MASTER, "%CALLNAME:MASTER%"
	FOR LOCAL, 1, 19
		SIF STR:LOCAL == RESULTS
			RESULT = LOCAL
	NEXT
ENDIF
SIF RESULT == 0
	RETURN -1
; IF FLAG:자실잠금
; 	PRINTW 잠금을 풀지 않으면
; 	RESTART
; ENDIF
SIF IN_HOME(RESULT) == 1
	CALL SKIP_MOVE(CFLAG:MASTER:현재위치, RESULT)
RETURN -1

@OHEYA_CHECK
VARSET LOCAL
FOR LOCAL, MINROOM(), MAXROOM
	LOCALS = %NAME_FROM_PLACE(LOCAL)%
	SIF LOCALS == ""
		CONTINUE
	SIF CFLAG:MASTER:현재위치 == LOCAL
		SETCOLOR C_GREEN
	; PRINTBUTTON "["+LOCALS+"]", LOCAL
	; RESETCOLOR
	; PRINTFORM %" "*(22-STRLENS(LOCALS))%
	PRINTFORM [{LOCAL, 3}]%LOCALS, 24, LEFT%
	LOCALS = %SEIKETU(LOCAL), 15, RIGHT%
	PRINTFORM %LOCALS%
	RESETCOLOR
	LOCAL:1 ++
	SIF LOCAL:1 % 2 == 0
		PRINTL
NEXT
PRINTFORML
DRAWLINE
PRINTFORML [0] 돌아간다
;PRINTBUTTON "[확인 종료]", 0

@SEIKETU(ARG)
#FUNCTIONS
IF OUTROOF(ARG) && DAY:2 == 4
	SELECTCASE YOGORE:ARG
		CASE IS < 100
			SETCOLOR C_GREEN
			RETURNF "적설량:깔끔"
		CASE IS < 500
			SETCOLOR C_M_GREEN
			RETURNF "적설량:소"
		CASE IS < 1000
			SETCOLOR C_P_GREEN
			RETURNF "적설량:약간 소"
		CASE IS < 2000
			SETCOLOR 0xFFFFFF
			RETURNF "적설량:중"
		CASE IS < 3500
			SETCOLOR 0xFFFFFF
			RETURNF "적설량:약간 대"
		CASE IS < 5000
			SETCOLOR 0xFFFFFF
			RETURNF "적설량:대"
		CASEELSE
			SETCOLOR 0xFFFFFF
			RETURNF "적설량:눈더미"
	ENDSELECT
ELSE
	SELECTCASE YOGORE:ARG
		CASE IS < 100
			SETCOLOR C_GREEN
			RETURNF "청결도:최고"
		CASE IS < 500
			SETCOLOR C_M_GREEN
			RETURNF "청결도:고"
		CASE IS < 1000
			SETCOLOR C_P_GREEN
			RETURNF "청결도:약간 고"
		CASE IS < 2000
			SETCOLOR C_YELLOW
			RETURNF "청결도:중"
		CASE IS < 3500
			SETCOLOR C_V_PINK
			RETURNF "청결도:약간 저"
		CASE IS < 5000
			SETCOLOR C_RED
			RETURNF "청결도:저"
		CASEELSE
			SETCOLOR C_RED
			RETURNF "청결도:쓰레기산"
	ENDSELECT
ENDIF

@HITOSAGASI(ARG)
CALL HITOSAGASI_2(1)
CALL HITOSAGASI_2(2)
PRINTFORML [0] 돌아간다
;PRINTBUTTON "[확인 종료]", 0

;ARG=몇번째의 표시인가(1or2)
@HITOSAGASI_2(ARG)
SIF FLAG:정렬
	CALL CHARASORT_EX
FOR LOCAL:1, 1, EX_CHARANUM
	IF FLAG:정렬
		LOCAL = RESULT:(LOCAL:1)
		SIF LOCAL < 0
			CONTINUE
	ELSE
		LOCAL = LOCAL:1
		SIF LOCAL >= CHARANUM
			BREAK
	ENDIF
	SIF AT_HOME(LOCAL) == 0
		CONTINUE
	SIF CFLAG:LOCAL:현재위치 < MINROOM()
		CONTINUE
	SIF CFLAG:LOCAL:현재위치 == MAXROOM && CFLAG:LOCAL:수면
		CONTINUE
	IF ARG == 1
		SIF !CFLAG:LOCAL:신사거주
			CONTINUE
		SETCOLOR C_S_BLUE
	ELSEIF ARG == 2
		SIF CFLAG:LOCAL:신사거주
			CONTINUE
	ENDIF
	PRINTFORM %CALLNAME:LOCAL, 15, LEFT%
	RESETCOLOR
	LOCALS = %NAME_FROM_PLACE(CFLAG:LOCAL:현재위치)%
	; LOCALS = %NAME_FROM_PLACE(CFLAG:LOCAL:현재위치)%
	; SIF CFLAG:LOCAL:현재위치 == CFLAG:MASTER:311
	; 	LOCALS = %CALLNAME:MASTER% 방
	; PRINTBUTTON "["+LOCALS+"]", CFLAG:LOCAL:현재위치
	; PRINTFORM %" "*(22-STRLENS(LOCALS))%
	PRINTFORM [{CFLAG:LOCAL:현재위치, 3}] %LOCALS, 24, LEFT%
	IF LOCALS == ""
		PRINTFORML 알 수 없는 위치에 있습니다({CFLAG:LOCAL:현재위치})
	ELSEIF CFLAG:LOCAL:수면
		;PRINTL 취침중
		;KR판 추가수정, 취침중 색 변경
		CALL COLORMESSAGE("취침중", C_N_BLUE, 1)
	ELSEIF CFLAG:LOCAL:행동 == 5
		IF CFLAG:LOCAL:현재위치 == TFLAG:연회장 && TIME_PROGRESS(TIME:1) && (CFLAG:LOCAL:직종 == 49 || CFLAG:LOCAL:직종 == 51)
			PRINTL 연회중
		ELSE
			;PRINTL 일하는중
			;KR판 추가수정, 일하는중 색 변경
			CALL COLORMESSAGE("일하는중", C_D_ORANGE, 1)
		ENDIF
	ELSE
		PRINTL
	ENDIF
NEXT

;-------------------------------------------------
;실행 판정
;-------------------------------------------------
;루코토와이야기한다
@COM_ABLE420
;자택외는 불가
SIF AT_HOME(MASTER) == 0
	RETURN 0
;정지 중에는 불가
SIF FLAG:70 == 1
	RETURN 0
;이동 실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(420)
	RETURN RESULT
SELECTCASE MAIN_MAP
	CASE 0
		;루코토가 자고 있으면 안 됨
		SIF CFLAG:2:수면
			RETURN 0
		;루코토가 있는 곳
		SIF CFLAG:MASTER:현재위치 != CFLAG:2:현재위치
			RETURN 0
	CASE 3
		SIF CFLAG:MASTER:현재위치 != 323
			RETURN 0
	CASE 9
		SIF CFLAG:MASTER:현재위치 != 923
			RETURN 0
	CASEELSE
		RETURN 0
ENDSELECT

SIF CFLAG:우후후 == 2
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF420 루코토와이야기_t.ERB


code:
;-------------------------------------------------
;발원함
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM421
#DIM 감도상승캐릭
PRINTL 무엇을 바랍니까?
$INPUT_LOOP
PRINTL [0] - 결연(\1000)
SIF TALENT:MASTER:2 & 2
PRINTL [1] - 정력 절륜(\3000)
PRINTL [2] - 마음의 평안(\3000)
PRINTL [3] - 젖가슴 젖가슴(\3000)
PRINTL [10] - Girl의 팬티를 달라ー고!!!!(\5000)
PRINTL [15] - 모두가 H한 기분이 되길(\10000)
SIF TARGET && ABL:새드끼 >= 1
	PRINTFORML [16] - \@ TALENT:연인? 환상향에서 제일 귀여운# \@ %타겟이% 너무 격렬하므로 어떻게든 해
SIF TARGET
	PRINTFORML [20] - \@ TALENT:연인? 환상향에서 제일 귀여운# \@ %타겟이% 좀 더 H하게 되도록
SIF TALENT:TARGET:연모 && !TALENT:임신
	PRINTFORML [21] - 자식기원(현재의 자식보정:{CFLAG:자식보정})
;KR판 구잔재 또는 오리지날 22,31
PRINTFORML [22] - 연인의 감도를 올리고 싶어
PRINTFORML [30] - 여자 아이에게 미움받아 버린 것을 어떻게든 하고 싶다
PRINTFORML [31] - 여자 아이에게 약점잡혀 버린 것을 어떻게든 하고 싶다
;21/08/27 반발이력 삭제 추가
PRINTFORML [35] - 여자 아이의 응어리를 풀고 싶다
SIF CFLAG:MASTER:마력회수 && CFLAG:MASTER:요술망치 < 6
	PRINTFORML [40] - 요술망치의 대상을 없애면 좋겠다
SIF FLAG:개운대문구입회수 > 10
	PRINTFORML [50] - 악덕 상인에게 천벌을
SIF CAN_DOWSING()
	PRINTFORML [60] - 찾는 물건을 찾을 수 없다
PRINTL [999] - 역시 그만둔다
INPUT
SIF RESULT == 999
	RETURN -1

IF RESULT == 0
	IF MONEY < 1000
		PRINTL 돈이 부족하다
		GOTO INPUT_LOOP
	ENDIF
	PRINTL 누구를 떠올립니까?
	CALL SHOW_CHALALIST
	PRINTL
	PRINTL [999] - 역시 그만둔다
	INPUT
	IF !INRANGE(RESULT,1,CHARANUM)
		RETURN -1
	ELSE
		CALL GANKAKE_0(RESULT)
		MONEY -= 1000
	ENDIF
;정력 절륜
ELSEIF RESULT == 1
	IF MONEY < 3000
		PRINTL 돈이 부족하다
		GOTO INPUT_LOOP
	ENDIF
	MONEY -= 3000
	FLAG:발원내용 = 200
	IF EXP:MASTER:11 > (100 + FLAG:561 * 100) && FLAG:561 < 11
		LOCAL += 100
		FLAG:561 += 1
	ENDIF
	CALL BUFF_BASE(MASTER,BASE_정력, 500)
	FLAG:71 ++
;마음의 평안
ELSEIF RESULT == 2
	IF MONEY < 3000
		PRINTL 돈이 부족하다
		GOTO INPUT_LOOP
	ENDIF
	MONEY -= 3000
	CALL BUFF_BASE(MASTER, BASE_기력, 500)
	FLAG:발원내용 = 201
	FLAG:71 = 0
ELSEIF RESULT == 3
	IF MONEY < 3000
		PRINTL 돈이 부족하다
		GOTO INPUT_LOOP
	ENDIF
	MONEY -= 3000
	PRINTFORML %마스터는% 손을 모으면서 집중해서 젖가슴을 생각했다
	TFLAG:OPPAI = 1
ELSEIF RESULT == 10
	IF MONEY < 5000
		PRINTL 돈이 부족하다
		GOTO INPUT_LOOP
	ELSE
		MONEY -= 5000
		FLAG:발원내용 = 202
	ENDIF
ELSEIF RESULT == 15
	IF MONEY < 10000
		PRINTL 돈이 부족하다
		GOTO INPUT_LOOP
	ELSE
		MONEY -= 10000
		FLAG:발원내용 = 203
	ENDIF
ELSEIF RESULT == 16 && ABL:새드끼
		CALL IKENIE(TARGET,7)
ELSEIF RESULT == 20 && TARGET != 0
		CALL IKENIE(TARGET,2)
ELSEIF RESULT == 21 && TALENT:TARGET:연모
		CALL IKENIE(TARGET,6)
;;KR판 오리지날 22
ELSEIF RESULT == 22
	PRINTL 누구를?
	DRAWLINE
	FOR LOCAL, 1, CHARANUM
		SIF TALENT:LOCAL:연인 && !CFLAG:LOCAL:출금
			PRINTFORMLC [{LOCAL}] %CALLNAME:LOCAL, 15, LEFT%
	NEXT
	PRINTL
	DRAWLINE
	PRINTL [999] - 역시 그만둔다
	INPUT
	IF RESULT >= 1 && RESULT <= CHARANUM && TALENT:RESULT:연인
		감도상승캐릭=RESULT
		$INPUT_LOOP2
		PRINTFORML [1] - C감도 \@TALENT:감도상승캐릭:C감도?  - [%GET_TALENTNAME(101, TALENT:감도상승캐릭:C감도)%]  # \@
		PRINTFORML [2] - V감도 \@TALENT:감도상승캐릭:V감도?  - [%GET_TALENTNAME(102, TALENT:감도상승캐릭:V감도)%]  # \@
		PRINTFORML [3] - A감도 \@TALENT:감도상승캐릭:A감도?  - [%GET_TALENTNAME(103, TALENT:감도상승캐릭:A감도)%]  # \@
		PRINTFORML [4] - B감도 \@TALENT:감도상승캐릭:B감도?  - [%GET_TALENTNAME(104, TALENT:감도상승캐릭:B감도)%]  # \@
		PRINTFORML [5] - M감도 \@TALENT:감도상승캐릭:M감도?  - [%GET_TALENTNAME(106, TALENT:감도상승캐릭:M감도)%]  # \@
		PRINTL [999] - 역시 그만둔다
		INPUT
		SELECTCASE RESULT
			CASE 1,2,3,4
				IF TALENT:감도상승캐릭:(100+RESULT)>=1
					PRINTL 더 이상 감도를 올릴 수 없습니다.
					RETURN -1
				ELSE
					CALL IKENIE(감도상승캐릭, 8+RESULT)
				ENDIF
			CASE 5
				IF TALENT:감도상승캐릭:M감도>=2
					PRINTL 더 이상 감도를 올릴 수 없습니다.
					RETURN -1
				ELSE
					CALL IKENIE(감도상승캐릭, 13)
				ENDIF
			CASE 999
				RETURN -1
		ENDSELECT
	ELSE
		RETURN -1
	ENDIF

ELSEIF RESULT == 30
	PRINTL 누구를?
	DRAWLINE
	FOR LOCAL,1,CHARANUM
		SIF MARK:LOCAL:반발각인 && !CFLAG:LOCAL:출금
			PRINTFORMLC [{LOCAL}] %CALLNAME:LOCAL,15,LEFT%
	NEXT
	PRINTL
	DRAWLINE
	PRINTL [999] - 역시 그만둔다
	INPUT
	IF RESULT >= 1 && RESULT <= CHARANUM && MARK:RESULT:반발각인
		CALL IKENIE(RESULT,1)
	ELSE
		RETURN -1
	ENDIF
ELSEIF RESULT == 35
	PRINTL 누구를?
	DRAWLINE
	FOR LOCAL,1,CHARANUM
		SIF !MARK:LOCAL:반발각인 && MARK:LOCAL:반발취득이력 && !CFLAG:LOCAL:출금
			PRINTFORMLC [{LOCAL}] %CALLNAME:LOCAL,15,LEFT%
	NEXT
	PRINTL
	DRAWLINE
	PRINTL [999] - 역시 그만둔다
	INPUT
	IF RESULT >= 1 && RESULT <= CHARANUM && !MARK:RESULT:반발각인 && MARK:RESULT:반발취득이력
		CALL IKENIE(RESULT,14) ; KR판 임의수정, 번호 충돌로 인한 8 > 14 변경,
	ELSE
		RETURN -1
	ENDIF

;;KR판 오리지날 31
ELSEIF RESULT == 31
	PRINTL 누구를?
	DRAWLINE
	FOR LOCAL, 1, CHARANUM
		SIF CFLAG:LOCAL:약점잡음 && !CFLAG:LOCAL:출금
			PRINTFORMLC [{LOCAL}] %CALLNAME:LOCAL, 15, LEFT%
	NEXT
	PRINTL
	DRAWLINE
	PRINTL [999] - 역시 그만둔다
	INPUT
	IF RESULT >= 1 && RESULT <= CHARANUM && CFLAG:RESULT:약점잡음
		CALL IKENIE(RESULT, 8)
	ELSE
		RETURN -1
	ENDIF
ELSEIF RESULT == 40 && CFLAG:MASTER:마력회수 && CFLAG:MASTER:요술망치 < 6
	CALL IKENIE(71,3)
ELSEIF RESULT == 50 && FLAG:개운대문구입회수 > 10
	CALL IKENIE(53,5)
ELSEIF RESULT == 60 && CAN_DOWSING()
	CALL DOWSING_PANTS
ENDIF
DOWNBASE:MASTER:기력 = 100
TIME += 10
RETURN 1

;발원함
@COM_ABLE421
;정지 중에는 불가
SIF FLAG:70 == 1
	RETURN 0
;청소 실행 판정
SIF !TFLAG:100
	RETURN 0
;벌써 오늘 기원 드려서 등 연주한다
SIF FLAG:발원내용 > 0
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(421)
	RETURN RESULT
;새전함
SIF !하늘의소리가능(CFLAG:MASTER:현재위치) && CFLAG:MASTER:현재위치 != 모리야신사본전
	RETURN 0
;기력 0
SIF BASE:MASTER:기력 <= 0
	RETURN 0
SIF CFLAG:우후후 == 2
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF421 발원함_t.ERB


code:
;-------------------------------------------------
;하늘의 소리를 듣는다
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM422
PRINTL [0] - 사람을 찾고 있다
PRINTL [1] - 청소를 하고 싶다
PRINTL [2] - 밖에 있는 사람을 찾고 싶다
;SIF STALKED
;	PRINTFORML [3] - 【쫒기】대상변경（현재 대상: %CALLNAME:STALKED%）
PRINTL [100] - 돌아간다
INPUT
IF RESULT == 0
	CALL HITOSAGASI()
ELSEIF RESULT == 1
	CALL OHEYA_CHECK
ELSEIF RESULT == 2
	CALL BROAD_HITOSAGASI
	TIME += 3
	RETURN 1
ELSEIF RESULT == 100
	RETURN -1
ENDIF
INPUTS
RESULT = TOINT(RESULTS)
IF RESULT == 0
	REPLACE RESULTS, CALLNAME:MASTER, "%CALLNAME:MASTER%"
	FOR LOCAL, 1, 19
		SIF STR:LOCAL == RESULTS
			RESULT = LOCAL
	NEXT
ENDIF

IF (RESULT >= 26 && RESULT <= 35) && ABL:MASTER:교양 < 1 && !INRANGE(CFLAG:MASTER:초기위치, 26,35)
	PRINTFORMW 미숙한 %마스터로%선 찾아낼 수 없다…
ELSE
	IF IN_HOME(RESULT) == 1
		SIF AT_HOME(MASTER) == 0
			GOTO MURIDESU
		CALL SKIP_MOVE(CFLAG:MASTER:현재위치, RESULT)
	ENDIF
ENDIF

TIME += 10
RETURN 1
$MURIDESU
PRINTW 여기에서는 갈 수 없다…
TIME += 10
RETURN 1

@BROAD_HITOSAGASI
$KAKUNIN
FOR LOCAL,0,11
	SIF LOCAL == MAIN_MAP
		CONTINUE
	LOCAL:1 = 5000 + LOCAL
	PRINTFORMLC [{LOCAL}] - %STR:(LOCAL:1)%
	CALL 광역체크(LOCAL,1)
	CALL 광역체크(LOCAL,2)
	PRINTL
NEXT
DRAWLINE
PRINT [100] - 확인 종료
$INPUT_LOOP
INPUT
IF RESULT == 100 || RESULT == MAIN_MAP
	RETURN -1
ELSEIF RESULT < 0
	CLEARLINE 1
	GOTO INPUT_LOOP
ELSEIF RESULT >= 11
	PRINTW 미작성입니다
	CLEARLINE 2
	GOTO INPUT_LOOP
ENDIF
CALL 광역체크(RESULT,2)
CALL ASK_YN("다른 지역을 본다","확인 종료")
SIF !RESULT
	GOTO KAKUNIN

@광역체크(ARG,ARG:1)
VARSET LOCAL

FOR LOCAL,1,CHARANUM
	SIF AT_HOME(LOCAL) == 1
		CONTINUE
	SIF CFLAG:LOCAL:현재위치 == MAXROOM && CFLAG:LOCAL:수면
		CONTINUE
	FOR LOCAL:1,10,100,10
		IF CFLAG:LOCAL:현재위치 == ARG * 100 + LOCAL:1
			;그 지역에 있는 캐릭터를표시
			IF ARG:1 == 2
				SIF CFLAG:LOCAL:행동 == 5
					SETCOLOR 255, 100, 0
				PRINTFORM %CALLNAME:LOCAL%
				RESETCOLOR
			ENDIF
			LOCAL:2 ++
		ENDIF
	NEXT
NEXT
;그 지역에 있는 인원수
IF ARG:1 == 1
	IF LOCAL:2
		PRINTFORML {LOCAL:2}인
	ELSE
		PRINTL 아무도 없다
	ENDIF
ENDIF

;하늘의 소리를 듣는다
@COM_ABLE422
;정지 중에는 불가
SIF FLAG:70 == 1
	RETURN 0
;실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(421)
	RETURN RESULT
;새전함
SIF !하늘의소리가능(CFLAG:MASTER:현재위치)
	RETURN 0
SIF CFLAG:우후후 == 2
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF422 하늘의소리를듣는다_t.ERB


code:
;-------------------------------------------------
;도구를산다
;-------------------------------------------------
@COM423
;TFLAG:194 = 1
;;PRINTFORML {ITEMSALES:62}
;CALL ITEM_SALES
;DRAWLINE
;CALL LIST_ITEM("캇파 도구")
;DRAWLINE
;PRINTL 「지금이라면 싸게 해 두어」
;PRINTFORML 구입할 아이템을 선택해주세요 소지금 :\\%TOSTR(MONEY,"#,###")%
;;CALL TOOL_BUY
;CALL SHOW_ITEM, "캇파 도구", 3
;PRINTL
;DRAWLINE
;PRINT [100] - 돌아간다　　　　　[101] - 도구의 개조　[102] - 도구의 개발
;INPUT
;LOCAL = RESULT
;SELECTCASE LOCAL
;CASE 100
;	RETURN -1
;CASE 101
;	CALL TOOL_CUSTOM
;	SIF RESULT
;		RETURN RESULT
;CASE 102
;	PRINTL 「개발하려면 git이 필요하다」
;	PRINTW git란 도대체…
;	RETURN -1
;CASEELSE
;	SELECTCASE ITEMSTOCK(LOCAL)
;	CASE 1, 4
;		RETURN -1
;	CASE 2
;		PRINTW 품절입니다
;		RETURN -1
;	CASE 3
;		PRINTW 소지금이 충분하지 않습니다
;		RETURN -1
;	CASE 5
;		PRINTW 이미 충분히 가지고 있습니다
;		RETURN -1
;	CASEELSE
;		SIF !INRANGE(LOCAL, 0, 100)
;			RETURN -1
;	ENDSELECT
;	PRINTFORML %조사처리(ITEMNAME:LOCAL,"를")% 구입하겠습니까?
;	PRINTL [0] - 네  [1] - 아니오
;	INPUT
;	SIF RESULT
;		RETURN -1
;	ITEM:LOCAL ++
;	SELECTCASE ITEMSALES:LOCAL
;	CASE IS > 1
;		ITEMSALES:LOCAL --
;	CASE 1
;		ITEMSALES:LOCAL = -1
;	ENDSELECT
;	MONEY -= ITEMPRICE:LOCAL / 3
;ENDSELECT
;RESTART

;도구를산다
@COM_ABLE423
;일단 정지
RETURN 0
;정지 중에는 불가
SIF FLAG:70 == 1
	RETURN 0
;이동 실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(423)
	RETURN RESULT
;니토리가 있는 곳
SIF TARGET != 51
	RETURN 0
SIF CFLAG:우후후 == 2
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF423 도구를산다_t.ERB


code:
;-------------------------------------------------
;약을산다
;-------------------------------------------------
@COM424
;#DIM 買うもの
;#DIM 바가지
;DRAWLINE
;CALL LIST_ITEM("토끼 약품")
;DRAWLINE
;PRINTFORML 구입할 아이템을 선택해주세요 소지금:%금액표시(MONEY)%
;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, "붕대"),"상처를 입은 데나 숨기고 싶은 장소에 감자")
;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
;	바가지 = ITEMPRICE:買うもの
;	CALL ITEMDATA(買うもの, "TYPE:토끼 약품")
;	IF RESULT
;		CALL ITEMDATA(買うもの, "구입")
;		SIF !RESULT
;			RESTART
;	ELSE
;		RESTART
;	ENDIF
;ENDIF
;RESTART

;약을산다
@COM_ABLE424
;일단 정지
RETURN 0
;정지 중에는 불가
SIF FLAG:70 == 1
	RETURN 0
;이동 실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(424)
	RETURN RESULT
SIF CFLAG:MASTER:현재위치 != CFLAG:[[우동게]]:현재위치 && CFLAG:MASTER:현재위치 != CFLAG:[[테위]]:현재위치
	RETURN 0
SIF CFLAG:우후후 == 2
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF424 약을산다_t.ERB


code:
;-------------------------------------------------
;약을 탄다
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM425
PRINTL 어느 약을 섞겠습니까?
$LOOP
SIF ITEM:41
	PRINTFORML [{41}] %ITEMNAME:41%
SIF ITEM:42
	PRINTFORML [{42}] %ITEMNAME:42%
SIF ITEM:250
	PRINTFORML [{250}] %ITEMNAME:250%
SIF ITEM:252
	PRINTFORML [{252}] %ITEMNAME:252%
PRINTL [999] 그만둔다
INPUT

SIF RESULT == 999
	RETURN 0
IF RESULT != 41 && RESULT != 42 && RESULT != 250 && RESULT != 252
	GOTO LOOP
ELSEIF ITEM:RESULT
	TFLAG:131 = RESULT
	PRINTFORML 차에 %조사처리(ITEMNAME:RESULT,"를")% 섞었습니다
	ITEM:RESULT -= 1
IF FLAG:70
	BASE:MASTER:TSP -= 30
ELSE
	TIME += 10
ENDIF
	RETURN 1
ELSE
	RETURN 0
ENDIF

;-------------------------------------------------
;실행 판정
;-------------------------------------------------
;약을 탄다
@COM_ABLE425
;목격자가 있으면 안 됨
SIF TARGET > 0 && !FLAG:70
	RETURN 0
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(425)
	RETURN RESULT
;厨房・妖精のキッチン・遺跡の調理室・長屋街
SIF !KITCHEN(CFLAG:MASTER:현재위치) &&  CFLAG:MASTER:현재위치 != 29 &&  CFLAG:MASTER:현재위치 != 42 &&  CFLAG:MASTER:현재위치 != 주택가
	RETURN 0
;기력 0
SIF BASE:MASTER:기력 <= 0
	RETURN 0
SIF CFLAG:우후후 == 2
	RETURN 0
SIF TFLAG:131
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF425 약을탄다_t.ERB


code:
;-------------------------------------------------
;위험한 약을산다
;-------------------------------------------------
@COM426

$LOOP
PRINTFORML 구입할 아이템을 선택해주세요 소지금:%금액표시(MONEY)%
PRINTL
VARSET LOCALS
LOCALS = [41] 미약　￥3000
PRINTFORM %LOCALS,48,LEFT%
PRINTL
LOCALS = [42] 이뇨제　￥3000
PRINTFORM %LOCALS,48,LEFT%
PRINTL
LOCALS = [250] 춘약　￥5000
PRINTFORM %LOCALS,48,LEFT%
PRINTL 호의를 품기 쉬워진다

;LOCALS = [2] 풍유제　￥2000
LOCALS = [2] 우유　￥2000
PRINTFORM %LOCALS,48,LEFT%
PRINTL 이것을 계속 마시면 가슴이 커질지도
LOCALS = [501] 축흉제　￥2000
PRINTFORM %LOCALS,48,LEFT%
PRINTL 이것을 계속 마시면 가슴이 작아질지도
LOCALS = [502] 아포톡신4869　￥10000
PRINTFORM %LOCALS,48,LEFT%
PRINTL 남도일을 바-보 로 하는 약
LOCALS = [503] 창코072　￥10000
PRINTFORM %LOCALS,48,LEFT%
PRINTL 거대한 육체를 즉석에서 만들어 내는 트레이닝 약물
LOCALS = [42] 타노시이드린크　￥3000
PRINTFORM %LOCALS,48,LEFT%
PRINTL 다복감을 가불해, 머지않아 감정이 시들고 끝난다
DRAWLINE
PRINTL [100] 그만둔다
INPUT
SELECTCASE RESULT
	CASE 0
		IF MONEY < ITEMPRICE:RESULT
			PRINTW 돈이 부족하다
			GOTO LOOP
		ELSEIF ITEM:RESULT > 50
			PRINTW 지금은 충분하다
			GOTO LOOP
		ELSE
			PRINTFORMW %조사처리(ITEMNAME:RESULT,"를")% 샀습니다
			ITEM:RESULT += 5
			MONEY -= ITEMPRICE:RESULT
			GOTO LOOP
		ENDIF
	CASE 100
		RETURN -1
	CASEELSE
		GOTO LOOP
ENDSELECT

RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF426 위험한약을산다_t.ERB


code:
;-------------------------------------------------
;요술망치를 쓴다
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM428
SIF FLAG:역극 != 71
	PRINTL 신묘마루 「이용은 계획적으로」
PRINTL 무슨 소원을 빌겠습니까?
SIF TALENT:71:체형 != 0 && CFLAG:[[신묘마루]]:현재위치 != 54
	PRINTL [2] - 신묘마루를 평범한 크기로
IF GETBIT(TALENT:MASTER:성별, 1)
	PRINTL [3] - 경이적인 양물로!
	PRINTL [4] - 아예 인간 물건이 아닌 걸로!
ENDIF
SIF TALENT:MASTER:100 >= -4
	PRINTL [5] - 난쟁이로 해줘!
SIF TALENT:MASTER:100 < -4 && CFLAG:MASTER:요술망치 == 6
	PRINTL [6] - 원래 크기에 되돌려줘……
PRINTL [7] - 거인으로 해줘!
PRINTL
PRINTL [100] - 돌아간다
$LOOP
INPUT
IF RESULT == 2 && TALENT:71:체형 != 0 && CFLAG:[[신묘마루]]:현재위치 != 54
	PRINTFORMW 소원을 담아 요술망치를 휘둘러보았다
	PRINTFORMW 신묘마루의 몸은 평범한 소녀 사이즈가 되었다.
	CFLAG:MASTER:요술망치 = 8
	TALENT:71:체형 = 0
ELSEIF RESULT ==  3 && GETBIT(TALENT:MASTER:성별,1)
	PRINTW 소원을 담아 요술망치를 휘둘러보았다
	PRINTW 도저히 숨기지 못할 정도로 양물이 커졌다
	CFLAG:MASTER:요술망치 = 4
	CFLAG:MASTER:382 = TALENT:MASTER:형상
	TALENT:MASTER:형상 = 10
	CFLAG:MASTER:마력회수 = 6
ELSEIF RESULT == 4 && GETBIT(TALENT:MASTER:성별,1)
	PRINTW 소원을 담아 요술망치를 휘둘러보았다
	PRINTW 놀랍게도 자신의 물건이 아예 한 개 더 생겼다
	CFLAG:MASTER:382 = TALENT:MASTER:형상
	CFLAG:MASTER:요술망치 = 5
	TALENT:MASTER:183 = 1
	CFLAG:MASTER:마력회수 = 6
ELSEIF RESULT == 5 && TALENT:MASTER:100 >= -4
	PRINTFORMW 소원을 담아 요술망치를 휘둘러보았다
	PRINTFORMW %CALLNAME:MASTER%의 몸은 순식간에 줄어들었다
	CFLAG:MASTER:마력회수 = 3
	CFLAG:MASTER:요술망치 = 6
	FLAG:원래체격 = TALENT:MASTER:100
	TALENT:MASTER:체형 = -5
ELSEIF RESULT == 6 && TALENT:MASTER:체형 < -4 && CFLAG:MASTER:현재위치 == 54
	PRINTFORMW 「여기서 하지 마!」
	RETURN -1
ELSEIF RESULT == 6 && (TALENT:MASTER:체형 < -4 || TALENT:MASTER:100 > 4)
	PRINTFORMW 소원을 담아 요술망치를 휘둘러보았다
	PRINTFORMW %CALLNAME:MASTER%의 몸은 원래대로 돌아왔다
	TALENT:MASTER:100 = FLAG:원래체격
	CFLAG:MASTER:마력회수 = 3
	CFLAG:MASTER:요술망치 = 7
ELSEIF RESULT == 7 && TALENT:MASTER:체형 <= 4
	PRINTFORMW 소원을 담아 요술망치를 휘둘러보았다
	PRINTFORMW %CALLNAME:MASTER%의 몸은 커졌다
	CFLAG:MASTER:마력회수 = 3
	CFLAG:MASTER:요술망치 = 6
	FLAG:원래체격 = TALENT:MASTER:체형
	TALENT:MASTER:100 = 5
ELSEIF RESULT == 100
SIF FLAG:역극 != 71
	PRINTL 신묘마루 「그러는 게 현명하죠」
	RETURN -1
ELSE
	GOTO LOOP
ENDIF
TIME += 5

RETURN 1

;요술망치를 쓴다
@COM_ABLE428
;정지 중에는 불가
SIF FLAG:70 == 1
	RETURN 0
;이동 실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(428)
	RETURN RESULT
;신묘마루가 자고 있으면 불가
SIF CFLAG:71:수면
	RETURN 0
;신묘마루가 있는 곳. 신묘마루가 벌레통에 있을 때는 거실이나 툇마루에 있으면 세이프
IF CFLAG:MASTER:현재위치 != CFLAG:71:현재위치 && FLAG:역극 != 71
	IF CFLAG:71:현재위치 == 54 && (CFLAG:MASTER:현재위치 == 9 || CFLAG:MASTER:현재위치 == 10) && AT_HOME(MASTER)
	ELSE
	RETURN 0
	ENDIF
ENDIF
;SIF CFLAG:MASTER:현재위치 != CFLAG:71:현재위치
;	RETURN 0
SIF CFLAG:우후후 == 2
	RETURN 0
;마력회수중 및 신묘마루 거대화 중에는 사용할 수 없다
SIF CFLAG:MASTER:마력회수 > 0 || CFLAG:MASTER:요술망치 == 8
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF428 요술망치를쓴다_t.ERB


code:
;-------------------------------------------------
;갈아입히기
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM429
#DIM C_ID
#DIM ID_갈아입히기대상, 캐릭터수상한
#DIM 갈아입히기가능인원수
#DIM L_ID ;사용 리스트의 ID
CALL MAKE_CHARA_LIST("갈아입히기 가능 캐릭터리스트", L_ID, ID_갈아입히기대상, 갈아입히기가능인원수)
IF 갈아입히기가능인원수 <= 1
	PRINTFORMW %마스터는% 갈아입기로 했다
	CALL 복장갈아입히기(MASTER)
	CALL CLOTHES_SETTING_TRAIN(MASTER)
	RETURN -1
ENDIF

;갈아입음 대상의 선택
;리스트 작성시에 가부 판정 하고 있기 때문에 여기에서는 필요없습니다
PRINTFORML 옷을 갈아입을 수가 있습니다
PRINTFORML 누가 갈아입을까요?
PRINTFORML
CALL SIMPLE_CHARA_LIST(ID_갈아입히기대상, 갈아입히기가능인원수)
;캔슬했다
SIF RESULT == 999
	RETURN -1

;RESULT는 곧 썩으므로
C_ID = ID_갈아입히기대상:(RESULT)
SIF FLAG:시간정지 == 1 && !(C_ID == MASTER)
	CFLAG:C_ID:시간정지착의 = 1
CALL 복장갈아입히기(C_ID)
CALL CLOTHES_SETTING_TRAIN(C_ID)
RETURN 0

;CLOTHES_SETTING_TRAIN에 신발벗어 처리를 이동시켰으므로
;여기서 CLOTHES_SETTING_TRAIN 하면(자) 신발를 벗으며 끝내, 신발설정의 보존을 할 수 없습니다
;호출원으로 CLOTHES_SETTING_TRAIN 하는 것
@복장갈아입히기(C_ID)
#DIM C_ID
#DIM LINESTART2

LINESTART = LINECOUNT

CALL SHOW_CLOTHES(C_ID, "현재의 의상")
PRINTFORML %CALLNAME:C_ID%의 옷 갈아입는중
PRINTFORML
PRINTFORML [6] - 의상 확인
PRINTFORML [5] - 의상 즐겨찾기 지정
PRINTFORML [4] - 파자마의 변경
PRINTFORML [3] - 매일의 의상의 변경
PRINTFORML [2] - 의상의 일시 변경
PRINTFORML [1] - 팬티
PRINTFORML
PRINTFORML [0] - 돌아간다
DO
	INPUT
	LINESTART2 = LINECOUNT
	SELECTCASE RESULT
	CASE 6
		CALL SHOW_CHARA_CLOTHES(C_ID, 0)
		CLEARLINE LINECOUNT - LINESTART
		RESTART
	CASE 5
		$着せ替え5
		CALL SHOW_CLOTHES(C_ID, "즐겨찾는의상")
		PRINTFORML %CALLNAME:C_ID%의 즐겨찾는의상을 설정중
		PRINTFORML
		PRINTFORML [4] - 현재의 의상을 지정한다
		PRINTFORML [3] - 의상세트를 지정한다
		PRINTFORML [2] - 특정 캐릭터의 평상복의 흉내
		PRINTFORML [1] - 즐겨찾기 지정의 리셋
		PRINTFORML
		PRINTFORML [0] - 그만둔다
		DO
			INPUT
			SELECTCASE RESULT
			CASE 4
				CALL DECIDE_CLOTHES(C_ID, "즐겨찾는의상", "현재의 의상")
			CASE 3
				CALL COSPLAY_SET(C_ID, "즐겨찾는의상")
			CASE 2
				CALL COSPLAY_CHARA(C_ID, "즐겨찾는의상")
			CASE 1
				PRINTFORML 정말로 리셋 합니까?
				PRINTFORML
				PRINTFORML [1] - 리셋 한다
				PRINTFORML [0] - 그만둔다
				DO
					INPUT
					SELECTCASE RESULT
					CASE 1
						CALL CTRL_CLOTHES_SET(C_ID, "즐겨찾는의상의 리셋")
					CASE 0
						CLEARLINE LINECOUNT - LINESTART2
						GOTO 着せ替え5
					CASEELSE
						CLEARLINE 1
						CONTINUE
					ENDSELECT
				LOOP 1
			CASE 0
				CLEARLINE LINECOUNT - LINESTART
				RESTART
			CASEELSE
			ENDSELECT
			CLEARLINE LINECOUNT - LINESTART2
			GOTO 着せ替え5
		LOOP 1
	CASE 4
		IF C_ID == MASTER
			CLEARLINE LINECOUNT - LINESTART
			RESTART
		ENDIF
		$着せ替え4
		CALL SHOW_CLOTHES(C_ID, "오늘의 파자마")
		PRINTFORML %CALLNAME:C_ID%의 파자마를 설정중
		PRINTFORML
		PRINTFORML [5] - 좋아하는 대로 시킨다
		PRINTFORML [4] - 즐겨찾는의상으로 자 준다
		PRINTFORML [3] - 파자마를 지정한다
		PRINTFORML [2] - 전라로 자 준다
		PRINTFORML [1] - 팬티만으로 자 준다
		PRINTFORML
		PRINTFORML [0] - 그만둔다
		DO
			INPUT
			SELECTCASE RESULT
			CASE 5
				CFLAG:C_ID:파자마지정 = 0
			CASE 4
				SIF CFLAG:C_ID:즐겨찾는의상
					CALL CTRL_CLOTHES_SET(C_ID, "파자마의 변경_즐겨찾는의상")
			CASE 3
				CALL COSPLAY_SELECT(C_ID, "파자마", "파자마 세트")
			CASE 2
				CALL CTRL_CLOTHES_SET(C_ID, "파자마의 변경_전라")
			CASE 1
				CALL CTRL_CLOTHES_SET(C_ID, "파자마의 변경_판이치")
			CASE 0
				CLEARLINE LINECOUNT - LINESTART
				RESTART
			CASEELSE
				CLEARLINE 1
				CONTINUE
			ENDSELECT
			CLEARLINE LINECOUNT - LINESTART2
			GOTO 着せ替え4
		LOOP 1
	CASE 3
		$着せ替え3
		CALL SHOW_CLOTHES(C_ID, "오늘의 의상")
		PRINTFORML %CALLNAME:C_ID%의 평상복을 설정중
		PRINTFORML
		PRINTFORML [4] - 현재의 의상을 지정한다( 즐겨찾기에 덧쓰기됩니다)
		PRINTFORML [3] - 의상세트를 지정한다
		PRINTFORML [2] - 특정 캐릭터의 평상복의 흉내
		PRINTFORML [1] - 본인 맡김
		PRINTFORML
		PRINTFORML [0] - 그만둔다
		DO
			INPUT
			SELECTCASE RESULT
			CASE 4
				CALL DECIDE_CLOTHES(C_ID, "평상복", "현재의 의상")
			CASE 3
				CALL COSPLAY_SET(C_ID, "평상복")
			CASE 2
				CALL COSPLAY_CHARA(C_ID, "평상복")
			CASE 1
				PRINTFORMW 평상복의 설정은 본인의 기분에 맡깁니다
				CFLAG:C_ID:기본복장세트 = 0
			CASE 0
				CLEARLINE LINECOUNT - LINESTART
				RESTART
			ENDSELECT
			CLEARLINE LINECOUNT - LINESTART2
			GOTO 着せ替え3
		LOOP 1
	CASE 2
		$着せ替え2
		;#;PRINTFORML CFLAG:C_ID:의상일시변경 {CFLAG:C_ID:의상일시변경}
		CALL SHOW_CLOTHES(C_ID, "현재의 의상")
		PRINTFORML %CALLNAME:C_ID%의 현재의 의상을 갈아입히기중
		PRINTFORML
		PRINTFORML [4] - 즐겨찾는의상에 갈아입히기
		PRINTFORML [3] - 의상세트를 지정한다
		PRINTFORML [2] - 특정 캐릭터의 평상복의 흉내
		PRINTFORML [1] - 오늘의 Default에 되돌린다
		PRINTFORML
		PRINTFORML [0] - 그만둔다
		DO
			INPUT
			SELECTCASE RESULT
			CASE 4
				IF !CFLAG:C_ID:즐겨찾는의상
					CLEARLINE LINECOUNT - LINESTART2
					GOTO 着せ替え2
				ENDIF
				CALL DECIDE_CLOTHES(C_ID, "현재의 의상", "즐겨찾는의상")
			CASE 3
				CALL COSPLAY_SET(C_ID, "현재의 의상")
			CASE 2
				CALL COSPLAY_CHARA(C_ID, "현재의 의상")
			CASE 1
				PRINTFORMW 오늘의 의상을 다시 입혔다
				CALL CTRL_CLOTHES_SET(C_ID, "현재 의상의 변경_평상복")
			CASE 0
				CLEARLINE LINECOUNT - LINESTART
				RESTART
			ENDSELECT
			CLEARLINE LINECOUNT - LINESTART2
			GOTO 着せ替え2
		LOOP 1
	CASE 1
		$着せ替え1
		PRINTFORML %CALLNAME:C_ID%의 팬티를 음미중
		PRINTFORML 현재 착용중의 팬티：%GET_STR(C_ID, "하반신속옷_비켜놓기가능", EQUIP:C_ID:하반신속옷2, "이름")%
		SELECTCASE CFLAG:C_ID:지정팬티
		CASE 0
			PRINTFORML 　현재의 팬티 설정：지정 없음
		CASE 100
			PRINTFORML 　현재의 팬티 설정：노팬티 지정
		CASEELSE
			PRINTFORML 　현재의 팬티 설정：%GET_STR(C_ID, "하반신속옷_비켜놓기가능", CFLAG:C_ID:지정팬티, "이름")%
		ENDSELECT
		PRINTFORML
		PRINTFORML
		SIF C_ID == MASTER
			PRINTFORML [3] - 착용중인 팬티를 벗는다
		PRINTFORML [2] - 현재의 팬티를 즐겨찾기 지정
		PRINTFORML [1] - 팬티의 즐겨찾기 지정을 해제한다
		PRINTFORML
		PRINTFORML [0] - 그만둔다
		DO
			INPUT
			SELECTCASE RESULT
			CASE 3
				PRINTFORMW 현재 착용하고 있는 팬티를 벗었습니다
				EQUIP:C_ID:하반신속옷2 = 100
			CASE 2
				PRINTFORMW 현재의 팬티를 즐겨찾기로 지정했습니다
				CFLAG:C_ID:지정팬티 = EQUIP:C_ID:하반신속옷2
				SIF !CFLAG:C_ID:지정팬티
					CFLAG:C_ID:지정팬티 = 100
			CASE 1
				PRINTFORMW 팬티의 즐겨찾기 지정을 해제했습니다
				CFLAG:C_ID:지정팬티 = 0
			CASE 0
				CLEARLINE LINECOUNT - LINESTART
				RESTART
			ENDSELECT
			CLEARLINE LINECOUNT - LINESTART2
			GOTO 着せ替え1
		LOOP 1
	CASE 0
		RETURN
	CASEELSE
		CLEARLINE 1
		CONTINUE
	ENDSELECT
LOOP 1

;모방시키는 대상 캐릭터의 선택
@COSPLAY_CHARA(C_ID, TYPE)
#DIM  C_ID
#DIMS TYPE
#DIM  COS_CHARA
PRINTFORML %CALLNAME:C_ID%의 %조사처리(TYPE,"을")% 설정중
PRINTFORML 누구의 의상을 흉내내게 합니까?
CALL SHOW_CHARA_LIST("평상복 모방 가능 캐릭터리스트", "체력 기력")
COS_CHARA = RESULT
IF GROUPMATCH(COS_CHARA, 0, 999)
	PRINTFORMW 의상의 설정을 중단했다
	RETURN
ELSEIF COS_CHARA == C_ID
	SELECTCASE TYPE
	CASE "즐겨찾는의상"
		PRINTFORMW 의상의 설정을 중단했다
	CASE "평상복"
		PRINTFORMW 평상복의 설정은 본인의 기분에 맡깁니다
		CFLAG:C_ID:기본복장세트 = 0
	CASE "현재의 의상"
		PRINTFORMW 오늘의 의상을 다시 입혔다
		CALL CTRL_CLOTHES_SET(C_ID, "현재 의상의 변경_평상복")
	ENDSELECT
	RETURN
ENDIF
CALL DECIDE_CLOTHES(C_ID, TYPE, "캐릭터 평상복", COS_CHARA)
SIF RESULT
	RESTART

;의상세트의 카테고리 선택
@COSPLAY_SET(C_ID, TYPE)
#DIM  C_ID
#DIM  SET_ID
#DIMS TYPE
#DIMS CATEGORY
CALL SHOW_CLOTHES(C_ID, TYPE)
PRINTFORML %CALLNAME:C_ID%의 %조사처리(TYPE,"을")% 설정중
PRINTFORML 의상의 종류의 선택
PRINTFORML
PRINTFORML [3] - 기본 의상세트
PRINTFORML [2] - 코스프레 의상세트
PRINTFORML [1] - 캐릭터 특수 의상세트
PRINTFORML
PRINTFORML [0] - 그만둔다
DO
	INPUT
	SELECTCASE RESULT
	CASE 3
		CATEGORY '= "기본 의상세트"
	CASE 2
		CATEGORY '= "코스프레 의상세트"
	CASE 1
		CATEGORY '= "캐릭터 특수 의상세트"
	CASE 0
		RETURN
	CASEELSE
		REUSELASTLINE 무효인 입력입니다
		CONTINUE
	ENDSELECT
	BREAK
LOOP 1
CALL COSPLAY_SELECT(C_ID, TYPE, CATEGORY)
SIF !RESULT
	RESTART

;개개의 의상세트의 선택
@COSPLAY_SELECT(C_ID, TYPE, CATEGORY)
#DIM  C_ID
#DIM  SET_ID
#DIMS TYPE
#DIMS CATEGORY
PRINTFORML %CALLNAME:C_ID%의%조사처리(TYPE,"을")% 설정중(%CATEGORY%)
PRINTFORML 사용하는 의상세트를 선택해 주세요
PRINTFORML
CALL CLASS_LIST("의상세트", CATEGORY)
PRINTFORML
PRINTFORML [0] - 그만둔다
DO
	INPUT
	SET_ID = RESULT
	SELECTCASE SET_ID
	CASE 0
		RETURN
	CASEELSE
		SIF GET_INT(0, "의상세트" , SET_ID, CATEGORY)
			BREAK
		REUSELASTLINE 무효인 입력입니다
		CONTINUE
	ENDSELECT
LOOP 1
CALL DECIDE_CLOTHES(C_ID, TYPE, "의상세트", SET_ID)
SIF RESULT
	RESTART

;의상 결정의 최종 확인
@DECIDE_CLOTHES(C_ID, COS_SAVE, COS_LOAD, SET_ID)
#DIM  C_ID     ;설정하는 캐릭터
#DIMS COS_SAVE ;의상의 보존처
#DIMS COS_LOAD ;의상의 참조원
#DIM  SET_ID   ;참조 의상등의 ID
;#; PRINTFORML C_ID{C_ID}, COS_SAVE%COS_SAVE%, COS_LOAD%COS_LOAD%, SET_ID{SET_ID}
PRINTFORMW 최종 확인
CALL SHOW_CLOTHES(C_ID, COS_LOAD, SET_ID)
PRINTFORML
PRINTFORML 이 의상으로 괜찮겠습니까?
PRINTFORML
PRINTFORML [1] - 결정
PRINTFORML [0] - 다시 생각한다
PRINTFORML
PRINTFORML [9] - 그만둔다
DO
	INPUT
	SELECTCASE RESULT
	CASE 1
		BREAK
	CASE 0
		RETURN 1
	CASE 9
		RETURN
	CASEELSE
		REUSELASTLINE 무효인 입력입니다
		CONTINUE
	ENDSELECT
LOOP 1

SELECTCASE COS_LOAD
CASE "현재의 의상"
	SELECTCASE COS_SAVE
	CASE "평상복"
		PRINTFORMW 지금 착용하고 있는 의상을 매일 입어 주기로 했다
		CFLAG:C_ID:기본복장세트 = 100
		CALL CTRL_CLOTHES_SET(C_ID, "현재 의상의 보존_즐겨찾기")
	CASE "즐겨찾는의상"
		PRINTFORMW 지금 착용하고 있는 의상을 즐겨찾기로 지정했다
		CALL CTRL_CLOTHES_SET(C_ID, "현재 의상의 보존_즐겨찾기")
	ENDSELECT

CASE "의상세트"
	PRINTFORMW %CALLNAME:C_ID%의 %COS_SAVE%에서 %조사처리(GET_STR(C_ID, "의상세트", SET_ID, "이름"),"를")% 지정했습니다
	SELECTCASE COS_SAVE
	CASE "현재의 의상"
		CALL CTRL_CLOTHES_SET(C_ID, "현재 의상의 변경_의상세트", SET_ID)
	CASE "평상복"
		CALL CTRL_CLOTHES_SET(C_ID, "평상복의 변경_의상세트", SET_ID)
	CASE "즐겨찾는의상"
		CALL CTRL_CLOTHES_SET(C_ID, "즐겨찾는의상의 변경_의상세트", SET_ID)
	CASE "파자마"
		CALL CTRL_CLOTHES_SET(C_ID, "파자마의 변경_의상세트", SET_ID)
	ENDSELECT

CASE "캐릭터 평상복"
	PRINTFORMW %CALLNAME:C_ID%에게 %CALLNAME:SET_ID%의 모습을 흉내내게 하기로 했다
	SELECTCASE COS_SAVE
	CASE "현재의 의상"
		CALL CTRL_CLOTHES_SET(C_ID, "현재 의상의 변경_캐릭터 의상", SET_ID, "평상복")
	CASE "평상복"
		CALL CTRL_CLOTHES_SET(C_ID, "평상복의 변경_캐릭터 의상", SET_ID, "평상복")
	CASE "즐겨찾는의상"
		CALL CTRL_CLOTHES_SET(C_ID, "즐겨찾는의상의 변경_캐릭터 의상", SET_ID, "평상복")
	ENDSELECT

ENDSELECT

;갈아입히기
@COM_ABLE429
;이동 실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(429)
	RETURN RESULT
;개인 방 설정
SIF (CFLAG:MASTER:현재위치 != CFLAG:MASTER:311) && (CFLAG:현재위치 != CFLAG:311)
	RETURN 0
SIF !GETBIT(CFLAG:TARGET:기정사실, 1) && TARGET
	RETURN 0
SIF CFLAG:우후후
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF429 갈아입히기_t.ERB


code:
;-------------------------------------------------
;갈아입는다
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM430
#DIM 대상
#DIM 종류

;곤란한 일에 고유는 캐릭터로 명칭 판정하고 있는 것으로 당신이 신으면(자) 이름이 바뀐다

PRINTW 훔친 팬티로 갈아입을까?
DRAWLINE
CALL DISPLAY_ALL_COLLECTION(1,1)
DRAWLINE
PRINTFORML [0] 바꾸어 입지 않는다
$INPUT_LOOP
INPUT
IF RESULT == 0
	RETURN 0
ELSE
	대상 = RESULT / 100
	종류 = RESULT % 100
	CALL SPEND_HAVE_COLLECTION(RESULT)
	IF RESULT != 0
		CFLAG:MASTER:206 = 종류
		CFLAG:MASTER:246 = 종류
		CFLAG:MASTER:오늘팬티 = 종류
		CFLAG:MASTER:파자마팬티 = 종류
		PRINTFORM %마스터는%
		IF EQUIP:MASTER:하반신속옷2 == 0
			PRINTFORML %CALLNAME:(대상)%의 %조사처리(PANTSNAME(종류, 대상),"를")% 입었다
		ELSE
			PRINTFORM %PANTSNAME(EQUIP:MASTER:하반신속옷2)%에서
			PRINTFORML %CALLNAME:(대상)%의 %조사처리(PANTSNAME(종류, 대상),"로")% 갈아입었다
		ENDIF
		EQUIP:MASTER:하반신속옷2 = 종류
	ELSE
		GOTO INPUT_LOOP
	ENDIF
ENDIF
IF !FLAG:시간정지
	TIME += 3
ELSE
	BASE:MASTER:TSP -= 5
ENDIF
RETURN 1

;갈아입는다
@COM_ABLE430
;이동 실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(430)
	RETURN RESULT
;개인 방 설정
SIF (CFLAG:MASTER:현재위치 != CFLAG:MASTER:311) && (CFLAG:현재위치 != CFLAG:311)
	RETURN 0
;SIF CSTR:MASTER:12 == ""
SIF !FLAG:팬티수송
	RETURN 0
SIF !FLAG:시간정지 && (!GETBIT(CFLAG:TARGET:기정사실, 1) && TARGET)
	RETURN 0
SIF CFLAG:우후후
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF430 갈아입는다_t.ERB


code:
;-------------------------------------------------
;욕실로느긋하게쉰다
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM431
#DIM 회복전체력1
#DIM 회복전기력1
#DIM 회복후체력1
#DIM 회복후기력1
#DIM 회복전체력2
#DIM 회복전기력2
#DIM 회복후체력2
#DIM 회복후기력2
#DIM BathType

IF DAY * 1440 + TIME - EX:MASTER:전회입욕시각 < 360
	TFLAG:194 = 1
	PRINTFORML 조금 전 들어갔던 바로 직후다
	RETURN -1
ENDIF
DRAWLINE

IF BATHCHECK(CFLAG:MASTER:현재위치)
	BathType = 1
	CFLAG:MASTER:목욕탕 = 0
	SIF NEAR_BATH() == CFLAG:MASTER:현재위치
		PRINTFORML 욕실에는 편백나무의 좋은 향기가 감돌고 있다…
;풀장으로 느긋하게 쉬는 경우(휴식의 한층 더 약체화판)
ELSE
	BathType = 3
	IF GETBIT (FLAG:풀장, 2)
		STAIN:MASTER:0 = 0
		STAIN:MASTER:1 = 0
		STAIN:MASTER:2 = 2
		STAIN:MASTER:3 = 1
		STAIN:MASTER:4 = 8
		STAIN:MASTER:5 = 0
	ENDIF
ENDIF

회복전체력1 = BASE:MASTER:체력
회복전기력1 = BASE:MASTER:기력
CALL ODEKAKE_OFURO(MASTER, BathType)
회복후체력1 = BASE:MASTER:체력
회복후기력1 = BASE:MASTER:기력
; PRINTFORML 체력+{ABS(회복후체력1 - 회복전체력1)}(%CALLNAME:MASTER%)
; PRINTFORML 기력+{ABS(회복후기력1 - 회복전기력1)}(%CALLNAME:MASTER%)

IF TARGET > 0 && CFLAG:TARGET:태도 > 0 && !CFLAG:TARGET:수면
	회복전체력2 = BASE:TARGET:체력
	회복전기력2 = BASE:TARGET:기력
	CALL ODEKAKE_OFURO(TARGET, BathType)
	회복후체력2 = BASE:TARGET:체력
	회복후기력2 = BASE:TARGET:기력
	; PRINTFORML 체력+{ABS(회복후체력2 - 회복전체력2)}(%CALLNAME:TARGET%)
	; PRINTFORML 기력+{ABS(회복후기력2 - 회복전기력2)}(%CALLNAME:TARGET%)
ENDIF

TIME += 30

;욕실로느긋하게쉰다
@COM_ABLE431
;이동 실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(431)
	RETURN RESULT
;정지 중에는 불가
SIF FLAG:70 == 1
	RETURN 0
;수면중
SIF CFLAG:수면
	RETURN 0
;동침중
SIF CFLAG:동침중
	RETURN 0
;욕실이 있는 장소 이외는 불가
IF !BATHCHECK(CFLAG:MASTER:현재위치)
	SIF !ITEM:간이풀장
		RETURN 0
	;여름 이외에는 온수기능이 필요함
	SIF DAY:2 != 2 && !GETBIT (FLAG:풀장, 1)
		RETURN 0
	;넓은 장소가 아니면 불가능
	SIF !OPENPLACE(CFLAG:MASTER:현재위치)
		RETURN 0
	;야외 아니면 불가능
	SIF !OUTROOF(CFLAG:MASTER:현재위치)
		RETURN 0
	;외출중에는 불가능
	SIF !AT_HOME(MASTER)
		RETURN 0
ENDIF
SIF PLACE_SENTO(CFLAG:MASTER:현재위치)
	RETURN 0
SIF CFLAG:우후후 == 2
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF431 욕실에서쉰다_t.ERB


code:
;-------------------------------------------------
;목욕탕
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM432
#DIM 회복전체력1
#DIM 회복전기력1
#DIM 회복후체력1
#DIM 회복후기력1
#DIM 회복전체력2
#DIM 회복전기력2
#DIM 회복후체력2
#DIM 회복후기력2
#DIMS 台詞
회복전체력1 = BASE:MASTER:체력
회복전기력1 = BASE:MASTER:기력
IF DAY * 1440 + TIME - EX:MASTER:전회입욕시각 < 360
	TFLAG:194 = 1
	PRINTFORML 방금 막 목욕한 직후다
	RETURN -1
ELSEIF PLACE_SENTO(CFLAG:MASTER:현재위치) == 2
	;접수대 를 화나게 해 버렸을 경우
	IF TFLAG:209 == 4
		CALL SPTALK, 0, "怒り", 14, "「………………」",1
		PRINTFORML 접수대 쪽에서 날선 시선이 날아오고 있다……
		PRINTFORML 다른 날에 다시 오는 편이 좋을 것 같다……
		RETURN -1
	;접수대 통상 운행
	ELSE
		;돈 부족했다 이벤트를 보고 있다
		IF TFLAG:209 == 3
			台詞 = 「……어라, 웬 일이야? 혹시 목욕값 가져왔어?」
		;그만두는을 선택했지만 역시 들어가고 싶어졌다
		ELSEIF TFLAG:209 == 2
			台詞 = 「……뭐야, 혹시 마음이 변했어?」
		;그 이외
		ELSE
			;게을러 그다지 의욕이 없는 접수대
			台詞 = 「……어섭셔―」
		ENDIF
		台詞 = %台詞%/「목욕비는 \400이면 돼」
		CALL SPTALK, 0, "通常", 14, @"%台詞%",1
		DRAWLINE
		SIF MAIN_MAP == 2
			PRINTL [2] \5000 내고 전세낸다
		PRINTL [1] \400 내고 입욕한다
		PRINTL [0] 그만둔다
		$LOOP_hitozato
		INPUT
		IF RESULT == 2 && MAIN_MAP == 2
			IF MONEY < 5000
				{
				台詞 = 「……어, 전세내고 싶다고?」
						/「그렇다면 말야, 당연히 대금이라는게 필요해」
						/「가난한 사람은 얌전히 입욕으로 참아!」
				}
				CALL SPTALK, 0, "通常", 14, @"%台詞%",1
				RETURN -1
			ELSE
				MONEY -= 5000
				{
				台詞 = 「……어, 전세내고 싶다고?」
						/「흐-음……뭐 어디에 쓸 건지는 대충 상상이 가지만……」
						/「돈 잘 내는 손님한테는 관대하니까, 그러면 24시까지 자유롭게 써도 돼」
						/「이제 편히 쉬다 나와요……」
				}
				CALL SPTALK, 0, "通常", 14, @"%台詞%",1
				CALLF 욕탕대절(DAY, 1)
				RETURN 1
			ENDIF
		ELSEIF RESULT == 1
			IF MONEY < 400
				{
				台詞 = 「……응, 편히 쉬다 나와요」
						/「아니 잠깐, 돈이 부족하잖아!」
						/「…………」
				}
				CALL SPTALK, 0, "通常", 14, @"%台詞%",1
				;도발 내성 없는 접수대 빡침
				IF TFLAG:209 >= 2
					台詞 = 「…………저기 있지. 나도 이래봬도 한가하지가 않아요」/「……이러면 화낸다?」
					CALL SPTALK, 0, "怒り", 14, @"%台詞%",1
					TFLAG:209 = 4
				ELSE
					{
					台詞 = 「…………저기 있지. 괜히 오지랖 떠는 걸지도 모르겠는데」
							/「……만약 돈 없어서 힘들기라도 하면」
							/「여기서 발품깨나 팔아야하지만 온천이 있으니 거기 가보지 그래?」
					}
					CALL SPTALK, 0, "通常", 14, @"%台詞%",1
					TFLAG:209 = 3
				ENDIF
				RETURN -1
			ELSE
				MONEY -= 400
				台詞 = 「……응, 편히 쉬다 나와요」
				SIF TARGET > 0 && CFLAG:TARGET:6 > 0 && !CFLAG:TARGET:수면
					台詞 = 「……아, 말해두겠는데 내가 지켜보고 있으니 이상한 짓 하지 마」
				CALL SPTALK, 0, "通常", 14, @"%台詞%",1
				IF TARGET > 0 && CFLAG:TARGET:6 > 0 && !CFLAG:TARGET:수면
					회복전체력2 = BASE:TARGET:체력
					회복전기력2 = BASE:TARGET:기력
					CALL ODEKAKE_OFURO(TARGET,1)
					회복후체력2 = BASE:TARGET:체력
					회복후기력2 = BASE:TARGET:기력
					PRINTFORMW %조교자는% %타겟과% 탈의실 앞에서 일단 헤어져 목욕탕으로 향했다
				ENDIF

				CALL ODEKAKE_OFURO(MASTER,1)

				DRAWLINE
				PRINTW …
				PRINTW ……
				PRINTW …………
				PRINTFORMW %조교자는% 욕탕에 몸을 담갔다
				PRINTW …………
				PRINTW ……
				PRINTW …
				;대중목욕탕은 30분 고정
				TIME += 30
				;大衆浴場総入湯回数はフラグごとオミット
				;대중목욕탕시한입탕회수+1
				TFLAG:210 += 1
				;대중목욕탕플래그를 1으로 설정
				TFLAG:209 = 1
				RETURN 1
			ENDIF
		ELSEIF RESULT == 0
			;도발 내성 없는 접수대 빡침
			IF TFLAG:209 >= 2
				台詞 = 「…………저기 있지. 나도 이래봬도 한가하지가 않아요」/「……이러면 화낸다?」
				CALL SPTALK, 0, "怒り", 14, @"%台詞%",1
				TFLAG:209 = 4
			ELSE
				{
				台詞 = 「관두려고? ……뭐, 상관없지만」
						/「…………저기 있지. 괜히 오지랖 떠는 걸지도 모르겠는데」
						/「……만약 돈 아까워서 그런 거면」
						/「여기서 발품깨나 팔아야하지만 온천이 있으니 거기 가보지그래?」
				}
				CALL SPTALK, 0, "通常", 14, @"%台詞%",1
				TFLAG:209 = 2
			ENDIF
			RETURN -1
		ELSE
			GOTO LOOP_hitozato
		ENDIF
	ENDIF
ELSEIF PLACE_SENTO(CFLAG:MASTER:현재위치) == 9
	LOCAL = 0
	;접수대를 화나게 해 버렸을 경우
	IF TFLAG:211 == 4
		PRINTFORML 접수대 쪽에서 날선 시선이 날아오고 있다……
		PRINTFORML 다른 날에 다시 오는 편이 좋을 것 같다……
		RETURN -1
	;접수대 요괴 통상 운행
	ELSE
		;처음으로 구 지옥 온천에서 입욕 명령을 선택한 경우. 주위를 돌린 후 뉴 플랜 개방
		IF !STRCOUNT(CSTR:0:0, "지옥온천/")
			CSTR:0:0 = %CSTR:0:0%지옥온천/
			PRINTL 「いらっしゃいましぇだぎゃー！」
			PRINTL 「おんやぁー！　珍しいぎゃ、人間がこげんにゃ所ににゃーの用だぎゃ？」
			PRINTFORMW  %CALLNAME:PLAYER%は番台の妖怪に入浴したいことを告げた
			PRINTL 「にゃーぎゃて？……ふん……ふん」
			PRINTL 「……にゃーのにゃーの、お客しゃまだったぎゃ！」
			IF !FLAG:주회수
				PRINTL 「やけんど、よおーこぎゃな所まで来ただぎゃ！　あんしゃん、変わりモンだぎゃねー」
			ELSE
				PRINTL
				PRINTL 「そんにゃら、あんしゃん…ぐっーどてゃーみんぐぎゃ！」
				PRINTL 「きょーはぎゃーが考ギャーた『にゅーぷらん』とーとーお披露目の日なんだぎゃ！」
				PRINTL 「きれーどころのメスっこをてゃーくしゃん揃えて」
				PRINTW 「お客しゃまぎゃ、てゃーっぷり金を落っことすの、お待ちしとったぎゃ！」
				PRINTL
				PRINTL 「ほれっ、ほれっ！　みゃよってにゃーで、しゃっしゃと入るぎゃ！」
				PRINTFORMW 番台の妖怪は、げっへっへと厭らしい笑みを浮かべ、%CALLNAME:PLAYER%を急き立ててくる……
				GOTO SKIP
			ENDIF
		;돈 부족했다 이벤트를 보고 있다
		ELSEIF TFLAG:211 == 3
			PRINTL 「돈 없는 놈은 상대하기 싫타. 돈을 두둑히 얹으면 손님 나리로 대해야쥐!」
		;그만둔다를 선택했지만 역시 들어가고 싶어졌다
		ELSEIF TFLAG:211 == 2
			PRINTL 「모―처럼 요런 데까지 와놓고 온천에나 가겠다니 평생의 6할은 손해 본다야!」
		ELSE
			PRINTL 「어서 오십시여다―!」
			; ;처음으로 옛지옥온천에서 입욕 커맨드를 선택했을 경우
			; IF TFLAG:211 == 0 && TFLAG:212 == 0 && CFLAG:401 == 0
			; 	PRINTL 「잉야―! 웬 일이대야. 인간이 요기까지 웬 용무디야?」
			; 	PRINTFORMW  %조교자는% 접수대를 보는 요괴에 입욕하고 싶다는 뜻을 전했다
			; 	PRINTL 「무에라―? ……흠. ……흠」
			; 	PRINTL 「……뭐꼬 뭐꼬, 손님이었남!」
			; 	PRINTL 「근댜 용케도 이런 데까지 다 왔네! 댁도 별종이댜―」
			;ENDIF
		ENDIF
		;それ以外
		PRINTL 「그럼, 받아둘 건 받아두겠다야―」
		;옛지옥온천입탕회수가 통산 15회 이상 나와 아직에 -등응을 한번도 선택하고 있지 않다
		; IF CFLAG:401 >= 15 && CFLAG:402 == 0
		; 	PRINTL 「댁한테는 두둑하게 벌어재꼈다야!」
		; 	PRINTL 「더더 벌어재껴야지! 돈! 돈!! 돈!!! 돈을 원한댜―!」
		; 	PRINTL 「하니 돈 원하니까, 나가 생각한 뉴 플랜이 있다야!」
		; 	PRINTFORMW  접수대의 요괴는 %CALLNAME:PLAYER%에게 그렇게 말하고는, 크힐힐 징그러운 웃음을 내며 얼른! 얼른! 하고 %조교자를% 재촉해댔다……
		; ELSE
		PRINTL 「이맨치 다 주라!」
		PRINTFORML 접수대의 요괴는, 바로 옆에 놓여 있던 메모 같은 것을 손가락으로 가리키고 얼른! 얼른! 하고 %조교자를% 재촉해댔다……
		$SKIP
		DRAWLINE
		PRINTL [1] \1000 내고 입욕한다
		;뉴 플랜 선택사항
		SIF FLAG:주회수
			PRINTFORML [2] \\10000払って%\@ STRCOUNT(CSTR:0:0,"거품목욕") ? お風呂を借りる # 『にゅーぷらん』を試してみる \@%
		PRINTL [0] 그만둔다
		$LOOP_titei
		INPUT
		SELECTCASE RESULT
			CASE 0
				;番台ブチギレ
				IF TFLAG:211 >= 2
					PRINTL 「んがー！！　んがー！！　んがー！！」
					PRINTL 「金を落としゃん奴に構ってるヒマはにゃーだぎゃー！！」
					TFLAG:211 = 4
				ELSE
					PRINTL 「んあー、入らないんだったらしゃっしゃとどっか行くぎゃー！」
					PRINTL 「金にならん奴はお客しゃまでもなんでもにゃいぎゃー！」
					TFLAG:211 = 2
				ENDIF
				RETURN -1
			CASE 1
				IF MONEY < 1000
					PRINTW  접수대의 요괴는 열심히 금액이 맞는지 아닌지 세면서 확인하고 있다……
					PRINTW 「…………」
					PRINTW 「이 양반 너무하다야―! 돈 모자란데 참 유들유들하게도 내겠단 소리를 다 했대!」
					;접수대 빡침
					IF TFLAG:211 >= 2
						PRINTL 「우가―!! 우가―!! 우가―!!」
						PRINTL 「돈을 안 낸 놈이랑 어울릴 짬은 없대야―!!」
						TFLAG:211 = 4
					ELSE
						PRINTL 「이 양반, 여기까지 와놓고 대체 뭐하러 온겨―!!」
						PRINTL 「날 놀리러 온 기야―?!」
						TFLAG:211 = 3
					ENDIF
					RETURN -1
				ELSE
					MONEY -= 1000
					PRINTW  접수대의 요괴는 열심히 금액이 맞는지 아닌지 세면서 확인하고 있다……
					PRINTL 「읍쌰, 편히 들어갔다 나온나―!」
					IF TARGET > 0 && CFLAG:TARGET:6 > 0 && !CFLAG:TARGET:수면 && TALENT:TARGET:성별 != 2
						PRINTL (크힐힐, 암컷 아도 같이 데려오다니 좋은 놈이다야)
						PRINTL (여기선 나으 슈퍼 테크니크를 구사해 마음껏 저 암컷 아를 눈으로 범해줘야지―!)
						PRINTFORMW %조교자는% %타겟과% 함께 탈의실로 향했다
						PRINTFORMW %타겟은% %조교자가% 보내는 시선에 부끄러운 내색이다……
						회복전체력2 = BASE:TARGET:체력
						회복전기력2 = BASE:TARGET:기력
						CALL ODEKAKE_OFURO(TARGET,2)
						IF CHK_DATENOW(CFLAG:TARGET:데이트중)
							;붉은실은 KR판 고유기능 또는 구잔재
							CALL 붉은실발동
							EXP:MASTER:데이트경험 ++
							EXP:TARGET:데이트경험 ++
						ENDIF
						SOURCE:TARGET:노출 += 300 + (ABL:TARGET:친밀 * 15)
						회복후체력2 = BASE:TARGET:체력
						회복후기력2 = BASE:TARGET:기력
					ENDIF
					$OFURO
					CALL ODEKAKE_OFURO(MASTER,2)
					DRAWLINE
					PRINTW …
					PRINTW ……
					PRINTW …………
					IF TARGET > 0 && CFLAG:TARGET:6 > 0 && !CFLAG:TARGET:수면
						PRINTFORMW %조교자와% %타겟은% 둘이 사이좋게 온천에서 편히 쉬었다
					ELSE
						PRINTFORMW %조교자는% \@ LOCAL ? 혼자 쓸쓸하게 개인실의 # \@ 온천에서 편히 쉬었다
					ENDIF
					PRINTW …………
					PRINTW ……
					PRINTW …
					;옛지옥온천은 30분 고정
					TIME += 30
					;旧地獄温泉総入湯回数はフラグごとオミット
					;옛지옥온천시한입탕회수+1
					TFLAG:212 += 1
					;옛지옥온천플래그를 1로 설정
					TFLAG:211 = 1
					PRINTL 이곳의 탕으로도 술을 만들 수 있을지 모른다……
					PRINTL 물을 길어 돌아가겠습니까?
					PRINTL [0] 아니오　[1] 네
					INPUT
					IF RESULT
						VAR_WATER = 지옥 온천의 물
						PRINTFORML %조사처리(VAR_WATER,"를")% 길었다
						IF MAIN_MAP != 9
							PRINTL 가진 상태로 걷기는 힘들기에 귀가합니다
							CALL 외출처로부터귀가
						ENDIF
					ENDIF
					RETURN 1
				ENDIF
			CASE 2
				SIF !FLAG:주회수
					GOTO LOOP_titei
				IF FLAG:생활능력무
					PRINTL 「おみゃーしゃん…手足も声も震えとるぎゃ」
					PRINTW 「やめとけやめとけ。こーんな意気地なし、メスっこも呆れてみゃうぎゃー」
					CLEARLINE 2
					GOTO LOOP_titei
				ELSEIF FLAG:데이트상대
					PRINTL 「おみゃーしゃん、今はやめたほーがいーんでにゃーぎゃ？」
					PRINTW 「隣の娘っこ、えっれぇー顔してにらんでくるぎゃ…」
					CLEARLINE 2
					GOTO LOOP_titei
				ELSEIF GETBIT(TFLAG:일일일회, 9)
					PRINTL 「……おんやぁ？」
					PRINTW 「わりぃーな、おみゃーしゃん。いみゃ部屋はいっぴゃーだぎゃ」
					CLEARLINE 2
					GOTO LOOP_titei
				ELSEIF (TARGET > 0 && CFLAG:TARGET:태도 > 0 && !CFLAG:TARGET:수면) || CFLAG:MASTER:동행
					PRINTL 「わりぃーな、おみゃーしゃん」
					PRINTW 「このぷらんは、ひとりよーなんだぎゃ！」
					CLEARLINE 2
					GOTO LOOP_titei
				ENDIF
				CALL INVITE_NEWPLAN
				SIF RESULT < 2
					RETURN RESULT
				LOCAL = 1
				GOTO OFURO
			CASEELSE
				CLEARLINE 1
				GOTO LOOP_titei
		ENDSELECT
	ENDIF
ENDIF
회복후체력1 = BASE:MASTER:체력
회복후기력1 = BASE:MASTER:기력
; DRAWLINE
; PRINTFORML 체력+{ABS(회복후체력1 - 회복전체력1)}(%CALLNAME:MASTER%)
; PRINTFORML 기력+{ABS(회복후기력1 - 회복전기력1)}(%CALLNAME:MASTER%)
IF TARGET
	; PRINTFORML 체력+{ABS(회복후체력2 - 회복전체력2)}(%CALLNAME:TARGET%)
	; PRINTFORML 기력+{ABS(회복후기력2 - 회복전기력2)}(%CALLNAME:TARGET%)
ENDIF
RETURN 1

;목욕탕
@COM_ABLE432
;이동 실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(432)
	RETURN RESULT
;정지 중에는 불가
SIF FLAG:70 == 1
	RETURN 0
;수면중
SIF CFLAG:수면
	RETURN 0
;동침중
SIF CFLAG:동침중
	RETURN 0
;욕실이 있는 장소 이외는 불가
SIF !PLACE_SENTO(CFLAG:MASTER:현재위치)
	RETURN 0
;物陰
SIF FLAG:잠복
	RETURN 0
SIF CFLAG:우후후 == 2
	RETURN 0
;대절하고 있다면 필요는 없다
SIF 욕탕대절(DAY)
	RETURN 0
RETURN 1

@PLACE_SENTO(ARG)
#FUNCTION
;마을
IF ARG == GET_MAP_REPLACEMENT(223)
	RETURNF 2
;지저
ELSEIF ARG == GET_MAP_REPLACEMENT(934)
	RETURNF 9
ELSE
	RETURNF 0
ENDIF

@ODEKAKE_OFURO(ARG,ARG:1)
;ARG=1 마을　ARG=2 지저 =3풀장
RESET_STAIN ARG
STAIN:ARG:4 = 0
CFLAG:ARG:질내사정 = 0
CFLAG:ARG:애널사정 = 0
CFLAG:ARG:구내정액 = 0
CFLAG:ARG:안면정액 = 0
CFLAG:ARG:손에정액 = 0
CFLAG:ARG:목욕탕 = MIN(CFLAG:ARG:목욕탕 - 1000,0)
SELECTCASE ARG:1
	CASE 1
		CALL RECOVER_PERMIL(ARG, 200, "체력", 1)
		CALL RECOVER_PERMIL(ARG, 300, "기력", 1)
	CASE 2
		CALL RECOVER_PERMIL(ARG, 300, "체력", 1)
		CALL RECOVER_PERMIL(ARG, 400, "기력", 1)
	CASE 3
		CALL RECOVER_PERMIL(ARG, 60, "체력", 1)
		CALL RECOVER_PERMIL(ARG, 150, "기력", 1)
ENDSELECT
SIF ARG == MASTER
	EX:MASTER:전회입욕시각 = DAY * 1440 + TIME

path: ERB/커맨드관련/COMF/일상계/COMF432 대중목욕탕_t.ERB


code:
;-------------------------------------------------
;제비
;일상계 커맨드, 레벨 1
;-------------------------------------------------
;LOCAL
@COM434
VARSET LOCAL

IF !GETBIT(FLAG:999, 0)

	PRINTFORML 새전함의 구석에 벽보가 있다
	PRINTFORML ┌─────────┐
	PRINTFORML ｜　　　　　　　　　｜
	PRINTFORML ｜　제비　　　　｜
	PRINTFORML ｜　　시작했습니다　｜
	PRINTFORML ｜　　　　　　　　　｜
	PRINTFORML ｜　　　　　　　　　｜
	PRINTFORML ｜　　1일 1회 200엔 ｜
	PRINTFORML ｜　　대금은 이쪽　｜
	PRINTFORML ｜　　　　　　　　　｜
	PRINTFORML └─────────┘
	PRINTFORMW
	PRINTFORMW …
	PRINTFORMW 새전함에 들어갈 수 있으면 되는 것 같지만, 도대체 어디에서 나오는거지?

	SETBIT FLAG:999, 0

ENDIF

IF GETBIT(FLAG:999, 1)
	PRINTFORML 제비는 1일 1회입니다.
	RETURN -1
ENDIF

IF MONEY < 200
	PRINTFORML 지갑을 확인하자 돈이 부족했다.
	RETURN -1
ENDIF

PRINTFORML 제비는 1회 200엔, 어떻게 해?
PRINTFORML [1] 뽑아 본다
PRINTFORML [0] 그만둔다
PRINTFORML
INPUT
SIF !RESULT
	RETURN -1

MONEY -= 200
TIME += 2
SETBIT FLAG:999, 1

SELECTCASE RAND:15
	CASE 0 TO 6
		PRINTL 팡, 팡
		PRINTL 돈을 넣고 손뼉을 쳤다
		PRINTW ……
		PRINTL 팔랑팔랑 무엇인가가 떨어져 내렸다
		PRINTW 손에 들어 보기에, 아무래도 이것이 제비인것 같다
	CASE 7 TO 11
		PRINTL 짤랑짤랑
		PRINTW 돈을 새전함에 집어 넣자……
		PRINTW 새전함에서 제비가 튀어 나왔다
	CASE 12 TO 13
		PRINTW ……
		PRINTW …
		PRINTW 아…있는 그대로 지금 일어난 일을 이야기하지!
		PRINTW 「제비뽑기를 위해 새전을 넣자 그 손에 제비가 쥐여져 있었다」
		PRINTW ㅁ… 무슨 말을 하고 있는지 모르겠어-라고 생각하겠지만 나도 무슨 일이 있었는지 모른다…
		PRINTW 머리가 어떻게든 될 것 같다…
		PRINTW 최면술이라고 초스피드라고 시간정지라고, 그런 싸구려 같은 일은 절대 아냐
		PRINTW 좀 더 무서운 것의 편린을 맛보았다구…
	CASE 14
		PRINTW (콩)
		PRINTL 후두부에 무엇인가가 부딪쳤다
		PRINTL 뒤돌아보자, 발 밑에 무엇인가를 싼 종이가 떨어져 있었다
		PRINTW 열어 보면, 종이는 제비로……
		PRINTW ……제비로 돌을 싸지 말아 주세요
ENDSELECT

PRINTW 받은(?) 제비의 내용을 보았다.
PRINTW …
CALL FORTUNE

;맞아, 캐쉬 배경으로 밤환불 처리
IF GETBIT(FLAG:999, 10)
	PRINTL ……
	PRINTW …

	SELECTCASE RAND:15
		CASE 0 TO 4
			PRINTW 제비의 마지막에 기묘한 문언이 있었다
			PRINTL ┌─·─키리트리센─·─┐
			PRINTL ｜　　　　　　　　　｜
			PRINTL ｜　환상향 공통　　　｜
			PRINTL ｜　　　　　상품권　｜
			PRINTL ｜　　　　　　　　　｜
			PRINTL ｜　　　　　 200엔 ｜
			PRINTL ｜　　　　　　　　　｜
			PRINTL ｜　거스름돈도 나옵니다　｜
			PRINTL ｜　　사용 기한 없음　｜
			PRINTL └─────────┘
			PRINTW 이것은 이른바 하나의 상품권이라고 생각해도 좋은 것일까?
		CASE 5 TO 6
			PRINTL 휙
			PRINTW 바람을 가르는 소리를 들은 당신은 순식간에 몸을 숙였다
			PRINTL 트스트슥
			PRINTW 무엇인가가 박힌 것 같은 소리가 난 벽을 보자, 거기에는 아까 넣었던 새전이 박혀 있었다
			PRINTL 저것, 눈치채지 않았으면 꽂혔어?
		CASE 7 TO 11
			PRINTL 짤랑짤랑♪    ○삼
			PRINTW 새전함에서 조금 전 넣었을 새전이 튀어 나왔다
		CASE 12 TO 13
			PRINTW ……
			PRINTW …
			PRINTW 아…있는 그대로 지금 일어난 일을 이야기하군!
			PRINTW 「제비를 다 읽었다고 생각했더니 조금 전 넣었을 새전이 손 속에 돌아오고 있었다」
			PRINTW ㅁ… 무슨 말을 하고 있는지 모르겠어-라고 생각하지만 나도 무엇을 하셨는지 몰랐다…
			PRINTW 머리가 어떻게든 될 것 같았다…
			PRINTW 순간이동이라고 인과 역전이라고 시간정지라고, 그런 체치인 것자 결코
			PRINTW 좀 더 무서운 것의 편린을 맛보았다구…
		CASE 14
			PRINTW (코트코특)
			PRINTL 후두부에 무엇인가가 부딪쳤다
			PRINTL 뒤돌아보자, 발 밑에 조금 전 넣었을 새전이 떨어져 있었다
			PRINTW 이 돈으로 내일도 뽑으러 오라고 말하는 것인 것일까?
	ENDSELECT

	MONEY += 200
	CLEARBIT FLAG:999, 10
ENDIF

RETURN 1

;-------------------------------------------------
;실행 판정
;-------------------------------------------------
;제비
@COM_ABLE434
;일괄관리
SIF GLOBAL_COMABLE(434)
	RETURN RESULT
SIF !TFLAG:100
	RETURN 0
;기력 0에서는 불가
SIF BASE:MASTER:기력 <= 0
	RETURN 0
;새전함(제비뽑기도 겸하고 있다)가 아니면 못뽑는다
SIF !OMIKUJI_SPOT(CFLAG:MASTER:현재위치)
	RETURN 0
SIF CFLAG:MASTER:현재위치 != P3새전함
	RETURN 0
;정지 중에는 불가
SIF FLAG:70 == 1
	RETURN 0
RETURN 1

@OMIKUJI_SPOT(ARG)
#FUNCTION
;하쿠레이신사의 새전함
SIF ARG == GET_MAP_REPLACEMENT(3)
	RETURNF 1
RETURNF 0

path: ERB/커맨드관련/COMF/일상계/COMF434 운세뽑기_t.ERB


code:
;-------------------------------------------------
;모리야복권
;일상계 커맨드, 레벨 1
;-------------------------------------------------
;모리야가 t……복권
;LOCAL
@COM435
#DIM 가챠횟수
#DIM 카리스마지불
#DIMS 台詞
#DIMS 表情
VARSET LOCAL
가챠횟수 = 0
IF !BETWEENTIME(600,1200)
	PRINTFORML 닫혀 있다……
	PRINTFORMW 영업 시간이 아닌 것 같다
	RETURN -1
ENDIF
IF !GETBIT(FLAG:999, 2)
	PRINTFORMW 경내 한구석에 벽보가 붙어 있다
	PRINTFORML ┌─────────────┐
	PRINTFORML ｜　　　　　　　　　　　　　 ｜
	PRINTFORML ｜　　모리야 복권　　　　　　｜
	PRINTFORML ｜　　　　　절찬 판매중!　　 ｜
	PRINTFORML ｜　　　　　　　　　　　　　 ｜
	PRINTFORML ｜　　　　　　　　　　　　　 ｜
	PRINTFORML ｜　　　　　　　　　　　　　 ｜
	PRINTFORML ｜　　이익은 보증합니다　　　｜
	PRINTFORML ｜　　　　　　　　　　　　　 ｜
	PRINTFORML ｜　　　　　　　모리야 신사　｜
	PRINTFORML └─────────────┘
	PRINTFORMW
	PRINTFORML 도우미 노릇하러 와 있을 터인 무녀복(하카마는 녹색, 당연합죠) 소녀가 상냥하게 웃으며 이쪽을 보고 있다
	PRINTFORMW 그리고 소녀 옆에는 「시주함」이라고 적힌 상자가 놓여 있다
	PRINTFORML …
	PRINTFORML ……
	PRINTFORMW 뭐지? 이 싫은 예감밖에 들지 않을 만큼 싫은 예감은…

	SETBIT FLAG:999, 2
	;최초의 복권 세트를 작성
	CALL FISHER_YATES_SHAFFLE(300)
	ARRAYCOPY "SHAFFLE_ARRAY", "MORIYA_BOX"
ENDIF

IF FLAG:모리야복권데이트상대
	CALL SPTALK, 0, @"通常", 15, @"「복권이나 뽑을 때가 아니잖아요」/「신과의 데이트권이라고요. 1분 1초라도 헛되이 쓰면 안 되죠!」", 1
	RETURN -1
ENDIF
IF FLAG:모리야데이트권 && !FLAG:데이트상대
	CALL ASK_YN(@"%조사처리(CALLNAME:(FLAG:모리야데이트권),"과")% 데이트권을 쓴다", "제비를 뽑는다")
	IF !RESULT
		CALL DATE_RIGHT
		TIME += 3
		RETURN 1
	ENDIF
ENDIF
IF MONEY < 3000 && MONEY:2 < 20
	PRINTFORMW 지갑을 확인했더니 돈이 부족했다
	PRINTFORMW 자, 시주하기 위해서 돈을 모아오세요
	RETURN -1
ENDIF

CALL SPTALK, 0, @"笑顔", 15, @"「모리야 복권은 1회 3000엔이나 20카리스마, 혹은 모리야 부적 5장입니다」", 1
PRINTL 어떻게 하겠습니까?
CALL ASK_M("위험이 위태로울 것 같으니 그만둔다", 1,"\\3000으로 뽑아본다", MONEY >= 3000, "20CM로 뽑아본다", MONEY:2 >= 20, "부적 5장으로 뽑는다", ITEM:131>= 5, "\\27000으로 10연 가챠", MONEY >= 27000, "180CM로 10연 가챠", MONEY:2 >= 180, "부적 50장으로 10연 가챠", ITEM:131 >= 50)
SELECTCASE RESULT
	CASE 0
		IF 顔絵付きメッセージ
			IF !RAND:8
				台詞 = 「えー、ひやかしですか」/「……祟られますよ？」
				表情 = 怒り
			ELSE
				台詞 = 「%TEXTR("……危なくないですよ？/ご利益あるんですよー？/うーん、次はお願いしますね")%」
				表情 = 通常
			ENDIF
			CALL SPTALK, 0, @"%表情%", 15, @"%台詞%", 1
		ENDIF
		RETURN -1
	CASE 1
		MONEY -= 3000
	CASE 2
		MONEY:2 -= 20
	CASE 3
		ITEM:131 -= 5
	CASE 4
		가챠횟수 = 9
		MONEY -= 27000
	CASE 5
		가챠횟수 = 9
		MONEY:2 -= 180
	CASE 6
		가챠횟수 = 9
		ITEM:131 -= 50
ENDSELECT

IF (RESULT == 1 || RESULT == 2) && ITEM:토부「개운대문」
	PRINTFORML 토부 「개운대문」을 사용할래?
	CALL ASK_YN
	IF !RESULT
		ITEM:토부「개운대문」 --
		TFLAG:194 = 5
	ENDIF
ENDIF

$RENZOKU

IF GETBIT(FLAG:999, 3)
	IF MORIYA_BOX:0 == -1
		PRINTFORMW 현재의 복권 상자 내용물을 다 뽑았기에 새 상자를 준비합니다
		CALL FISHER_YATES_SHAFFLE(300)
		ARRAYCOPY "SHAFFLE_ARRAY", "MORIYA_BOX"
	ELSE
		PRINTFORML 이 복권 상자에서는 이미 특상이 나왔습니다
		PRINTFORML 이 복권 상자를 폐기하고 새 복권을 뽑겠습니까?
		PRINTFORML [1] 다음 상자를 받는다
		PRINTFORML [0] 아직 이 상자를 더 뽑는다
		$LOOP_INPUT_2
		INPUT
		SELECTCASE RESULT
			CASE 0
				PRINTW 그럼 이 상자에서 뽑겠습니다
			CASE 1
				PRINTW 그럼 교환할게요
				CLEARBIT FLAG:999, 3
				CALL FISHER_YATES_SHAFFLE(300)
				ARRAYCOPY "SHAFFLE_ARRAY", "MORIYA_BOX"
			CASEELSE
				GOTO LOOP_INPUT_2
		ENDSELECT
	ENDIF
ENDIF

PRINTL 돈을 시주함에 넣고
PRINTL 상자 속에서 복권을 한 장 뽑아
PRINTW 접수원 소녀에게 건넸다.
PRINTL ……
PRINTL …
CALL FOTUNE_MORIYA
TIME += 2
IF 가챠횟수 > 0
	PRINTFORMW
	가챠횟수 --
	GOTO RENZOKU
ENDIF

SIF 顔絵付きメッセージ
	CALL SPTALK, 0, @"笑顔", 15, @"「ありがとうございましたー」", 1
RETURN 1

;모리야복권
@COM_ABLE435
;일괄관리
SIF GLOBAL_COMABLE(435)
	RETURN RESULT
SIF !TFLAG:100
	RETURN 0
;정지중에는 불가
SIF FLAG:70 == 1
	RETURN 0
;기력 0일 때는 불가
SIF BASE:MASTER:기력 <= 0
	RETURN 0
SIF !MORIYA_OMIKUJI(CFLAG:MASTER:현재위치)
	RETURN 0
RETURN 1

@MORIYA_OMIKUJI(ARG)
#FUNCTION
;모리야신사의 사무소
SIF ARG == GET_MAP_REPLACEMENT(813)
	RETURNF 1
RETURNF 0

path: ERB/커맨드관련/COMF/일상계/COMF435 모리야복권_t.ERB


code:
;-------------------------------------------------
;독서
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM436
#DIM READING_EXP
READING_EXP = 1

PRINTL 무엇을 읽자?
CALL ASK_M("문학", 1, "실용서", 1, "야한 책", 1, "캔슬", 1)
IF RESULT == 0
	SELECTCASE RAND:10
		;인살
		CASE 0
			TFLAG:193 = 1
		;실패
		CASE 1 TO 3
			TFLAG:193 = 2
		;문학
		CASEELSE
			TFLAG:193 = 3
	ENDSELECT
ELSEIF RESULT == 1
	SELECTCASE RAND:10
		;실패
		CASE 0 TO 2
			TFLAG:193 = 4
		;실용
		CASEELSE
			TFLAG:193 = 5
	ENDSELECT
ELSEIF RESULT == 2
	SELECTCASE RAND:9
		;우스이타카이혼
		CASE 0 TO 2
			TFLAG:193 = 6
		;보건 체육
		CASE 3 TO 5
			TFLAG:193 = 7
		;카마수트라
		CASE 6 TO 8
			TFLAG:193 = 8
		;위험한 책
;		CASEELSE
;		IF !TALENT:MASTER:금단의지식
;			TFLAG:193 = 9
;		ELSE
;			GOTO LOOP
;		ENDIF
	ENDSELECT
ELSEIF RESULT == 3
	RETURN -1
ENDIF

IF TARGET == 54 && CFLAG:325 == 5
	IF TALENT:연모
		PRINTFORM 파츄리와 함께 독서를 즐기기로 했다
	ELSE
		PRINTFORM 파츄리의 독서가 끝날 때까지 이쪽도 독서로 시간을 보내기로 했다
	ENDIF
ENDIF
PRINTFORM %마스터는% 책장에 있었다
SELECTCASE TFLAG:193
	CASE 1
		PRINT 「닌자 슬레이어-」
	CASE 2 TO 3
		PRINT 문예서
	CASE 4 TO 5
		PRINT 실용서
	CASE 6
		PRINT 싱겁고 높은 책
	CASE 7
		PRINT 보건 체육의 책
	CASE 8
		PRINT 「카마·수트라」
;	CASE 9
;		PRINT 타이틀이 없는 가죽 장정의 습기를 띤 책
ENDSELECT
PRINTFORML (을)를 읽어 보았다

;3분의 1으로 추가 이벤트
SIF !RAND:3 && TARGET == 54
	TFLAG:194 = 1
;TARGET가 무지하고 H인 독서 또한 MASTER가 TARGET보다 교양이 높게 TARGET의 교양이 2이상 또한 5분의 1
SIF !RAND:5 && TALENT:TARGET:무지 && TFLAG:193 >= 6 && TFLAG:193 <= 8 && ABL:MASTER:교양 > ABL:교양 && ABL:교양 >= 2
	TFLAG:194 = 2

SELECTCASE TFLAG:193
	CASE 1
		EXP:MASTER:전투경험 += 5
	CASE 3
	;문학
		EXP:MASTER:학습경험 += READING_EXP
	CASE 5
	;실용
		SELECTCASE RAND:7
			CASE 0
				EXP:MASTER:회화경험 += READING_EXP
			CASE 1
				EXP:MASTER:촬영경험 += READING_EXP
			CASE 2
				EXP:MASTER:요리경험 += READING_EXP
			CASE 3
				EXP:MASTER:낚시경험 += READING_EXP
			CASE 4
				EXP:MASTER:채집경험 += READING_EXP
			CASE 5
				EXP:MASTER:조제경험 += READING_EXP
			CASEELSE
				EXP:MASTER:벌채경험 += READING_EXP
		ENDSELECT
	CASE 6
		CALL RECOVER(MASTER, 100,"정력")
		CALL RECOVER(MASTER, 100,"발기")
ENDSELECT

IF TARGET > 0 && CFLAG:행동 != 5
	;고정으로 획득하는 소스
	SOURCE:환락 = 200
	;신뢰
	TFLAG:98 = 3

	;ABL:순종을 본다
	IF ABL:순종 <= 1
		SOURCE:환락 += (ABL:순종 * 80)
	ELSEIF ABL:순종 <= 3
		SOURCE:환락 += 300 + (ABL:순종 * 80)
	ELSEIF ABL:순종 <= 5
		SOURCE:환락 += 700 + (ABL:순종 * 80)
	ELSEIF ABL:순종 <= 8
		SOURCE:환락 += 950 + (ABL:순종 * 100)
	ELSEIF ABL:순종 <= 11
		SOURCE:환락 += 1200 + (ABL:순종 * 90)
	ELSE
		SOURCE:환락 += 2000 + (ABL:순종 * 50)
	ENDIF

	;호감 도를 본다
	IF CFLAG:2 <= 500
		SOURCE:환락 += CFLAG:2 * 2
	ELSEIF CFLAG:2 <= 5000
		SOURCE:환락 += 1000 + (CFLAG:2 - 500) / 2
	ELSE
		SOURCE:환락 += 5000 + (CFLAG:2 - 5000) / 3
	ENDIF
	SIF SOURCE:환락 < 0
		SOURCE:환락 = 0
ENDIF

DOWNBASE:MASTER:체력 = 50
DOWNBASE:MASTER:기력 = 200
;賢者タイムは読書がはかどる
IF IS_WISEMAN()
	PRINTFORML 번뇌가 사라진 덕분에, 효율적으로 학습이 진행되었다
	TIME += 45
ELSE
	TIME += 60
ENDIF
RETURN 1

;-------------------------------------------------
;실행 가능 판정
;-------------------------------------------------
;독서
@COM_ABLE436
;실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(436)
	RETURN RESULT
;데이트 도중
SIF TFLAG:데이트도중
	RETURN 0
;동침중
SIF CFLAG:MASTER:동침중
	RETURN 0
;우후후 안도 안 돼
SIF CFLAG:MASTER:우후후
	RETURN 0
;기력 0에서는 불가
SIF BASE:MASTER:기력 <= 0
	RETURN 0
;도서관
SIF !IS_LIBRARY(CFLAG:MASTER:현재위치)
	RETURN 0
;수면중
SIF CFLAG:수면
	RETURN 0
;시간정지중
SIF FLAG:70
	RETURN 0
RETURN 1

;장서 열람 판정・개 @하견패치
;되돌림값은 PLACE_ID로 할것
;MASTER의 현재위치와 상관 없이 판정 가능하게
;PERMISSION이 참이면 허가 프리
@IS_LIBRARY(PLACE_ID, PERMISSION)
#FUNCTION
#DIM PLACE_ID
#DIM PERMISSION
;밖에 있을 경우 거점용 PLACE_ID로 전환
IF !IN_HOME(PLACE_ID)
	SELECTCASE PLACE_ID
		CASE 몽환유적
			PLACE_ID = P49몽환유적・연구실
		CASE 명련사경내
			PLACE_ID = P105경당
		CASE 신령묘도장
			PLACE_ID = P126도장
		CASE 상가거리
			PLACE_ID = P213스즈나안
		CASE 서당
			PLACE_ID = P222서당
		CASE 주택가
			PLACE_ID = P221히에다저택
		CASE 대도서관
			PLACE_ID = P310도서관
		CASE 영원정안채
			PLACE_ID = P414카구야방
		CASE 키리사메마법점
			PLACE_ID = P513마리사댁・연구실
		CASE 인형양관
			PLACE_ID = P524인형저택・연구실
		CASE 마요이가
			PLACE_ID = P633유카리의방
		CASE 백옥루
			PLACE_ID = P623유유코의방
		CASE 선인의저택
			PLACE_ID = P724선인저택・서재
		CASE 천계
			PLACE_ID = P842히나나위저택헛간
		CASE 지령전
			PLACE_ID = P920서재
		CASE 와타츠키정
			PLACE_ID = P1043서재
		CASE 고요의바다
			PLACE_ID = P1065헛간
		CASEELSE
			RETURNF 0
	ENDSELECT
ENDIF
;PLACE_IDを返す
SELECTCASE PLACE_ID
	CASE P48몽환유적・제1자료실, P49몽환유적・연구실, P50몽환유적・제2자료실
		RETURNF PLACE_ID
	CASE P105경당, P126도장
		RETURNF PLACE_ID
	CASE P213스즈나안, P222서당
		RETURNF PLACE_ID
	CASE P221히에다저택
		SIF PERMISSION
			RETURNF PLACE_ID
		;역극/사모/연모で開放
		SIF FLAG:역극 == [[아큐]]
			RETURNF PLACE_ID
		SIF TALENT:[[아큐]]:연모 || TALENT:[[아큐]]:사모
			RETURNF PLACE_ID
	CASE P224케이네댁
		SIF PERMISSION
			RETURNF PLACE_ID
		;역극/신뢰도30以上동실で許可
		SIF FLAG:역극 == [[케이네]]
			RETURNF PLACE_ID
		SIF CFLAG:[[케이네]]:동실 && CFLAG:[[케이네]]:신뢰도 >= 30
			RETURNF PLACE_ID
	CASE P310도서관
		RETURNF PLACE_ID
	CASE P414카구야방
		SIF PERMISSION
			RETURNF PLACE_ID
		;역극/사모以上동실で許可
		SIF GROUPMATCH(FLAG:역극, [[우동게]], [[테위]], [[카구야]], [[에이린]])
			RETURNF PLACE_ID
		SIF CFLAG:[[카구야]]:동실 && (TALENT:[[카구야]]:연모 || TALENT:[[카구야]]:사모)
			RETURNF PLACE_ID
	CASE P424헛간, P427창고
		SIF PERMISSION
			RETURNF PLACE_ID
		;역극/동실で許可
		SIF GROUPMATCH(FLAG:역극, [[우동게]], [[테위]], [[카구야]], [[에이린]])
			RETURNF PLACE_ID
		SIF CFLAG:[[우동게]]:동실 || CFLAG:[[테위]]:동실 || CFLAG:[[카구야]]:동실 || CFLAG:[[에이린]]:동실
			RETURNF PLACE_ID
	CASE P513마리사댁・연구실
		SIF PERMISSION
			RETURNF PLACE_ID
		;역극/신뢰도30以上동실で許可
		SIF FLAG:역극 == [[마리사]]
			RETURNF PLACE_ID
		SIF CFLAG:[[마리사]]:동실 && CFLAG:[[마리사]]:신뢰도 >= 30
			RETURNF PLACE_ID
	CASE P524인형저택・연구실
		SIF PERMISSION
			RETURNF PLACE_ID
		;역극/住んでる/사모以上동실で許可
		SIF GROUPMATCH(FLAG:역극, [[앨리스]], [[신키]])
			RETURNF PLACE_ID
		SIF INRANGE(CFLAG:MASTER:초기위치, 521, 531)
			RETURNF PLACE_ID
		SIF (CFLAG:[[앨리스]]:동실 || CFLAG:[[신키]]:동실) && (TALENT:[[앨리스]]:연모 || TALENT:[[앨리스]]:사모 || TALENT:[[신키]]:연모 || TALENT:[[신키]]:사모)
			RETURNF PLACE_ID
	CASE P623유유코의방
		SIF PERMISSION
			RETURNF PLACE_ID
		;역극/사모以上동실で許可
		SIF GROUPMATCH(FLAG:역극, [[요우무]], [[유유코]])
			RETURNF PLACE_ID
		SIF CFLAG:[[유유코]]:동실 && (TALENT:[[유유코]]:연모 || TALENT:[[유유코]]:사모)
			RETURNF PLACE_ID
	CASE P633유카리의방
		SIF PERMISSION
			RETURNF PLACE_ID
		;역극/사모以上동실で許可
		SIF GROUPMATCH(FLAG:역극, [[첸]], [[란]], [[유카리]])
			RETURNF PLACE_ID
		SIF CFLAG:[[유카리]]:동실 && (TALENT:[[유카리]]:연모 || TALENT:[[유카리]]:사모)
			RETURNF PLACE_ID
	CASE P724선인저택・서재
		SIF PERMISSION
			RETURNF PLACE_ID
		;역극/住んでる/사모以上동실で許可
		SIF FLAG:역극 == [[카센]]
			RETURNF PLACE_ID
		SIF INRANGE(CFLAG:MASTER:초기위치, 720, 730)
			RETURNF PLACE_ID
		SIF CFLAG:[[카센]]:동실 && (TALENT:[[카센]]:연모 || TALENT:[[카센]]:사모)
			RETURNF PLACE_ID
	CASE P824화장실
		SIF PERMISSION
			RETURNF PLACE_ID
		;역극/住んでる/동실で許可
		SIF GROUPMATCH(FLAG:역극, [[텐시]], [[이쿠]])
			RETURNF PLACE_ID
		SIF INRANGE(CFLAG:MASTER:초기위치, 834, 842)
			RETURNF PLACE_ID
		SIF CFLAG:[[텐시]]:동실 || CFLAG:[[이쿠]]:동실
			RETURNF PLACE_ID
	CASE P920서재
		SIF PERMISSION
			RETURNF PLACE_ID
		;역극/住んでる/사모以上동실で許可,ただし신뢰도50未満はダメ
		SIF FLAG:역극 == [[사토리]]
			RETURNF PLACE_ID
		SIF CFLAG:[[사토리]]:신뢰도 < 50
			RETURNF 0
		SIF INRANGE(CFLAG:MASTER:초기위치, 902, 926)
			RETURNF PLACE_ID
		SIF CFLAG:[[사토리]]:동실 && (TALENT:[[사토리]]:연모 || TALENT:[[사토리]]:사모)
			RETURNF PLACE_ID
	CASE P1043서재
		SIF PERMISSION
			RETURNF PLACE_ID
		;역극/住んでるで許可
		SIF GROUPMATCH(FLAG:역극, [[레이센]], [[요리히메]], [[토요히메]])
			RETURNF PLACE_ID
		SIF INRANGE(CFLAG:MASTER:초기위치, 1020, 1049)
			RETURNF PLACE_ID
	CASE P1050도레미댁・거실
		SIF PERMISSION
			RETURNF PLACE_ID
		;역극/住んでる/사모以上동실で許可,ただし신뢰도50未満はダメ
		SIF FLAG:역극 == [[순호]]
			RETURNF PLACE_ID
		SIF CFLAG:[[순호]]:신뢰도 < 50
			RETURNF 0
		SIF INRANGE(CFLAG:MASTER:초기위치, 1060, 1072)
			RETURNF PLACE_ID
		SIF CFLAG:[[순호]]:동실 && (TALENT:[[순호]]:연모 || TALENT:[[순호]]:사모)
			RETURNF PLACE_ID
	;저택 이층 서재, KR판 오리지널
	CASE 1422
		RETURNF PLACE_ID
ENDSELECT
RETURNF 0

;옛 함수도 일단 남겨둠
[SKIPSTART]

;장서 열람 판정
;
;거점/산책 MAP 양쪽 모두 사용할 수 있습니다
;MASTER의 현재위치를 던져 붐비면(자) 자료를 보여 줄지 어떨지를 판정
;반환값은 0혹은 「거점 MAP의 장소 ID」입니다
;산책 맵으로 어디어디(에)에서 자료 본 따라 주는 용
;PLACE_ID와 MASTER의 현재위치가 다른 경우는 상정하고 있습니다
;즉, 하쿠레이 신사에 있을 때에 아큐의 저택의 판정하면 안 돼
@IS_LIBRARY(PLACE_ID)
#FUNCTION
#DIM PLACE_ID              ;반드시 MASTER의 현재위치를 건네주는 것
#DIM DYNAMIC PLACE_LIBRARY
IF GET_MAPID(PLACE_ID) == MAIN_MAP
	SELECTCASE GET_MAPNAME(GET_MAPID(PLACE_ID))
	CASE "하쿠레이 신사"
	;MAP_하쿠레이 신사 연구 조수를 매일 하고 있었던 탓으로 누구라도 자료 열람할 수 있을 것 같은 이미지
		SIF GROUPMATCH(NAME_FROM_PLACE(PLACE_ID), "몽환유적·제1자료실", "몽환유적·연구실", "몽환유적·제2자료실")
			PLACE_LIBRARY = PLACE_ID
	CASE "명련사"
	;MAP_명련사, 절/도장 모두 부탁하면 자료를 보여 줘그렇게
		SIF GROUPMATCH(NAME_FROM_PLACE(PLACE_ID), "경당", "도장")
			PLACE_LIBRARY = PLACE_ID
	CASE "마을"
	;MAP_마을, 대본소와 개인택
		SIF GROUPMATCH(NAME_FROM_PLACE(PLACE_ID), "스즈나안", "서당", "케이네댁", "아큐의 저택")
			PLACE_LIBRARY = PLACE_ID
	CASE "홍마관"
	;MAP_홍마관 우선 사용 조건이라든지 없기 때문에 소안내
		SIF NAME_FROM_PLACE(PLACE_ID) == "도서관"
			PLACE_LIBRARY = PLACE_ID
	CASE "미혹의 죽림"
	;MAP_미혹의 죽림, 이 맵 특히 도서실적인 것이 없다
		;영원정은 많이 장서가 있을 듯 하는 이미지
		SIF GROUPMATCH(NAME_FROM_PLACE(PLACE_ID), "카구야방", "창고", "창고")
			PLACE_LIBRARY = PLACE_ID
	CASE "마법의 숲"
	;MAP_마법의숲, 마법사들은 자료지비치겠지요
		SIF GROUPMATCH(NAME_FROM_PLACE(PLACE_ID), "마리사댁·연구부가게", "인형의 관·연구실")
			PLACE_LIBRARY = PLACE_ID
	CASE "요괴의 산·산록"
	;MAP_마법의숲, 카센저택만
		SIF NAME_FROM_PLACE(PLACE_ID) == "선인의저택·서재"
			PLACE_LIBRARY = PLACE_ID
	CASE "지저"
	;MAP_지저, 사토리의 서재만
		SIF NAME_FROM_PLACE(PLACE_ID) == "서재"
			PLACE_LIBRARY = PLACE_ID
	CASE "저택"
		;PRINTFORML {PLACE_ID} : %NAME_FROM_PLACE(PLACE_ID)%
		SIF GROUPMATCH(NAME_FROM_PLACE(PLACE_ID), "이층·서재")
			PLACE_LIBRARY = PLACE_ID
	ENDSELECT
ELSE
	SELECTCASE GET_MAPNAME(GET_MAPID(PLACE_ID))
	CASE "하쿠레이 신사"
		SIF STR:(6000 + PLACE_ID / 10) == "몽환유적"
			PLACE_LIBRARY = 49
	CASE "명련사"
		SIF STR:(6000 + PLACE_ID / 10) == "명련사경내"
			PLACE_LIBRARY = 105
		SIF STR:(6000 + PLACE_ID / 10) == "신령묘도장"
			PLACE_LIBRARY = 126
	CASE "인간마을"
		SIF STR:(6000 + PLACE_ID / 10) == "상가거리"
			PLACE_LIBRARY = 213
		SIF STR:(6000 + PLACE_ID / 10) == "서당"
			PLACE_LIBRARY = 222
		SIF STR:(6000 + PLACE_ID / 10) == "주택가"
			PLACE_LIBRARY = 221
	CASE "안개의호수~홍마관"
		SIF STR:(6000 + PLACE_ID / 10) == "대도서관"
			PLACE_LIBRARY = 310
	CASE "미혹의 죽림"
		SIF STR:(6000 + PLACE_ID / 10) == "영원정안채"
			PLACE_LIBRARY = 427
	CASE "마법의 숲"
		SIF STR:(6000 + PLACE_ID / 10) == "키리사메마법점"
			PLACE_LIBRARY = 513
		SIF STR:(6000 + PLACE_ID / 10) == "인형양관"
			PLACE_LIBRARY = 524
	CASE "삼도천~명계"
;		[SKIPSTART]
;		IF STR:(6000 + PLACE_ID / 10) == "마요이가"
;			PLACE_LIBRARY = 630
;		ENDIF
;		IF STR:(6000 + PLACE_ID / 10) == "백옥루"
;			PLACE_LIBRARY = 690
;		ENDIF
;		[SKIPEND]
	CASE "요괴의 산(산록)"
		IF STR:(6000 + PLACE_ID / 10) == "선인의저택"
			PLACE_LIBRARY = 724
		ENDIF
	CASE "요괴의 산(산정)"
;		[SKIPSTART]
;		IF STR:(6000 + PLACE_ID / 10) == "천계"
;			PLACE_LIBRARY = 890
;		ENDIF
;		[SKIPEND]
	CASE "지저"
		IF STR:(6000 + PLACE_ID / 10) == "지령전"
			PLACE_LIBRARY = 920
		ENDIF
	CASE "꿈의 세계~달"
;		[SKIPSTART]
;		IF STR:(6000 + PLACE_ID / 10) == "와타츠키정"
;			PLACE_LIBRARY = 1060
;		ENDIF
;		[SKIPEND]
	ENDSELECT
ENDIF
RETURNF CAN_READ_BOOK_COLLECTION(PLACE_LIBRARY)

;장서 열람 허락 판정
;·반드시 거점 맵의 장소 ID(상세한 지점의 (분)편)를 건네주는 것
;·MASTER가 그 장소에 있는 것이 전제로 처리를 짜고 있습니다
@CAN_READ_BOOK_COLLECTION(PLACE_ID)
#FUNCTION
#DIM PLACE_ID
SELECTCASE PLACE_ID
;몽환유적은 소안내
CASE 48, 49, 50
	RETURNF PLACE_ID
;절과 신령묘도장 소안내
CASE 105, 126
	RETURNF PLACE_ID
;스즈나안와 서당은 소안내
CASE 213, 222
	RETURNF PLACE_ID
;아큐의 저택
;사모/연모로 해방
CASE 221
	SIF !TALENT:80:연모 && !TALENT:80:사모
		RETURNF 0
	RETURNF PLACE_ID
;케이네택
CASE 224
	SIF FLAG:역극 == 67
		RETURNF PLACE_ID
	SIF CFLAG:67:신뢰도 < 30
		RETURNF 0
	SIF CFLAG:67:현재위치 == CFLAG:MASTER:현재위치
		RETURNF PLACE_ID
;도서관은 소안내
CASE 310
	RETURNF PLACE_ID
;카구야 방
CASE 414
	SIF GROUPMATCH(FLAG:역극, 52, 53, 62, 72)
		RETURNF PLACE_ID
	SIF !TALENT:62:연모 && !TALENT:62:사모
		RETURNF 0
	SIF CFLAG:62:현재위치 == CFLAG:MASTER:현재위치
		RETURNF PLACE_ID
;창고/창고의 수색은 느슨하고
;누군가 한사람 동석 하고 있으면 좋아
CASE 424, 427
	SIF GROUPMATCH(FLAG:역극, 52, 53, 62, 72)
		RETURNF PLACE_ID
	SIF GROUPMATCH(CFLAG:MASTER:현재위치, CFLAG:52:현재위치, CFLAG:53:현재위치, CFLAG:62:현재위치, CFLAG:72:현재위치)
		RETURNF PLACE_ID
;마리사 택의 연구실
;다소의 신뢰도로 k
CASE 513
	SIF FLAG:역극 == 11
		RETURNF PLACE_ID
	SIF CFLAG:11:신뢰도 < 30
		RETURNF 0
	SIF CFLAG:11:현재위치 == CFLAG:MASTER:현재위치
		RETURNF PLACE_ID
;인형관의 연구실
CASE 524
	SIF GROUPMATCH(FLAG:역극, 17, 102)
		RETURNF PLACE_ID
	SIF INRANGE(CFLAG:MASTER:초기위치, 521, 531)
		RETURNF PLACE_ID
	SIF !TALENT:17:연모 && !TALENT:17:사모 && !TALENT:102:연모 && !TALENT:102:사모
		RETURNF 0
	SIF GROUPMATCH(CFLAG:MASTER:현재위치, CFLAG:17:현재위치, CFLAG:102:현재위치)
		RETURNF PLACE_ID
;선인 저택의 서재
CASE 724
	SIF FLAG:역극 == 43
		RETURNF PLACE_ID
	SIF INRANGE(CFLAG:MASTER:초기위치, 720, 730)
		RETURNF PLACE_ID
	SIF !TALENT:43:연모 && !TALENT:43:사모
		RETURNF 0
	SIF CFLAG:43:현재위치 == CFLAG:MASTER:현재위치
		RETURNF PLACE_ID
;사토리의 서재
;동거(同居) 해도 신뢰도 50 필요
CASE 920
	SIF FLAG:역극 == 49
		RETURNF PLACE_ID
	SIF CFLAG:49:신뢰도 < 50
		RETURNF 0
	SIF INRANGE(CFLAG:MASTER:초기위치, 902, 926)
		RETURNF PLACE_ID
	SIF !TALENT:49:연모 && !TALENT:49:사모
		RETURNF 0
	SIF CFLAG:49:현재위치 == CFLAG:MASTER:현재위치
		RETURNF PLACE_ID
CASE 1422
	RETURNF PLACE_ID
ENDSELECT
[SKIPEND]

path: ERB/커맨드관련/COMF/일상계/COMF436 독서_t.ERB


code:
;-------------------------------------------------
;기다린다
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM440
DOWNBASE:MASTER:기력 = 50
;SIF FLAG:70 == 1
	;BASE:MASTER:TSP -= 50
;SIF FLAG:70 != 1
TIME += 20
RETURN 1

;기다린다
@COM_ABLE440
;숍 화면에서는 불가
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(440)
	RETURN RESULT
;기력 0에서는 불가
SIF BASE:MASTER:기력 <= 0
	RETURN 0
;우후후중은 불가
SIF CFLAG:우후후
	RETURN 0
;거점외 한편, 벚꽃길의 토리이(실수 10으로 지정), 지장길, 광장, 안개의호수, 죽림입구, 숲의입구, 중유의길, 산록의수해, 구천의폭포, 환상풍혈, 명련테라야마문이 아니면 불가
SIF !IN_HOME(CFLAG:MASTER:현재위치) && NOSAMES(CFLAG:MASTER:현재위치, 10, 지장길, 광장, 안개의호수, 죽림입구, 숲의입구, 중유의길, 산록의수해, 구천의폭포, 환상풍혈, 괴안통로)
	RETURN 0
;거점내는 거점 입구 이외는 불가
SIF IN_HOME(CFLAG:MASTER:현재위치) && !CHK_ENTRANCE(CFLAG:MASTER:현재위치, MAIN_MAP)
	RETURN 0
;정지 중에는 불가
SIF FLAG:70 == 1
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF440 기다린다_t.ERB


code:
;-------------------------------------------------
;수업을받는다
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM441
DOWNBASE:MASTER:체력 = 50
DOWNBASE:MASTER:기력 = 200

IF TARGET > 0 && !CFLAG:수면
	;고정으로 획득하는 소스
	SOURCE:환락 = 200

	;신뢰
	TFLAG:98 = 3
	SIF ABL:MASTER:교양 > 2
		TFLAG:98 ++
	IF ABL:MASTER:교양 > ABL:교양
		TFLAG:98 ++
		EXP:학습경험 += 2
	ENDIF
	SIF ABL:MASTER:교양 < ABL:교양 - 2
		EXP:MASTER:학습경험 ++
	;ABL:순종을 본다
	IF ABL:순종 <= 1
		SOURCE:환락 += (ABL:순종 * 60)
	ELSEIF ABL:순종 <= 3
		SOURCE:환락 += 200 + (ABL:순종 * 60)
	ELSEIF ABL:순종 <= 5
		SOURCE:환락 += 500 + (ABL:순종 * 60)
	ELSEIF ABL:순종 <= 8
		SOURCE:환락 += 750 + (ABL:순종 * 75)
	ELSEIF ABL:순종 <= 11
		SOURCE:환락 += 1000 + (ABL:순종 * 75)
	ELSE
		SOURCE:환락 += 2000 + (ABL:순종 * 30)
	ENDIF

;수업을 받으면(자) 회수를 카운트
SIF CFLAG:현재위치 == 서당 && CFLAG:67:행동 == 5
	TCVAR:67:특수이벤트 ++

	;호감 도를 본다
	IF CFLAG:2 <= 500
		SOURCE:환락 += CFLAG:2
	ELSEIF CFLAG:2 <= 5000
		SOURCE:환락 += 500 + (CFLAG:2 - 500) / 3
	ELSE
		SOURCE:환락 += 2000 + (CFLAG:2 - 5000) / 5
	ENDIF
	SIF SOURCE:환락 < 0
		SOURCE:환락 = 0
	EXP:MASTER:학습경험 ++
	EXP:학습경험 ++
ENDIF

TIME += 60
EXP:MASTER:학습경험 ++
SIF ITEM:103 && !RAND:2
	EXP:MASTER:학습경험 ++
RETURN 1

;-------------------------------------------------
;실행 판정
;-------------------------------------------------
;수업을받는다
@COM_ABLE441
;청소 실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(441)
	RETURN RESULT
;정지 중에는 불가
SIF FLAG:70 == 1
	RETURN 0
;서당 이외 불가
SIF CFLAG:MASTER:현재위치 != 240
	RETURN 0
;케이네이 있는 곳
SIF CFLAG:MASTER:현재위치 != CFLAG:67:현재위치
	RETURN 0
;업무중 이외 불가
SIF CFLAG:행동 != 5
	RETURN 0
;점심 시간중은 불가
SIF TIME >= 720 && TIME <= 780
	RETURN 0
;수업 시간 뒤는 불가
SIF TIME >= 840
	RETURN 0
;기력 0
SIF BASE:MASTER:기력 <= 0
	RETURN 0
SIF CFLAG:우후후 == 2
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF441 수업을받는다_t.ERB