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

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

;참가자 판정
IF TARGET && ABL:TARGET:친밀 >= 5
	CHARA = TARGET
ELSE
	CHARA = 0
ENDIF

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

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

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

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

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

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

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

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

CALL PHARMACY_CONSUME(R_ID, 0, 1)

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

$INPUT_LOOP03
INPUT
조제건수 = RESULT
SIF RESULT == 0
	RESTART
PRODUCTION = CAN_PHARMA(R_ID, 조제건수)

IF PRODUCTION && 조제건수 <= 10
	CLEARLINE 1
	;体質変化薬は入力回数に関わらず強制的に１回に絞る
	SIF PHARMA_VOLATILE(조제후보)
		조제건수 = 1
	PRINTFORML %조사처리(ITEMNAME:조제후보,"를")% {조제건수}번 레시피로 {PRODUCTION}개 조제하기로 했다
	;조제시 전후에서의 소비 아이템의 수를 표기
	PRINT   소비하는 소재:

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

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

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

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

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

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

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

;⑩체력·기력 감소 처리
DOWNBASE:MASTER:체력 = 30 * SQRT(조제건수)
DOWNBASE:MASTER:기력 = MAX((((50 * PHARMACY_RANK(조제후보)) - (15 * TALENT:MASTER:조합지식 + 10 * TALENT:MASTER:조제Lv))), 30) * SQRT(조제건수)

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

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

	;호감도는 보지 않는다

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

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

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

RETURN 1

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

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

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

RETURNF 0

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

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

;特定キャラの親密依存アイテムを弾く
SELECTCASE R_ID / 10
	CASE 850
		SIF ABL:[[마리사]]:친밀 < 5
			RETURNF 0
	CASE 851
		SIF ABL:[[치르노]]:친밀 < 5
			RETURNF 0
	CASE 852
		SIF ABL:[[후토]]:친밀 < 5
			RETURNF 0
	CASE 853
		SIF ABL:[[유카리]]:친밀 < 5
			RETURNF 0
ENDSELECT

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

RETURNF AMT * RECIPE_DATA(R_ID, 6)

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

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

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

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

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

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

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

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

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

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

SELECTCASE PHARMACY_RANK(ARG:0)
	CASE 1
		LOCAL:0 = 30
	CASE 2
		LOCAL:0 = 40
	CASE 3
		LOCAL:0 = 50
	CASE 4
		LOCAL:0 = 65
	CASE 5
		LOCAL:0 = 80
ENDSELECT
;√조제 건수를 걸친다
SELECTCASE ARG:1
	CASE 1
		TIMES LOCAL:0, 1
	CASE 2
		TIMES LOCAL:0, 1.4
	CASE 3
		TIMES LOCAL:0, 1.7
	CASE 4
		TIMES LOCAL:0, 2
	CASE 5
		TIMES LOCAL:0, 2.2
	CASE 6
		TIMES LOCAL:0, 2.4
	CASE 7
		TIMES LOCAL:0, 2.6
	CASE 8
		TIMES LOCAL:0, 2.8
	CASE 9
		TIMES LOCAL:0, 3
	CASE 10
		TIMES LOCAL:0, 3.1
ENDSELECT
RETURNF LOCAL:0

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

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

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

@PHARMACY_LIST_BUTTON(ARG,개행용)
#DIMS 아이템명
#DIM 개행용
#DIM R_ID

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

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

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


code:
;露店を開く
@COM447
#DIM 候補個数
#DIM 商人パワーM
#DIM 商人パワーT
#DIM 商人パワー
#DIM 来客数
#DIM 売却値
#DIM 合計売却値
#DIM CHARA
#DIM GoodsID, 6
#DIM GoodsQty, 6
#DIM GoodsSold, 6
#DIM Lineup
#DIM LinesToErase

;売却アイテムの種類を増やすときは、★  を検索してください
;管理者がはっきりしている人の敷地での無断での商売はしない
IF STALL_PERMISSION(CFLAG:MASTER:현재위치)
	DRAWLINE
	PRINTFORML 여기서 무단으로 장사를 하는 것은 문제가 될 것 같다…세력과 친해지는 편이 좋을 것이다
	RETURN -1
ENDIF

商人パワー = 0
商人パワーM = 0
商人パワーT = 0
売却値 = 0
合計売却値 = 0
Lineup = 0
VARSET LOCAL
VARSET GoodsID
VARSET GoodsQty
VARSET GoodsSold
DRAWLINE
PRINTL
;来客数を算出し、にぎわいを可視化
来客数 = STALL_SHOPPER(STALL_SPOT(CFLAG:MASTER:현재위치)) + IN_ROOM_NUMBER(CFLAG:MASTER:현재위치)
;PRINTFORML {来客数}人
IF AT_HOME()
	PRINTFORMS NAME_FROM_PLACE(CFLAG:MASTER:현재위치)
ELSE
	PRINTFORM %DATENAME_SPOT()%
ENDIF
SELECTCASE 来客数
	CASE 0
		PRINTFORML 에는 사람 한사람 없다…
	CASE 1 TO 5
		PRINTFORML (은)는 한산으로 하고 있다
	CASE 6 TO 10
		PRINTFORML 에는 적으면서 왕래가 있다
	CASE 11 TO 20
		PRINTFORML (은)는 적당히의 성황을 보이고 있다
	CASE 21 TO 30
		PRINTFORML (은)는 꽤 떠들썩하다
	CASEELSE
		PRINTFORML (은)는 입추의 여지도 없을 정도의 성황이다！
ENDSELECT
PRINTL
PRINTFORML 그런데, 무엇을 팔까…
DRAWLINE

;１個目のアイテムからスタート
Lineup = 1
$SELECT_LOOP
;LinesToErase は消去行数の計算に利用
LinesToErase = 1
;所持しているアイテムの売却可能物・個数をリスト化
LOCAL:10 = 999
FOR LOCAL, 351, 710
	SELECTCASE LOCAL
		CASE 399 TO 499, 520 TO 599, 601 TO 610, 612 TO 615, 617 TO 625, 630 TO 642, 646 TO 699
			;★持っていても売れないアイテムを上のCASEへ追加
		CASEELSE
			;アイテム未所持と、永遠亭での薬品販売を弾く
			IF ITEM:(LOCAL) > 0 || (STALL_SPOT(CFLAG:MASTER:현재위치) == 5 && INRANGE(LOCAL, 501, 511))
				LOCALS:0 = [{LOCAL}] %ITEMNAME:(LOCAL), 16, LEFT%×{ITEM:(LOCAL)}
				LOCAL:10 += STRLENS(LOCALS:0)
				SIF ITEM:(LOCAL) < 10
					LOCAL:10 ++
				IF LOCAL:10 > 90
					IF LOCAL:10 >= 999
					;最初のみ改行しない
					ELSE
						LinesToErase ++
						PRINTL
					ENDIF
					LOCAL:10 = 0
					PRINT
				ENDIF
				IF GROUPMATCH(LOCAL, GoodsID:1, GoodsID:2, GoodsID:3, GoodsID:4, GoodsID:5)
					SETCOLOR 0x666666
					PRINTPLAINFORM [{LOCAL}] %ITEMNAME:(LOCAL), 16, LEFT%×{ITEM:(LOCAL)}
					RESETCOLOR
				ELSE
					PRINTFORM [{LOCAL}] %ITEMNAME:(LOCAL), 16, LEFT%×{ITEM:(LOCAL)}
				ENDIF
				SIF ITEM:(LOCAL) < 10
					PRINT
				PRINT
			ENDIF
	ENDSELECT
NEXT
PRINTL
DRAWLINE
PRINTL 　　[999] 노점을 여는 것을 그만둔다
LinesToErase += 3
IF Lineup > 1
	PRINTL 　　[1000] 이 상품으로 노점을 연다
	DRAWLINE
	SIF Lineup > 1
		PRINTFORML 매물１：%ITEMNAME:(GoodsID:1)%×{GoodsQty:1}
	SIF Lineup > 2
		PRINTFORML 매물２：%ITEMNAME:(GoodsID:2)%×{GoodsQty:2}
	SIF Lineup > 3
		PRINTFORML 매물３：%ITEMNAME:(GoodsID:3)%×{GoodsQty:3}
	SIF Lineup > 4
		PRINTFORML 매물４：%ITEMNAME:(GoodsID:4)%×{GoodsQty:4}
	DRAWLINE
	LinesToErase += 3 + (Lineup - 1)
ENDIF
PRINTL
PRINTFORML {Lineup}손톱의 매물을 선택해 주세요
LinesToErase += 2
$INPUT_LOOP01
INPUT
SELECTCASE RESULT
	CASE 999
		RETURN -1
	CASE 1000
		IF Lineup > 1
			CLEARLINE 2
			GOTO SET_SALE
		ELSE
			CLEARLINE 1
			GOTO INPUT_LOOP01
		ENDIF
	;★売れるアイテムを下のCASEに追加
	CASE 351 TO 398, 500 TO 512, 600, 611, 616, 626 TO 629, 643 TO 645, 700 TO 708
		;GoodsIDに売りに出すアイテムの番号を流し込む
		GoodsID:Lineup = RESULT
		;アイテム名が無名の場合、アイテムを所持してない場合、永遠亭での薬品販売はやり直し
		IF ITEMNAME:(GoodsID:Lineup) == "" || ITEM:(GoodsID:Lineup) <= 0  || (STALL_SPOT(CFLAG:MASTER:현재위치) == 5 && INRANGE(LOCAL, 501, 511))
			CLEARLINE 1
			GoodsID:Lineup = 0
			GOTO INPUT_LOOP01
		ENDIF
		;重複選択防止
		IF Lineup > 1
			FOR LOCAL, 1, Lineup
				IF GoodsID:Lineup == GoodsID:LOCAL
					CLEARLINE 1
					GoodsID:Lineup = 0
					GOTO INPUT_LOOP01

				ENDIF
			NEXT
		ENDIF
		候補個数 = ITEM:(GoodsID:Lineup)
		SETCOLOR 0x777777
		PRINTFORML 　%ITEMNAME:(GoodsID:Lineup)%(을)를 몇개(살) 팝니까？(1～{候補個数}의 개수를 입력,0그리고 돌아온다)
		RESETCOLOR
		PRINTL
		PRINTBUTTON "[0] 그만둔다", 0
		PRINT
		PRINTBUTTON "[1] 1개", 1
		PRINT
		IF 候補個数 >= 5
			PRINTBUTTON "[5] 5개", 5
			PRINT
		ENDIF
		IF 候補個数 >= 10
			PRINTBUTTON "[10] 10개", 10
			PRINT
		ENDIF
		IF 候補個数 >= 20
			PRINTBUTTON "[20] 20개", 20
			PRINT
		ENDIF
		LinesToErase += 3
		$INPUT_LOOP02
		INPUT
		SELECTCASE RESULT
			CASE 0
				CLEARLINE 3
				LinesToErase -= 3
				GoodsID:Lineup = 0
				RETURN -1
			CASE 1 TO 候補個数
				CLEARLINE (LinesToErase + 1)
				;GoodsQtyに売りに出す個数を流し込む
				GoodsQty:Lineup = RESULT
			CASEELSE
				CLEARLINE 1
				GOTO INPUT_LOOP02
		ENDSELECT
	CASEELSE
		CLEARLINE 1
		GOTO INPUT_LOOP01
ENDSELECT

IF Lineup < 5
	Lineup ++
	GOTO SELECT_LOOP
ELSE
	PRINTFORML 매물１：%ITEMNAME:(GoodsID:1)%×{GoodsQty:1}
	PRINTFORML 매물２：%ITEMNAME:(GoodsID:2)%×{GoodsQty:2}
	PRINTFORML 매물３：%ITEMNAME:(GoodsID:3)%×{GoodsQty:3}
	PRINTFORML 매물４：%ITEMNAME:(GoodsID:4)%×{GoodsQty:4}
	PRINTFORML 매물５：%ITEMNAME:(GoodsID:5)%×{GoodsQty:5}
	PRINTL
	PRINTFORML 이 상품으로 노점을 엽니까？
	CALL ASK_YN
	IF !RESULT
		CLEARLINE 1
	ELSE
		RETURN -1
	ENDIF
ENDIF

;商品選択を終え、能力算定へ移る
$SET_SALE

;参加者判定
IF FLAG:데이트상대
	CHARA = FLAG:데이트상대
ELSEIF TARGET && ABL:TARGET:친밀 >= 10
	CHARA = TARGET
ELSE
	CHARA = 0
ENDIF

;商人パワー設定
商人パワーM = ABL:MASTER:화술기능 * 25 + ABL:MASTER:교양 * 10 + TFLAG:행운보정 * 3

SIF CHARA
	商人パワーT = ABL:CHARA:화술기능 * 25 + ABL:CHARA:교양 * 10
;参加者で最もパワーが高いものを基準に、1/2したもう１人のパワーを足す
IF 商人パワーM >= 商人パワーT
	商人パワー = 商人パワーM + (商人パワーT / 2)
ELSE
	商人パワー = 商人パワーT + (商人パワーM / 2)
ENDIF

DRAWLINE
PRINTFORML 개점！
PRINTL

FOR COUNT, 0, 来客数

	SELECTCASE RAND:6
		CASE 0
			REUSELASTLINE \@ CHARA ? %CALLNAME:CHARA%と一緒に #  \@商い中.....
		CASE 1
			REUSELASTLINE らっしゃっせー
		CASE 2
			REUSELASTLINE よってらっしゃい見てらっしゃーい
		CASE 3
			REUSELASTLINE 【値札つけません　値切り交渉受けつけます】
		CASE 4
			REUSELASTLINE お客さん、なかなかお目が高いですね
		CASEELSE
			REUSELASTLINE そこのお嬢さん、お安くしときますよー
	ENDSELECT
	TWAIT 750, 1

	$SARCH_START

	IF GoodsID:5
		LOCAL = RAND:6
	ELSEIF GoodsID:4
		LOCAL = RAND:5
	ELSEIF GoodsID:3
		LOCAL = RAND:4
	ELSEIF GoodsID:2
		LOCAL = RAND:3
	ELSE
		LOCAL = RAND:2
	ENDIF

	IF LOCAL == 0
		SETCOLOR C_L_GRAY
		PRINTDATAL
			DATAFORM 　「 좀 더 져 주지 않다？」　……그렇게 말씀하셔져도 응
			DATAFORM 　작은 아이가 침을 흘려 상품을 보고 있었지만, 양친씨에게 손을 잡아 당겨져 가 버렸다…
			DATAFORM 　손님은 치라치라궴 곁눈질로 상품을 보고 있었지만, 얘기하면(자) 놀란 모습으로 도망쳐 가 버렸다…
			DATAFORM 　말이 많은 손님이, 잡담만 해 돌아갔다…
			DATAFORM 　대충 상품을 음미해, 고민하는 기색은 보이면서도, 캬쿠는 떠나 갔다…
			DATAFORM 　깎아 교섭이 결렬했다…
			DATAFORM 　그냥 지나침 되었다…
			DATAFORM 　상품을 시선을 돌림 하면(자), 손님은 떠나 버렸다…
		ENDDATA
		RESETCOLOR
		GOTO SARCH_END
	;在庫ゼロの場合は、再度選択
	ELSEIF GoodsQty:LOCAL ==  GoodsSold:LOCAL
		GOTO SARCH_START
	ENDIF

	;売る個数を設定
	候補個数 = MAX(RAND:(5 + ABL:MASTER:화술기능), 1)
	;売る個数が商品の在庫より多い場合の処理
	SIF (候補個数 + GoodsSold:LOCAL) > GoodsQty:LOCAL
		候補個数 = GoodsQty:LOCAL - GoodsSold:LOCAL

	SETCOLOR C_YELLOW
	PRINTFORM %ITEMNAME:(GoodsID:LOCAL)%하지만{候補個数}개,
	;売却値を設定
	売却値 = STALL_PRICE_SET(商人パワー, GoodsID:LOCAL, 候補個数)
	PRINTFORML \\{売却値}그리고 팔렸다！
	RESETCOLOR

;	利率判定に応じてテキスト
;	SELECTCASE STALL_PRICE_SET(商人パワー, GoodsID:LOCAL, 候補個数, 1)
;		CASE 0 TO 50
;			PRINTFORML 買い叩かれてしまった…
;		CASE 51 TO 100
;			PRINTFORML 市場価格で売れた…
;		CASE 101 TO 150
;			PRINTFORML ちょっと価格を上げて売った…
;		CASEELSE
;			PRINTFORML 上手く丸め込み、売値をだいぶ釣り上げた…
;	ENDSELECT

	;GoodsSoldに売れた個数を流し込む
	GoodsSold:LOCAL += 候補個数
	合計売却値 += 売却値

	$SARCH_END
	TWAIT 300, 1
	LOCAL:3 ++
	;すべての商品を売りつくしたら抜ける
	IF GoodsSold:1 == GoodsQty:1 && GoodsSold:2 == GoodsQty:2 && GoodsSold:3 == GoodsQty:3 && GoodsSold:4 == GoodsQty:4 && GoodsSold:5 == GoodsQty:5
		PRINTL
		PRINTFORML 완매 사례！
		BREAK
	ENDIF
NEXT

LOCAL:3 = MAX((25 - LOCAL:3), 5)

IF GoodsSold:1 != GoodsQty:1 || GoodsSold:2 != GoodsQty:2 || GoodsSold:3 != GoodsQty:2 || GoodsSold:4 != GoodsQty:4 || GoodsSold:5 != GoodsQty:5
	PRINTL
	REPEAT LOCAL:3
		REUSELASTLINE  .%"." * COUNT%
		TWAIT 150, 1
	REND
ENDIF
PRINTFORMW 이제 폐점으로 하자
DRAWLINE
PRINTFORMW 이번 거래의 성과…

SETCOLOR 0x00FF00
;売れた個数を列挙、同時にアイテムを減らす
FOR LOCAL, 1, 6
	IF GoodsQty:LOCAL
		PRINTFORM 　%ITEMNAME:(GoodsID:LOCAL)%하
		IF GoodsSold:LOCAL
			PRINTFORM {GoodsSold:LOCAL}
			SELECTCASE GoodsID:LOCAL
				CASE 627, 644
					PRINTFORMW 병 팔렸다
				CASE 707, 708
					PRINTFORMW 꼬리 팔렸다
				CASEELSE
					PRINTFORMW 개 팔렸다
			ENDSELECT
		ELSE
			PRINTFORMW 전혀 팔리지 않았다…
		ENDIF
		ITEM:(GoodsID:LOCAL) -= GoodsSold:LOCAL
	ENDIF
NEXT
RESETCOLOR
PRINTL
;合計売却値の表記、同時に売上分の金を増やす
IF 合計売却値
	PRINTFORM 합계로
	SETCOLOR 0x00FF00
	PRINTFORM \\{合計売却値}
	RESETCOLOR
	PRINTFORMW 의 벌이가 되었다！
	MONEY += 合計売却値
	TFLAG:193 = 1
	TFLAG:194 = 合計売却値
ELSE
	PRINTFORMW 완전히 벌이가 나오지 않았다…
	TFLAG:193 = 0
ENDIF

;基本の経験
EXP:MASTER:회화경험 += 来客数
SIF CHARA
	EXP:CHARA:회화경험 += 来客数

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

;能力差で教えてもらう・教えてあげる
IF ABL:MASTER:교양 >=  ABL:CHARA:교양 && CHARA
	EXP:CHARA:학습경험 ++
ELSEIF CHARA
	EXP:MASTER:학습경험 ++
ENDIF

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

;時間経過
TIME += 120
;体力・気力減少は来客数によって増減
DOWNBASE:MASTER:체력 = MAX(15 * 来客数, 150)
DOWNBASE:MASTER:기력 = MAX(20 * 来客数, 200)

;参加者のソース,同一コマンド制限を受けないので控えめに,売れないと激減
IF CHARA > 0
	;固定で獲得するソース
	SOURCE:CHARA:환락 = 300
	SOURCE:CHARA:사랑 = 50

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

	;好感度はみない

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

	;売却成果をみる、合計売却値に応じてとりあえず設定
	IF 合計売却値
		SELECTCASE 合計売却値
			CASE 1 TO 2000
				TIMES SOURCE:CHARA:환락 , 1.00
				TIMES SOURCE:CHARA:수동 , 1.00
				TIMES SOURCE:CHARA:정복 , 1.00
				SOURCE:CHARA:달성 = 80
			CASE 2001 TO 4000
				TIMES SOURCE:CHARA:환락 , 1.10
				TIMES SOURCE:CHARA:수동 , 1.10
				TIMES SOURCE:CHARA:정복 , 1.10
				SOURCE:CHARA:달성 = 115
			CASE 4001 TO 7000
				TIMES SOURCE:CHARA:환락 , 1.25
				TIMES SOURCE:CHARA:수동 , 1.25
				TIMES SOURCE:CHARA:정복 , 1.15
				SOURCE:CHARA:달성 = 125
			CASE 7001 TO 10000
				TIMES SOURCE:CHARA:환락 , 1.50
				TIMES SOURCE:CHARA:수동 , 1.50
				TIMES SOURCE:CHARA:정복 , 1.25
				SOURCE:CHARA:달성 = 150
			CASE 10001 TO 20000
				TIMES SOURCE:CHARA:환락 , 1.75
				TIMES SOURCE:CHARA:수동 , 1.75
				TIMES SOURCE:CHARA:정복 , 1.50
				SOURCE:CHARA:달성 = 200
			CASE 20001 TO 40000
				TIMES SOURCE:CHARA:환락 , 2.00
				TIMES SOURCE:CHARA:수동 , 2.00
				TIMES SOURCE:CHARA:정복 , 1.75
				SOURCE:CHARA:달성 = 300
			CASEELSE
				TIMES SOURCE:CHARA:환락 , 2.25
				TIMES SOURCE:CHARA:수동 , 2.25
				TIMES SOURCE:CHARA:정복 , 2.00
				SOURCE:CHARA:달성 = 350
		ENDSELECT
	;売れなかった
	ELSE
		TIMES SOURCE:CHARA:환락 , 0.20
		TIMES SOURCE:CHARA:수동 , 0.20
		TIMES SOURCE:CHARA:정복 , 0.20
	ENDIF
ENDIF

RETURN 1

;-------------------------------------------------
;実行可能判定
;-------------------------------------------------
;露店を開く
@COM_ABLE447
SIF !TFLAG:100
	RETURN 0
;一括管理
SIF GLOBAL_COMABLE(447)
	RETURN RESULT
;露店を開ける場所である
SIF !STALL_SPOT(CFLAG:MASTER:현재위치)
	RETURN 0
;デート中はデート相手とだけ
SIF FLAG:데이트상대 && TARGET != FLAG:데이트상대
	RETURN 0
;睡眠中
SIF CFLAG:MASTER:수면
	RETURN 0
SIF CFLAG:우후후
	RETURN 0
;体力・気力不足
SIF BASE:MASTER:기력 < 300 || BASE:MASTER:체력 < 400
	RETURN 0
;時間停止中
SIF FLAG:70
	RETURN 0
RETURN 1

;-----------------------------------------------------------
;現在位置が露店を開ける場所か判定する
;ARG		現在位置
;RETURN		0 該当なし	1～各露店地点を返す
;COMMENT	場所を追加した場合、CASEを変更の事
;-----------------------------------------------------------
@STALL_SPOT(ARG)
#FUNCTION
IF !AT_HOME(MASTER)
;サブマップなどでの判定
	SELECTCASE ARG
		CASE 20				;神社境内（博麗神社）
			RETURNF 1
		CASE 130			;命蓮寺境内
			RETURNF 2
		CASE 210			;広場（人里）
			RETURNF 3
		CASE 310			;霧の湖
			RETURNF 4
		CASE 450			;永遠亭
			RETURNF 5
		CASE 510			;森の入り口
			RETURNF 6
		CASE 610			;中有の道
			RETURNF 7
		CASE 720			;玄武の沢
			RETURNF 8
		CASE 820			;絶景の丘
			RETURNF 9
		CASE 840			;守矢神社境内
			RETURNF 10
		CASE 890			;天界
			RETURNF 11
		CASE 930			;旧地獄街道
			RETURNF 12
		CASE 1050			;月の都
			RETURNF 13
	ENDSELECT
ELSE
	;メインマップでの判定
	SELECTCASE MAIN_MAP
		CASE 0
			;博麗神社：境内
			SIF ARG == 2
				RETURNF 1
		CASE 1
			;命蓮寺：境内
			SIF ARG == 102
				RETURNF 2
		CASE 2
			;人里：中央広場
			SIF ARG == 202
				RETURNF 3
		CASE 3
			;紅魔館：湖畔
			SIF ARG == 343
				RETURNF 4
		CASE 4
			;永遠亭：永遠亭入り口
			SIF ARG == 401
				RETURNF 5
		CASE 5
			;魔法の森：魔法の広場
			SIF ARG == 508
				RETURNF 6
		CASE 7
			;妖怪の山山麓：玄武の沢
			SIF ARG == 703
				RETURNF 8
		CASE 8
			;妖怪の山山頂：頂上、守矢神社・境内、有頂天街
			SELECTCASE ARG
				CASE 805
					RETURNF 9
				CASE 811
					RETURNF 10
				CASE 832
					RETURNF 11
			ENDSELECT
		CASE 9
			;地底：大通り
			SIF ARG == 931
				RETURNF 12
	ENDSELECT
ENDIF
RETURNF 0

;-----------------------------------------------------------
;現在位置で露店を開く際のざっくりした来客数を割り出す
;祝祭日、天気、時間でも補正をかける
;ARG		STALL_SPOTのRETURN値
;RETURN		来客数
;COMMENT	場所を追加した場合、CASEを変更の事
;-----------------------------------------------------------
@STALL_SHOPPER(ARG)
#FUNCTION

RANDOMIZE (DAY:0 + TIME:0)

SELECTCASE ARG
	CASE 1	;博麗神社  ケの来客は少なそう  祭日はドンと増える
		LOCAL:0 = RAND:5
		SIF FESTIVAL() == "例大祭"
			LOCAL:0 += MAX(RAND:50, 35)
		SIF GROUPMATCH(FESTIVAL(), "元日", "雛祭り", "七夕", "お盆", "風神「二百十日」", "十五夜", "収穫祭", "節分", "大晦日")
			LOCAL:0 += MAX(RAND:40, 25)
	CASE 2	;命蓮寺  人里に近いので
		LOCAL:0 = MAX(RAND:12, 2)
		SIF GROUPMATCH(FESTIVAL(), "元日", "お盆", "収穫祭", "大晦日")
			LOCAL:0 += MAX(RAND:35, 15)
	CASE 3	;人里  鉄板
		LOCAL:0 = MAX(RAND:35, 10)
		SIF IS_WEEKEND(DAY)
			LOCAL:0 += RAND:15
		SIF GROUPMATCH(FESTIVAL(), "元日", "ホワイトデー", "収穫祭", "バレンタインデー", "クリスマスイヴ", "クリスマス")
			LOCAL:0 += RAND:15
	CASE 4	;霧の湖湖畔  あんまり人通りは…
		LOCAL:0 = RAND:5
		SIF GROUPMATCH(FESTIVAL(), "ホワイトデー", "収穫祭", "ハロウィン", "バレンタインデー", "クリスマスイヴ", "クリスマス")
			LOCAL:0 += MAX(RAND:30, 15)
	CASE 5	;永遠亭入り口  医院なのでそれなりに
		LOCAL:0 = MAX(RAND:14, 3)
	CASE 6	;魔法の森  客は来るのか…？
		LOCAL:0 = RAND:5
		SIF GROUPMATCH(FESTIVAL(), "元日", "七夕", "お盆", "十五夜", "収穫祭", "大晦日")
			LOCAL:0 += MAX(RAND:30, 20)
	CASE 7	;中有の道  他にも露店が出てる設定なので
		LOCAL:0 = MAX(RAND:30, 7)
		SIF GROUPMATCH(FESTIVAL(), "お盆")
			LOCAL:0 += MAX(RAND:30, 20)
	CASE 8	;玄武の沢  商売人の河童たちの経済圏
		LOCAL:0 = MAX(RAND:25, 15)
		SIF IS_WEEKEND(DAY)
			LOCAL:0 += RAND:15
		SIF GROUPMATCH(FESTIVAL(), "元日", "収穫祭")
			LOCAL:0 += RAND:15
	CASE 9	;妖怪の山頂上  天狗の縄張り
		LOCAL:0 = MAX(RAND:20, 5)
		SIF IS_WEEKEND(DAY)
			LOCAL:0 += RAND:15
		SIF GROUPMATCH(FESTIVAL(), "元日", "風神「二百十日」", "収穫祭")
			LOCAL:0 += RAND:15
	CASE 10	;守矢神社  索道のおかげで少しマシになった？
		LOCAL:0 = MAX(RAND:10, 4)
		SIF GROUPMATCH(FESTIVAL(), "元日", "例大祭", "雛祭り", "七夕", "お盆", "風神「二百十日」", "十五夜", "収穫祭", "節分", "大晦日")
			LOCAL:0 += MAX(RAND:30, 20)
	CASE 11	;有頂天街  天人も買い物はするのか…
		LOCAL:0 = MAX(RAND:20, 2)
		SIF IS_WEEKEND(DAY)
			LOCAL:0 += RAND:15
		SIF GROUPMATCH(FESTIVAL(), "元日", "七夕", "十五夜", "収穫祭", "節分", "大晦日")
			LOCAL:0 += RAND:15
	CASE 12	;地底大通り  妖怪たちの吹き溜まり
		LOCAL:0 = MAX(RAND:35, 15)
		SIF GROUPMATCH(FESTIVAL(), "元日", "収穫祭")
			LOCAL:0 += RAND:15
	CASE 13	;月の都  月人の興味があるものって…
		LOCAL:0 = MAX(RAND:25, 2)
ENDSELECT
;時間補正　地底大通りと月の都は時間・天候補正をかけない
IF !GROUPMATCH(ARG, 12, 13)
	;時間補正
	SELECTCASE TIME:2
		CASE 1
			TIMES LOCAL:0, 0.3
		CASE 2
			TIMES LOCAL:0, 0.8
		CASE 3 TO 4
			;補正なし
		CASE 5
			TIMES LOCAL:0, 0.8
		CASE 6
			TIMES LOCAL:0, 0.5
		CASEELSE
			TIMES LOCAL:0, 0.2
	ENDSELECT
	;天候補正
	SELECTCASE TIME:5
		CASE 0 TO 3
			;補正なし
		CASE 4, 6, 7
			TIMES LOCAL:0, 0.4
		CASEELSE
			TIMES LOCAL:0, 0.1
	ENDSELECT
ENDIF

RETURNF LOCAL:0

;-----------------------------------------------------------
;現在位置で露店を開く際の親密許可判定をする
;ARG		現在位置
;RETURN		0 許可	1 不許可
;COMMENT	場所を追加した場合、CASEを変更の事
;-----------------------------------------------------------
@STALL_PERMISSION(ARG)
#FUNCTION
IF !AT_HOME(MASTER)
;サブマップなどでの判定
	SELECTCASE ARG
		CASE 20				;神社境内（博麗神社）
			SIF ABL:[[레이무]]:친밀 < 5
				RETURNF 1
		CASE 130			;命蓮寺境内
			SIF ABL:[[뱌쿠렌]]:친밀 < 5
				RETURNF 1
		CASE 450			;永遠亭
			SIF ABL:[[에이린]]:친밀 < 5 && ABL:[[카구야]]:친밀 < 5
				RETURNF 1
		CASE 720			;玄武の沢
			SIF ABL:[[니토리]]:친밀 < 5
				RETURNF 1
		CASE 820			;絶景の丘
			SIF ABL:[[아야]]:친밀 < 5 && ABL:[[하타테]]:친밀 < 5
				RETURNF 1
		CASE 840			;守矢神社境内
			SIF ABL:[[사나에]]:친밀 < 5 && ABL:[[카나코]]:친밀 < 5 && ABL:[[스와코]]:친밀 < 5
				RETURNF 1
		CASE 890			;天界
			SIF ABL:[[텐시]]:친밀 < 5
				RETURNF 1
	ENDSELECT
ELSE
	;メインマップでの判定
	SELECTCASE MAIN_MAP
		CASE 0
			;博霊神社：境内
			SIF ARG == 2 && ABL:[[레이무]]:친밀 < 5
				RETURNF 1
		CASE 1
			;命蓮寺：境内
			SIF ARG == 102 && ABL:[[뱌쿠렌]]:친밀 < 5
				RETURNF 1
		CASE 4
			;永遠亭：永遠亭入り口
			SIF ARG == 401 && (ABL:[[에이린]]:친밀 < 5 && ABL:[[카구야]]:친밀 < 5)
				RETURNF 1
		CASE 7
			;妖怪の山山麓：玄武の沢
			SIF ARG == 703 && ABL:[[니토리]]:친밀 < 5
				RETURNF 1
		CASE 8
			;妖怪の山山頂：頂上、守矢神社・境内、有頂天街
			SELECTCASE ARG
				CASE 805
					SIF ABL:[[아야]]:친밀 < 5 && ABL:[[하타테]]:친밀 < 5
						RETURNF 1
				CASE 811
					SIF ABL:[[사나에]]:친밀 < 5 && ABL:[[카나코]]:친밀 < 5 && ABL:[[스와코]]:친밀 < 5
						RETURNF 1
				CASE 832
					SIF ABL:[[텐시]]:친밀 < 5
						RETURNF 1
			ENDSELECT
	ENDSELECT
ENDIF
RETURNF 0

;-----------------------------------------------------------
;露店で１人の来客がいくらで買ったかを算出
;ARG:0		商人パワー
;ARG:1		売るアイテム番号
;ARG:2		売れた個数
;ARG:3		0 = 購入額を返す, 1=利率を返す　省略は0
;RETURN		購入額
;-----------------------------------------------------------
@STALL_PRICE_SET(ARG:0, ARG:1, ARG:2, ARG:3 = 0)
#FUNCTION
#DIM 利率
#DIM 購入額
#DIM 補正価格

;利率をアイテム価格の（商人パワーの半分～商人パワー）％に設定
利率 = MAX(RAND:(ARG:0), (ARG:0 / 2))

補正価格 = ITEMPRICE:(ARG:1) / 2

;補正価格の決定
SELECTCASE ARG:1
	;野菜たちは旬から遠いと価値が上がる
	CASE 351 TO 361
		SIF DAY:2 == 3
			TIMES 補正価格, 1.3
	CASE 362 TO 374
		SIF DAY:2 == 4
			TIMES 補正価格, 1.3
	CASE 375 TO 386
		SIF DAY:2 == 1
			TIMES 補正価格, 1.3
	CASE 387 TO 398
		SIF DAY:2 == 2
			TIMES 補正価格, 1.3
	;価格調整
	CASE 500
		補正価格 += 150
	CASE 600
		補正価格 += 150
	CASE 611
		補正価格 += 145
	CASE 616
		補正価格 += 200
	CASE 626
		補正価格 += 125
	CASE 627
		補正価格 += 200
	CASE 628
		補正価格 += 50
	CASE 707
		補正価格 += 250
	CASE 708
		補正価格 += 350
ENDSELECT

;露店の場所による補正
SELECTCASE STALL_SPOT(CFLAG:MASTER:현재위치)
	CASE 1	;博麗神社

	CASE 2	;命蓮寺

	CASE 3	;人里  山の幸系統に補正
		SIF GROUPMATCH(ARG:1, 600, 611, 616, 626, 627, 628, 629, 707, 708)
			TIMES 補正価格, 1.3
	CASE 4	;霧の湖湖畔

	CASE 5	;永遠亭入り口  にんじん
		SIF GROUPMATCH(ARG:1, 388)
			TIMES 補正価格, 1.5
	CASE 6	;魔法の森

	CASE 7	;中有の道

	CASE 8	;玄武の沢  きゅうり↑  おさかな↓
		SIF GROUPMATCH(ARG:1, 362)
			TIMES 補正価格, 1.5
		SIF GROUPMATCH(ARG:1, 707, 708)
			TIMES 補正価格, 0.5
	CASE 9	;妖怪の山頂上  おさかな
		SIF GROUPMATCH(ARG:1, 707, 708)
			TIMES 補正価格, 1.3
	CASE 10	;守矢神社  幻想入り物品↑  カエル↑↑
		SIF GROUPMATCH(ARG:1, 643, 644, 645)
			TIMES 補正価格, 1.3
		SIF GROUPMATCH(ARG:1, 706)
			TIMES 補正価格, 1.5
		SIF GROUPMATCH(ARG:1, 643, 644, 645)
			TIMES 補正価格, 1.5
	CASE 11	;有頂天街  山の幸系統
		SIF GROUPMATCH(ARG:1, 600, 611, 616, 626, 627, 628, 629, 707, 708)
			TIMES 補正価格, 1.3
	CASE 12	;地底大通り  野菜
		SIF INRANGE(ARG:1, 351, 398)
			TIMES 補正価格, 1.3
	CASE 13	;月の都  山の幸系統
		SIF GROUPMATCH(ARG:1, 600, 611, 616, 626, 627, 628, 629, 707, 708)
			TIMES 補正価格, 1.3
ENDSELECT

購入額 = 補正価格 * ARG:2 * 利率 / 100

IF ARG:3 == 0
	RETURNF 購入額
ELSE
	RETURNF 利率
ENDIF

repo_name: purugi/eraTWKR

path: ERB/커맨드관련/COMF/일상계/COMF447 노점을연다.ERB

license: mit


code:
;-------------------------------------------------
;술벌레의 상태를 본다
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM450
#DIM 양조량
;FLAG:술벌레 물의 종류, 50 넘으면 술의 아이템 번호

VARSET LOCAL

PRINTFORML %마스터는% 술벌레가 들어있는 병을 들여다보았다
PRINTFORML 병은 %STR:(7000 + FLAG:술벌레)%로 채워지고 있다…
DRAWLINE
PRINTFORML [0] 아무것도 안 한다
IF TFLAG:물긷기
	PRINTFORML [1] %STR:(TFLAG:물긷기 + 7000)%과 갈아넣는다
ELSE
	PRINTPLAIN [1] 갈아넣을 물도 없이 퍼낼 수는 없다
	PRINTL
ENDIF
SIF ITEM:탁주 >= 5 && FLAG:술벌레 == 1 && DAY:10 < 3
	PRINTFORML [2] 탁주를 더한다(탁주를 5 소비)
;그 이상 손봐도 내용이 변화하지 않는 경우는 표시시키지 않게
SIF BASE:MASTER:8 >= 2400 && (FLAG:술벌레 < 51 || FLAG:술벌레 == 51)
	PRINTFORML [3] 시간조작 주조(TSP2400 소비)
INPUT
IF RESULT == 1 && TFLAG:물긷기
	PRINTFORML %마스터는% %STR:(7000 + FLAG:술벌레)%를 퍼내고 %STR:(TFLAG:물긷기 + 7000)%과 갈아넣었다
	;술이 생기고 있었던 경우
	IF FLAG:술벌레 > 50
		양조량 = 양조할수있던양(FLAG:술벌레)
		PRINTFORML %ITEMNAME:(FLAG:술벌레)%를 {양조량}개 손에 넣었다
		ITEM:(FLAG:술벌레) += 양조량
	ENDIF
	DAY:10 = 0
	FLAG:술벌레 = TFLAG:물긷기
	TFLAG:물긷기 = 0
ELSEIF RESULT == 2 && ITEM:탁주 >= 5 && FLAG:술벌레 == 1 && DAY:10 < 3
	PRINTFORML %마스터는% 병에 탁주를 쏟아부었다
	PRINTFORML 이로써 조금 일찍 완성될 것이다…
	DAY:10 += 3
	ITEM:탁주 -= 5
;그 이상 손봐도 내용이 변화하지 않는 경우는 표시시키지 않게
ELSEIF RESULT == 3 && BASE:MASTER:8 >= 2400 && (FLAG:술벌레 < 51 || FLAG:술벌레 == 51)
	PRINTFORML %마스터는% 시간정지 능력을 응용해 억지로 병 안의 시간을 진행시켰다
	DAY:10 += 1
	BASE:MASTER:8 -= 2400
ELSE
	RETURN -1
ENDIF
TIME += 5
RETURN 1

;술벌레의 상태를 본다
@COM_ABLE450
;정지 중에는 불가
SIF FLAG:70 == 1
	RETURN 0
;이동 실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(450)
	RETURN RESULT
;부엌
SIF CFLAG:MASTER:현재위치 != 거점_술벌레
	RETURN 0
SIF CFLAG:우후후
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF450 술벌레상태보기_t.ERB


code:
;-------------------------------------------------
;특수지역간이동
;일상계 커맨드, 레벨 1
;-------------------------------------------------
@COM464
#DIM FEE
VARSET LOCAL
FEE = 0
FOR LOCAL, 1, CHARANUM
	IF CFLAG:(LOCAL):동행
		LOCAL:1 ++
		SIF CFLAG:LOCAL:쇠약 || BASE:LOCAL:기력 == 0
			LOCAL:2 ++
		SIF !CHARA_HOLIDAY(LOCAL) && BASE:LOCAL:일량
			LOCAL:3 ++
	ENDIF
NEXT
IF NEMUKE() >= 720
	PRINTL 졸음기가 있으니 외출하지 않는 편이 나을 것입니다
	RETURN -1
ELSEIF LOCAL:1 > 1
PRINTL 두 명 이상 데리고 나갈 수는 없습니다
	RETURN -1
ELSEIF LOCAL:2 || BASE:MASTER:기력 == 0
	PRINTFORML 몸 상태가 좋지 못하기에 외출할 수는 없습니다 \@ BASE:MASTER:기력 == 0 ? (기력 제로) # (동행자가 몸 상태 안 좋음)\@
	RETURN -1
ELSEIF LOCAL:3 && FESTIVAL() == ""
	PRINTL 동행자가 일하는 날이기에 외출할 수는 없습니다
	RETURN -1
ELSEIF TIME:5 == 9 || TIME:5 == 5
	PRINTL 악천후이기에 외출할 수는 없습니다
	RETURN -1
ELSEIF TALENT:MASTER:100 < -4
	PRINTL 이 몸으로 외출하는 건 위험하다
	RETURN -1
ENDIF
SELECTCASE CFLAG:MASTER:현재위치
	CASE 205, 210, 803, 820
		IF !INRANGE(TIME, 540, 1020)
			PRINTFORML 영업 시간이 아니다
			RETURN -1
		ENDIF
		;守矢キャラたちと同行時は敷設者割引運賃
		IF CFLAG:31:동행 || CFLAG:32:동행 || CFLAG:33:동행
			FEE = 1
		ELSEIF CFLAG:MASTER:동행
			FEE = 10
		ELSE
			FEE = 5
		ENDIF
		;상대가 오니나 텐구라면 비위 맞추는 웃음
		IF GROUPMATCH(TARGET, 10, 29, 31, 32, 33, 42, 64, 65)
			PRINTFORML 「아이고 %CALLNAME:TARGET% 씨, 이용하시려고요?」
			PRINTFORML %CALLNAME:TARGET%의 모습을 확인한
			;人里側に河童が常駐してるのもアレかなと
			IF CFLAG:MASTER:현재위치 / 100 == 2
				PRINTFORM 접수 담당은
			ELSE
				PRINTFORM 접수 담당의 캇파는
			ENDIF
			PRINTFORML 비위 맞추는 웃음을 띠었다
		ELSE
			;人里側では一応丁寧対応に
			IF CFLAG:MASTER:현재위치 / 100 == 2
				PRINTFORML 「케이블카를 타실건가요？　요금은 \\{FEE * 200}이에요. {FEE}카리스마도 됩니다.」
			ELSE
				PRINTFORML 「……왜? 케이블카 타고 싶어? {FEE}카리스마. 아니면 \\{FEE * 200}이라도 되고」
			ENDIF
		ENDIF
		CALL PAY_YEN_OR_CM(FEE * 200, FEE)
		SELECTCASE RESULT
			CASE 0
				RETURN -1
			CASE 1
				IF CFLAG:31:동행 || CFLAG:32:동행 || CFLAG:33:동행
					PRINTFORML 「싸게 해드릴게요～」
				ELSE
					PRINTFORML 「감사함다.」
				ENDIF
			CASE 2
				IF CFLAG:MASTER:현재위치 / 100 == 2
					PRINTFORML 「카리스마로 지불하시는 건가요... 예, 좀 그렇죠.」
				ELSE
					PRINTFORML 「헤―, 손님 인간인데 카리스마 가지고 있어? 대단하네.」
				ENDIF
		ENDSELECT
ENDSELECT
IF AT_HOME(MASTER) || MAIN_MAP != SPECIAL_AREAMOVE() / 100
	LOCAL:2 = 0
	LOCALS = %STR:(6000 + SPECIAL_AREAMOVE() / 10)%
	FOR LOCAL, 1, CHARANUM
		IF CFLAG:(LOCAL):동행
			CFLAG:LOCAL:데이트중 = SPECIAL_AREAMOVE() / 100
			CFLAG:LOCAL:현재위치 = SPECIAL_AREAMOVE()
			LOCAL:2 = LOCAL
			FLAG:데이트상대 = LOCAL
		ENDIF
	NEXT
	CFLAG:MASTER:데이트중 = SPECIAL_AREAMOVE() / 100
	CFLAG:MASTER:현재위치 = SPECIAL_AREAMOVE()

	IF CFLAG:MASTER:데이트중 == 2
		CALL EX_COSTUME(FLAG:데이트상대, "마을 데이트")
		SIF RESULT
			PRINTFORMW %CALLNAME:(FLAG:데이트상대)%는 인간 마을에 적당한 옷으로 갈아입었습니다
	ENDIF
	PRINTFORML %LOCALS%에 외출합니다
	TIME += SPECIAL_AREAMOVE_TIME()
;住み込み先でないところから住み込み先への移動はデート終了扱い
ELSEIF !AT_HOME(MASTER) && MAIN_MAP == SPECIAL_AREAMOVE() / 100
	IF CFLAG:패배자 && TALENT:스침 == 1
		PRINTFORML %CALLNAME:TARGET%를 기억했습니다.
	ELSE
		PRINTFORMW \@ CFLAG:MASTER:데이트중 != CFLAG:TARGET:데이트중 || TARGET == MASTER ? 외출 겸 데이트에서 돌아왔습니다.
	ENDIF
	CFLAG:MASTER:현재위치 = SPECIAL_AREAMOVE()

	CALL 모리야복권데이트상대의리셋()
	FOR LOCAL,1,CHARANUM
		IF CHK_DATENOW(CFLAG:LOCAL:데이트중)
			CALL DATE_EVENT(LOCAL)
			CFLAG:LOCAL:현재위치 = SPECIAL_AREAMOVE()
			CALL SET_DATE(99,LOCAL)
		ENDIF
	NEXT
	SIF CHK_DATENOW(CFLAG:MASTER:데이트중)
		CALL SET_DATE(99,MASTER)

	TIME += SPECIAL_AREAMOVE_TIME()
ENDIF
;-------------------------------------------------
;실행 판정
;-------------------------------------------------
@COM_ABLE464
;정지 중에는 불가
SIF FLAG:70
	RETURN 0
SIF !TFLAG:100
	RETURN 0
SIF HALFWAY()
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(464)
	RETURN RESULT
;수면중
SIF CFLAG:수면
	RETURN 0
;동침중
SIF CFLAG:동침중
	RETURN 0
SIF !SPECIAL_AREAMOVE()
	RETURN 0
SIF CFLAG:우후후
	RETURN 0
RETURN 1

;-------------------------------------------------
@SPECIAL_AREAMOVE()
#FUNCTION
SELECTCASE CFLAG:MASTER:현재위치
;하쿠레이 신사 모리야 분사
	CASE 21
	;모리야 캐릭터와 동행중
		SIF CFLAG:31:동행 || CFLAG:32:동행 || CFLAG:33:동행
			RETURNF 840
;마을 기타도리
	CASE 205
		RETURNF 820
	CASE 210
		IF MAIN_MAP == 8
			RETURNF 803
		ELSE
			RETURNF 820
		ENDIF
;무연총
	CASE 506
		RETURNF 610
;간헐천지하센터
	CASE 712
		RETURNF 970
;산정에의 길
	CASE 732
		RETURNF 810
;삭도역
	CASE 803
		RETURNF 210
	CASE 820
		;メインマップが人里のときは人里北通りへ
		SIF MAIN_MAP == 2
			RETURNF 205
		;守矢神社・早苗私室(820)を弾き広場へ
		SIF MAIN_MAP != 8
			RETURNF 210
;작열지옥터
	CASE 928
		RETURNF 760
ENDSELECT
RETURNF 0
;-------------------------------------------------
@SPECIAL_AREAMOVE_TIME()
#FUNCTION
SELECTCASE CFLAG:MASTER:현재위치
;하쿠레이 신사 모리야 분사
	CASE 21
		RETURNF 1
;마을 기타도리
	CASE 205
		RETURNF 15
;広場
	CASE 210
		RETURNF 15
;무연총
	CASE 506
		SIF SHORTCUT(3)
			RETURNF 3
		RETURNF 5
;간헐천지하센터
	CASE 712
		RETURNF 10
;산정에의 길
	CASE 732
		RETURNF 5
;삭도역
	CASE 803
		RETURNF 15
;絶景の丘
	CASE 820
		RETURNF 15
;작열지옥터
	CASE 928
		RETURNF 5
ENDSELECT

path: ERB/커맨드관련/COMF/일상계/COMF464 특수지역간이동_t.ERB


code:
@COM370
#DIM 개조부위
PRINTFORML %CALLNAME:TARGET%의 무엇을 개조합니까?

FOR LOCAL, 1,23
	SIF EQUIP:TARGET:LOCAL
	PRINTFORML [{LOCAL}]- %CLOTHNAME(LOCAL, EQUIP:TARGET:LOCAL)%
NEXT
PRINTFORML [999]- 그만둔다
$LOOP
INPUT
SELECTCASE RESULT
	CASE 1 TO 22
		IF !EQUIP:TARGET:RESULT
			GOTO LOOP
		ELSE
			개조부위 = RESULT
		ENDIF
	CASE 999
		RETURN -1
	CASEELSE
		GOTO LOOP
ENDSELECT
PRINTFORML %CLOTHNAME(개조부위, EQUIP:TARGET:개조부위)%를 어떻게 합니까?
CALL ASK_YN("바탕으로 되돌리는","고쳐 짓는다")
IF !RESULT
	CSTR:TARGET:(50 + 개조부위) =
	PRINTFORML 바탕으로 되돌렸습니다.
ELSE
	PRINTFORML 어떻게 짓습니까? (앞에 붙이는 수식어를 입력)
	INPUTS
	IF RESULTS == ""
		GOTO LOOP
	ELSE
		CSTR:TARGET:(50 + 개조부위) = %RESULTS%%CLOTHNAME(개조부위, EQUIP:TARGET:개조부위)%
	ENDIF
	PRINTFORML %CLOTHNAME(개조부위, EQUIP:TARGET:개조부위)%는 %CSTR:TARGET:(50 + 개조부위)%가 되었습니다.
ENDIF
TIME += 60
RETURN 1

;-------------------------------------------------
;실행 판정
;-------------------------------------------------
@COM_ABLE370
;실행 판정
SIF !TFLAG:100
	RETURN 0
;일괄관리
SIF GLOBAL_COMABLE(370)
	RETURN RESULT
;앨리스가 없으면 안 돼
SIF CFLAG:17:현재위치 != CFLAG:MASTER:현재위치
	RETURN 0
;업무중
SIF CFLAG:행동 == 5
	RETURN 0
;기력 0
SIF BASE:17:기력 <= 0
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF465 의상개조_t.ERB


code:
;-------------------------------------------------
;밭일을한다
;일상계 커맨드, 레벨 1
;-------------------------------------------------
;COM계 함수, MESSAGE는 본래는 분리해 별파일

;양잠이겠지만 밭일이 되지만 뭐 좋아
@MESSAGE_COM470
#LOCALSIZE 1
#LOCALSSIZE 1
PRINTFORML 당신은 %STR_NOUMIN(FLAG:지주, "밭의 종류")%로 향했다
SELECTCASE TFLAG:193
CASE 1
	PRINTFORML 오늘의 밭일은 마치 안 돼였다
CASE 2
	PRINTFORML 오늘의 밭일은 그다지 진전되지 않았다
CASE 3
	PRINTFORML 밭일은 특별히 무슨 일도 없게 종료했다
CASE 4
	PRINTFORML 오늘의 밭일은 꽤 진전되었다
CASE 5
	PRINTFORML 오늘의 밭일은 일의 시작과 끝 자주(잘) 끝났다
CASEELSE
	PRINTFORML 오늘의 밭일은 나로서도 신현은 있었다
ENDSELECT

;시스템적으로 1 캐릭터 우대 하는 것은 어떨까라고 생각하는데
;아이덴티티인걸 좋은 것 같아
@COM470
IF ITEM:원예용품일식
	TFLAG:밭일성공도 = RAND(2, 7)
ELSE
	TFLAG:밭일성공도 = RAND(1, 4)
ENDIF

;신의 가호
SELECTCASE CFLAG:(FINDCHARA(CALLNAME, "미노리코", 1)):호감도
	CASE IS < 1000
	CASE IS < 5000
		TFLAG:밭일성공도 += 1
	CASE IS < 10000
		TFLAG:밭일성공도 += 2
	CASE IS < 30000
		TFLAG:밭일성공도 += 3
	CASEELSE
		TFLAG:밭일성공도 += 4
ENDSELECT
FLAG:밭일성과 += TFLAG:밭일성공도
TFLAG:193 = TFLAG:밭일성공도
IF FLAG:70
	BASE:MASTER:TSP -= 500
ELSE
	TIME += 180
	DOWNBASE:MASTER:체력 += 300
	DOWNBASE:MASTER:기력 += 300
ENDIF

RETURN 1
;-------------------------------------------------
;실행 가능 판정
;-------------------------------------------------
;밭일을한다
@COM_ABLE470
SIF !TFLAG:100
	RETURN 0
SIF TFLAG:망상중
	RETURN 0
;당신은 농민은 아니다
SIF !FLAG:지주
	RETURN 0
;현재위치가 밭의 장소는 아닌, LOCAL에 밭의 위치를 일차 취득해 사용
LOCAL = INT_NOUMIN(FLAG:지주, "장소 ID")
SIF GET_MAPID(LOCAL) != MAIN_MAP
	LOCAL = GET_MAP_REPLACEMENT(LOCAL)
SIF CFLAG:MASTER:현재위치 != LOCAL
	RETURN 0
;감추고 있다
SIF BASE:MASTER:술기운
	RETURN 0
SIF CFLAG:우후후
	RETURN 0
;체력·기력 부족
SIF BASE:MASTER:기력 < 300 || BASE:MASTER:체력 < 300
	RETURN 0
;날씨가 나쁘다
SIF !GROUPMATCH(TIME:5, 0, 1, 2, 3, 4, 6, 7)
	RETURN 0
;오늘은 이제(벌써) 일을 했다
SIF TFLAG:밭일성공도
	RETURN 0
;시간에 여유가 없으면 안 돼
IF FLAG:70
	;TSP 부족하다
	SIF BASE:MASTER:TSP < 300
		RETURN 0
ELSE
	;활동 한계를 720으로서 그 3시간전
	SIF NEMUKE() >= 540
		RETURN 0
ENDIF
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF470 밭일한다_t.ERB


code:
;-------------------------------------------------
;弾幕勝負
;日常系コマンド、レベル1
;-------------------------------------------------
@COM480

#DIM OPPONENT_REMAIN

HANDICAP_FIXED = 0
HANDICAP_RAND = 0

IF TCVAR:TARGET:탄막승부불능
	PRINTFORML %CALLNAME:TARGET%는 이미 많이 지친 것 같다. 내일 다시 신청하자.
	RETURN -1
ENDIF

$INPUT_LOOP
CALL DANMAKU_OPPONENT_STATUS(TARGET)

PRINTFORM %CALLNAME:TARGET%에게 탄막 승부를 신청합니까?
SIF CFLAG:TARGET:탄막승부승리 == 1
	PRINTFORM 　★승리함
PRINTL
CALL ASK_M("역시 그만둔다", 1, "도전한다", 1, "룰 설명", 1)
SELECTCASE RESULT
	CASE 0
		RETURN -1
	CASE 1

	CASE 2
		CALL SHOW_DANMAKU_RULE
		GOTO INPUT_LOOP
ENDSELECT

;台詞・選択肢は幽香口上内に記述、口上がない場合は賭けや勝利報酬は無し
;ここでHANDICAP_FIXED, HANDICAP_RANDに数値を入れると、あなたのダイス判定にマイナス補正がかかるよ
;判定値 -= (HANDICAP_FIXED + RAND:(HANDICAP_RAND))
VARSET RESULT
TRYCALLFORM M_KOJO_MESSAGE_COM_K{TARGET}_DANMAKU("戦闘前", 0)
IF RESULT == -1
	RETURN -1
ENDIF

PRINTFORMW 전투 개시!!
CALL DANMAKU_BATTLE(TARGET)
OPPONENT_REMAIN = RESULT

TRYCALLFORM M_KOJO_MESSAGE_COM_K{TARGET}_DANMAKU("戦闘後", OPPONENT_REMAIN)
PRINTL

;source操作他
TCVAR:TARGET:탄막승부불능 = 1
SIF CFLAG:TARGET:탄막승부승리 == 0 && LOCAL == 0
	CFLAG:TARGET:탄막승부승리 = 1

DOWNBASE:기력 += 500
DOWNBASE:MASTER:기력 += 500
DOWNBASE:체력 += 500
DOWNBASE:MASTER:체력 += 500

SOURCE:환락 += (3000 + ABL:친밀 * 100) / (LOCAL + 1)
TFLAG:호감도보너스 = 1600 / (LOCAL + 1)
TFLAG:신뢰도관리 = 3 - LOCAL

EXP:MASTER:전투경험 += 3

TIME += 60

RETURN 1

;-------------------------------------------------
;実行判定
;-------------------------------------------------
@COM_ABLE480
;停止中は不可
SIF FLAG:70 == 1
	RETURN 0
;実行判定
SIF !TFLAG:100
	RETURN 0
;一括管理
SIF GLOBAL_COMABLE(480)
	RETURN RESULT
SIF TARGET <= 0
	RETURN 0
SIF !SHIRAHU(TARGET)
	RETURN 0
SIF CFLAG:우후후
	RETURN 0
;戦闘能力0以外
SIF ABL:TARGET:전투능력 == 0
	RETURN 0
SIF !전투훈련가능(CFLAG:MASTER:현재위치)
	RETURN 0
;体力・気力不足
SIF BASE:MASTER:기력 < 500 || BASE:MASTER:체력 < 500
	RETURN 0
;体力・気力不足
SIF BASE:TARGET:기력 < 500 || BASE:TARGET:체력 < 500
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF480 탄막승부.ERB


code:
;-------------------------------------------------
;アイテム画面
;-------------------------------------------------
@COM490
#DIM 回復前体力１
#DIM 回復前気力１
#DIM 回復前精力１
#DIM 回復後体力１
#DIM 回復後気力１
#DIM 回復後精力１
#DIM 回復前体力２
#DIM 回復前気力２
#DIM 回復前精力２
#DIM 回復後体力２
#DIM 回復後気力２
#DIM 回復後精力２
#DIM 対象
#DIM 全員
#DIM CLIENT_ID
#DIM 虚無への回帰
#DIM 使用アイテム
回復前体力１ = BASE:MASTER:체력
回復前気力１ = BASE:MASTER:기력
回復前精力１ = BASE:MASTER:정력
回復前体力２ = BASE:TARGET:체력
回復前気力２ = BASE:TARGET:기력
回復前精力２ = BASE:TARGET:정력
VARSET LOCAL
VARSET LOCALS
対象 = MASTER
虚無への回帰 = 0
PRINTL 무엇을 사용합니까？
$LOOP
DRAWLINE
FOR LOCAL,120, 699
	IF 対象
		IF 使用可能アイテム(LOCAL) == 2 && ITEM:LOCAL
			PRINTFORM [{LOCAL}] %ITEMNAME:LOCAL, 18, LEFT%
			SIF LOCAL > 99	;後々のことを考えて仕込み
				PRINT
			SIF ITEM:LOCAL < 10
				PRINT
			PRINTFORM 　{ITEM:LOCAL}개
			SETCOLOR C_L_GRAY
				PRINTFORML %ITEM_EXPLANATION(LOCAL)%
			RESETCOLOR
		ENDIF
	ELSE
		IF 使用可能アイテム(LOCAL) && ITEM:LOCAL
			PRINTFORM [{LOCAL}] %ITEMNAME:LOCAL, 18, LEFT%
			SIF LOCAL > 99
				PRINT
			SIF ITEM:LOCAL < 10
				PRINT
			PRINTFORM 　{ITEM:LOCAL}개
			SETCOLOR C_L_GRAY
				PRINTFORML %ITEM_EXPLANATION(LOCAL)%
			RESETCOLOR
		ENDIF
	ENDIF
NEXT
PRINTL
DRAWLINE
PRINTFORML [900] 콜렉션의 스키마 자동 사양 변환（현재\@ FLAG:C스키마자동사양 ? ON# OFF\@）
IF TARGET && SHIRAHU(TARGET)
	SIF 対象
		SETCOLOR C_YELLOW
	PRINTFORMLC [998] %CALLNAME:TARGET%에 사용한다
	RESETCOLOR
ENDIF

PRINTLC [999] 그만둔다
INPUT
使用アイテム = RESULT
IF DRUG(使用アイテム,対象)
	PRINTL 오늘은 이미 그만두자
	GOTO LOOP
ENDIF
IF ITEM_SWEETS(使用アイテム) && !TIME_PROGRESS(TCVAR:対象:디저트공복시각)
	PRINTL 아직 먹고 싶지 않다
	GOTO LOOP
ENDIF
IF RESULT == 900
	FLAG:C스키마자동사양 = !FLAG:C스키마자동사양
	PRINTFORMW 자동 사양을\@ FLAG:C스키마자동사양 ? ON# OFF\@(으)로 했습니다
	GOTO LOOP
ENDIF
SELECTCASE 使用アイテム
	CASE 120
		IF 対象 == MASTER
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 먹었다
			PRINTL ……저렴한 맛이 났다
			CALL RECOVER(MASTER,50, "체력", "チョコによる回復")
			TCVAR:対象:디저트공복시각 = 1440 * DAY + TIME + 180
			LOCAL:1 ++
		ENDIF
	CASE 121
		IF 対象 == MASTER
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 먹었다
			CALL RECOVER(MASTER,300, "체력", "チョコによる回復")
			CALL RECOVER(MASTER,300, "기력", "チョコによる回復")
			TCVAR:対象:디저트공복시각 = 1440 * DAY + TIME + 180
			LOCAL:1 ++
		ENDIF
	CASE 122
		IF 対象 == MASTER
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 먹었다
			PRINTFORML 능숙하다！
			CALL RECOVER(MASTER,500, "체력", "チョコによる回復")
			CALL RECOVER(MASTER,500, "기력", "チョコによる回復")
			TCVAR:対象:디저트공복시각 = 1440 * DAY + TIME + 180
			LOCAL:1 ++
		ENDIF
	CASE 123
		IF 対象 == MASTER
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 먹었다
			PRINTFORML 사랑을 느낀다！
			CALL RECOVER(MASTER,1000, "체력", "チョコによる回復")
			CALL RECOVER(MASTER,1000, "기력", "チョコによる回復")
			TCVAR:対象:디저트공복시각 = 1440 * DAY + TIME + 180
			LOCAL:1 ++
		ENDIF
	CASE 212
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 먹었다
			LOCAL:1 ++
			CALL RECOVER(MASTER,100, "체력", "かしわもちによる回復")
			TCVAR:対象:디저트공복시각 = 1440 * DAY + TIME + 180
	CASE 213
		SIF TARGET && SHIRAHU(TARGET)
			PRINT 두 명 줄서
			PRINTDATA
				DATAFORM 「아이스」
				DATAFORM 「냉동 귤」
				DATAFORM 「(무늬)격이 2개 붙은 소다 아이스」
				DATAFORM 「2개(살)로 1조의 달걀 아이스」
				DATAFORM 「츄-애완동물」
				DATAFORM 「파피코」
				DATAFORM 「연유가 찬 milk bar」
				DATAFORM 「아즈 어금니-」
				DATAFORM 「수박 바」
				DATAFORM 「가튼, 이라고 귤」
				DATAFORM 「블랙 번개 아이스」
				DATAFORM 「눈구경 큰 복」
			ENDDATA
		PRINTFORML (을)를 먹었다
			CALL RECOVER(MASTER,150, "기력", "アイスによる回復")
			TCVAR:MASTER:디저트공복시각 = 1440 * DAY + TIME + 180
			IF  TARGET && SHIRAHU(TARGET)
				CALL RECOVER(TARGET,150, "기력", "アイスによる回復")
				TCVAR:디저트공복시각 = 1440 * DAY + TIME + 180
			ENDIF
		LOCAL:1 ++
	CASE 215
		PRINTFORML %ITEMNAME:使用アイテム%(을)를 사용했다
		SETBIT TCVAR:MASTER:특별한차, 0
		LOCAL:1 ++
	CASE 352
		PRINTFORML %ITEMNAME:使用アイテム%(을)를 먹었다
		CALL RECOVER(対象,50, "기력", "イチゴによる回復")
		SIF 対象 == (NO:9)
			CALL RECOVER(対象,50, "기력", "イチゴによる回復")
		LOCAL:1 ++
	CASE 364
		IF FLAG:70 == 1
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 먹었다
			CALL RECOVER(MASTER,100, "기력", "スイカによる回復")
		ELSE
			PRINTFORML 모두가%ITEMNAME:使用アイテム%(을)를 먹었다
			FOR 全員, 0, CHARANUM
				SIF CFLAG:全員:현재위치 != CFLAG:MASTER:현재위치
					CONTINUE
				SIF !SHIRAHU(全員)
					CONTINUE
				CALL RECOVER(全員,100, "기력", "スイカによる回復")
			NEXT
		ENDIF
		LOCAL:1 ++
	;CASE 400
	;	PRINTFORML %CALLNAME:MASTER%は%ITEMNAME:使用アイテム%を開いた
	;	CALL COM401
	;	LOCAL:1 ++
	CASE 500
		PRINTFORML %ITEMNAME:使用アイテム%(을)를 마셨다
		PRINTL 마즈이！한잔 더！
		CALL RECOVER(対象,100, "체력", "青汁による回復")
		CALL RECOVER(対象,200, "기력", "青汁による回復")
		LOCAL:1 ++
	CASE 501
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 마셨다
			CALL RECOVER(対象,200, "체력", "栄養ドリンクによる回復")
			CALL RECOVER(対象,100, "기력", "栄養ドリンクによる回復")
			TCVAR:対象:약 = 1
			LOCAL:1 ++
	CASE 502
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 마셨다
			SIF GETBIT(TALENT:対象:성별, 1)
				CALL RECOVER(対象,300, "정력", "精力剤による回復")
			TCVAR:対象:약 = 1
			LOCAL:1 ++
	CASE 503
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 마셨다
			PRINTL 실 있고 개, -응！
			CALL RECOVER(対象,500, "체력", "ギンギンＺによる回復")
			CALL RECOVER(対象,300, "기력", "ギンギンＺによる回復")
			CFLAG:対象:385 = 60
			TCVAR:対象:약 = 1
			LOCAL:1 ++
	;CASE 504
	;		IF FLAG:70
	;			PRINTFORML 時間停止を解除してから使おう
	;			GOTO LOOP
	;		ENDIF
	;		IF CFLAG:MASTER:현재위치 != CFLAG:MASTER:초기위치
	;			PRINTFORML これは自室で飲もう
	;			GOTO LOOP
	;		ENDIF
	;		PRINTFORML ストロング虚無を口にした途端、虚無の力で思考はぼやけ、すべてがどうでもよくなってきた
	;		PRINTFORML %CALLNAME:MASTER%は缶を空けながら一日を無為に過ごした…
	;		虚無への回帰 = 1
	CASE 505	;ギンギラギンＸ
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 마셨다
			PRINTL ２４시간 싸울 수 있을 것 같은 생각이 든다…！
			CALL RECOVER(対象,800, "체력", "ギンギラギンＸによる回復")
			CALL RECOVER(対象,600, "기력", "ギンギラギンＸによる回復")
			CFLAG:対象:졸음쫒기강도 = 180
			CFLAG:対象:철야 = 1
			TCVAR:対象:약 = 1
			LOCAL:1 ++
	CASE 506
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 마셨다
			PRINTL 너의×××그리고 하늘을 찔러라！
			CALL RECOVER(対象,200, "체력", "精力剤『天元凸破』による回復")
			CALL RECOVER(対象,200, "기력", "精力剤『天元凸破』による回復")
			CALL RECOVER(対象,600, "정력", "精力剤『天元凸破』による回復")
			TCVAR:対象:약 = 1
			LOCAL:1 ++
	CASE 507
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 마셨다
			CALL RECOVER(対象,150, "기력", "ポーションによる回復")
			CALL RECOVER(対象,150, "TSP", "ポーションによる回復")
			TCVAR:対象:약 = 1
			LOCAL:1 ++
	CASE 508
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 마셨다
			PRINTL 마력이 넘쳐 온다…
			CALL RECOVER(対象,300, "기력", "マジックポーションによる回復")
			CALL RECOVER(対象,600, "TSP", "マジックポーションによる回復")
			TCVAR:対象:약 = 1
			LOCAL:1 ++
	CASE 509
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 마셨다
			CALL RECOVER(対象,200, "기력", "破眠ポーションによる回復")
			CFLAG:対象:졸음쫒기강도 = 240
			CFLAG:対象:철야 = 1
			TCVAR:対象:약 = 1
			LOCAL:1 ++
	CASE 510
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 마셨다
			PRINTL 간기능이 높아져, 취하기 어려워졌다
			TFLAG:멀미약 = 1
			LOCAL:1 ++
	CASE 511	;エリクサー
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 마셨다
			PRINTL 피로가 저 쪽으로 물리쳤다…！
			CALL RECOVER(対象, MAXBASE:対象:체력, "체력", "エリクサーによる回復")
			CALL RECOVER(対象,9999, "기력", "エリクサーによる回復")
			SIF 対象 == MASTER
				CALL RECOVER(対象,9999, "TSP", "エリクサーによる回復")
			CALL RECOVER(対象,9999, "정력", "エリクサーによる回復")
			CFLAG:対象:졸음쫒기강도 = 300
			TCVAR:対象:약 = 1
			LOCAL:1 ++
	CASE 512	;仙丹
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 마셨다
			PRINTL 심상하지 않은 힘이 넘친다……！
			CALL BUFF_BASE(対象, BASE_체력, MAX(MAXBASE:対象:체력 / 5, 500))
			CALL BUFF_BASE(対象, BASE_기력, MAX(MAXBASE:対象:기력 / 5, 500))
			CALL BUFF_BASE(対象, BASE_정력, MAX(MAXBASE:対象:정력 / 5, 500))
			LOCAL:1 ++
	CASE 520
			IF !TFLAG:키스마크
				PRINTFORML 지금 사용해도 의미가 없다
				GOTO LOOP
			ELSE
				PRINTFORML %CALLNAME:MASTER%하%ITEMNAME:使用アイテム%(을)를 감아 키스 마크를 숨겼다
				TFLAG:붕대 = 1
				LOCAL:1 ++
			ENDIF
	CASE 521
			IF FLAG:70
				PRINTFORML 시간 정지를 해제하고 나서 사용하자
				GOTO LOOP
			ENDIF
			PRINTFORML %CALLNAME:MASTER%(은)는 역서를 열었다
			PRINTFORML 점쟁이가 나왔다
			PRINTFORMW
			IF CFLAG:1:현재위치 == CFLAG:MASTER:현재위치
				PRINTFORML 재빠르게 레이무는 점쟁이의 머리에 불제봉을 내려쳤다.
				PRINTFORML 가련한 점쟁이는 머V리 가 되서 떠나갔다.
				FOR LOCAL,1,CHARANUM
					IF CFLAG:LOCAL:현재위치 == CFLAG:MASTER:현재위치
						BASE:LOCAL:이성 = MAXBASE:LOCAL:이성
						BASE:LOCAL:무드 = 0
					ENDIF
				NEXT
				LOCAL:1 ++
			ELSE
				PRINTFORML 「점술을 통해서 가야할 길을 보고 주자」
				$EKISYA
				CALL ASK_M("오늘의 운세", !GETBIT(FLAG:999, 1), "곤란해 하고있는 사람을 찾는다.", 1, "손톱깍이를 대령하라", BASE:MASTER:TSP >= 20, "미라다의돌 해주(100카리스마)", MONEY:2 >= 100, "엄지척!", 1, "공물로 바친다", 1)
				SELECTCASE RESULT
					CASE 0
						SELECTCASE RAND:10
							CASE 0
								TFLAG:행운보정 = 3
								PRINTFORML 「절호조다, 복권이라도 뽑으러 가는게 어때？」
							CASE 1 TO 3
								TFLAG:행운보정 = 1
								PRINTFORML 「양호하다, 미루고 있던 일이 있으면 지금 해라」
							CASE 4,5
								PRINTFORML 「좋지도, 나쁘지도 않음, 이라는 느낌이다.」
							CASE 6 TO 8
								TFLAG:행운보정 = -1
								PRINTFORML 「저조하다, 무리는 하지 말아라」
							CASE 9
								TFLAG:행운보정 = -3
								PRINTFORML 「...너무 안좋다, 오늘 하루는 얌전히 있어라」
						ENDSELECT
					CASE 1
						CLIENT_ID = SEARCH_UNIQUE_COM_사람돕기()
						IF !CLIENT_ID
							PRINTFORML 「그런 사람은 딱히 보이지 않는구나」
							PRINTFORML 「굳이 말하자면 나다, 홍백 무녀에게 노려지고 있다」
							PRINTFORML ...그건 어떻게 해줄수도 없을 것 같다.
						ELSE
							PRINTFORML 「%CALLNAME:CLIENT_ID% 인가?, 저 아이가 도움을 요구하고 있는 것 같구나」
						ENDIF
					CASE 2
						PRINTFORMW %마스터가% 점쟁이를 가만히 바라보자 눈길이 되돌아 왔다.
						PRINTFORMW ……뭐야 그 손톱은.
						PRINTFORMW 인간을 그만두었다는 어필일진 몰라도, 너무 길다.
						PRINTFORMW 일상 생활에서 불편하지 않나?, 타인을 실수로 긁어버리면 어떻게 하려는 거지?
						PRINTFORMW 자신은 언제 부드러운 부분에 손대도 괜찮게 매일 체크하고 있는데...
						PRINTFORMW 아니아니 애초에 무언가에 걸려 생살을 뜯어지게하면 아프지 않은가...
						PRINTFORMW 손톱 밑에 때가 껴도 불편하지 않은건가?
						PRINTFORMW 참을 수 없게 된 %마스터는% 시간을 멈추어 점쟁이의 손톱을 정중하게 잘라 가지런히 했다
						PRINTFORMW %마스터는% 큰 달성감을 맛보았다……
						PRINTFORML 한편 돌연 손톱이 짧아진 점쟁이는 곤혹하고 있다……
						CALL RECOVER_PERMIL(対象,40,"기력")
						BASE:MASTER:TSP -= 20
					CASE 3
						PRINTFORML 누구의 것을 해주 할까?
						FOR LOCAL,1,CHARANUM
							SIF CFLAG:LOCAL:몸목적
								PRINTFORMLC [{LOCAL}] %CALLNAME:LOCAL%
						NEXT
						PRINTFORML
						DRAWLINE
						PRINTFORML [999] 그만둔다
						INPUT
						IF RESULT == 999
							GOTO EKISYA
						ELSEIF CFLAG:RESULT:몸목적
							PRINTFORML 「이런 도구는 좋지 않다고 생각한다」
							PRINTFORMW 점쟁이가 무엇인가 복잡한 의식을 거행하자, 미라다의 돌은 서서히 빛을 잃어 바스라졌다.
							TIME += 25
							CFLAG:RESULT:몸목적 = 0
							MONEY:2 -= 100
						ENDIF
					CASE 4
						PRINTFORML %마스터는% 점쟁이와 시선을 주고 받고는 무언으로 엄지척을 했다
						PRINTFORML 점쟁이는 잠깐 주저하다가, 강력한 엄지척 돌려주어 왔다
						PRINTFORMW 두 사람 사이에 우정이 자라났다.
						GOTO EKISYA
					CASE 5
						PRINTFORML %CALLNAME:MASTER%(은)는 시간을 멈춰서 점쟁이의 옷을 벗긴 뒤, 속옷을 신께 공물로 바쳤다.
						CALL BUFF_BASE(MASTER,BASE_TSP,100,1)
						PRINTFORMW 자신도 모르는 사이에 속옷을 탈취당한 점쟁이는 당황하고 있다.
				ENDSELECT
				PRINTFORMW
				DRAWLINE
				$EKISYA_DIVIDE
				PRINTFORML 레이무가 나타나 점쟁이의 머리를 불제봉으로 내리쳤다.
				PRINTFORML 가련한 점쟁이는 머리가 2개로 갈라져 머V리가 됐다.
				PRINTFORMW 레이무는 %마스터를% 잠시 바라보더니 떠나갔다.
				FOR LOCAL,1,CHARANUM
					IF CFLAG:LOCAL:현재위치 == CFLAG:MASTER:현재위치
						BASE:LOCAL:이성 = MAXBASE:LOCAL:이성
						BASE:LOCAL:무드 = 0
					ENDIF
				NEXT
				LOCAL:1 ++
			ENDIF
	CASE 530
		CALL SET_MIRADA
		IF RESULT == -1
			RETURN -1
		ELSE
			LOCAL:1 ++
		ENDIF
	CASE 550
		IF !TIME_PROGRESS(TCVAR:対象:공복시각)
			PRINTFORML %CALLNAME:対象%(은)는 아직 공복이 되지 않다
			GOTO LOOP
		ELSE
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 먹었다
			CALL 만복도상승(対象,"경식")
			CALL RECOVER_PERMIL(対象,40,"체력")
			CALL RECOVER_PERMIL(対象,80,"기력")
			CALL RECOVER_PERMIL(対象,50,"정력")
			LOCAL:1 ++
		ENDIF
	CASE 626	;キイチゴ
		PRINTFORML %ITEMNAME:使用アイテム%(을)를 먹었다
		CALL RECOVER(対象,50, "기력", "キイチゴによる回復")
		LOCAL:1 ++
	CASE 628	;アケビ
		PRINTFORML %ITEMNAME:使用アイテム%(을)를 먹었다
		CALL RECOVER(対象,80, "체력", "アケビによる回復")
		CALL RECOVER(対象,80, "기력", "アケビによる回復")
		LOCAL:1 ++
	CASE 630	;仙桃
		PRINTFORML %ITEMNAME:使用アイテム%(을)를 먹었다
		PRINTL 힘이 넘친다……！
		CALL BUFF_BASE(対象, BASE_체력, MAX(MAXBASE:対象:체력 / 10, 500))
		CALL BUFF_BASE(対象, BASE_기력, MAX(MAXBASE:対象:기력 / 10, 500))
		SIF GETBIT(TALENT:対象:성별, 1)
			CALL BUFF_BASE(対象, BASE_정력, MAX(MAXBASE:対象:정력 / 10, 500))
		LOCAL:1 ++
	CASE 643	;即席ラーメン
		IF !KITCHEN(CFLAG:MASTER:현재위치) &&  CFLAG:MASTER:현재위치 != 29 &&  CFLAG:MASTER:현재위치 != 42 &&  CFLAG:MASTER:현재위치 != 주택가
			PRINTFORML %ITEMNAME:使用アイテム%의 용기로부터 면을 꺼내 그대로 갉아 먹었다
			PRINTFORML 이마이치…
			CALL RECOVER(対象,100, "체력", "即席ラーメンによる回復")
			CALL RECOVER(対象,100, "기력", "即席ラーメンによる回復")
		ELSE
			PRINTFORML %ITEMNAME:使用アイテム%(을)를 조리해 먹었다
			PRINTFORML --！
			CALL RECOVER(対象,600, "체력", "即席ラーメンによる回復")
			CALL RECOVER(対象,500, "기력", "即席ラーメンによる回復")
			CALL 만복도상승(対象,"경식")
			EXP:対象:요리경험 += 1
		ENDIF
		LOCAL:1 ++
	CASE 644	;瓶コーラ
		PRINTFORML %ITEMNAME:使用アイテム%(을)를 마셨다
		PRINTFORML …
		CALL RECOVER(対象,700, "기력", "瓶コーラによる回復")
		LOCAL:1 ++
	CASE 645	;缶詰保存食
		SELECTCASE RAND:30
		CASE 0 TO 5
			PRINTFORML 새 꼬치구이의 통조림을 개봉해 먹었다
			CALL RECOVER(対象,750, "체력", "缶詰保存食による回復")
			CALL RECOVER(対象,250, "기력", "缶詰保存食による回復")
			CALL 만복도상승(対象,"경식")
		CASE 6 TO 11
			PRINTFORML 고등어의 된장을 넣은 조림요리의 통조림을 개봉해 먹었다
			CALL RECOVER(対象,400, "체력", "缶詰保存食による回復")
			CALL RECOVER(対象,300, "기력", "缶詰保存食による回復")
			CALL 만복도상승(対象,"경식")
			EXP:対象:학습경험 += 5
		CASE 12 TO 15
			PRINTFORML 빵의 통조림을 개봉해 먹었다
			CALL RECOVER(対象,600, "체력", "缶詰保存食による回復")
			CALL RECOVER(対象,600, "기력", "缶詰保存食による回復")
			CALL 만복도상승(対象,"주식")
		CASE 16 TO 19
			PRINTFORML 복숭아의 통조림을 개봉해 먹었다
			CALL RECOVER(対象,100, "체력", "缶詰保存食による回復")
			CALL RECOVER(対象,1000, "기력", "缶詰保存食による回復")
			CALL 만복도상승(対象,"디저트")
		CASE 20 TO 23
			PRINTFORML 스튜의 통조림을 개봉해 먹었다
			CALL RECOVER(対象,1000, "체력", "缶詰保存食による回復")
			CALL RECOVER(対象,500, "기력", "缶詰保存食による回復")
			CALL 만복도상승(対象,"주식")
		CASE 24
			PRINTFORML 로터의 통조림을 개봉해 먹었다
			CALL RECOVER(対象,200, "체력", "缶詰保存食による回復")
			CALL RECOVER(対象,300, "기력", "缶詰保存食による回復")
			CALL RECOVER(対象,1000, "정력", "缶詰保存食による回復")
			CALL 만복도상승(対象,"경식")
		CASE 25
			PRINTFORML 니싱의 통조림을 개봉해 먹었다
			PRINTFORML 주위에 무서운 악취가 감돈다！！
			CALL RECOVER(対象,600, "체력", "缶詰保存食による回復")
			CALL RECOVER(対象,-1000, "기력", "缶詰保存食による回復")
			CALL 만복도상승(対象,"경식")
			EXP:対象:청소経験 += 20
		CASE 26
			PRINTFORML 보고 있는 것만으로 행복한 기분이 될 수 있는 보라색의 캔의 개봉을 시도했다
			PRINTFORMW -응
			PRINTFORML 행복한 캔은%CALLNAME:対象%(을)를 말려들게 해 폭발했다
			CALL RECOVER(対象,-5000, "체력",)
		CASE 27
			PRINTFORML 미지의 언어가 기록된 녹색의 캔을 개봉해 수수께끼의 고기를 먹었다
			SETCOLOR 0 , 255, 0
			PRINTFORMW 정말로 먹어 버렸는가？
			RESETCOLOR
			PRINTFORML 화가 난 환청과 함께%CALLNAME:対象%의 의식은 몽롱해졌다
			CALL RECOVER(対象,100, "체력", "缶詰保存食による回復")
			CALL RECOVER(対象,-5000, "기력",)
			CALL 만복도상승(対象,"경식")
		CASE 28
			PRINTFORML 500(이)라고 기록된 만큼 두꺼운 캔을 개봉했다
			PRINTFORMW 들어가 있던 한 알의 붉은 정제를%CALLNAME:対象%(은)는 섭취했다
			CALL RECOVER(対象,9999, "체력", "缶詰保存食による回復")
			CALL RECOVER(対象,9999,"기력", "缶詰保存食による回復")
			CALL RECOVER(対象,9999, "정력", "缶詰保存食による回復")
			CALL RECOVER(対象,9999, "TSP", "缶詰保存食による回復")
		CASE 29
			PRINTFORML 준구촉수로 덮인 미지근한 캔을 개봉했다
			PRINTFORMW 가득찬 빛나는 육 괴를%CALLNAME:対象%(은)는 밥 했다
			CALL RECOVER(対象,5000, "TSP", "缶詰保存食による回復")
		SIF GETBIT(TALENT:対象:성별, 1)
			PRINTFORML %CALLNAME:対象%의 성기가 새빨갛게 불탄다！
			MAXBASE:対象:정력 += 50
			CALL 만복도상승(対象,"경식")
		ENDSELECT
			LOCAL:1 ++
	CASE 646
	CASE 998
		IF 対象
			対象 = MASTER
		ELSEIF SHIRAHU(TARGET) && TARGET
			対象 = TARGET
		ENDIF
		GOTO LOOP
	CASE 999
		RETURN -1
	CASEELSE
		GOTO LOOP
ENDSELECT
IF LOCAL:1
	IF !FLAG:70
		TIME += 5
	ELSE
		BASE:MASTER:TSP -= 5
	ENDIF
	ITEM:使用アイテム -= 1
	回復後体力１ = BASE:対象:체력
	回復後気力１ = BASE:対象:기력
	回復後精力１ = BASE:対象:정력
	回復後体力２ = BASE:対象:체력
	回復後気力２ = BASE:対象:기력
	回復後精力２ = BASE:対象:정력
	;@RECOVERとの二重表記を避けるために、100未満を回復量にとるもののみ、以下の表記を行う
	IF GROUPMATCH(使用アイテム, 120, 352, 626, 628)
		SETCOLOR C_GREEN
		IF !対象
			SIF ABS(回復後体力１ - 回復前体力１)
				PRINTFORML 체력＋{ABS(回復後体力１ - 回復前体力１)}（%CALLNAME:対象%）
			SIF ABS(回復後気力１ - 回復前気力１)
				PRINTFORML 기력＋{ABS(回復後気力１ - 回復前気力１)}（%CALLNAME:対象%）
			SIF ABS(回復後精力１ - 回復前精力１)
				PRINTFORML 정력＋{ABS(回復後精力１ - 回復前精力１)}（%CALLNAME:対象%）
		ELSE
			SIF ABS(回復後体力２ - 回復前体力２)
				PRINTFORML 체력＋{ABS(回復後体力２ - 回復前体力２)}（%CALLNAME:対象%）
			SIF ABS(回復後気力２ - 回復前気力２)
				PRINTFORML 기력＋{ABS(回復後気力２ - 回復前気力２)}（%CALLNAME:対象%）
			SIF ABS(回復後精力２ - 回復前精力２)
				PRINTFORML 정력＋{ABS(回復後精力２ - 回復前精力２)}（%CALLNAME:対象%）
		ENDIF
		RESETCOLOR
	ENDIF
	SIF 虚無への回帰
		CALL OYASUMI
	RETURN 0
ENDIF

@SET_MIRADA
PRINTFORML 대상을 선택해 주세요.
PRINTFORML 황색은 이미 유효, 핑크는 이미 함락 소질이 붙어 있는 캐릭터입니다.
FOR LOCAL,1,CHARANUM
	;SIF TALENT:LOCAL:스침
	;	CONTINUE
	SIF CFLAG:LOCAL:출금
		CONTINUE
	SIF CFLAG:LOCAL:몸목적
		SETCOLOR C_YELLOW
	SIF TALENT:LOCAL:섹프 || TALENT:LOCAL:연모
		SETCOLOR C_PINK
	PRINTFORMLC [{LOCAL}] %CALLNAME:LOCAL%
	RESETCOLOR
NEXT
PRINTFORML
DRAWLINE
PRINTFORML [999] 그만둔다
INPUT
SIF !INRANGE(RESULT,1,CHARANUM)
	RETURN -1
SIF CFLAG:RESULT:몸목적
	RETURN -1
SIF TALENT:RESULT:섹프 || TALENT:RESULT:연모
	RETURN -1
PRINTFORMW %CALLNAME:RESULT%(을)를 떠올리면서 미라다의 돌을 강하게 잡으면(자), 돌은 희미하게 빛을 띠었다
CFLAG:RESULT:몸목적 = 1
RETURN 1

@使用可能アイテム(ARG)
;1だとMASTERのみ、2だとあなた以外にも使える
#FUNCTION
SELECTCASE ARG
	CASE 120 TO 123, 215, 364, 500, 510, 520, 521, 530
		RETURNF 1
	CASE 212, 213, 352, 501 TO 503, 505 TO 509, 511, 512, 550, 626, 628, 630, 643 TO 645
		RETURNF 2
	CASEELSE
		RETURNF 0
ENDSELECT

@DRUG(ARG,ARG:1)
#FUNCTION
SIF GROUPMATCH(ARG, 501, 502, 503, 505, 506, 507, 508, 509, 511) && TCVAR:(ARG:1):약
	RETURNF 1

@ITEM_SWEETS(ARG)
#FUNCTION
SIF GROUPMATCH(ARG, 120, 121, 123, 124, 212, 213)
	RETURNF 1

;アイテム
@COM_ABLE490
;移動実行判定
SIF !TFLAG:100
	RETURN 0
;一括管理
SIF GLOBAL_COMABLE(490)
	RETURN RESULT
SIF CFLAG:MASTER:우후후
	RETURN 0
RETURN 1

path: ERB/커맨드관련/COMF/일상계/COMF490 아이템.ERB


code:
@DANMAKU_OPPONENT_STATUS(ARG, ARG:1)
;特殊능력표시
LOCAL:1 = 0
FOR LOCAL, 0, 10
	SIF GETBIT(CFLAG:ARG:탄막특능, LOCAL)
		LOCAL:1 ++
NEXT
IF LOCAL:1 == 10
	CALL DANMAKU_SA_OUTPUT(ARG, LOCAL:1)
ELSEIF LOCAL:1 == 0
	PRINTFORML 弾幕スキル未収得
ELSE
	FOR LOCAL, 0, 10
		CALL DANMAKU_SA_OUTPUT(ARG, LOCAL)
	NEXT
ENDIF

SIF ARG:1
	RETURN
;전투능력の差でメッセージ分岐
SELECTCASE ABL:ARG:전투능력 - ABL:MASTER:전투능력
	CASE -6 TO -4
		PRINTFORML 눈 가리고 앉아있어도 이긴다.
	CASE -4 TO -2
		PRINTFORML 눈 가리고 있어도 이길 것 같다.
	CASE -1
		PRINTFORML 질 것 같지는 않다.
	CASE 0
		PRINTFORML 아마 이길 것 같다.
	CASE 1
		PRINTFORML 못 이길 상대는 아니다.
	CASE 2
		PRINTFORML 상대는 꽤 강한 것 같다.
	CASE 3
		PRINTFORML 적어도 당신보다 배는 강한 것 같다.
	CASE 4
		PRINTFORML 기적이 일어나지 않으면 살해당할 것이다.
	CASE 5,6
		PRINTFORML 상대가 거인이라 치면, 당신은 개미똥 이하다.
	CASEELSE

ENDSELECT

@DANMAKU_SA_OUTPUT(OPPONENT, ARG:0)
#DIM OPPONENT

SIF ARG:0 < 10
	LOCAL = GETBIT(CFLAG:OPPONENT:탄막특능, ARG:0)
	IF ARG:0 == 10
		SETCOLOR C_RED
		PRINTFORML 【백재무궁】: 모든 특수 능력을 겸비한다. 최강
	ELSEIF LOCAL && ARG:0 == 0
		SETCOLOR C_P_BLUE
		PRINTFORML 【언소자약】: %CALLNAME:MASTER%의 주사위수 Down
	ELSEIF LOCAL && ARG:0 == 1
		SETCOLOR C_P_BLUE
		PRINTFORML 【온유돈독】: %CALLNAME:MASTER%의 주사위면 Down
	ELSEIF LOCAL && ARG:0 == 2
		SETCOLOR C_RED
		PRINTFORML 【용기늠름】: %CALLNAME:OPPONENT%의 주사위수 Up
	ELSEIF LOCAL && ARG:0 == 3
		SETCOLOR C_RED
		PRINTFORML 【호방뇌락】: %CALLNAME:OPPONENT%의 주사위면 Up
	ELSEIF LOCAL && ARG:0 == 4
		SETCOLOR C_P_PURPLE
		PRINTFORML 【괴력난신】: %CALLNAME:OPPONENT%의 주사위값이 %CALLNAME:MASTER%의 주사위값보다 작아도 그 차이가 일정수 이하라면 잔기가 줄지 않는다
	ELSEIF LOCAL && ARG:0 == 5
		SETCOLOR C_P_PURPLE
		PRINTFORML 【습람심식】: %CALLNAME:OPPONENT%의 초기 잔기가 4가 된다
	ELSEIF LOCAL && ARG:0 == 6
		SETCOLOR C_P_PURPLE
		PRINTFORML 【잔인무도】: %CALLNAME:MASTER%의 피탄에서 복귀했을 때의 폭탄수가 ―1 된다
	ELSEIF LOCAL && ARG:0 == 7
		SETCOLOR C_P_PURPLE
		PRINTFORML 【건곤일척】: %CALLNAME:OPPONENT%가 일정 확률로 폭탄을 사용하게 된다
	ELSEIF LOCAL && ARG:0 == 8
		SETCOLOR C_RED
		PRINTFORML 【견개고고】: %CALLNAME:OPPONENT%의 주사위 수정치 Up
	ELSEIF LOCAL && ARG:0 == 9
		SETCOLOR C_P_BLUE
		PRINTFORML 【유수암한】: %CALLNAME:MASTER%의 주사위 수정치 Down
	ENDIF
RESETCOLOR

;-------------------------------------------------
;戦闘中の処理
;-------------------------------------------------
@DANMAKU_BATTLE(OPPONENT)
#DIM プレイヤー残機
#DIM 相手残機
#DIM 残りHP
#DIM 残りボム回数
#DIM ターン数
#DIM プレイヤーダイス面
#DIM 相手ダイス面
#DIM プレイヤーダイス数
#DIM 相手ダイス数
#DIM プレイヤーダイス値
#DIM 相手ダイス値
#DIM プレイヤー修正値
#DIM 相手修正値
#DIM 相手強さ
#DIM 영력충전フラグ
#DIM 慢心フラグ
#DIM OPPONENT
#DIM BombPower
#DIM B_Min
#DIM B_Max
#DIM 持ち込み아이템

プレイヤー残機 = 3
相手残機 = 3
相手強さ = ABL:OPPONENT:전투능력
残りHP = MAXBASE:MASTER:체력
残りボム回数 = 2
ターン数 = 1
영력충전フラグ = 0
慢心フラグ = 0
B_min = ABL:MASTER:전투능력 * 7 * (ABL:MASTER:전투능력 / 2 + 1)
B_Max = ABL:MASTER:전투능력 * 11 * (ABL:MASTER:전투능력 / 2 + 1) + 6
SIF TALENT:OPPONENT:자존심 > 0 && ABL:MASTER:전투능력 < 相手強さ && 相手強さ > 2 && TALENT:OPPONENT:스침 == 1
	慢心フラグ = 1
;【洽覧深識】の効果
SIF GETBIT(CFLAG:OPPONENT:탄막특능, 5)
	相手残機 ++
;【익스텐드】の効果
SIF TALENT:MASTER:익스텐드 == 1
	プレイヤー残機 ++
;【루나슈터】の効果
SIF TALENT:MASTER:루나슈터 == 1
	残りボム回数 ++
;탄막승부補助아이템の持ち込み
CALL DANMAKU_ITEM_USE
持ち込み아이템 = RESULT

WHILE プレイヤー残機 > 0 && 相手残機 > 0
	;ダイス数計算
	プレイヤーダイス数 = (ABL:MASTER:전투능력 + RAND:5) * 2 + (ABL:MASTER:전투능력 + RAND:3) / 2
	相手ダイス数 = (相手強さ + RAND:4 + 1) * 2 + 相手強さ / 2 * RAND:3
	SELECTCASE 相手残機
		CASE IS > 2
			IF 慢心フラグ && 相手残機 > 2
				CALL COLORMESSAGE(@"%CALLNAME:OPPONENT%は%CALLNAME:MASTER%のことを見くびっている",C_YELLOW,1)
				相手ダイス数 -= 相手強さ / 2
			ENDIF
		CASE 2
			相手ダイス数 += 相手強さ / 2
		CASE 1
			相手ダイス数 += 相手強さ / 2 + 1
	ENDSELECT

	;ダイス面計算
	プレイヤーダイス面 = (ABL:MASTER:전투능력 + 1) * (6 + RAND:8) + RAND:(15 + TFLAG:행운보정) * ABL:MASTER:전투능력 / 2
	相手ダイス面 = (相手強さ + 1) * (9 + RAND:7) + RAND:10 - (相手残機 - 1) * 相手強さ
	;修正値計算
	IF (相手強さ - ABL:MASTER:전투능력) < 0
		プレイヤー修正値 = (ABL:MASTER:전투능력 - 相手強さ + 3) * (-RAND:4 - 8) * ABL:MASTER:전투능력 / 2
		相手修正値 = (ABL:MASTER:전투능력 - 相手強さ + 3) * (RAND:4 + 8) * 相手強さ / 2
	ELSEIF (相手強さ - ABL:MASTER:전투능력) > 0
		プレイヤー修正値 = (相手強さ - ABL:MASTER:전투능력 + 3) * (RAND:4 + 8) * ABL:MASTER:전투능력 / 2
		相手修正値 = (相手強さ - ABL:MASTER:전투능력 + 3) * (-RAND:4 - 8) * 相手強さ / 2
	ELSE
		プレイヤー修正値 = 0
		相手修正値 = 0
	ENDIF

	;イベント用
	プレイヤー修正値 -= HANDICAP_FIXED
	SIF HANDICAP_RAND
		プレイヤー修正値 -= RAND:(HANDICAP_RAND)
	;【言笑自若】の効果
	SIF GETBIT(CFLAG:OPPONENT:탄막특능, 0)
		プレイヤーダイス数 -= (相手強さ / 2 + RAND:3 + 1) * RAND:2
	;【温柔敦厚】の効果
	SIF GETBIT(CFLAG:OPPONENT:탄막특능, 1)
		プレイヤーダイス面 -= (相手強さ / 2 + 1) * RAND:4 + RAND:5
	;【勇気凛々】の効果
	SIF GETBIT(CFLAG:OPPONENT:탄막특능, 2)
		相手ダイス数 += (相手強さ / 2 + RAND:3 + 2) * RAND:2
	;【豪放磊落】の効果
	SIF GETBIT(CFLAG:OPPONENT:탄막특능, 3)
		相手ダイス面 += 相手強さ * 2 + 6 / (RAND:3 + 1)
	;【狷介孤高】の効果
	SIF GETBIT(CFLAG:OPPONENT:탄막특능, 8)
		相手修正値 += 相手強さ * (RAND:5 + 5) + RAND:5
	;【幽愁暗恨】の効果
	SIF GETBIT(CFLAG:OPPONENT:탄막특능, 9)
		プレイヤー修正値 -= 相手強さ * (RAND:4 + 4) + RAND:9

	;【영력충전】の効果
	IF 영력충전フラグ
		プレイヤーダイス数 += 相手強さ / 2 + 1
		プレイヤーダイス面 += (相手強さ / 2 + 1) * 4
		プレイヤー修正値 += 相手強さ * (RAND:5 + 4)
		영력충전フラグ = 0
	ENDIF

	;탄막승부補助아이템の効果
	CALL DANMAKU_ITEM_EFFECT(持ち込み아이템)
	プレイヤーダイス面 += RESULT:0
	プレイヤーダイス数 += RESULT:1
	;念のためリセット
	VARSET RESULT

	SIF プレイヤーダイス数 <= 0
		プレイヤーダイス数 = 1
	SIF 相手ダイス数 <= 0
		相手ダイス数 = 1
	SIF プレイヤーダイス面 <= 0
		プレイヤーダイス面 = 1
	SIF 相手ダイス面 <= 0
		相手ダイス面 = 1

	PRINTL
	PRINTFORML -----------------------------------------------------
	PRINTFORML TURN:{ターン数}
	PRINTFORML -----------------------------------------------------
	PRINTL

	CALL DICE_PRINT(プレイヤーダイス数, プレイヤーダイス面, プレイヤー修正値, 相手ダイス数, 相手ダイス面, 相手修正値, "確定前")
	PRINTFORMW 운명의 다이스 롤!!
	;イベント用
	IF (HANDICAP_FIXED || HANDICAP_RAND)
		TRYCALLFORM M_KOJO_MESSAGE_COM_K{OPPONENT}_DANMAKU("ハンデ", 相手残機)
	ENDIF
	;ダイス値計算
	プレイヤーダイス値 = DICE_VALUE(プレイヤーダイス数, プレイヤーダイス面, プレイヤー修正値)
	相手ダイス値 = DICE_VALUE(相手ダイス数, 相手ダイス面, 相手修正値)
	LOCAL = 相手ダイス値 - プレイヤーダイス値

	CALL DICE_PRINT(プレイヤーダイス値, 0, 0, 相手ダイス数, 相手ダイス面, 相手修正値, "確定後")
	PRINTL
	PRINTFORML HP: {残りHP}　봄: {残りボム回数}　봄 위력: Min:{B_Min}, Max:{B_Max}　잔기: {プレイヤー残機}

	IF 持ち込み아이템
		SETCOLOR 0x666666
		PRINTFORML (아이템 효과: %ITEMNAME:持ち込み아이템% …%DANMAKU_ITEM_EXPLANATION(持ち込み아이템)%)
		RESETCOLOR
	ENDIF

	CALL ASK_M("회피에 전념한다", 1, "승부한다", 1)
	SELECTCASE RESULT
		CASE 0
			;【영력충전】の効果
			IF TALENT:MASTER:영력충전 == 1
				영력충전フラグ = 1
				CALL COLORMESSAGE(@"%CALLNAME:MASTER%의【영력충전】발동!",C_RED,2)
			ENDIF
			PRINTFORML 날아오는 탄막을 회피하는 것에 전념하기로 했다.
			PRINTFORMW ...
			PRINTL
			CALL DICE_PRINT(プレイヤーダイス値, 相手ダイス値, 0, 0, 0, 0, "勝負")
			PRINTW
			;【그레이즈능숙함】の効果
			IF TALENT:MASTER:그레이즈능숙함 == 1
				IF ABL:MASTER:전투능력 == 0
					LOCAL = LOCAL * 2 / 3
				ELSEIF ABL:MASTER:전투능력 < 3
					LOCAL = (LOCAL * 2) / (ABL:MASTER:전투능력 + 2)
				ELSE
					LOCAL = (LOCAL * 3) / (ABL:MASTER:전투능력 + 3)
				ENDIF
			ENDIF

			IF ABL:MASTER:전투능력 < 4
				IF LOCAL <= 20
					PRINTFORML 살짝 긁혔을 뿐이다.
					SIF LOCAL > 0
						残りHP-= LOCAL * 4
				ELSEIF LOCAL <= 50
					PRINTFORML 약간 타격을 입었다.
					残りHP-= LOCAL * 5
				ELSEIF LOCAL <= 150
					PRINTFORML 꽤 타격을 입었다.
					残りHP-= LOCAL * 6
				ELSE
					PRINTFORML 상당한 타격을 입었다.
					残りHP= 残りHP- MAXBASE:MASTER:체력 / 2 + 1
				ENDIF
			ELSE
				IF LOCAL <= 20 * ABL:MASTER:전투능력 / 2
					PRINTFORML 살짝 긁혔을 뿐이다.
					SIF LOCAL > 0
						残りHP-= LOCAL * 4
				ELSEIF LOCAL <= 50 * ABL:MASTER:전투능력 / 2
					PRINTFORML 약간 타격을 입었다.
					残りHP-= LOCAL * 5
				ELSEIF LOCAL <= 150 * ABL:MASTER:전투능력 / 2
					PRINTFORML 꽤 타격을 입었다.
					残りHP-= LOCAL * 6
				ELSE
					PRINTFORML 상당한 타격을 입었다.
					残りHP= 残りHP- MAXBASE:MASTER:체력 / 2 + 1
				ENDIF
			ENDIF

			PRINTFORMW HP: {残りHP}
			IF 残りHP <= 0
				PRINTFORML ＼ピチューン／
				PRINTFORML 被弾してしまった……
				プレイヤー残機 --
				残りHP = MAXBASE:MASTER:체력
				残りボム回数 = 2
				PRINTFORMW プレイヤー残機: {プレイヤー残機}
				;【루나슈터】の効果
				SIF TALENT:MASTER:루나슈터 == 1
					残りボム回数 ++
				;【残忍酷薄】の効果
				IF GETBIT(CFLAG:OPPONENT:탄막특능, 6) && プレイヤー残機 > 0
					SETCOLOR C_RED
						PRINTFORMW %CALLNAME:OPPONENT%의【잔인무도】발동！
					RESETCOLOR
					;【세방울의천수】の効果
					IF ITEM:세방울의천수 && !RAND:2
						PRINTFORMW 케로쨩의 가호로【잔인무도】효과를 방어했다!
					ELSE
						;口上呼び出し
						TRYCALLFORM M_KOJO_MESSAGE_COM_K{OPPONENT}_DANMAKU("残忍酷薄", 相手残機)
						残りボム回数 --
					ENDIF
				ENDIF
			ENDIF
		CASE 1
			;【乾坤一擲】の効果
			IF GETBIT(CFLAG:OPPONENT:탄막특능, 7)
				IF RAND:100 + 1 < 10 + 相手強さ * 2
					LOCAL:1 = 相手強さ * (7 + RAND:5) * (相手強さ / 2 + 1) + RAND:7
					相手ダイス値 += LOCAL:1
					SETCOLOR C_RED
						PRINTFORML %CALLNAME:OPPONENT%의【건곤일척】발동!
						PRINTFORMW %CALLNAME:OPPONENT%의 주사위 값이 {LOCAL:1} 만큼 증가했다!
					RESETCOLOR
					;口上呼び出し
					TRYCALLFORM M_KOJO_MESSAGE_COM_K{OPPONENT}_DANMAKU("乾坤一擲", 相手残機)
					LOCAL = 相手ダイス値 - プレイヤーダイス値
				ENDIF
			ENDIF
			IF 残りボム回数 >= 1
				PRINTFORML 봄을 사용합니까?
				CALL ASK_M("사용한다", 1, "사용하지 않는다", 1)
				SELECTCASE RESULT
					CASE 0
						CALL UseBomb
						BombPower = RESULT
						プレイヤーダイス値 += BombPower
						PRINTFORMW 주사위 값이 {BombPower} 만큼 증가했다!
						残りボム回数 --
						LOCAL = 相手ダイス値 - プレイヤーダイス値
					CASE 1

				ENDSELECT
			ENDIF
			PRINTFORML 승부다!
			PRINTFORMW ...
			PRINTL
			CALL DICE_PRINT(プレイヤーダイス値, 相手ダイス値, 0, 0, 0, 0, "勝負")
			PRINTW
			IF LOCAL > 0
				IF 残りボム回数 >= 1
					PRINTFORML 피할 길이 없어져 버린 %CALLNAME:MASTER%은(는) 봄을 사용했다!
					CALL UseBomb
					BombPower = RESULT

					SETCOLOR C_RED
					PRINTFORM ダイス値の差:{LOCAL}
					IF LOCAL <= BombPower
						PRINTFORML ≤ {BombPower}
						PRINTFORMW %CALLNAME:MASTER%은 봄으로 %CALLNAME:OPPONENT%의 탄막을 소거했다!
						LOCAL = 0
					ELSE
						PRINTFORMW ＞ {BombPower}
					ENDIF
					RESETCOLOR
					残りボム回数 --
				ENDIF
			ELSEIF LOCAL < 0
				;【怪力乱神】の効果
				IF GETBIT(CFLAG:OPPONENT:탄막특능, 4) && (-LOCAL) < 相手強さ * 10
					SETCOLOR C_RED
						PRINTFORML %CALLNAME:OPPONENT%의 【괴력난신】발동!
						PRINTFORMW %CALLNAME:MASTER%의 탄막이 %CALLNAME:OPPONENT% 를 피탄시키기 전에 소거되었다!
						;口上呼び出し
						TRYCALLFORM M_KOJO_MESSAGE_COM_K{OPPONENT}_DANMAKU("怪力乱神", 相手残機)
						LOCAL = 0
					RESETCOLOR
				ENDIF
			ENDIF
			IF LOCAL < 0
				CALL COLORMESSAGE(@"격파했다! 해냈어!",C_YELLOW,1)
				相手残機 --
				;口上呼び出し
				TRYCALLFORM M_KOJO_MESSAGE_COM_K{OPPONENT}_DANMAKU("被弾", 相手残機)
				PRINTFORMW 상대 잔기: {相手残機}
			ELSEIF LOCAL == 0
				PRINTFORMW 서로 탄막을 맞출수 없었다.
			ELSE
				PRINTFORML ＼피츙／
				PRINTFORML 피탄당하고 말았다......
				プレイヤー残機 --
				残りHP = MAXBASE:MASTER:체력
				残りボム回数 = 2
				PRINTFORMW LIFES: {プレイヤー残機}
				;【루나슈터】の効果
				SIF TALENT:MASTER:루나슈터 == 1
					残りボム回数 ++
				;【残忍酷薄】の効果
				IF GETBIT(CFLAG:OPPONENT:탄막특능, 6) && プレイヤー残機 > 0
					SETCOLOR C_RED
						PRINTFORMW %CALLNAME:OPPONENT%의 【잔인무도】발동!
					RESETCOLOR
					;【세방울의천수】の効果
					IF ITEM:세방울의천수 && !RAND:2
						PRINTFORMW 케로쨩의 가호로【잔인무도】효과를 방어했다!
					ELSE
						;口上呼び出し
						TRYCALLFORM M_KOJO_MESSAGE_COM_K{OPPONENT}_DANMAKU("残忍酷薄", 相手残機)
						残りボム回数 --
					ENDIF
				ENDIF
			ENDIF
	ENDSELECT

	ターン数 ++
WEND

PRINTL
IF プレイヤー残機 <= 0
	PRINTFORMW %마스터는% 져 버렸다……
	CALL COLORMESSAGE(@"패배자!",C_RED,2,1)
ELSEIF 相手残機 <= 0
	PRINTFORML %마스터는% %CALLNAME:OPPONENT%와의 승부에서 이겼다!
	CALL COLORMESSAGE(@"인생의 승리자!",C_GREEN,2,1)
ENDIF
PRINTL

; 악보 획득 판정. 1.20u3 버전에서는 이식되지 않았기에 주석 처리.
;楽譜入手処理
;IF (RAND:(100) < 30)
;	RESULT = 楽譜入手_탄막승부(OPPONENT)
;	SIF RESULT != -1
;		PRINTL
;ENDIF

RETURN 相手残機

@DICE_PRINT(ARG:0, ARG:1, ARG:2, ARG:3, ARG:4, ARG:5, ARGS)
IF ARGS == "確定前"
	PRINTFORM %CALLNAME:MASTER%:
	SETCOLOR C_GREEN
	PRINTFORM {ARG:0}d{ARG:1}
	IF ARG:2 > 0
		SETCOLOR C_RED
		PRINTFORM +{ARG:2}
	ELSEIF ARG:2 < 0
		SETCOLOR C_BLUE
		PRINTFORM {ARG:2}
	ENDIF
	RESETCOLOR
	PRINTFORM (Min:{ARG:0 + ARG:2}, Max:{ARG:0 * ARG:1 + ARG:2})  VS
	SETCOLOR C_GREEN
	PRINTFORM {ARG:3}d{ARG:4}
	IF ARG:5 > 0
		SETCOLOR C_RED
		PRINTFORM +{ARG:5}
	ELSEIF ARG:5 < 0
		SETCOLOR C_BLUE
		PRINTFORM {ARG:5}
	ENDIF
	RESETCOLOR
	PRINTFORM (Min:{ARG:3 + ARG:5}, Max:{ARG:3 * ARG:4 + ARG:5})
	PRINTFORML :%CALLNAME:TARGET%
;ARG:1,2は使わない
ELSEIF ARGS == "確定後"
	PRINTFORM %CALLNAME:MASTER%:
	SETCOLOR C_GREEN
	PRINTFORM {ARG:0}
	RESETCOLOR
	PRINTFORM VS
	SETCOLOR C_GREEN
	PRINTFORM {ARG:3}d{ARG:4}
	IF ARG:5 > 0
		SETCOLOR C_RED
		PRINTFORM +{ARG:5}
	ELSEIF ARG:5 < 0
		SETCOLOR C_BLUE
		PRINTFORM {ARG:5}
	ENDIF
	RESETCOLOR
	PRINTFORM (Min:{ARG:3 + ARG:5}, Max:{ARG:3 * ARG:4 + ARG:5})
	PRINTFORML :%CALLNAME:TARGET%
;ARG:2,3,4,5は使わない
ELSEIF ARGS == "勝負"
	PRINTFORM %CALLNAME:MASTER%:
	SETCOLOR C_GREEN
	PRINTFORM {ARG:0}
	RESETCOLOR
	PRINTFORM VS
	SETCOLOR C_GREEN
	PRINTFORM {ARG:1}
	RESETCOLOR
	PRINTFORML :%CALLNAME:TARGET%
ENDIF

@DICE_VALUE(ARG:0, ARG:1, ARG:2)
#FUNCTION
;初期化しないとダメ
LOCAL:1 = 0
FOR LOCAL, 0, ARG:0
	LOCAL:1 += RAND:(ARG:1) + 1
NEXT

RETURNF LOCAL:1 + ARG:2

@SHOW_DANMAKU_RULE
PRINTFORML 서로 주사위를 던져 나온 눈의 크기를 겨룬다는 게 기본 룰입니다
PRINTFORMW 처음은 서로 잔기를 3개 보유하고 있으며, 전투능력이 클수록 주사위 수와 면이 증가합니다.
PRINTFORMW 플레이어만, 자신의 주사위눈을 본 다음 회피에 전념할지 승부할지를 선택할 수 있습니다(이때, 상대의 주사위눈은 보이지 않습니다).
PRINTFORMW 회피에 전념하기로 선택했을 경우는, 잔기가 줄어들지 않는 대신에 주사위눈 차이에 따라 HP에 대미지를 받습니다.
PRINTFORMW HP가 0이 되면 플레이어의 잔기가 1 줄어듭니다. 잔기가 0이 되면 플레이어의 패배입니다.
PRINTFORMW 승부하기로 선택하고 상대보다 낮은 주사위눈이었을 경우는, 무조건 플레이어의 잔기가 1 줄어듭니다.
PRINTFORMW 승부하기로 선택하고 상대보다 높은 주사위눈을 냈을 때에만 상대의 잔기를 1 줄일 수 있습니다.
PRINTFORMW 플레이어의 잔기가 0이 되기 전에 상대의 잔기를 0으로 만들면 플레이어의 승리가 됩니다.
PRINTFORMW 또한 플레이어는 폭탄을 사용해 주사위의 결과에 플러스할 수 있으므로, 이때다 싶은 순간에 사용합시다.
PRINTFORMW 더해서 주사위 승부에 패배해 플레이어의 잔기가 줄어들 때, 폭탄을 사용해 잔기가 줄어드는 것을 막을 때가 있습니다.
PRINTFORMW 단, 잔기가 줄어들면 폭탄 사용 횟수가 강제적으로 2가 되므로, 사용하지 않은 채로 잔기가 줄면 손해를 봅니다.

@UseBomb
#DIM BombPower
BombPower = ABL:MASTER:전투능력 * (7 + RAND:5) * (ABL:MASTER:전투능력 / 2 + 1) + RAND:7

CALL COLORMESSAGE(@"봄 위력 {BombPower}",C_YELLOW,1)
;【루나슈터】の効果
IF TALENT:MASTER:루나슈터 == 1
	BombPower = BombPower * (RAND:3 + 2)
	CALL COLORMESSAGE(@"【루나슈터】의 효과로 봄 위력이 {BombPower} 만큼 증가했다!",C_YELLOW,2)
ENDIF
;【세방울의천수】の効果
IF ITEM:세방울의천수
	;LOCAL = MAX(RAND:750, 400)
	LOCAL = BombPower / 10
	BombPower += LOCAL
	CALL COLORMESSAGE(@"%CALLNAME:MASTER%의 주머니에서 조용히 수많은 개구리들이 튀어나왔다!",C_YELLOW,1)
	CALL COLORMESSAGE(@"봄 위력이 {LOCAL} 만큼 증가했다!",C_YELLOW,1)
ENDIF
RETURN BombPower

@DANMAKU_ITEM_USE
#DIM 持ち込み아이템
#DIMS 効果テキスト
持ち込み아이템 = 0
SIF !ITEM:850 && !ITEM:851 && !ITEM:852 && !ITEM:853
	RETURN 0
DRAWLINE
PRINTFORML 탄막승부 보조 아이템을 사용할까요?
DRAWLINE
CALL ASK_M("각성제",ITEM:850, "아이시클봄",ITEM:851, "태을의불씨",ITEM:852, "매혹의미끼", ITEM:853, "사용하지 않는다",1)
IF RESULT == 4
	RETURN 0
ENDIF

持ち込み아이템 = RESULT + 850
PRINTFORML %ITEMNAME:持ち込み아이템%를 사용합니까？
PRINTFORML %DANMAKU_ITEM_EXPLANATION(持ち込み아이템)%
CALL ASK_YN
IF !RESULT
	;先に進む
ELSE
	RESTART
ENDIF
ITEM:持ち込み아이템 -= 1
RETURN 持ち込み아이템

@DANMAKU_ITEM_EXPLANATION(ARG)
#FUNCTIONS
#DIMS 効果テキスト
SELECTCASE ARG
	CASE 850
		効果テキスト = ダイス面がほんのり良くなる
	CASE 851
		効果テキスト = ダイス数がほんのり増える
	CASE 852
		効果テキスト = ダイス面が少し良くなる
	CASE 853
		効果テキスト = ダイス数が少し増える
	CASEELSE
		効果テキスト =
ENDSELECT
RETURNF 効果テキスト

@DANMAKU_ITEM_EFFECT(ARG)
#DIM Dnum
#DIM Dface
Dnum = 0
Dface = 0
SELECTCASE ARG
	CASE 850	;폭발성시약
		Dface = MAX(RAND:((ABL:MASTER:전투능력) + 3), 2)
	CASE 851	;아이시클봄
		Dnum = MAX(RAND:((ABL:MASTER:전투능력) + 1), 1)
	CASE 852	;태을의불씨
		Dface = MAX(RAND:((ABL:MASTER:전투능력) * 2), 4)
	CASE 853	;매혹의미끼
		Dnum = MAX(RAND:((ABL:MASTER:전투능력) * 2), 3)
ENDSELECT
RETURN Dface, Dnum


code:
{
#DIMS CONST FOOD_MAINDISH =
"잡탕죽","알잠은 밥","야채 볶음","된장국","나물","우동","소면","소바","무레트","스튜",
"햄버거","그라탕","카레라이스","샤브샤브","라면","생강구이","스테이크","유림계","모짜렐라 치즈와 토마토의 샐러드","도핑 콘소메 수프",
"의대리이조묘닭고기","긴기 요리","덴뿌라","산숲밥","채소 절임에 수북히 담음밥"
}

#DIM CONST MENUS_MAINDISH = 24

{
#DIMS CONST FOOD_DESSERT =
"푸딩","케이크","젤리","타르트","쿠키","파이","양국","찹살떡","카스테라","경단",
"후르츠 진열","파운드 케이크"
}

#DIM CONST MENUS_DESSERT = 12

{
#DIMS CONST FOOD_SNACK = "","샌드위치","주먹밥","햄버거","스콘","슈마이","고기만두","피쉬＆팁스","타코스","타코야키"
}

#DIM CONST MENUS_SNACK = 9

{
#DIMS CONST FOOD_FORBIDDEN = "","튀김 로터","E마사지기풍로터의 끓는 물에 살짝 데침","구리 캐치볼 용로터의 잡아","오나홀 완성의 로터 삶어"
}

{
#DIMS CONST FOOD_FROG = "개구리의 닭튀김","개구리 카레","개구리의 소테(서양 요리)","개구리의 소금구이"
}

#DIM CONST MENUS_FROG = 4

{
#DIMS CONST FOOD_FISH =
"스시","생선구이","조린 생선","장어구이","신선한 생선회","마리네","뫼니에르(플랑스 생선 요리)","생선회","양념구이","타츠다튀김",
"피쉬 카레","스타 게이지-파이"
}

#DIM CONST MENUS_FISH = 12

#DIMS DISHNAME
#DIM DISHTYPE
;(1=경식　2=주식　3=디저트　4=금단　5=축일)
#DIM DISHQUALITY
#DIM DISHSPOIL
#DIM DISHTIME
#DIM  DISHVEGE  ;요리에 추가한 야채 소재, ITEM 번호를 그대로 건네줍니다
#DIM  DISHASSI  ;요리를 도운 캐릭터
#DIMS DISHTASTE ;요리의 맛

;장난용의 맛BIT의 CONST 정의
#DIM CONST DISH_RADICAL_엄청매운 = 3
#DIM CONST DISH_RADICAL_격감 = 4
#DIM CONST DISH_RADICAL_고추냉이 = 5
#DIM CONST DISH_RADICAL_레몬 = 6

#DIM CONST DISH_DRAG_미약 = 21
#DIM CONST DISH_DRAG_이뇨제 = 22
#DIM CONST DISH_DRAG_춘약 = 23
#DIM CONST DISH_DRAG_수면제 = 24