code:
;-------------------------------------------------------------------------------
;アイテム使用時の処理関数@ITEM_USING_COMMONから呼ばれるアイテム使用時処理
;[EFFECT_CATEGORY:ADD_SKILL_POINT] スキルポイント増加
;-------------------------------------------------------------------------------
@ITEM_USING_COMMON_ADD_SKILL_POINT(DICS_ITEM_EFFECT)
#DIMS DICS_ITEM_EFFECT
CALL _ITEM_USING_COMMON_SKILL_POINT(DICS_ITEM_EFFECT)

;-------------------------------------------------------------------------------
;アイテム使用時の処理関数@ITEM_USING_COMMONから呼ばれるアイテム使用時処理
;[EFFECT_CATEGORY:EXTEND_SKILL_POINT] スキルポイント拡張限界増加
;-------------------------------------------------------------------------------
@ITEM_USING_COMMON_EXTEND_SKILL_POINT(DICS_ITEM_EFFECT)
#DIMS DICS_ITEM_EFFECT
CALL _ITEM_USING_COMMON_SKILL_POINT(DICS_ITEM_EFFECT)

;-------------------------------------------------------------------------------
;内部処理：スキルポイント関連処理
;-------------------------------------------------------------------------------
@_ITEM_USING_COMMON_SKILL_POINT(DICS_ITEM_EFFECT)
#DIMS DICS_ITEM_EFFECT

;DICS_ITEM_EFFECT関連変数
#DIM  DYNAMIC ITEM_ID
;#DIM  DYNAMIC TARGET_NUM
;#DIMS DYNAMIC TARGET_CLASS
;#DIMS DYNAMIC EFFECT_CATEGORY
;#DIMS DYNAMIC LIST_EFFECT_CLASS
;#DIMS DYNAMIC LIST_EFFECT_RATE
#DIMS DYNAMIC DESCRIPTION_BEFORE_USING

;DICS_ITEM_EFFECT派生変数
#DIMS DYNAMIC ITEM_NAME

;その他
#DIM  DYNAMIC SELECTED_CHARA_ID
#DIM  DYNAMIC TARGET_TEMP
#DIM  DYNAMIC FIRST_LINE

;-------------------------------------------------
;DICS_ITEM_EFFECTから各種情報を取得
;-------------------------------------------------
ITEM_ID           = TOINT(DIC_GET(DICS_ITEM_EFFECT, "ITEM_ID"))
;TARGET_NUM        = TOINT(DIC_GET(DICS_ITEM_EFFECT, "TARGET_NUM"))
;TARGET_CLASS      = %DIC_GET(DICS_ITEM_EFFECT, "TARGET_CLASS")%
;EFFECT_CATEGORY   = %DIC_GET(DICS_ITEM_EFFECT, "EFFECT_CATEGORY")%
;LIST_EFFECT_CLASS = %DIC_GET(DICS_ITEM_EFFECT, "LIST_EFFECT_CLASS")%
;LIST_EFFECT_RATE  = %DIC_GET(DICS_ITEM_EFFECT, "LIST_EFFECT_RATE")%
DESCRIPTION_BEFORE_USING = %DIC_GET(DICS_ITEM_EFFECT, "DESCRIPTION_BEFORE_USING")%

;DICS_ITEM_EFFECTの情報から派生情報を取得
CALL GET_ITEM_NAME(ITEM_ID)
ITEM_NAME     = %RESULTS%

;-------------------------------------------------
;キャラ選択ループ
;-------------------------------------------------
FIRST_LINE = LINECOUNT
WHILE 1
	REDRAW 0
	CLEARLINE LINECOUNT - FIRST_LINE
	;アイテムが0個になったら終了
	SIF HO_ITEM_STOCK:ITEM_ID == 0
		RETURN

	;アイテム効果/個数表示
	CALLF TAG_PRINT(@"%STRFORM(DESCRIPTION_BEFORE_USING)%", 1)
	CALLF TAG_PRINT(@"　%ITEM_NAME%({HO_ITEM_STOCK:ITEM_ID})", 1)
	PRINTL

	;リストを表示してキャラ選択
	CALL SELECT_CHARA_LIST_ONLY_LOGIC_SLG("SAME_FACTION", ITEM_NAME)
	CLEARLINE 1
	SELECTED_CHARA_ID = RESULT
	;キャラが選択されなかった場合は終了
	SIF SELECTED_CHARA_ID == -1
		RETURN
	PRINTL

	;TARGET情報の退避＆設定
	TARGET_TEMP = TARGET
	TARGET = SELECTED_CHARA_ID
	;スキルポイント操作画面を表示
	CALL _ITEM_USING_COMMON_SKILL_POINT_CHANGE_OPERATION(DICS_ITEM_EFFECT)
	;TARGET情報の復元
	TARGET = TARGET_TEMP
WEND

;-------------------------------------------------------------------------------
;内部処理：スキルポイント操作画面呼び出し処理
;-------------------------------------------------------------------------------
@_ITEM_USING_COMMON_SKILL_POINT_CHANGE_OPERATION(DICS_ITEM_EFFECT)
#DIMS DICS_ITEM_EFFECT

;DICS_ITEM_EFFECT関連変数
#DIM  DYNAMIC ITEM_ID
;#DIM  DYNAMIC TARGET_NUM
;#DIMS DYNAMIC TARGET_CLASS
#DIMS DYNAMIC EFFECT_CATEGORY
#DIMS DYNAMIC LIST_EFFECT_CLASS
#DIMS DYNAMIC LIST_EFFECT_RATE
;#DIMS DYNAMIC DESCRIPTION_BEFORE_USING

;DICS_ITEM_EFFECT派生変数
#DIMS DYNAMIC ITEM_NAME
#DIM  DYNAMIC ADDABLE_GENRE

;POINT_OPERATE用変数
;#DIMS DYNAMIC ITEM_NAME
#DIMS DYNAMIC LIST_SUBJECT_NAME
#DIMS DYNAMIC LIST_BASE_POINT
#DIMS DYNAMIC LIST_LIMIT_POINT
#DIM  DYNAMIC CHANGE_RATE
#DIM  DYNAMIC ITEM_STOCK
#DIM  DYNAMIC LARGE_CHANGE_VALUE
#DIMS DYNAMIC LIST_CHANGE_VALUE
#DIMS DYNAMIC LIST_ITEM_USE_NUM

;その他
#DIMS CONST ARRAY_POINT_NAME = "生活SP", "冒険SP", "性技SP"
#DIM DYNAMIC L_CNT
#DIM DYNAMIC BASE_POINT
#DIM DYNAMIC LIMIT_POINT

;-------------------------------------------------
;DICS_ITEM_EFFECTから各種情報を取得
;-------------------------------------------------
ITEM_ID           = TOINT(DIC_GET(DICS_ITEM_EFFECT, "ITEM_ID"))
;TARGET_NUM        = TOINT(DIC_GET(DICS_ITEM_EFFECT, "TARGET_NUM"))
;TARGET_CLASS      = %DIC_GET(DICS_ITEM_EFFECT, "TARGET_CLASS")%
EFFECT_CATEGORY   = %DIC_GET(DICS_ITEM_EFFECT, "EFFECT_CATEGORY")%
LIST_EFFECT_CLASS = %DIC_GET(DICS_ITEM_EFFECT, "LIST_EFFECT_CLASS")%
LIST_EFFECT_RATE  = %DIC_GET(DICS_ITEM_EFFECT, "LIST_EFFECT_RATE")%
;DESCRIPTION_BEFORE_USING = %DIC_GET(DICS_ITEM_EFFECT, "DESCRIPTION_BEFORE_USING")%

;DICS_ITEM_EFFECTの情報から派生情報を取得
CALL GET_ITEM_NAME(ITEM_ID)
ITEM_NAME     = %RESULTS%
ADDABLE_GENRE = _ITEM_USING_COMMON_SKILL_POINT_GET_ADDABLE_GENRE(LIST_EFFECT_CLASS)

;ポイント操作関数に渡す情報の作成
VARSET LIST_SUBJECT_NAME
VARSET LIST_BASE_POINT
VARSET LIST_LIMIT_POINT

;1個当たり変更量
CHANGE_RATE = TOINT(LIST_GET(LIST_EFFECT_RATE, 0))
;最大変更回数＝アイテムの所持数
ITEM_STOCK = HO_ITEM_STOCK:ITEM_ID
;変更ボタン(大)の操作量
LARGE_CHANGE_VALUE = 5
;大分類ごとの情報設定
FOR L_CNT, 0, 3
	IF GROUPMATCH(ADDABLE_GENRE, -1, L_CNT)
		;項目名
		LIST_SUBJECT_NAME '= LIST_ADD(LIST_SUBJECT_NAME, ARRAY_POINT_NAME:L_CNT)
		;ポイントの初期状態と上限値(効果カテゴリから判定して設定)
		CALL _ITEM_USING_COMMON_SKILL_POINT_GET_TARGET_POINT(L_CNT, EFFECT_CATEGORY)
		BASE_POINT  = RESULT:0
		LIMIT_POINT = RESULT:1
		LIST_BASE_POINT   '= LIST_ADD(LIST_BASE_POINT  , TOSTR(BASE_POINT))
		LIST_LIMIT_POINT  '= LIST_ADD(LIST_LIMIT_POINT , TOSTR(LIMIT_POINT))
	ENDIF
NEXT

;ポイント操作関数呼び出し
CALL _ITEM_USING_COMMON_SKILL_POINT_OPERATE(ITEM_NAME, LIST_SUBJECT_NAME, LIST_BASE_POINT, LIST_LIMIT_POINT, CHANGE_RATE, ITEM_STOCK, LARGE_CHANGE_VALUE)
LIST_CHANGE_VALUE '= RESULTS:0
LIST_ITEM_USE_NUM '= RESULTS:1

;変更した内容を反映する
IF RESULT
	CALL _ITEM_USING_COMMON_SKILL_POINT_CHANGE_CONFIRM(ITEM_ID, EFFECT_CATEGORY, LIST_EFFECT_CLASS, LIST_CHANGE_VALUE, LIST_ITEM_USE_NUM)
ENDIF

;-------------------------------------------------------------------------------
;内部処理：対象のスキル大分類の取得
;-------------------------------------------------------------------------------
@_ITEM_USING_COMMON_SKILL_POINT_GET_ADDABLE_GENRE(LIST_EFFECT_CLASS)
#FUNCTION
#DIMS LIST_EFFECT_CLASS

#DIM  DYNAMIC ADDABLE_GENRE

;ADD_SKILL_POINT：スキルポイント増加
;　対象：全スキル
IF LIST_INDEXOF(LIST_EFFECT_CLASS, "ADD_SKILL_POINT") != -1
	ADDABLE_GENRE = -1

	;ADD_LEWD_SKILL_POINT：性技スキルポイント増加
	;　対象：性技スキル
ELSEIF LIST_INDEXOF(LIST_EFFECT_CLASS, "ADD_LEWD_SKILL_POINT") != -1
	ADDABLE_GENRE = スキル_大分類_性技

	;EXTEND_SKILL_POINT：冒険スキルポイント拡張上限増加
	;　対象：冒険スキル
ELSEIF LIST_INDEXOF(LIST_EFFECT_CLASS, "EXTEND_SKILL_POINT") != -1
	ADDABLE_GENRE = スキル_大分類_冒険

	;EXTEND_LEWD_SKILL_POINT：性技スキルポイント拡張上限増加
	;　対象：性技スキル
ELSEIF LIST_INDEXOF(LIST_EFFECT_CLASS, "EXTEND_LEWD_SKILL_POINT") != -1
	ADDABLE_GENRE = スキル_大分類_性技
ENDIF

RETURNF ADDABLE_GENRE

;-------------------------------------------------------------------------------
;内部処理：スキルポイント変更確定
;-------------------------------------------------------------------------------
@_ITEM_USING_COMMON_SKILL_POINT_CHANGE_CONFIRM(ITEM_ID, EFFECT_CATEGORY, LIST_EFFECT_CLASS, LIST_CHANGE_POINT, LIST_ITEM_USE_NUM)
#DIM  ITEM_ID
#DIMS EFFECT_CATEGORY
#DIMS LIST_EFFECT_CLASS
#DIMS LIST_CHANGE_POINT
#DIMS LIST_ITEM_USE_NUM

#DIM DYNAMIC CHANGE_POINT
#DIM DYNAMIC ITEM_USE_NUM
#DIM DYNAMIC GENRE_NO
#DIM DYNAMIC L_CNT

#DIMS DYNAMIC CONFIRM_MESSAGE

;--------------------
;-- 変更対象：全部
;--------------------
;ADD_SKILL_POINT : スキルポイント増加
;　対象：全スキル
IF LIST_INDEXOF(LIST_EFFECT_CLASS, "ADD_SKILL_POINT") != -1
	CONFIRM_MESSAGE '= @"@C:{カラー_注意}@%ANAME(TARGET)%のスキルポイントが上昇しました@/@"
	CALLF TAG_PRINT(CONFIRM_MESSAGE, 1)
	;変更を反映
	FOR L_CNT, 0, 3
		;変更情報の取得
		CHANGE_POINT = TOINT(LIST_GET(LIST_CHANGE_POINT, L_CNT))
		ITEM_USE_NUM = TOINT(LIST_GET(LIST_ITEM_USE_NUM, L_CNT))
		IF ITEM_USE_NUM
			CALL _ITEM_USING_COMMON_SKILL_POINT_CHANGE_CONFIRM_POINT(ITEM_ID, L_CNT, EFFECT_CATEGORY, CHANGE_POINT, ITEM_USE_NUM)
		ENDIF
	NEXT
	WAIT
	RETURN
ENDIF

;---------------------
;-- 変更対象：1種類
;---------------------
;ADD_LEWD_SKILL_POINT : 性技スキルポイント増加
;　対象：性技スキル
IF LIST_INDEXOF(LIST_EFFECT_CLASS, "ADD_LEWD_SKILL_POINT") != -1
	CONFIRM_MESSAGE '= @"@C:{カラー_注意}@%ANAME(TARGET)%のスキルポイントが上昇しました@/@"
	GENRE_NO = スキル_大分類_性技

	;EXTEND_SKILL_POINT : 冒険スキルポイント拡張上限増加
	;　対象：冒険スキル
ELSEIF LIST_INDEXOF(LIST_EFFECT_CLASS, "EXTEND_SKILL_POINT") != -1
	CONFIRM_MESSAGE '= @"@C:{カラー_注意}@%ANAME(TARGET)%のスキル拡張限界が上昇しました@/@"
	GENRE_NO = スキル_大分類_冒険

	;EXTEND_LEWD_SKILL_POINT : 性技スキルポイント拡張上限増加
	;　対象：性技スキル
ELSEIF LIST_INDEXOF(LIST_EFFECT_CLASS, "EXTEND_LEWD_SKILL_POINT") != -1
	CONFIRM_MESSAGE '= @"@C:{カラー_注意}@%ANAME(TARGET)%のスキル拡張限界が上昇しました@/@"
	GENRE_NO = スキル_大分類_性技
ENDIF

;変更情報の取得
CHANGE_POINT = TOINT(LIST_GET(LIST_CHANGE_POINT, 0))
ITEM_USE_NUM = TOINT(LIST_GET(LIST_ITEM_USE_NUM, 0))
;メッセージ表示
CALLF TAG_PRINT(CONFIRM_MESSAGE, 1)
;ポイント更新処理
CALL _ITEM_USING_COMMON_SKILL_POINT_CHANGE_CONFIRM_POINT(ITEM_ID, GENRE_NO, EFFECT_CATEGORY, CHANGE_POINT, ITEM_USE_NUM)
WAIT

;-------------------------------------------------------------------------------
;内部処理：スキルポイント更新
;-------------------------------------------------------------------------------
@_ITEM_USING_COMMON_SKILL_POINT_CHANGE_CONFIRM_POINT(ITEM_ID, GENRE_NO, EFFECT_CATEGORY, CHANGE_POINT, ITEM_USE_NUM)
#DIM  ITEM_ID
#DIM  GENRE_NO
#DIMS EFFECT_CATEGORY
#DIM  CHANGE_POINT
#DIM  ITEM_USE_NUM

#DIMS CONST ARRAY_POINT_NAME = "生活SP", "冒険SP", "性技SP"
#DIMS CONFIRM_MESSAGE
#DIM  BASE_POINT_BEFORE
#DIM  BASE_POINT_AFTER
#DIM  LIMIT_POINT

;変更前のポイント情報を取得
CALL _ITEM_USING_COMMON_SKILL_POINT_GET_TARGET_POINT(GENRE_NO, EFFECT_CATEGORY)
BASE_POINT_BEFORE = RESULT:0
LIMIT_POINT       = RESULT:1

;ポイントを加算
CALL _ITEM_USING_COMMON_SKILL_POINT_ADD_TARGET_POINT(GENRE_NO, EFFECT_CATEGORY, CHANGE_POINT)

;変更後のポイント情報を取得
CALL _ITEM_USING_COMMON_SKILL_POINT_GET_TARGET_POINT(GENRE_NO, EFFECT_CATEGORY)
BASE_POINT_AFTER = RESULT:0
LIMIT_POINT      = RESULT:1

;アイテム数を減らす
HO_ITEM_STOCK:ITEM_ID -= ITEM_USE_NUM

;メッセージ表示
CONFIRM_MESSAGE '= @"　@C:{カラー_注意}@%ARRAY_POINT_NAME:GENRE_NO% :{BASE_POINT_BEFORE, 2}/{LIMIT_POINT, 2} → {BASE_POINT_AFTER, 2}/{LIMIT_POINT, 2}@/@"
CALLF TAG_PRINT(CONFIRM_MESSAGE, 1)

;-------------------------------------------------------------------------------
;内部処理：指定した効果カテゴリのポイント情報を取得
;-------------------------------------------------------------------------------
@_ITEM_USING_COMMON_SKILL_POINT_GET_TARGET_POINT(GENRE_NO, EFFECT_CATEGORY)
#DIM GENRE_NO
#DIMS EFFECT_CATEGORY

;スキルポイント上限の格納先リスト(CFLAG)
#DIM CONST ARRAY_CFLAG_NO_LIMIT = GETNUM(CFLAG, "生活スキル拡張上限"), GETNUM(CFLAG, "冒険スキル拡張上限"), GETNUM(CFLAG, "性技スキル拡張上限")
;スキルポイント上限拡張最大値(定義元が見当たらないので暫定で定義)
#DIM CONST ARRAY_EXTED_LIMIT = 0, 18, 18

#DIM DYNAMIC BASE_POINT
#DIM DYNAMIC LIMIT_POINT
#DIM DYNAMIC CFLAG_NO_LIMIT

CFLAG_NO_LIMIT = ARRAY_CFLAG_NO_LIMIT:GENRE_NO
SELECTCASE EFFECT_CATEGORY
	CASE "ADD_SKILL_POINT"
		;カテゴリ：スキルポイント増加
		;取得内容：スキルポイント/スキルポイント上限
		BASE_POINT  = BASE_SKILL_POINT:TARGET:GENRE_NO
		LIMIT_POINT = SKILL_GET_BASE_SP_EXTEND_LIMIT(TARGET, GENRE_NO)
	CASE "EXTEND_SKILL_POINT"
		;カテゴリ：スキルポイント上限拡張
		;取得内容：スキルポイント上限/スキルポイント上限拡張最大値
		BASE_POINT  = SKILL_GET_BASE_SP_EXTEND_LIMIT(TARGET, GENRE_NO)
		LIMIT_POINT = SKILL_GET_BASE_SP_EXTEND_LIMIT(TARGET, GENRE_NO) - CFLAG:TARGET:CFLAG_NO_LIMIT + ARRAY_EXTED_LIMIT:GENRE_NO
ENDSELECT

RETURN BASE_POINT, LIMIT_POINT

;-------------------------------------------------------------------------------
;内部処理：指定した効果カテゴリのポイントを加算
;-------------------------------------------------------------------------------
;・広域変数を直接変更する。
;　[EFFECT_CATEGORY:ADD_SKILL_POINT]    BASE_SKILL_POINT, HO_ITEM_STOCK
;　[EFFECT_CATEGORY:EXTEND_SKILL_POINT] CFLAG:＊＊スキル拡張上限, HO_ITEM_STOCK
@_ITEM_USING_COMMON_SKILL_POINT_ADD_TARGET_POINT(GENRE_NO, EFFECT_CATEGORY, CHANGE_POINT)
#DIM  GENRE_NO
#DIMS EFFECT_CATEGORY
#DIM  CHANGE_POINT

#DIM  CONST ARRAY_CFLAG_NO_LIMIT = GETNUM(CFLAG, "生活スキル拡張上限"), GETNUM(CFLAG, "冒険スキル拡張上限"), GETNUM(CFLAG, "性技スキル拡張上限")
#DIM  CFLAG_NO_LIMIT

SELECTCASE EFFECT_CATEGORY
	CASE "ADD_SKILL_POINT"
		;スキルポイントを加算
		BASE_SKILL_POINT:TARGET:GENRE_NO += CHANGE_POINT
	CASE "EXTEND_SKILL_POINT"
		;スキルポイント拡張上限を増加
		CFLAG_NO_LIMIT = ARRAY_CFLAG_NO_LIMIT:GENRE_NO
		CFLAG:TARGET:CFLAG_NO_LIMIT += CHANGE_POINT
ENDSELECT


code:
;===============================================================================
;スキルポイント操作関数
;===============================================================================
@_ITEM_USING_COMMON_SKILL_POINT_OPERATE(ITEM_NAME, LIST_SUBJECT_NAME, LIST_INIT_POINT, LIST_LIMIT_POINT, CHANGE_RATE, ITEM_STOCK, LARGE_CHANGE_VALUE)
#DIMS ITEM_NAME
#DIMS LIST_SUBJECT_NAME
#DIMS LIST_INIT_POINT
#DIMS LIST_LIMIT_POINT
#DIM  CHANGE_RATE
#DIM  ITEM_STOCK
#DIM  LARGE_CHANGE_VALUE

#DIM CONST BTN_OFFSET = 100

#DIMS DYNAMIC ARGUMENT_DATA
#DIMS DYNAMIC BUTTON_TEXT
#DIM  DYNAMIC LIST_SIZE
#DIMS DYNAMIC LIST_CHANGE_VALUE
#DIMS DYNAMIC LIST_CURT_CHG_POINT		;List Current Change Point
#DIMS DYNAMIC LIST_CURT_ITEM_USE_NUM	;List Current Item Used Number
#DIM  DYNAMIC TOTAL_CURT_CHG_POINT		;Total Current Change Point
#DIM  DYNAMIC TOTAL_CURT_ITEM_USE_NUM	;Total Current Item Used Number
#DIM  DYNAMIC BUTTON_NO_BASE
#DIM  DYNAMIC L_CNT
#DIM  DYNAMIC INPUT_VALUE
#DIM  DYNAMIC SUBJECT_NO
#DIM  DYNAMIC CHANGE_NO
#DIM  DYNAMIC REST_ITEM_STOCK
#DIM  DYNAMIC CONFIRM_ANSWER
#DIM  DYNAMIC EXIT_FLAG
#DIM  DYNAMIC FIRST_LINE

;--------------
;-- 事前処理
;--------------
;表示開始行を記憶
FIRST_LINE = LINECOUNT
;リストの要素数の取得
LIST_SIZE =LIST_COUNT(LIST_SUBJECT_NAME)
;各ボタンを押した際の変更量を設定
LIST_CHANGE_VALUE '= ""
LIST_CHANGE_VALUE '= LIST_ADD(LIST_CHANGE_VALUE, TOSTR(-1 * LARGE_CHANGE_VALUE))
LIST_CHANGE_VALUE '= LIST_ADD(LIST_CHANGE_VALUE, TOSTR(-1))
LIST_CHANGE_VALUE '= LIST_ADD(LIST_CHANGE_VALUE, TOSTR( 1))
LIST_CHANGE_VALUE '= LIST_ADD(LIST_CHANGE_VALUE, TOSTR( 1 * LARGE_CHANGE_VALUE))
;終了判定フラグ
EXIT_FLAG = -1

;--------------
;-- 表示処理
;--------------
REDRAW 0
;1.残数表示
TOTAL_CURT_CHG_POINT = 0
TOTAL_CURT_ITEM_USE_NUM = 0
FOR L_CNT, 0, LIST_SIZE
	TOTAL_CURT_CHG_POINT    += TOINT(LIST_GET(LIST_CURT_CHG_POINT   , L_CNT))
	TOTAL_CURT_ITEM_USE_NUM += TOINT(LIST_GET(LIST_CURT_ITEM_USE_NUM, L_CNT))
NEXT
REST_ITEM_STOCK = ITEM_STOCK - TOTAL_CURT_ITEM_USE_NUM
CALLF TAG_PRINT(@"　%ITEM_NAME% ({ITEM_STOCK} → @C:{カラー_オレンジ}@{REST_ITEM_STOCK}@/C@)", 1)
PRINTL
;2.項目ごとのボタンを作成
FOR L_CNT, 0, LIST_SIZE
	BUTTON_NO_BASE = BTN_OFFSET * (L_CNT + 1)
	{
		CALL _ITEM_USING_COMMON_SKILL_POINT_OPERATE_CREATE_BUTTON(
			BUTTON_NO_BASE,
			LIST_GET(LIST_SUBJECT_NAME  , L_CNT),
			TOINT(LIST_GET(LIST_INIT_POINT    , L_CNT)),
			TOINT(LIST_GET(LIST_LIMIT_POINT   , L_CNT)),
			LIST_CHANGE_VALUE,
			TOINT(LIST_GET(LIST_CURT_CHG_POINT, L_CNT)),
			REST_ITEM_STOCK
			)
	}
NEXT
;3.決定/キャンセルボタン作成
PRINTL
IF TOTAL_CURT_CHG_POINT
	BUTTON_TEXT '= @"@B:9998@[決定]@/B@ @B:9999@[キャンセル]@/B@"
	;変更なしの場合は決定ボタンを押せない
ELSE
	BUTTON_TEXT '= @"@C:{カラー_選択不可}@[決定]@/C@ @B:9999@[キャンセル]@/B@"
ENDIF
CALLF TAG_PRINT(BUTTON_TEXT, 5)
REDRAW 1

;--------------
;-- 入力処理
;--------------
BINPUT
INPUT_VALUE = RESULT
CLEARLINE 1
;PRINTFORMW INPUT_VALUE:{INPUT_VALUE}

;--------------------------
;-- 入力ごとの処理実行部
;--------------------------
SELECTCASE INPUT_VALUE
		;増減ボタン
	CASE BTN_OFFSET * 1 TO ((BTN_OFFSET * (LIST_SIZE + 1)) - 1)
		SUBJECT_NO = INPUT_VALUE / BTN_OFFSET - 1
		CHANGE_NO  = INPUT_VALUE % BTN_OFFSET
		;ポイント変更処理
		{
			CALL _ITEM_USING_COMMON_SKILL_POINT_OPERATE_CALCULATION(
				CHANGE_NO,
				TOINT(LIST_GET(LIST_INIT_POINT    , SUBJECT_NO)),
				TOINT(LIST_GET(LIST_LIMIT_POINT   , SUBJECT_NO)),
				LIST_CHANGE_VALUE,
				CHANGE_RATE,
				ITEM_STOCK,
				TOINT(LIST_GET(LIST_CURT_ITEM_USE_NUM, SUBJECT_NO)),
				TOTAL_CURT_CHG_POINT
				)
		}
		LIST_CURT_CHG_POINT    '= LIST_SET(LIST_CURT_CHG_POINT   , SUBJECT_NO, TOSTR(RESULT:0))
		LIST_CURT_ITEM_USE_NUM '= LIST_SET(LIST_CURT_ITEM_USE_NUM, SUBJECT_NO, TOSTR(RESULT:1))
		;決定ボタン
	CASE 9998
		;ポイント変更確定処理
		;確認メッセージを表示
		;・個別の確認メッセージが設定されている場合は表示
		TRYCCALLFORM ITEM_USING_COMMON_CONFIRM_MESSAGE_%ITEM_NAME%(ITEM_NAME, TOTAL_CURT_ITEM_USE_NUM)
			;・個別の確認メッセージが設定されていない場合は汎用メッセージを表示
		CATCH
			CALL ITEM_USING_COMMON_CONFIRM_MESSAGE(ITEM_NAME, TOTAL_CURT_ITEM_USE_NUM)
		ENDCATCH
		PRINTL
		CALL ASK_YN()
		CONFIRM_ANSWER = RESULT

		;変更確定時
		IF !CONFIRM_ANSWER
			;結果を格納
			RESULTS:0 '= LIST_CURT_CHG_POINT
			RESULTS:1 '= LIST_CURT_ITEM_USE_NUM
			;終了判定ON(1:変更)
			EXIT_FLAG = 1
		ENDIF
		;変更キャンセルした場合は何もしない(ループする)
		;キャンセルボタン
	CASE 9999
		;キャンセルメッセージを表示
		;変更内容は使用しないで終了する
		VARSET RESULTS
		PRINTW キャンセルしました
		;終了判定ON(0:キャンセル)
		EXIT_FLAG = 0
		;その他
	CASEELSE
		;処理なし
ENDSELECT

;--------------
;-- 終了処理
;--------------
IF EXIT_FLAG != -1
	;次回実行時用に変更内容を初期化
	VARSET LIST_CURT_CHG_POINT
	VARSET LIST_CURT_ITEM_USE_NUM
	;変更/キャンセル結果を返す
	RETURN EXIT_FLAG
ENDIF

;------------------
;-- ループ前処理
;------------------
REDRAW 0
;表示開始行までを消去する
CLEARLINE LINECOUNT - FIRST_LINE
;関数の最初に戻ってループする
RESTART

;-------------------------------------------------------------------------------
;内部処理：ポイント変更ボタン表示
;-------------------------------------------------------------------------------
@_ITEM_USING_COMMON_SKILL_POINT_OPERATE_CREATE_BUTTON(BUTTON_NO_BASE, SUBJECT_NAME, INIT_POINT, LIMIT_POINT, LIST_CHANGE_VALUE, CURT_CHG_POINT, REST_ITEM_STOCK)
#DIM  BUTTON_NO_BASE
#DIMS SUBJECT_NAME
#DIM  INIT_POINT
#DIM  LIMIT_POINT
#DIMS LIST_CHANGE_VALUE
#DIM  CURT_CHG_POINT
#DIM  REST_ITEM_STOCK

#DIM  DYNAMIC BUTTON_NO
#DIM  DYNAMIC NOW_POINT
#DIM  DYNAMIC L_CNT
#DIM  DYNAMIC CHANGE_VALUE
#DIMS DYNAMIC NUM_SYMBOL
#DIMS DYNAMIC BUTTON_TEXT
#DIMS DYNAMIC PRINT_TEXT

;------------------------
;-- 表示テキストの作成
;------------------------
PRINT_TEXT '= ""

;項目名
PRINT_TEXT += @"　%SUBJECT_NAME% "

;ポイント現在値
;・変更中の場合は色を変更
NOW_POINT = INIT_POINT + CURT_CHG_POINT
IF CURT_CHG_POINT
	PRINT_TEXT += @"@C:{カラー_緑}@{NOW_POINT, 2}@/C@"
ELSE
	PRINT_TEXT += @"{NOW_POINT, 2}"
ENDIF

;ポイント上限値
PRINT_TEXT += @"/{LIMIT_POINT, 2}"

;ポイント変更量
;・プラス/ゼロの場合は＋記号を追加(マイナスは最初から付いてるので不要)
IF CURT_CHG_POINT >= 0
	NUM_SYMBOL '= "+"
ELSE
	NUM_SYMBOL '= ""
ENDIF

;・変更中の場合は色を変更
IF CURT_CHG_POINT > 0
	PRINT_TEXT += @" (@C:{カラー_緑}@%NUM_SYMBOL%{CURT_CHG_POINT, 2}@/C@)"
ELSE
	PRINT_TEXT += @" (%NUM_SYMBOL%{CURT_CHG_POINT, 2})"
ENDIF

;ポイント増減ボタン
FOR L_CNT, 0, 4
	CHANGE_VALUE = TOINT(LIST_GET(LIST_CHANGE_VALUE, L_CNT))
	BUTTON_NO    = BUTTON_NO_BASE + L_CNT
	PRINT_TEXT += " "

	;ボタンのテキストを設定
	;・プラス/ゼロの場合は＋記号を追加(マイナスは最初から付いてるので不要)
	IF CHANGE_VALUE >= 0
		NUM_SYMBOL '= "+"
	ELSE
		NUM_SYMBOL '= ""
	ENDIF

	BUTTON_TEXT '= @"[%NUM_SYMBOL%{CHANGE_VALUE}]"

	;変更ボタン表示
	;・押せない(押す必要がない)ボタンは選択不可で表示
	;マイナスボタン：これ以上減らせない場合は×
	IF (CHANGE_VALUE < 0) && (CURT_CHG_POINT <= 0)
		PRINT_TEXT += @"@C:{カラー_選択不可}@%BUTTON_TEXT%@/C@"
		;プラスボタン：これ以上増やせない場合は×
	ELSEIF (CHANGE_VALUE > 0) && ((NOW_POINT >= LIMIT_POINT) || (REST_ITEM_STOCK <= 0))
		PRINT_TEXT += @"@C:{カラー_選択不可}@%BUTTON_TEXT%@/C@"
	ELSE
		PRINT_TEXT += @"@B:{BUTTON_NO}@%BUTTON_TEXT%@/B@"
	ENDIF
NEXT

;----------------------------
;-- 作成したテキストを表示
;----------------------------
;PRINTFORML %PRINT_TEXT%
CALLF TAG_PRINT(PRINT_TEXT, 5)

;-------------------------------------------------------------------------------
;内部処理：ポイント変更量計算処理
;-------------------------------------------------------------------------------
@_ITEM_USING_COMMON_SKILL_POINT_OPERATE_CALCULATION(CHANGE_NO, INIT_POINT, LIMIT_POINT, LIST_CHANGE_VALUE, CHANGE_RATE, ITEM_STOCK, CURT_ITEM_USE_NUM, TOTAL_CURT_CHG_POINT)
#DIM  CHANGE_NO
#DIM  INIT_POINT
#DIM  LIMIT_POINT
#DIMS LIST_CHANGE_VALUE
#DIM  CHANGE_RATE
#DIM  ITEM_STOCK
#DIM  CURT_ITEM_USE_NUM
#DIM  TOTAL_CURT_CHG_POINT

#DIM DYNAMIC CHANGE_VALUE
#DIM DYNAMIC POINT_BEFORE
#DIM DYNAMIC POINT_AFTER
#DIM DYNAMIC ITEM_USE_NUM
#DIM DYNAMIC REST_ITEM_STOCK
#DIM DYNAMIC RESULT_CHANGE_POINT
#DIM DYNAMIC RESULT_ITEM_USE_NUM

;押したボタンに対応する変化量を決定
CHANGE_VALUE = TOINT(LIST_GET(LIST_CHANGE_VALUE, CHANGE_NO))

;変更前のポイントを取得
POINT_BEFORE = INIT_POINT + CURT_ITEM_USE_NUM * CHANGE_RATE

;変更後のポイント算出 (下限:基本値, 上限:上限値)
POINT_AFTER = LIMIT(POINT_BEFORE + (CHANGE_VALUE * CHANGE_RATE), INIT_POINT, LIMIT_POINT)

;変化回数がアイテム数を越えないように補正
ITEM_USE_NUM    = (POINT_AFTER - POINT_BEFORE + TOTAL_CURT_CHG_POINT) / CHANGE_RATE
REST_ITEM_STOCK = ITEM_STOCK - ITEM_USE_NUM

IF REST_ITEM_STOCK < 0
	POINT_AFTER = POINT_AFTER + (REST_ITEM_STOCK * CHANGE_RATE)
	ITEM_USE_NUM -= ABS(REST_ITEM_STOCK)
ENDIF

;現在ポイントとの差分をポイント変更量として格納
RESULT_CHANGE_POINT = POINT_AFTER - INIT_POINT
;ポイント変更量と変更率から変更回数を算出(切り上げ除算)
RESULT_ITEM_USE_NUM = (RESULT_CHANGE_POINT + CHANGE_RATE - 1) / CHANGE_RATE
;不具合修正:算出された変更回数が在庫を超えている場合、再算出
IF RESULT_ITEM_USE_NUM > ITEM_STOCK || REST_ITEM_STOCK < 0
	;変更後ポイントの再算出
	POINT_AFTER = LIMIT(POINT_BEFORE + (ITEM_USE_NUM * CHANGE_RATE), INIT_POINT, LIMIT_POINT)
	;現在ポイントとの差分をポイント変更量として格納
	RESULT_CHANGE_POINT = POINT_AFTER - INIT_POINT
	;使用回数補正
	RESULT_ITEM_USE_NUM = ITEM_USE_NUM
ENDIF

; DEBUGPRINTFORM "----------------------------------------"
; DEBUGPRINTFORML CHANGE_NO:{CHANGE_NO}
; DEBUGPRINTFORML CHANGE_VALUE:{CHANGE_VALUE}
; DEBUGPRINTFORML CHANGE_RATE:{CHANGE_RATE}
; DEBUGPRINTFORML LIMIT_POINT:{LIMIT_POINT}
; DEBUGPRINTFORML INIT_POINT:{INIT_POINT}
; DEBUGPRINTFORML POINT_BEFORE:{POINT_BEFORE}
; DEBUGPRINTFORML POINT_AFTER:{POINT_AFTER}
; DEBUGPRINTFORML ITEM_USE_NUM:{ITEM_USE_NUM}
; DEBUGPRINTFORML REST_ITEM_STOCK:{REST_ITEM_STOCK}
; DEBUGPRINTFORML RESULT_CHANGE_POINT:{RESULT_CHANGE_POINT}
; DEBUGPRINTFORML RESULT_ITEM_USE_NUM:{RESULT_ITEM_USE_NUM}
; DEBUGPRINTFORML "----------------------------------------"

RETURN RESULT_CHANGE_POINT, RESULT_ITEM_USE_NUM

;-------------------------------------------------------------------------------
;内部処理：ポイント確定確認メッセージ(汎用)
;-------------------------------------------------------------------------------
@ITEM_USING_COMMON_CONFIRM_MESSAGE(ITEM_NAME, ITEM_USE_NUM)
#DIMS ITEM_NAME
#DIM  ITEM_USE_NUM

PRINTL
CALLF TAG_PRINT(@"%ITEM_NAME%を{ITEM_USE_NUM}個使用します。よろしいですか？", 1)

repo_name: napo/erafl

license: unknown


code:
;-----------------------------------
;アイテム名を取得
;-----------------------------------
@GET_ITEM_NAME(ITEM_ID)
#DIM ITEM_ID
TRYCCALLFORM GET_ITEM_NAME_{ITEM_ID}
    RETURN 0
CATCH
    RESULTS '= ""
ENDCATCH
RETURN -1
;-----------------------------------
;アイテムの分類を取得
;-----------------------------------
@GET_ITEM_CATEGORY(ITEM_ID)
#DIM ITEM_ID
TRYCCALLFORM GET_ITEM_CATEGORY_{ITEM_ID}
    RETURN 0
CATCH
    RESULTS:0 = ""
    RESULTS:1 = ""
ENDCATCH
RETURN -1

;-----------------------------------
;アイテムの説明を取得
;-----------------------------------
@GET_ITEM_DESCRIPTION(ITEM_ID)
#DIM ITEM_ID
TRYCCALLFORM GET_ITEM_DESCRIPTION_{ITEM_ID}
    RETURN 0
CATCH
    RESULTS:0 = ""
    RESULTS:1 = ""
ENDCATCH
RETURN -1

;-----------------------------------
;アイテムに関する情報をSTATUS配列に取得
;-----------------------------------
@GET_ITEM_INFO_ALL(ITEM_ID, STATUS)
#DIM ITEM_ID
#DIM REF STATUS
VARSET STATUS, 0
TRYCCALLFORM GET_ITEM_INFO_{ITEM_ID}(STATUS)
    RETURN 0
CATCH
ENDCATCH
RETURN -1

;-----------------------------------
;アイテムに関する情報のうち、STATUS_IDで指定したものを返す
;-----------------------------------
@GET_ITEM_INFO(ITEM_ID, STATUS_ID)
#DIM ITEM_ID
#DIM STATUS_ID
#DIM STATUS, STATUS_LENGTH
VARSET STATUS
CALL GET_ITEM_INFO_ALL(ITEM_ID, STATUS)
SIF RESULT == -1
    RETURN -1
RETURN STATUS:STATUS_ID

;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE(ITEM_ID, MODULE_ID)
#DIM ITEM_ID
#DIM MODULE_ID
TRYCCALLFORM CHECK_ITEM_CRAFTABLE_{ITEM_ID}(MODULE_ID)
    IF RESULT
        RETURN 1
    ELSE
        RETURN -1
    ENDIF
CATCH
ENDCATCH
RETURN -1

;-----------------------------------
;アイテムの素材を取得
;-----------------------------------
@GET_ITEM_MATERIAL_NEEDS(ITEM_ID, MATERIAL_NEEDS, RECIPE_ID = 0)
#DIM ITEM_ID
#DIM REF MATERIAL_NEEDS
#DIM RECIPE_ID
VARSET MATERIAL_NEEDS, 0
IF !RECIPE_ID
    TRYCCALLFORM GET_ITEM_MATERIAL_{ITEM_ID}(MATERIAL_NEEDS)
        IF RESULT
            RETURN 1
        ELSE
            RETURN -1
        ENDIF
    CATCH
    ENDCATCH
ELSE
    ;代替レシピ用関数
    TRYCCALLFORM GET_ITEM_MATERIAL_{ITEM_ID}_{RECIPE_ID}(MATERIAL_NEEDS)
        IF RESULT
            RETURN 1
        ELSE
            RETURN -1
        ENDIF
    CATCH
    ENDCATCH
ENDIF
RETURN -1

;-----------------------------------
;アイテムが店に並ぶか
;-----------------------------------
@IS_MARKET_AVAILABLE_ITEM(ITEM_ID)
#DIM ITEM_ID
TRYCCALLFORM IS_MARKET_AVAILABLE_ITEM_{ITEM_ID}
    RETURN RESULT
CATCH
ENDCATCH
RETURN -1

;-----------------------------------
;アイテムが敵からドロップするか
;-----------------------------------
@IS_DROPPABLE_ITEM(ITEM_ID)
#DIM ITEM_ID
TRYCCALLFORM IS_DROPPABLE_ITEM_{ITEM_ID}
    RETURN RESULT
CATCH
ENDCATCH
RETURN -1

;-----------------------------------
;指定した分類のアイテムを探し、ITEM_LIST配列に格納する。
;小分類(LOWER_CLASS)は省略可能
;返り値として、該当するアイテムの数を返す
;-----------------------------------
@GET_ITEM_LIST_BY_CATEGORY(ITEM_LIST, UPPER_CLASS, LOWER_CLASS = "")
#DIM REF ITEM_LIST, 0
#DIMS UPPER_CLASS
#DIMS LOWER_CLASS
#DIM ITEM_NUM

VARSET ITEM_LIST, -1
ITEM_NUM = 0

IF LOWER_CLASS == ""
    FOR LOCAL, 0, ITEM_LENGTH
        CALL GET_ITEM_CATEGORY(LOCAL)
        SIF RESULT == -1
            CONTINUE
        IF RESULTS:0 == UPPER_CLASS
            ITEM_LIST:ITEM_NUM = LOCAL
            ITEM_NUM += 1
        ENDIF
    NEXT
ELSE
    FOR LOCAL, 0, ITEM_LENGTH
        CALL GET_ITEM_CATEGORY(LOCAL)
        SIF RESULT == -1
            CONTINUE
        IF RESULTS:0 == UPPER_CLASS && RESULTS:1 == LOWER_CLASS
            ITEM_LIST:ITEM_NUM = LOCAL
            ITEM_NUM += 1
        ENDIF
    NEXT
ENDIF

RETURN ITEM_NUM

;保持しているアイテムの量を返す
@GET_ITEM_STOCK(ITEM_ID)
#FUNCTION
#DIM ITEM_ID
#DIM AMOUNT
AMOUNT = HO_ITEM_STOCK:ITEM_ID

RETURNF AMOUNT

;MATERIAL_NEEDS配列の格納数だけ在庫からアイテムを減らす。
@USE_MATERIAL(MATERIAL_NEEDS, COUNT_TIMES = 1)
#DIM REF MATERIAL_NEEDS
#DIM COUNT_TIMES
FOR LOCAL, 0, ITEM_LENGTH
    IF MATERIAL_NEEDS:LOCAL > 0
        CALL SYNC_AND_CHANGE_STOCK(LOCAL, -(MATERIAL_NEEDS:LOCAL) * COUNT_TIMES)
    ENDIF
NEXT
; 1つのアイテムの在庫を増減
@CHANGE_ITEM_STOCK(ITEM_ID, AMOUNT)
#DIM ITEM_ID
#DIM AMOUNT
CALL SYNC_AND_CHANGE_STOCK(ITEM_ID, AMOUNT)
RETURN

; 増減をセットした配列を渡して複数のアイテムの在庫を増減
@CHANGE_ITEM_STOCK_M(CHANGE_ITEM_AMOUNT_ARRAY)
#DIM REF CHANGE_ITEM_AMOUNT_ARRAY
FOR LOCAL, 0, ITEM_LENGTH
    IF CHANGE_ITEM_AMOUNT_ARRAY:LOCAL != 0
        CALL SYNC_AND_CHANGE_STOCK(LOCAL, CHANGE_ITEM_AMOUNT_ARRAY:LOCAL)
    ENDIF
NEXT
RETURN

; 在庫数を増減する共通の処理
@SYNC_AND_CHANGE_STOCK(ITEM_ID, AMOUNT)
#DIM ITEM_ID
#DIM AMOUNT
RESULT = 0
TRYCALLFORM CHECK_ITEM_STOCK_SYNCED_WITH_TRAIN_ITEM_{ITEM_ID}()
IF RESULT
    ITEM:RESULT = MAX(0, ITEM:RESULT + AMOUNT)
ENDIF

SELECTCASE ITEM_ID
    CASE ITEM_ディナリ
        MONEY = MAX(0, MONEY + AMOUNT)
    CASE ITEM_名誉点
        QST_PRESTIGE_POINT = MAX(0, QST_PRESTIGE_POINT + AMOUNT)
    CASE ITEM_淫堕点
        QST_LEWD_POINT = MAX(0, QST_LEWD_POINT + AMOUNT)
    CASEELSE
        HO_ITEM_STOCK:ITEM_ID = MAX(0, HO_ITEM_STOCK:ITEM_ID + AMOUNT)
ENDSELECT

RETURN

;食事効果
@GET_MEAL_INSTANT_BUFF(MEAL_EFFECT_ID, STATUS)
#FUNCTION
#DIM  MEAL_EFFECT_ID
#DIMS STATUS

SIF MEAL_EFFECT_ID == -1
    RETURNF 0

TRYCALLFORMF GET_INFO_INSTANT_BUFF_{MEAL_EFFECT_ID}(STATUS)
RETURNF RESULT


code:
;-------------------------
; アイテム、アイテムクラフト関連
;-------------------------
#DIM CONST ITEM_LENGTH = 1000
#DIM SAVEDATA HO_ITEM_STOCK, ITEM_LENGTH
#DIM SAVEDATA HO_ITEM_TRADE_STOCK, ITEM_LENGTH
#DIM HO_アイテム変化量, ITEM_LENGTH ;コマンド実行時のアイテム変化量を地の文出力用に保持する用途で使用

;ITEM_ID定義
;-------------------------------------------------
#DIM CONST ITEM_木材 = 0
#DIM CONST ITEM_石材 = 1
#DIM CONST ITEM_銅鉱石 = 2
#DIM CONST ITEM_鉄鉱石 = 3
#DIM CONST ITEM_銀鉱石 = 4
#DIM CONST ITEM_金鉱石 = 5
#DIM CONST ITEM_銅インゴット = 6
#DIM CONST ITEM_鉄インゴット = 7
#DIM CONST ITEM_銀インゴット = 8
#DIM CONST ITEM_金インゴット = 9
#DIM CONST ITEM_マナ結晶 = 10
#DIM CONST ITEM_マナ触媒 = 11
#DIM CONST ITEM_動物の革 = 12
#DIM CONST ITEM_動物の肉 = 13
#DIM CONST ITEM_乳 = 14
#DIM CONST ITEM_骨 = 15
#DIM CONST ITEM_薬草 = 16
#DIM CONST ITEM_香草 = 17
#DIM CONST ITEM_植物性オイル = 18
#DIM CONST ITEM_植物性繊維 = 19
#DIM CONST ITEM_プラントラバー = 20
#DIM CONST ITEM_薬草粉末 = 21
#DIM CONST ITEM_布 = 22
#DIM CONST ITEM_マナグラス = 23
#DIM CONST ITEM_精液 = 24
#DIM CONST ITEM_媚薬 = 25
#DIM CONST ITEM_ポーション = 26
#DIM CONST ITEM_蒸留酒 = 27
#DIM CONST ITEM_肥料 = 30
#DIM CONST ITEM_小麦 = 31
#DIM CONST ITEM_パン = 35
#DIM CONST ITEM_サンドウィッチ = 36
#DIM CONST ITEM_動物の卵 = 37
#DIM CONST ITEM_動物性油 = 38
#DIM CONST ITEM_鳥の羽 = 39
#DIM CONST ITEM_魔獣の肉片 = 40
#DIM CONST ITEM_魔獣の心核 = 41
#DIM CONST ITEM_動物の糞 = 44
#DIM CONST ITEM_石炭 = 45
#DIM CONST ITEM_硫黄 = 46
#DIM CONST ITEM_火薬 = 47
#DIM CONST ITEM_高効率魔導触媒 = 48
#DIM CONST ITEM_岩塩 = 49
#DIM CONST ITEM_鋼インゴット = 50
#DIM CONST ITEM_バター = 51
#DIM CONST ITEM_ホワイトソース = 52
#DIM CONST ITEM_パスタ = 53
#DIM CONST ITEM_トマトソース = 54
#DIM CONST ITEM_金属細工 = 55
#DIM CONST ITEM_宝石 = 56
#DIM CONST ITEM_竜の牙 = 57
#DIM CONST ITEM_精霊石 = 58
#DIM CONST ITEM_ウーツ鋼インゴット = 59
#DIM CONST ITEM_建築資材 = 60
#DIM CONST ITEM_川エビ = 61
#DIM CONST ITEM_ザリガニ = 62
#DIM CONST ITEM_カニの肉 = 63
#DIM CONST ITEM_スッポン = 64
#DIM CONST ITEM_東方スパイス = 65
#DIM CONST ITEM_カレールー = 66
#DIM CONST ITEM_鮮肉の大塊 = 67
#DIM CONST ITEM_竜の肉 = 68
#DIM CONST ITEM_キャベツ = 70
#DIM CONST ITEM_ニンニク = 71
#DIM CONST ITEM_トマト = 72
#DIM CONST ITEM_カボチャ = 73
#DIM CONST ITEM_ニンジン = 74
#DIM CONST ITEM_タマネギ = 75
#DIM CONST ITEM_カブ = 76
#DIM CONST ITEM_ネギ = 77
#DIM CONST ITEM_レッドペッパー = 78
#DIM CONST ITEM_石油 = 90
#DIM CONST ITEM_鞭 = 100
#DIM CONST ITEM_縄 = 101
#DIM CONST ITEM_ローション = 102
#DIM CONST ITEM_コンドーム = 103
#DIM CONST ITEM_使用済みコンドーム = 104
#DIM CONST ITEM_搾乳機 = 105
#DIM CONST ITEM_オナホール = 106
#DIM CONST ITEM_ローター = 107
#DIM CONST ITEM_バイブ = 108
#DIM CONST ITEM_アナルバイブ = 109
#DIM CONST ITEM_目隠し = 111
#DIM CONST ITEM_首輪 = 112
#DIM CONST ITEM_口枷 = 113
#DIM CONST ITEM_パシパエの小箱 = 114
#DIM CONST ITEM_キルケの小箱 = 115
#DIM CONST ITEM_ニプルキャップ = 116
#DIM CONST ITEM_クリキャップ = 117
#DIM CONST ITEM_サルマキス薬 = 120
#DIM CONST ITEM_アンスロープ薬 = 121
#DIM CONST ITEM_母乳促進剤 = 122
#DIM CONST ITEM_ヴェスパの薬 = 123
#DIM CONST ITEM_ティレシアスの秘薬 = 124
#DIM CONST ITEM_樹華結晶 = 125
#DIM CONST ITEM_鎮静剤 = 127
#DIM CONST ITEM_スキュラのフェロモン = 128
#DIM CONST ITEM_メイガスの夜 =129
#DIM CONST ITEM_セモリナス粉 =130
#DIM CONST ITEM_豊穣のパンケーキ = 131
#DIM CONST ITEM_清貧のクッキー = 132
#DIM CONST ITEM_成熟のマフィン = 133
#DIM CONST ITEM_無垢のスコーン = 134
#DIM CONST ITEM_プリアポスの恵み = 135
#DIM CONST ITEM_ディナリア銀貨 = 150
#DIM CONST ITEM_ミルク = 200
#DIM CONST ITEM_チーズ = 201
#DIM CONST ITEM_干し肉 = 202
#DIM CONST ITEM_ゆで卵 = 203
#DIM CONST ITEM_魔獣肉団子 = 204
#DIM CONST ITEM_オムレツ = 205
#DIM CONST ITEM_トラハナ = 206
#DIM CONST ITEM_ミートパイ = 207
#DIM CONST ITEM_キッシュ = 208
#DIM CONST ITEM_ゆでエビ = 209
#DIM CONST ITEM_ゆでザリガニ = 210
#DIM CONST ITEM_ゆでカニ = 211
#DIM CONST ITEM_ザリガニグラタン = 212
#DIM CONST ITEM_カニクリームコロッケ = 213
#DIM CONST ITEM_スッポンの生き血 = 214
#DIM CONST ITEM_カツレツ = 220
#DIM CONST ITEM_魔の合挽ハンバーグ = 221
#DIM CONST ITEM_カレーフリカッセ = 222
#DIM CONST ITEM_魔のタンドリーハツ = 223
#DIM CONST ITEM_ステーキ = 224
#DIM CONST ITEM_ドラゴンステーキ = 225
#DIM CONST ITEM_野菜いため = 230
#DIM CONST ITEM_カボチャいため = 231
#DIM CONST ITEM_彩りサラダ = 232
#DIM CONST ITEM_薬膳サラダ = 233
#DIM CONST ITEM_リーキグラタン = 234
#DIM CONST ITEM_パンプキンスープ = 235
#DIM CONST ITEM_ポモドーロ = 240
#DIM CONST ITEM_ペペロンチーノ = 241
#DIM CONST ITEM_カルボナーラ = 242
#DIM CONST ITEM_アラビアータ = 243
#DIM CONST ITEM_ボロネーゼ = 244
#DIM CONST ITEM_オルトラーナ = 245
#DIM CONST ITEM_ラザニア = 246
#DIM CONST ITEM_クリームシチュー = 250
#DIM CONST ITEM_スッポン鍋 = 251
#DIM CONST ITEM_カレー = 252
#DIM CONST ITEM_ビスク = 253
#DIM CONST ITEM_焼肉 = 254
#DIM CONST ITEM_竜のダンプリング鍋 = 255
#DIM CONST ITEM_八草のエルフ風スープ = 256
#DIM CONST ITEM_グラットン汁 = 257
#DIM CONST ITEM_マカロニグラタン = 260
#DIM CONST ITEM_技巧の宝玉 = 300
#DIM CONST ITEM_淫堕の宝玉 = 303
#DIM CONST ITEM_求人書類 = 310
#DIM CONST ITEM_調合技能書 = 311
#DIM CONST ITEM_工作技能書 = 312
#DIM CONST ITEM_拳技秘伝書 = 313
#DIM CONST ITEM_栄誉勲章 = 350
#DIM CONST ITEM_淫魔の刻印 = 351
#DIM CONST ITEM_体力増強剤 = 400
#DIM CONST ITEM_スペシャルべこ人形 = 800
;ダミーアイテム
#DIM CONST ITEM_ディナリ = 950
#DIM CONST ITEM_名誉点 = 951
#DIM CONST ITEM_淫堕点 = 952


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_107()
RESULTS '= "ローター"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_107()
RESULTS:0 '= "調教,"
RESULTS:1 '= ""
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_107()
RESULTS:0 '= "内蔵された振動機構によって性的快楽を得る性具"
RESULTS:1 '= "コマンド「ローター」が使用可能になる"
RESULTS:2 '= "人類種の体液、特に愛液や精液には多量のマナが含まれているとされている"
RESULTS:3 '= "そのため、一部の魔物はマナの摂取を目的に、人間の性感に訴える行動をとるものが存在する"
RESULTS:4 '= "この性具は硬貨に扮して人間の冒険者に辱めを与えるクリーピングコインに着想を得て作られたようだ"
RETURN 1
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_107(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 7000
ITEM_DATA:ITEM_基準生産量 = 1
RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_107(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_プラントラバー = 10
MATERIAL_NEEDS:ITEM_ローション = 6
MATERIAL_NEEDS:ITEM_マナ触媒 = 4
RETURN 1

;-----------------------------------
;アイテムがクラフト可能なモジュールの情報
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_107(MODULE_ID)
#DIM MODULE_ID
; SELECTCASE MODULE_ID
;     CASE 300    ;作業台
;         RETURN 1
;     CASEELSE
;         RETURN 0
; ENDSELECT
RETURN 0

;-----------------------------------
;往来の調教用アイテムと在庫の同期をとる場合定義
;-----------------------------------
@CHECK_ITEM_STOCK_SYNCED_WITH_TRAIN_ITEM_107
;ITEM:ローターと同期
RETURN 200


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_108()
RESULTS '= "バイブ"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_108()
RESULTS:0 '= "調教,"
RESULTS:1 '= ""
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_108()
RESULTS:0 '= "局部に挿入し、内蔵された振動機構によって性的快楽を得る性具"
RESULTS:1 '= "コマンド「バイブ」が使用可能になる"
RESULTS:3 '= "振動機構を有しない張形の歴史は驚くほど古く、木製や石製の張形は太古から存在していたようだ"
RESULTS:4 '= "近年の材料工学、魔導工学の進展は人間の性への飽くなき探究心と相まって性具にも進化をもたらしている"
RESULTS:5 '= @"@C:{カラー_選択不可}@振動する自身の杖で性的快楽を得たことがあるか？　大衆紙によって行われたこの奇妙な調査の結果は@/C@"
RESULTS:6 '= @"@C:{カラー_選択不可}@はい:4、いいえ:10、無回答:256、国家の名誉と伝統の毀損による差止請求:1という結果に終わっている@/C@"
RESULTS:7 '= @"@C:{カラー_選択不可}@フロリア法院は請求に基づき大衆紙の差止めを行ったが、この結果に確信を得た商人が振動子を内蔵した@/C@"
RESULTS:8 '= @"@C:{カラー_選択不可}@張形を販売すると、生産が追いつかない程の売上を記録したようだ@/C@"
RETURN 1
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_108(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 7000
ITEM_DATA:ITEM_基準生産量 = 1
RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_108(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_プラントラバー = 10
MATERIAL_NEEDS:ITEM_ローション = 6
MATERIAL_NEEDS:ITEM_マナ触媒 = 4
RETURN 1

;-----------------------------------
;アイテムがクラフト可能なモジュールの情報
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_108(MODULE_ID)
#DIM MODULE_ID
; SELECTCASE MODULE_ID
;     CASE 300    ;作業台
;         RETURN 1
;     CASEELSE
;         RETURN 0
; ENDSELECT
RETURN 0

;-----------------------------------
;往来の調教用アイテムと在庫の同期をとる場合定義
;-----------------------------------
@CHECK_ITEM_STOCK_SYNCED_WITH_TRAIN_ITEM_108
;ITEM:バイブと同期
RETURN 201


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_109()
RESULTS '= "アナルバイブ"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_109()
RESULTS:0 '= "調教,"
RESULTS:1 '= ""
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_109()
RESULTS:0 '= "局部に挿入し、内蔵された振動機構によって性的快楽を得る性具"
RESULTS:1 '= "コマンド「アナルバイブ」が使用可能になる"
RESULTS:3 '= @"@C:{カラー_選択不可}@正教の教義は処女性を重んじ、生殖以外での目的の性交と肛門性交を禁じている@/C@"
RESULTS:4 '= @"@C:{カラー_選択不可}@しかし、器具を使用し快楽を得ることへの教義上の言及はなく、しばしば抜け穴として利用されてきた@/C@"
RESULTS:5 '= @"@C:{カラー_選択不可}@ノルディア大修道院が移築される際、代々の聖職者たちが秘蔵してきた張形が大量に発見されるという@/C@"
RESULTS:6 '= @"@C:{カラー_選択不可}@スキャンダルが報じられた。これには教皇庁も苦言を呈さざるを得なかったが、それはそれとして@/C@"
RESULTS:7 '= @"@C:{カラー_選択不可}@人類史における性具の変遷をたどる貴重な史料として、今日も共和国博物館に陳列されている@/C@"
RETURN 1
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_109(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 7000
ITEM_DATA:ITEM_基準生産量 = 1
RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_109(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_プラントラバー = 10
MATERIAL_NEEDS:ITEM_ローション = 6
MATERIAL_NEEDS:ITEM_マナ触媒 = 4
RETURN 1

;-----------------------------------
;アイテムがクラフト可能なモジュールの情報
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_109(MODULE_ID)
#DIM MODULE_ID
; SELECTCASE MODULE_ID
;     CASE 300    ;作業台
;         RETURN 1
;     CASEELSE
;         RETURN 0
; ENDSELECT
RETURN 0

;-----------------------------------
;往来の調教用アイテムと在庫の同期をとる場合定義
;-----------------------------------
@CHECK_ITEM_STOCK_SYNCED_WITH_TRAIN_ITEM_109
;ITEM:アナルバイブと同期
RETURN 202


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_112()
RESULTS '= "首輪"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_112()
RESULTS:0 '= "調教,"
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_112()
RESULTS:0 '= "奴隷を拘束するための首輪"
RESULTS:1 '= "相手の自由を奪い恐怖と不安を煽る隷属の証"
RESULTS:2 '= "コマンド「首輪をはめる」が使用可能になる"
RESULTS:4 '= @"@C:{カラー_選択不可}@大戦の終結に際し、獣人たちは自らの人類社会への貢献を声高に主張し隷属と抑圧からの解放を求めた@/C@"
RESULTS:5 '= @"@C:{カラー_選択不可}@この汎人族の権利請願は彼らとともに戦列を並べ戦った諸種族の後押しも相まって広い支持を集め、@/C@"
RESULTS:6 '= @"@C:{カラー_選択不可}@中央世界における獣人の権利獲得の最初にして大きな一歩となった@/C@"
RESULTS:7 '= @"@C:{カラー_選択不可}@しかしながら彼らに対する偏見や差別は未だ根深く残り、彼らの社会への完全な参入を妨げ、@/C@"
RESULTS:8 '= @"@C:{カラー_選択不可}@その大部分を経済的・社会的地位の低い層に押し留めて続けている@/C@"
RESULTS:9 '= @"@C:{カラー_選択不可}@彼らを繋ぎ止める見えない軛は未だ強固で重いようだ@/C@"
RETURN 0
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_112(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 8000
ITEM_DATA:ITEM_基準生産量 = 1
RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_112(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_動物の革 = 12
MATERIAL_NEEDS:ITEM_鋼インゴット = 3
RETURN 1

;-----------------------------------
;アイテムがクラフト可能なモジュールの情報
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_112(MODULE_ID)
#DIM MODULE_ID
SELECTCASE MODULE_ID
    CASE 305    ;織り機
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT

;-----------------------------------
;市販品か否か
;0=ショップに並ばない 1=ショップに並ぶ
;-----------------------------------
@IS_MARKET_AVAILABLE_ITEM_112()
RETURN 1
;-----------------------------------
;敵がドロップするか否か
;0=ドロップしない 1=ドロップする
;-----------------------------------
@IS_DROPPABLE_ITEM_112()
RETURN 1


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_114()
RESULTS '= "パシパエの小箱"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_114()
RESULTS:0 '= "調教,"
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_114()
RESULTS:0 '= "タトゥーの刻印と除去ができる道具が入っている小箱。"
RESULTS:1 '= ""
RESULTS:2 '= "マナ触媒を肌に彫り込むことで様々なタトゥーを刻印することができる。"
RESULTS:3 '= "色はもちろん自在で、特定の条件で発光させることも可能。"
RESULTS:4 '= "除去のための道具も入っており、これがなければ決して消すことは適わないだろう。"
RESULTS:5 '= ""
RESULTS:6 '= "元々はタトゥーから蛇やサソリを召喚するための魔術師の技術だったという。"
RESULTS:7 '= "かつての力は失われ、今日ではただ罪人や奴隷を貶めるためだけに用いられている。"
RETURN 0
@GET_ITEM_SUBDESCRIPTION_114()
RESULTS:0 '= @"ホームメニューで使用可能"
RESULTS:1 '= "タトゥーの刻印と除去が自由に可能"
RETURN 0
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_114(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 20000
ITEM_DATA:ITEM_基準生産量 = 1
ITEM_DATA:ITEM_CAN_USE_AT_HOME = 1

RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_114(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_薬草 = 10
MATERIAL_NEEDS:ITEM_マナ触媒 = 10
MATERIAL_NEEDS:ITEM_高効率魔導触媒 = 2
RETURN 1

;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_114(MODULE_ID)
#DIM MODULE_ID
#DIM DYNAMIC CRAFTABLE
SELECTCASE MODULE_ID
    CASE 300    ;作業台
        FOR LOCAL, 0, MPLY_NUM
            SIF HAS_TALENT(MPLY:LOCAL, "技師")
                CRAFTABLE = 1
        NEXT
        FOR LOCAL, 0, MTAR_NUM
            SIF HAS_TALENT(MTAR:LOCAL, "技師")
                CRAFTABLE = 1
        NEXT
        SIF !CRAFTABLE
            RETURN 0
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT

@GET_ITEM_INFO_AT_USING_114()
#DIMS DICS_ITEM_EFFECT
{
    DICS_ITEM_EFFECT '= "
        [ITEM_ID:114]
        [TARGET_NUM:1]
        [TARGET_CLASS:FOLLOWER]
        [EFFECT_CATEGORY:パシパエの小箱]
        "
}
RESULTS = %DICS_ITEM_EFFECT%

;-------------------------------------------------
; アイテム使用時の処理関数@ITEM_USING_COMMONから呼ばれるアイテム使用時処理
; 共通化できない・する必要がない固有処理はここに記述
; ITEM_USING_COMMON
;-------------------------------------------------
@ITEM_USING_COMMON_パシパエの小箱(DICS_ITEM_EFFECT)
#DIMS DICS_ITEM_EFFECT
#DIM  DYNAMIC ITEM_ID
#DIMS DYNAMIC ITEM_NAME
#DIM  DYNAMIC SELECTED_CHARA_ID
#DIM  DYNAMIC INPUT_VALUE
#DIM  DYNAMIC FIRST_LINE

ITEM_ID = TOINT(DIC_GET(DICS_ITEM_EFFECT, "ITEM_ID"))
CALL GET_ITEM_NAME(ITEM_ID)
ITEM_NAME           = %RESULTS%

;アイテム使用前のメッセージ表示
;-------------------------------------------------
FIRST_LINE = LINECOUNT
WHILE 1
    IF HO_ITEM_STOCK:ITEM_ID == 0
        RETURN
    ENDIF
    REDRAW 0
    CLEARLINE LINECOUNT - FIRST_LINE
    CALLF TAG_PRINT(@"対象キャラクタを選択してください", 1)
    CALLF TAG_PRINT(@"　%ITEM_NAME%({HO_ITEM_STOCK:ITEM_ID} → @C:{カラー_オレンジ}@{HO_ITEM_STOCK:ITEM_ID -1}@/C@)", 1)
    PRINTL
    CALL SELECT_CHARA_LIST_ONLY_LOGIC_SEX("SAME_FACTION", "NONE")
    CLEARLINE 1
    SELECTED_CHARA_ID = RESULT
    IF SELECTED_CHARA_ID == -1
        RETURN
    ELSE
        CALL TATTOO_MENU(SELECTED_CHARA_ID, 1)
    ENDIF
WEND


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_115()
RESULTS '= "キルケの小箱"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_115()
RESULTS:0 '= "調教,"
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_115()
RESULTS:0 '= "ピアッサーとピアスがひとまとめに入っている小箱。"
RESULTS:1 '= ""
RESULTS:2 '= "シンプルなスタッドからリングやチェーンまで。"
RESULTS:3 '= "どの部位にも穴を空けられるピアッサーと、どの部位にも飾れるピアスのセット。"
RESULTS:4 '= "治療薬も入っているのでピアス穴を綺麗に塞ぐこともできる。"
RESULTS:5 '= ""
RESULTS:6 '= "局部に着けられたピアスは所有者と被所有者の関係を表すために好まれる。"
RESULTS:7 '= "人として生まれながら動物や家畜に堕ちたのだという烙印だ。"
RETURN 0
@GET_ITEM_SUBDESCRIPTION_115()
RESULTS:0 '= @"ホームメニューで使用可能"
RESULTS:1 '= "ピアス穴を開けることも塞ぐことも、ピアスの着脱も自在に可能"
RETURN 0
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_115(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 20000
ITEM_DATA:ITEM_基準生産量 = 1
ITEM_DATA:ITEM_CAN_USE_AT_HOME = 1

RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_115(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_ポーション = 5
MATERIAL_NEEDS:ITEM_金属細工 = 3
MATERIAL_NEEDS:ITEM_高効率魔導触媒 = 2
RETURN 1

;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_115(MODULE_ID)
#DIM MODULE_ID
#DIM DYNAMIC CRAFTABLE
SELECTCASE MODULE_ID
    CASE 300    ;作業台
        FOR LOCAL, 0, MPLY_NUM
            SIF HAS_TALENT(MPLY:LOCAL, "技師")
                CRAFTABLE = 1
        NEXT
        FOR LOCAL, 0, MTAR_NUM
            SIF HAS_TALENT(MTAR:LOCAL, "技師")
                CRAFTABLE = 1
        NEXT
        SIF !CRAFTABLE
            RETURN 0
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT

@GET_ITEM_INFO_AT_USING_115()
#DIMS DICS_ITEM_EFFECT
{
    DICS_ITEM_EFFECT '= "
        [ITEM_ID:115]
        [TARGET_NUM:1]
        [TARGET_CLASS:FOLLOWER]
        [EFFECT_CATEGORY:キルケの小箱]
        "
}
RESULTS = %DICS_ITEM_EFFECT%

;-------------------------------------------------
; アイテム使用時の処理関数@ITEM_USING_COMMONから呼ばれるアイテム使用時処理
; 共通化できない・する必要がない固有処理はここに記述
; ITEM_USING_COMMON
;-------------------------------------------------
@ITEM_USING_COMMON_キルケの小箱(DICS_ITEM_EFFECT)
#DIMS DICS_ITEM_EFFECT
#DIM  DYNAMIC ITEM_ID
#DIMS DYNAMIC ITEM_NAME
#DIM  DYNAMIC SELECTED_CHARA_ID
#DIM  DYNAMIC INPUT_VALUE
#DIM  DYNAMIC FIRST_LINE

ITEM_ID = TOINT(DIC_GET(DICS_ITEM_EFFECT, "ITEM_ID"))
CALL GET_ITEM_NAME(ITEM_ID)
ITEM_NAME           = %RESULTS%

;アイテム使用前のメッセージ表示
;-------------------------------------------------
FIRST_LINE = LINECOUNT
WHILE 1
    IF HO_ITEM_STOCK:ITEM_ID == 0
        RETURN
    ENDIF
    REDRAW 0
    CLEARLINE LINECOUNT - FIRST_LINE
    CALLF TAG_PRINT(@"対象キャラクタを選択してください", 1)
    CALLF TAG_PRINT(@"　%ITEM_NAME%({HO_ITEM_STOCK:ITEM_ID} → @C:{カラー_オレンジ}@{HO_ITEM_STOCK:ITEM_ID -1}@/C@)", 1)
    PRINTL
    CALL SELECT_CHARA_LIST_ONLY_LOGIC_SEX("SAME_FACTION", "NONE")
    CLEARLINE 1
    SELECTED_CHARA_ID = RESULT
    IF SELECTED_CHARA_ID == -1
        RETURN
    ELSE
        CALL PIERCE_MENU(SELECTED_CHARA_ID, 1)
    ENDIF
WEND


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_116()
RESULTS '= "ニプルキャップ"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_116()
RESULTS:0 '= "調教,"
RESULTS:1 '= ""
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_116()
RESULTS:0 '= "乳首に装着し、内蔵された振動機構によって性的快楽を得る性具"
RESULTS:1 '= "コマンド「ニプルキャップ」が使用可能になる"
RESULTS:3 '= "魔物の中には人間の体液を好んで摂取する生態を持つものがいることで知られている"
RESULTS:4 '= "苦痛や快楽、強い感情を伴って分泌される体液は良質なマナを含んでいるためのようだ"
RESULTS:6 '= "これらの生態を持つ魔物は人間に対して極めて強烈な快楽を与える傾向がある"
RESULTS:7 '= "この非人間的な快楽の虜になった末、倒錯的な行動を繰り返し、"
RESULTS:8 '= "破滅に至る者も少なくはない"
RETURN 1
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_116(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 7000
ITEM_DATA:ITEM_基準生産量 = 1
RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_116(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_ローター = 1
MATERIAL_NEEDS:ITEM_金属細工 = 3
RETURN 1

;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_116(MODULE_ID)
#DIM MODULE_ID
SELECTCASE MODULE_ID
    CASE 300    ;作業台
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT
RETURN 0


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_117()
RESULTS '= "クリキャップ"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_117()
RESULTS:0 '= "調教,"
RESULTS:1 '= ""
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_117()
RESULTS:0 '= "陰核に装着し、内蔵された振動機構によって性的快楽を得る性具"
RESULTS:1 '= "コマンド「クリキャップ」が使用可能になる"
RESULTS:2 '= ""
RESULTS:4 '= @"@C:{カラー_選択不可}@「以前とある遺跡に潜ったとき俺たちは隠し部屋で金貨の山を見つけたんだ」@/C@"
RESULTS:5 '= @"@C:{カラー_選択不可}@「俺は狂喜して財宝の山に飛び込もうとする部下の肩をぐっと掴み引き戻した」@/C@"
RESULTS:6 '= @"@C:{カラー_選択不可}@「……既に先客がいやがったんだ」@/C@"
RESULTS:7 '= @"@C:{カラー_選択不可}@「そいつぁ若ぇ女の盗掘者か何か、穴という穴から汁を垂れ流して事切れてやがった」@/C@"
RESULTS:8 '= @"@C:{カラー_選択不可}@「くくっ、その財宝の山はクリーピングコインの巣窟だったというわけだ」@/C@"

RETURN 1
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_117(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 7000
ITEM_DATA:ITEM_基準生産量 = 1
RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_117(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_ローター = 1
MATERIAL_NEEDS:ITEM_金属細工 = 3
RETURN 1

;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_117(MODULE_ID)
#DIM MODULE_ID
SELECTCASE MODULE_ID
    CASE 300    ;作業台
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT
RETURN 0


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_120()
RESULTS '= "サルマキス薬"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_120()
RESULTS:0 '= "消費,"
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_120()
RESULTS:0 '= "両性具有化の薬"
RESULTS:1 '= ""
RESULTS:2 '= "両性具有は古来より子孫繁栄の象徴として、一部の信仰では崇拝の対象であった"
RESULTS:3 '= "故に人為的に両性具有を作り出す試みは幾度となく試みられてきた"
RESULTS:4 '= "そのアプローチは呪術から薬術、口にするのも憚られる原始的な方法まで様々であったようだ"
RESULTS:6 '= "この薬品は高純度のマナを流し込み、人体を強制的に再構成する"
RESULTS:7 '= "長期的に見て人体へどのような影響を与えるかはさらなる観察が必要だ"
RETURN 0
@GET_ITEM_SUBDESCRIPTION_120()
RESULTS:0 '= @"ホームメニューで使用可能"
RESULTS:1 '= "<ふたなり>を得る"
RESULTS:2 '= "<ふたなり>を取得済みのキャラクターに使用すると<ふたなり>を失う"
RETURN 0
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_120(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 20000
ITEM_DATA:ITEM_基準生産量 = 1
ITEM_DATA:ITEM_CAN_USE_AT_HOME = 1

RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_120(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_精液 = 10
MATERIAL_NEEDS:ITEM_魔獣の肉片 = 10
MATERIAL_NEEDS:ITEM_高効率魔導触媒 = 2

RETURN 1

;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_120(MODULE_ID)
#DIM MODULE_ID
#DIM DYNAMIC CRAFTABLE
SELECTCASE MODULE_ID
    CASE 303    ;錬金台
        FOR LOCAL, 0, MPLY_NUM
            SIF HAS_TALENT(MPLY:LOCAL, "調合")
                CRAFTABLE = 1
        NEXT
        FOR LOCAL, 0, MTAR_NUM
            SIF HAS_TALENT(MTAR:LOCAL, "調合")
                CRAFTABLE = 1
        NEXT
        SIF !CRAFTABLE
            RETURN 0
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT
RETURN 0
;-----------------------------------
;市販品か否か
;0=ショップに並ばない 1=ショップに並ぶ
;-----------------------------------
@IS_MARKET_AVAILABLE_ITEM_120()
RETURN 1
;-----------------------------------
;敵がドロップするか否か
;0=ドロップしない 1=ドロップする
;-----------------------------------
@IS_DROPPABLE_ITEM_120()
RETURN 1

;-----------------------------------
;アイテム使用時の処理
;-----------------------------------
@GET_ITEM_INFO_AT_USING_120()
#DIMS DICS_ITEM_EFFECT
{
    DICS_ITEM_EFFECT '= "
        [ITEM_ID:120]
        [TARGET_NUM:1]
        [TARGET_CLASS:FOLLOWER]
        [EFFECT_CATEGORY:ふたなり化]
        "
}
RESULTS = %DICS_ITEM_EFFECT%

;-------------------------------------------------
; アイテム使用時の処理関数@ITEM_USING_COMMONから呼ばれるアイテム使用時処理
; 共通化できない・する必要がない固有処理はここに記述
; ITEM_USING_COMMON
;-------------------------------------------------
@ITEM_USING_COMMON_ふたなり化(DICS_ITEM_EFFECT)
#DIMS DICS_ITEM_EFFECT
#DIM  DYNAMIC ITEM_ID
#DIMS DYNAMIC ITEM_NAME
#DIM  DYNAMIC SELECTED_CHARA_ID
#DIM  DYNAMIC INPUT_VALUE
#DIM  DYNAMIC FIRST_LINE

ITEM_ID = TOINT(DIC_GET(DICS_ITEM_EFFECT, "ITEM_ID"))
CALL GET_ITEM_NAME(ITEM_ID)
ITEM_NAME           = %RESULTS%

;アイテム使用前のメッセージ表示
;-------------------------------------------------
FIRST_LINE = LINECOUNT
WHILE 1
    IF HO_ITEM_STOCK:ITEM_ID == 0
        RETURN
    ENDIF
    REDRAW 0
    CLEARLINE LINECOUNT - FIRST_LINE
    CALLF TAG_PRINT(@"対象キャラクタを選択してください", 1)
    CALLF TAG_PRINT(@"　%ITEM_NAME%({HO_ITEM_STOCK:ITEM_ID} → @C:{カラー_オレンジ}@{HO_ITEM_STOCK:ITEM_ID -1}@/C@)", 1)
    PRINTL
    CALL SELECT_CHARA_LIST_ONLY_LOGIC_SEX("SAME_FACTION", "NONE")
    CLEARLINE 1
    SELECTED_CHARA_ID = RESULT
    IF SELECTED_CHARA_ID == -1
        RETURN
    ELSE
        IF !HAS_FUTANARI(SELECTED_CHARA_ID)
            CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%を@C:{カラー_ピンク}@ふたなり@/C@にします。よろしいですか？", 1)
        ELSE
            CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%の@C:{カラー_ピンク}@ふたなり@/C@を消去します。よろしいですか？", 1)
        ENDIF
        CALL ASK_YN()
        IF RESULT == 0
            CALL TO_FUTANARI(SELECTED_CHARA_ID)
            HO_ITEM_STOCK:ITEM_ID --
            IF HAS_FUTANARI(SELECTED_CHARA_ID)
                ;ペニスサイズを再計算して生成
                CALL SET_BODYSIZE(SELECTED_CHARA_ID, POWER(2, サイズ_ペニス), 1)
                CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は@C:{カラー_ピンク}@ふたなり@/C@になりました！", 1)
            ELSE
                CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は@C:{カラー_ピンク}@ふたなり@/C@を失いました！", 1)
            ENDIF
            WAIT
            RETURN
        ENDIF
    ENDIF
WEND


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_121()
RESULTS '= "アンスロープ薬"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_121()
RESULTS:0 '= "消費,"
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_121()
RESULTS:0 '= "獣化の薬"
RESULTS:1 '= ""
RESULTS:2 '= "人間種は猿が進化したもの。近年アカデミーで発表された論文の一節はセンセーションを巻き起こしている"
RESULTS:3 '= "特に敬虔な正教徒や人間至上主義者にとっては到底受け入れがたいものであり"
RESULTS:4 '= "前者は宗教家特有の迂遠な言い回しで、後者はより直接的で過激な方法でこの説を散々にこき下ろした"
RESULTS:6 '= "しかしながら尾骨をはじめ人間の身体に獣であったころの名残があるのは事実である"
RESULTS:7 '= "古来の魔術師や魔女は進化論の発表以前から人間の身体に刻まれた獣の記憶を利用してきた"
RESULTS:8 '= "この薬剤は彼らの術式に着想を得て、擬似的ながらも獣化、非獣化を可能にする"
RETURN 0
@GET_ITEM_SUBDESCRIPTION_121()
RESULTS:0 '= @"ホームメニューで使用可能"
RESULTS:1 '= "<動物耳>、<しっぽ>の素質を獲得、喪失する"
RETURN 0
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_121(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 20000
ITEM_DATA:ITEM_基準生産量 = 1
ITEM_DATA:ITEM_CAN_USE_AT_HOME = 1

RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_121(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_動物の肉 = 10
MATERIAL_NEEDS:ITEM_動物の革 = 10
MATERIAL_NEEDS:ITEM_高効率魔導触媒 = 2
RETURN 1
;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_121(MODULE_ID)
#DIM MODULE_ID
#DIM DYNAMIC CRAFTABLE
SELECTCASE MODULE_ID
    CASE 303    ;錬金台
        FOR LOCAL, 0, MPLY_NUM
            SIF HAS_TALENT(MPLY:LOCAL, "調合")
                CRAFTABLE = 1
        NEXT
        FOR LOCAL, 0, MTAR_NUM
            SIF HAS_TALENT(MTAR:LOCAL, "調合")
                CRAFTABLE = 1
        NEXT
        SIF !CRAFTABLE
            RETURN 0
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT
RETURN 0
;-----------------------------------
;市販品か否か
;0=ショップに並ばない 1=ショップに並ぶ
;-----------------------------------
@IS_MARKET_AVAILABLE_ITEM_121()
RETURN 1

;-----------------------------------
;アイテム使用時の処理
;-----------------------------------
@GET_ITEM_INFO_AT_USING_121()
#DIMS DICS_ITEM_EFFECT
{
    DICS_ITEM_EFFECT '= "
        [ITEM_ID:121]
        [TARGET_NUM:1]
        [TARGET_CLASS:FOLLOWER]
        [EFFECT_CATEGORY:獣変化]
        "
}
RESULTS = %DICS_ITEM_EFFECT%

@ITEM_USING_COMMON_獣変化(DICS_ITEM_EFFECT)
#DIMS DICS_ITEM_EFFECT
#DIM  DYNAMIC ITEM_ID
#DIMS DYNAMIC ITEM_NAME
#DIM  DYNAMIC SELECTED_CHARA_ID
#DIM  DYNAMIC INPUT_VALUE
#DIM  DYNAMIC FIRST_LINE

ITEM_ID = TOINT(DIC_GET(DICS_ITEM_EFFECT, "ITEM_ID"))
CALL GET_ITEM_NAME(ITEM_ID)
ITEM_NAME           = %RESULTS%

;アイテム使用前のメッセージ表示
;-------------------------------------------------
FIRST_LINE = LINECOUNT
WHILE 1
    IF HO_ITEM_STOCK:ITEM_ID == 0
        RETURN
    ENDIF
    REDRAW 0
    CLEARLINE LINECOUNT - FIRST_LINE
    CALLF TAG_PRINT(@"対象キャラクタを選択してください", 1)
    CALLF TAG_PRINT(@"　%ITEM_NAME%({HO_ITEM_STOCK:ITEM_ID} → @C:{カラー_オレンジ}@{HO_ITEM_STOCK:ITEM_ID -1}@/C@)", 1)
    PRINTL
    CALL SELECT_CHARA_LIST_ONLY_LOGIC_SEX("SAME_FACTION", "NONE")
    CLEARLINE 1
    SELECTED_CHARA_ID = RESULT
    IF SELECTED_CHARA_ID == -1
        RETURN
    ELSE
        CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%の<動物耳>、<しっぽ>の素質を操作します。よろしいですか？", 1)
        CALL ASK_YN()
        IF RESULT == 0
            ;獣変化の秘薬の関数を再利用
            CALL ITEM_EFFECT283(SELECTED_CHARA_ID)
            HO_ITEM_STOCK:ITEM_ID --
            RETURN
        ELSE
            RETURN
        ENDIF
    ENDIF
WEND


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_122()
RESULTS '= "母乳促進剤"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_122()
RESULTS:0 '= "消費,"
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_122()
RESULTS:0 '= "母乳体質化の薬"
RESULTS:1 '= ""
RESULTS:2 '= "赤子の養育において母親の母乳の出は死活問題であった"
RESULTS:3 '= "食料事情が今日よりずっと不安定であった時代においてはなおのことである"
RESULTS:4 '= "純度の高いマナを人体に投与し、身体機能の一部を促進、強化する試みは広く経験的に行われてきた"
RESULTS:5 '= "土着の呪術師や魔術師がこうした薬を母親や、より健康的な代理の女性に処方したケースは少なくない"
RESULTS:7 '= "ちなみに男性にも作用する"
RETURN 0
@GET_ITEM_SUBDESCRIPTION_122()
RESULTS:0 '= @"ホームメニューで使用可能"
RESULTS:1 '= "Ｂ感10以上の仲間に使用可能。<母乳体質>を得る"
RESULTS:2 '= "<母乳体質>を取得済みのキャラクターに使用すると<母乳体質>を失う"
RETURN 0
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_122(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 20000
ITEM_DATA:ITEM_基準生産量 = 1
ITEM_DATA:ITEM_CAN_USE_AT_HOME = 1

RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_122(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_乳 = 10
MATERIAL_NEEDS:ITEM_媚薬 = 3
MATERIAL_NEEDS:ITEM_高効率魔導触媒 = 2
RETURN 1

;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_122(MODULE_ID)
#DIM MODULE_ID
#DIM DYNAMIC CRAFTABLE
SELECTCASE MODULE_ID
    CASE 303    ;錬金台
        FOR LOCAL, 0, MPLY_NUM
            SIF HAS_TALENT(MPLY:LOCAL, "調合")
                CRAFTABLE = 1
        NEXT
        FOR LOCAL, 0, MTAR_NUM
            SIF HAS_TALENT(MTAR:LOCAL, "調合")
                CRAFTABLE = 1
        NEXT
        SIF !CRAFTABLE
            RETURN 0
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT

@GET_ITEM_INFO_AT_USING_122()
#DIMS DICS_ITEM_EFFECT
{
    DICS_ITEM_EFFECT '= "
        [ITEM_ID:122]
        [TARGET_NUM:1]
        [TARGET_CLASS:FOLLOWER]
        [EFFECT_CATEGORY:母乳促進剤]
        "
}
RESULTS = %DICS_ITEM_EFFECT%

;-------------------------------------------------
; アイテム使用時の処理関数@ITEM_USING_COMMONから呼ばれるアイテム使用時処理
; 共通化できない・する必要がない固有処理はここに記述
; ITEM_USING_COMMON
;-------------------------------------------------
@ITEM_USING_COMMON_母乳促進剤(DICS_ITEM_EFFECT)
#DIMS DICS_ITEM_EFFECT
#DIM  DYNAMIC ITEM_ID
#DIMS DYNAMIC ITEM_NAME
#DIM  DYNAMIC SELECTED_CHARA_ID
#DIM  DYNAMIC INPUT_VALUE
#DIM  DYNAMIC FIRST_LINE

ITEM_ID = TOINT(DIC_GET(DICS_ITEM_EFFECT, "ITEM_ID"))
CALL GET_ITEM_NAME(ITEM_ID)
ITEM_NAME           = %RESULTS%

;アイテム使用前のメッセージ表示
;-------------------------------------------------
FIRST_LINE = LINECOUNT
WHILE 1
    IF HO_ITEM_STOCK:ITEM_ID == 0
        RETURN
    ENDIF
    REDRAW 0
    CLEARLINE LINECOUNT - FIRST_LINE
    CALLF TAG_PRINT(@"対象キャラクタを選択してください(要:Ｂ感10以上)", 1)
    CALLF TAG_PRINT(@"　%ITEM_NAME%({HO_ITEM_STOCK:ITEM_ID} → @C:{カラー_オレンジ}@{HO_ITEM_STOCK:ITEM_ID -1}@/C@)", 1)
    PRINTL
    CALL SELECT_CHARA_LIST_ONLY_LOGIC_SEX("SAME_FACTION", "NONE")
    CLEARLINE 1
    SELECTED_CHARA_ID = RESULT
    IF SELECTED_CHARA_ID == -1
        RETURN
    ELSE
        IF ABL:SELECTED_CHARA_ID:Ｂ感 < 10
            CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は取得条件を満たしていません(要求Ｂ感10以上)", 1)
            WAIT
            CONTINUE
        ENDIF
        IF !TALENT:SELECTED_CHARA_ID:母乳体質
            CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%を@C:{カラー_ピンク}@母乳体質@/C@にします。よろしいですか？", 1)
            CALL ASK_YN()
            IF RESULT == 0
                TALENT:SELECTED_CHARA_ID:母乳体質 = 1
                CFLAG:SELECTED_CHARA_ID:一時的母乳体質 = 0
                HO_ITEM_STOCK:ITEM_ID --
                CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は@C:{カラー_ピンク}@母乳体質@/C@になりました！", 1)
                WAIT
                RETURN
            ENDIF
        ELSE
            CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%の@C:{カラー_ピンク}@母乳体質@/C@を取り除きます。よろしいですか？", 1)
            CALL ASK_YN()
            IF RESULT == 0
                TALENT:SELECTED_CHARA_ID:母乳体質 = 0
                CFLAG:SELECTED_CHARA_ID:一時的母乳体質 = 0
                HO_ITEM_STOCK:ITEM_ID --
                CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は@C:{カラー_ピンク}@母乳体質@/C@を失いました", 1)
                WAIT
                RETURN
            ENDIF
        ENDIF
    ENDIF
WEND


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_123()
RESULTS '= "ヴェスパの薬"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_123()
RESULTS:0 '= "消費,"
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_123()
RESULTS:0 '= "利尿、止尿作用のある薬"
RESULTS:1 '= ""
RESULTS:2 '= "抗いようの無い生理現象である排泄は同時に冒険者にとって最も無防備な瞬間である"
RESULTS:3 '= "冒険者ギルドの統計資料によると戦闘行為による落命のうち、排泄中の奇襲によるものは"
RESULTS:4 '= "相当の割合を占めており、即応可能な位置に見張りを立てることを口酸っぱく推奨している"
RESULTS:5 '= "この薬は膀胱に作用し尿意を抑制することで、不意の生理現象を抑制することを目的としている"
RESULTS:7 '= "……ただし服用法を誤ると逆に膀胱が活性化する。用法、用量を守って正しく使用するように"
RETURN 0
@GET_ITEM_SUBDESCRIPTION_123()
RESULTS:0 '= @"ホームメニューで使用可能"
RESULTS:1 '= "<おもらし癖>を取得済みのキャラクターに使用すると<おもらし癖>を失う"
RESULTS:2 '= "Ｕ感5以上の仲間に使用可能。<おもらし癖>を得る"
RETURN 0
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_123(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 6000
ITEM_DATA:ITEM_基準生産量 = 1
ITEM_DATA:ITEM_CAN_USE_AT_HOME = 1

RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_123(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_薬草 = 10
MATERIAL_NEEDS:ITEM_硫黄 = 1
MATERIAL_NEEDS:ITEM_蒸留酒 = 1
RETURN 1

;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_123(MODULE_ID)
#DIM MODULE_ID
#DIM DYNAMIC CRAFTABLE
SELECTCASE MODULE_ID
    CASE 303    ;錬金台
        FOR LOCAL, 0, MPLY_NUM
            SIF HAS_TALENT(MPLY:LOCAL, "調合")
                CRAFTABLE = 1
        NEXT
        FOR LOCAL, 0, MTAR_NUM
            SIF HAS_TALENT(MTAR:LOCAL, "調合")
                CRAFTABLE = 1
        NEXT
        SIF !CRAFTABLE
            RETURN 0
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT

;-----------------------------------
;アイテム使用時の処理
;-----------------------------------
@GET_ITEM_INFO_AT_USING_123()
#DIMS DICS_ITEM_EFFECT
{
    DICS_ITEM_EFFECT '= "
        [ITEM_ID:123]
        [TARGET_NUM:1]
        [TARGET_CLASS:FOLLOWER]
        [EFFECT_CATEGORY:ヴェスパの薬]
        "
}
RESULTS = %DICS_ITEM_EFFECT%

;-------------------------------------------------
; アイテム使用時の処理関数@ITEM_USING_COMMONから呼ばれるアイテム使用時処理
; 共通化できない・する必要がない固有処理はここに記述
; ITEM_USING_COMMON
;-------------------------------------------------
@ITEM_USING_COMMON_ヴェスパの薬(DICS_ITEM_EFFECT)
#DIMS DICS_ITEM_EFFECT
#DIM  DYNAMIC ITEM_ID
#DIMS DYNAMIC ITEM_NAME
#DIM  DYNAMIC SELECTED_CHARA_ID
#DIM  DYNAMIC INPUT_VALUE
#DIM  DYNAMIC FIRST_LINE

ITEM_ID = TOINT(DIC_GET(DICS_ITEM_EFFECT, "ITEM_ID"))
CALL GET_ITEM_NAME(ITEM_ID)
ITEM_NAME           = %RESULTS%

;アイテム使用前のメッセージ表示
;-------------------------------------------------
FIRST_LINE = LINECOUNT
WHILE 1
    IF HO_ITEM_STOCK:ITEM_ID == 0
        RETURN
    ENDIF
    REDRAW 0
    CLEARLINE LINECOUNT - FIRST_LINE
    CALLF TAG_PRINT(@"対象キャラクタを選択してください(要:<おもらし癖>またはＵ感5以上)", 1)
    CALLF TAG_PRINT(@"　%ITEM_NAME%({HO_ITEM_STOCK:ITEM_ID} → @C:{カラー_オレンジ}@{HO_ITEM_STOCK:ITEM_ID -1}@/C@)", 1)
    PRINTL
    CALL SELECT_CHARA_LIST_ONLY_LOGIC_SEX("SAME_FACTION", "NONE")
    CLEARLINE 1
    SELECTED_CHARA_ID = RESULT
    IF SELECTED_CHARA_ID == -1
        RETURN
    ELSE
        IF ABL:SELECTED_CHARA_ID:Ｕ感 < 5 && !TALENT:SELECTED_CHARA_ID:おもらし癖
            CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は取得条件を満たしていません(要求<おもらし癖>またはＵ感5以上)", 1)
            WAIT
            CONTINUE
        ENDIF
        IF !TALENT:SELECTED_CHARA_ID:おもらし癖
            CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は@C:{カラー_ピンク}@おもらし癖@/C@を得ます。よろしいですか？", 1)
            CALL ASK_YN()
            IF RESULT == 0
                TALENT:SELECTED_CHARA_ID:おもらし癖 = 1
                HO_ITEM_STOCK:ITEM_ID --
                CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は@C:{カラー_ピンク}@おもらし癖@/C@になりました！", 1)
                WAIT
                RETURN
            ENDIF
        ELSE
            CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%の@C:{カラー_ピンク}@おもらし癖@/C@を取り除きます。よろしいですか？", 1)
            CALL ASK_YN()
            IF RESULT == 0
                TALENT:SELECTED_CHARA_ID:おもらし癖 = 0
                HO_ITEM_STOCK:ITEM_ID --
                CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は@C:{カラー_ピンク}@おもらし癖@/C@を失いました", 1)
                WAIT
                RETURN
            ENDIF
        ENDIF
    ENDIF
WEND


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_124()
RESULTS '= "ティレシアスの秘薬"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_124()
RESULTS:0 '= "消費,"
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_124()
RESULTS:0 '= "使用者の性別を自在に変化させる薬"
RESULTS:1 '= ""
RESULTS:2 '= "高純度の特殊なマナが生殖能力に関する機能に作用することで、使用者の性器を作り変えるだけでなく、"
RESULTS:3 '= "身体の各部位の大きさや内分泌系までも転換後の性別に沿った働きをするようになるという……が、"
RESULTS:4 '= "本薬がその触れ込み通りに効果を発揮したという公的記録はない"
RESULTS:5 '= ""
RESULTS:6 '= "製法を公開した錬金術師集団『交織の蛇』によれば、"
RESULTS:7 '= "強烈な環境魔力に満ちた土地で制作、使用し、体内清麗でさえあれば必ず安定した効果を発揮するという"
RESULTS:8 '= "現在、彼らは詐欺師集団として名を馳せている"
RESULTS:9 '= "……なぜか領地で制作、使用した場合、この薬は完全に想定通りの効果を発揮できるようだ"
RETURN 0
@GET_ITEM_SUBDESCRIPTION_124()
RESULTS:0 '= @"ホームメニューで使用可能"
RESULTS:1 '= "性別を変える"
RESULTS:2 '= "ただし、強制的な性転換を促す力の影響が体内に残っていると…"
RETURN 0
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_124(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 20000
ITEM_DATA:ITEM_基準生産量 = 1
ITEM_DATA:ITEM_CAN_USE_AT_HOME = 1

RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_124(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_セモリナス粉 = 5
MATERIAL_NEEDS:ITEM_スッポンの生き血 = 1
MATERIAL_NEEDS:ITEM_高効率魔導触媒 = 3
MATERIAL_NEEDS:ITEM_樹華結晶 = 2
RETURN 1

;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_124(MODULE_ID)
#DIM MODULE_ID
#DIM DYNAMIC CRAFTABLE
SELECTCASE MODULE_ID
    CASE 303    ;錬金台
        FOR LOCAL, 0, MPLY_NUM
            SIF HAS_TALENT(MPLY:LOCAL, "調合")
                CRAFTABLE = 1
        NEXT
        FOR LOCAL, 0, MTAR_NUM
            SIF HAS_TALENT(MTAR:LOCAL, "調合")
                CRAFTABLE = 1
        NEXT
        SIF !CRAFTABLE
            RETURN 0
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT

;-----------------------------------
;アイテム使用時の処理
;-----------------------------------
@GET_ITEM_INFO_AT_USING_124()
#DIMS DICS_ITEM_EFFECT
{
    DICS_ITEM_EFFECT '= "
        [ITEM_ID:124]
        [TARGET_NUM:1]
        [TARGET_CLASS:FOLLOWER]
        [EFFECT_CATEGORY:ティレシアスの秘薬]
        "
}
RESULTS = %DICS_ITEM_EFFECT%

;-------------------------------------------------
; アイテム使用時の処理関数@ITEM_USING_COMMONから呼ばれるアイテム使用時処理
; 共通化できない・する必要がない固有処理はここに記述
; ITEM_USING_COMMON
;-------------------------------------------------
@ITEM_USING_COMMON_ティレシアスの秘薬(DICS_ITEM_EFFECT)
#DIMS DICS_ITEM_EFFECT
#DIM  DYNAMIC ITEM_ID
#DIMS DYNAMIC ITEM_NAME
#DIM  DYNAMIC SELECTED_CHARA_ID
#DIM  DYNAMIC INPUT_VALUE
#DIM  DYNAMIC FIRST_LINE

ITEM_ID = TOINT(DIC_GET(DICS_ITEM_EFFECT, "ITEM_ID"))
CALL GET_ITEM_NAME(ITEM_ID)
ITEM_NAME           = %RESULTS%

;アイテム使用前のメッセージ表示
;-------------------------------------------------
FIRST_LINE = LINECOUNT
WHILE 1
    IF HO_ITEM_STOCK:ITEM_ID == 0
        RETURN
    ENDIF
    REDRAW 0
    CLEARLINE LINECOUNT - FIRST_LINE
    CALLF TAG_PRINT(@"対象キャラクタを選択してください", 1)
    CALLF TAG_PRINT(@"　%ITEM_NAME%({HO_ITEM_STOCK:ITEM_ID} → @C:{カラー_オレンジ}@{HO_ITEM_STOCK:ITEM_ID -1}@/C@)", 1)
    PRINTL
    CALL SELECT_CHARA_LIST_ONLY_LOGIC_SEX("SAME_FACTION", "NONE")
    CLEARLINE 1
    SELECTED_CHARA_ID = RESULT
    SIF SELECTED_CHARA_ID == -1
        RETURN
    SELECTCASE TALENT:SELECTED_CHARA_ID:性別
        CASE 0, 3
            CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%の性別を変更しますか？", 1)
            CALL ASK_MULTI("女性になる", "男の娘になる", "やめる")
            IF RESULT == 0
                ;女性にする
                CALL TS_TO_OTHERSEX(SELECTED_CHARA_ID, 1)
                CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は女性になりました！", 1)
            ELSEIF RESULT == 1
                ;男の娘にする
                CALL TS_TO_FEMBOY(SELECTED_CHARA_ID, 1)
                CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は男の娘になりました！", 1)
            ELSE
                RETURN -1
            ENDIF
            HO_ITEM_STOCK:ITEM_ID --
            WAIT
            RETURN
        CASE 1, 2
            CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%の性別を変更しますか？", 1)
            CALL ASK_MULTI("男性になる", "男の娘になる", "やめる")
            IF RESULT == 0
                ;性偏差が41以上の場合は失敗判定
                IF CFLAG:(SELECTED_CHARA_ID):性偏差 > 40 && RAND:100 >= MAX(5, 105 - CFLAG:(SELECTED_CHARA_ID):性偏差)
                    IF RAND:10 >= 1
                        CALL ティレシアスの秘薬_TS_FAILURE(SELECTED_CHARA_ID)
                    ELSE
                        ;さらに女性→男性になろうとした場合、稀に男の娘になる
                        PRINTFORML 不意に%ANAME(SELECTED_CHARA_ID)%は目眩のような感覚に襲われた
                        PRINTFORML 身体の内側に淀んでいるなんらかの力が、薬の作用を妨害している……！
                        PRINTW
                        CALL TS_TO_FEMBOY(SELECTED_CHARA_ID, 1)
                        CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は男の娘になってしまった！", 1)
                    ENDIF
                ELSE
                    ;男性にする
                    CALL TS_TO_OTHERSEX(SELECTED_CHARA_ID, 1)
                    CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は男性になりました！", 1)
                ENDIF
            ELSEIF RESULT == 1
                ;性偏差が41以上の場合は失敗判定
                IF CFLAG:(SELECTED_CHARA_ID):性偏差 > 40 && RAND:100 >= MAX(15, 110 - CFLAG:(SELECTED_CHARA_ID):性偏差)
                    CALL ティレシアスの秘薬_TS_FAILURE(SELECTED_CHARA_ID)
                ELSE
                    ;男の娘にする
                    CALL TS_TO_FEMBOY(SELECTED_CHARA_ID, 1)
                    CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は男の娘になりました！", 1)
                ENDIF
            ELSE
                RETURN -1
            ENDIF
            HO_ITEM_STOCK:ITEM_ID --
            WAIT
            RETURN
        CASEELSE
            CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%の性別を変更しますか？", 1)
            CALL ASK_MULTI("男性になる", "女性になる", "やめる")
            IF RESULT == 0
                ;性偏差が41以上の場合は失敗判定
                IF CFLAG:(SELECTED_CHARA_ID):性偏差 > 40 && RAND:100 >= MAX(5, 105 - CFLAG:(SELECTED_CHARA_ID):性偏差)
                    CALL ティレシアスの秘薬_TS_FAILURE(SELECTED_CHARA_ID)
                ELSE
                    ;男性にする
                    CALL TS_TO_OTHERSEX(SELECTED_CHARA_ID, 1)
                    CALL TS_TO_OTHERSEX(SELECTED_CHARA_ID, 1)
                    CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は男性になりました！", 1)
                ENDIF
            ELSEIF RESULT == 1
                ;女性にする
                CALL TS_TO_OTHERSEX(SELECTED_CHARA_ID, 1)
                CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は女性になりました！", 1)
            ELSE
                RETURN -1
            ENDIF
            HO_ITEM_STOCK:ITEM_ID --
            WAIT
            RETURN
    ENDSELECT
WEND

;-------------------------------------------------
; ティレシアスの秘薬の使用後、作用に失敗した場合の処置
; 淫紋や敏感の付与、ケモ化などが発生します
;-------------------------------------------------
@ティレシアスの秘薬_TS_FAILURE(ARG:0)

PRINTFORML 不意に%ANAME(ARG:0)%は目眩のような感覚に襲われた
PRINTFORML 身体の内側に淀んでいるなんらかの力が、薬の作用を妨害している……！
PRINTW

IF !GETBIT(TALENT:(ARG:0):デイリー系, 素質_デイリー_淫紋) && RAND:100 < 30
    PRINTFORML 胎内を蛇がのたうつような感覚が、%ANAME(ARG:0)%の下腹部へと移動していく……
    PRINTFORMW 湧き上がる違和感と共に、ピンク色の紋様が肌に浮き上がってきた
    PRINTFORML それは子宮を模しており、色も相俟ってどこか扇情的な意匠をしている……
    PRINTW
    CALL COLOR_PRINTL(@"%ANAME(ARG:0)%の下腹部には<淫紋>が刻まれてしまった！", カラー_ピンク)
    SETBIT TALENT:(ARG:0):デイリー系, 素質_デイリー_淫紋
    CALL SET_TATTOO(ARG:0, 6, "❤")
    PRINTL
    PRINTFORML もはや牝であることから逃れられはしないのだ、と
    PRINTFORML 不意によぎった絶望は、淫紋を刻んだ力の声か、それとも%ANAME(ARG:0)%自身の内なる声か……
    PRINTW
    PRINTL
ENDIF

;他素質抽選用初期化
CALL RAND_WT_INIT

;重みづけセット
CALL RAND_WT_SET(0, 10)
SIF !TALENT:(ARG:0):Ｃ敏感
    CALL RAND_WT_SET(1, 10)
SIF !TALENT:(ARG:0):Ｖ敏感 && HAS_VAGINA(ARG:0)
    CALL RAND_WT_SET(2, 10)
SIF !TALENT:(ARG:0):Ａ敏感
    CALL RAND_WT_SET(3, 10)
SIF !TALENT:(ARG:0):Ｂ敏感
    CALL RAND_WT_SET(4, 10)
SIF !TALENT:(ARG:0):Ｍ敏感
    CALL RAND_WT_SET(5, 10)
SIF !TALENT:(ARG:0):Ｕ敏感
    CALL RAND_WT_SET(6, 10)
SIF !TALENT:(ARG:0):動物耳 && !TALENT:(ARG:0):しっぽ
    CALL RAND_WT_SET(7, 10)

;抽選
PRINTFORMW おさまらない酩酊感の中、性転換に作用するはずだった効能が捻れていく……
SELECTCASE RAND_WT_RESULT()
    CASE 0
        PRINTFORML %ANAME(ARG:0)%は深呼吸して、全身を巡る違和感を抑え込んだ
    CASE 1
        IF TALENT:(ARG:0):Ｃ鈍感
            TALENT:(ARG:0):Ｃ鈍感 = 0
            CALL COLOR_PRINTL(@"%ANAME(ARG:0)%は<Ｃ鈍感>を失った", カラー_ピンク)
        ELSE
            TALENT:(ARG:0):Ｃ敏感 = 1
            CALL COLOR_PRINTL(@"%ANAME(ARG:0)%は<Ｃ敏感>になった", カラー_ピンク)
        ENDIF
    CASE 2
        IF TALENT:(ARG:0):Ｖ鈍感
            TALENT:(ARG:0):Ｖ鈍感 = 0
            CALL COLOR_PRINTL(@"%ANAME(ARG:0)%は<Ｖ鈍感>を失った", カラー_ピンク)
        ELSE
            TALENT:(ARG:0):Ｖ敏感 = 1
            CALL COLOR_PRINTL(@"%ANAME(ARG:0)%は<Ｖ敏感>になった", カラー_ピンク)
        ENDIF
    CASE 3
        IF TALENT:(ARG:0):Ａ鈍感
            TALENT:(ARG:0):Ａ鈍感 = 0
            CALL COLOR_PRINTL(@"%ANAME(ARG:0)%は<Ａ鈍感>を失った", カラー_ピンク)
        ELSE
            TALENT:(ARG:0):Ａ敏感 = 1
            CALL COLOR_PRINTL(@"%ANAME(ARG:0)%は<Ａ敏感>になった", カラー_ピンク)
        ENDIF
    CASE 4
        IF TALENT:(ARG:0):Ｂ鈍感
            TALENT:(ARG:0):Ｂ鈍感 = 0
            CALL COLOR_PRINTL(@"%ANAME(ARG:0)%は<Ｂ鈍感>を失った", カラー_ピンク)
        ELSE
            TALENT:(ARG:0):Ｂ敏感 = 1
            CALL COLOR_PRINTL(@"%ANAME(ARG:0)%は<Ｂ敏感>になった", カラー_ピンク)
        ENDIF
    CASE 5
        IF TALENT:(ARG:0):Ｍ鈍感
            TALENT:(ARG:0):Ｍ鈍感 = 0
            CALL COLOR_PRINTL(@"%ANAME(ARG:0)%は<Ｍ鈍感>を失った", カラー_ピンク)
        ELSE
            TALENT:(ARG:0):Ｍ敏感 = 1
            CALL COLOR_PRINTL(@"%ANAME(ARG:0)%は<Ｍ敏感>になった", カラー_ピンク)
        ENDIF
    CASE 6
        IF TALENT:(ARG:0):Ｕ鈍感
            TALENT:(ARG:0):Ｕ鈍感 = 0
            CALL COLOR_PRINTL(@"%ANAME(ARG:0)%は<Ｕ鈍感>を失った", カラー_ピンク)
        ELSE
            TALENT:(ARG:0):Ｕ敏感 = 1
            CALL COLOR_PRINTL(@"%ANAME(ARG:0)%は<Ｕ敏感>になった", カラー_ピンク)
        ENDIF
    CASE 7
        PRINTFORML 肉体の変化を感じる……が、それは想像していたものとは違うようだ
        PRINTFORML お尻の辺りや頭を始めとして、柔らかな痛みを伴いながらも心地良い感覚が広がっていく……
        PRINTW
        CALL COLOR_PRINTL(@"%ANAME(ARG:0)%は<動物耳>を得た", カラー_ピンク)
        CALL COLOR_PRINTL(@"%ANAME(ARG:0)%は<しっぽ>を得た", カラー_ピンク)
        TALENT:(ARG:0):動物耳 = 1
        TALENT:(ARG:0):しっぽ = 1
        PRINTL
        PRINTFORML さらに四肢は特に変化が激しく、獣毛に覆われるだけではなく、関節の構造そのものが変わっているようだ
        PRINTFORMW 手のひらにはぷにぷにとした肉球が形成され、足裏にもそれを感じる……
        PRINTFORML この新しい手足をうまく扱えるようになるには慣れが必要となるだろう
        PRINTW
        CALL COLOR_PRINTL(@"%ANAME(ARG:0)%の器用が5減少してしまった！", カラー_ピンク)
        ABL:(ARG:0):器用 -= 5
    CASEELSE
ENDSELECT
PRINTL
PRINTFORML ティレシアスの秘薬の本来の効果は発揮されることなく霧散してしまったようだ……


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_127()
RESULTS '= "鎮静剤"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_127()
RESULTS:0 '= "消費,"
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_127()
RESULTS:0 '= "鎮静作用のある薬"
RESULTS:1 '= ""
RESULTS:2 '= "近年に至るまで病魔を引き起こす原因は悪性のマナ、瘴気にあるとされてきた"
RESULTS:3 '= "しかしながら近年の研究では、その実相はより複雑であることが判明してきている"
RESULTS:4 '= "例えばコレラやチフス、赤痢は細菌と称される微細な生物が直接的な原因であると判明してる"
RESULTS:5 '= "一方で瘴気は、これらの菌の繁殖と活動を促進させる役割を担っているようだ"
RESULTS:7 '= @"@C:{カラー_選択不可}@「この世界の成り立ちは実に複雑と言わざるを得ない」@/C@"
RESULTS:8 '= @"@C:{カラー_選択不可}@「迷信の扉を打ち破ったと祝杯を上げ、揚々と次の扉に手を掛けたまではいい」@/C@"
RESULTS:9 '= @"@C:{カラー_選択不可}@「どういうわけか扉の先では打破したはずの迷信が、真理として再び立ちはだかることもある」@/C@"
RETURN 0
@GET_ITEM_SUBDESCRIPTION_127()
RESULTS:0 '= @"クエスト中に利用可能。対象キャラクターの発情を1取り除く"
RETURN 0
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_127(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 2000
ITEM_DATA:ITEM_基準生産量 = 1
ITEM_DATA:ITEM_CAN_USE_AT_QUEST = 1
RETURN
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_127(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_香草 = 5
MATERIAL_NEEDS:ITEM_ポーション = 1
RETURN 1

;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_127(MODULE_ID)
#DIM MODULE_ID
SELECTCASE MODULE_ID
    CASE 303    ;錬金台
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT

@GET_ITEM_INFO_AT_USING_127()
#DIMS DICS_ITEM_EFFECT
{
    DICS_ITEM_EFFECT '= "
        [ITEM_ID:127]
        [TARGET_NUM:1]
        [TARGET_CLASS:QUEST_MEMBER]
        [EFFECT_CATEGORY:QUEST_CHANGE_CHARA_EFFECT]
        [LIST_EFFECT_CLASS:REDUCE_ESTRUS,]
        [LIST_EFFECT_RATE:1,]
        [DESCRIPTION_BEFORE_USING:%ITEM_NAME%を使用して対象の発情を@C:{カラー_緑}@1@/C@取り除きます]
        "
}
RESULTS = %DICS_ITEM_EFFECT%


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_128()
RESULTS '= "スキュラのフェロモン"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_128()
RESULTS:0 '= "素材,"
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_128()
RESULTS:0 '= "繁殖期のスキュラから抽出したフェロモン"
RESULTS:1 '= "\"惚れ薬\"として名高い香水、『メイガスの夜』の原材料として高値で取引されている"
RESULTS:2 '= "繁殖期のスキュラからしか抽出出来ないこともあり、希少価値は高い"
RESULTS:3 '= "それ故に奴隷や囚人を用いた手段を選ばない収集方法が半ば公然と行われているのが実状である"
RESULTS:5 '= @"@C:{カラー_選択不可}@「――まず訂正を。我が国に奴隷などという階級は存在しない。確かに結果は酷く痛ましいものであったが、@/C@"
RESULTS:6 '= @"@C:{カラー_選択不可}@彼らは全員危険を承知の上で、自らの自由意志で参加したのだ。ここに彼ら自身の署名もある」@/C@"
RETURN 0
@GET_ITEM_SUBDESCRIPTION_128()
RETURN 0
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_128(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 5000
ITEM_DATA:ITEM_基準生産量 = 1

RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_128(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_精液 = 10
MATERIAL_NEEDS:ITEM_魔獣の心核 = 1
MATERIAL_NEEDS:ITEM_淫堕点 = 100
RETURN 1
;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_128(MODULE_ID)
#DIM MODULE_ID
#DIM DYNAMIC CRAFTABLE
SELECTCASE MODULE_ID
    CASE 303    ;錬金台
        CALL HO_EXIST_MAP_EFFECT("淫魔の錬成陣")
        SIF !RESULT
            RETURN 0
        FOR LOCAL, 0, MPLY_NUM
            SIF HAS_TALENT(MPLY:LOCAL, "調合")
                CRAFTABLE = 1
        NEXT
        FOR LOCAL, 0, MTAR_NUM
            SIF HAS_TALENT(MTAR:LOCAL, "調合")
                CRAFTABLE = 1
        NEXT
        SIF !CRAFTABLE
            RETURN 0
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_129()
RESULTS '= "メイガスの夜"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_129()
RESULTS:0 '= "調教,"
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_129()
RESULTS:0 '= "激烈な催淫作用を持つ香水"
RESULTS:1 '= "そのあまりの効能の強さ故に、各国ともに規程の調合基準を定めており、"
RESULTS:2 '= "基準値を上回るものは精製はおろか所持することも罰せられる場合が殆どである"
RESULTS:4 '= "内服した場合、強力な精力剤としても作用する"
RESULTS:6 '= @"@C:{カラー_選択不可}@「年の瀬に実施した密造アヘン窟の摘発は全く惨憺たる結果に終わった」@/C@"
RESULTS:7 '= @"@C:{カラー_選択不可}@「焚かれていたのは実際にはアヘンではなく極めて高度に濃縮された■■■であり」@/C@"
RESULTS:8 '= @"@C:{カラー_選択不可}@「内部の人員はおろか、突入した警官も含め全員が■■■■■■■■■」@/C@"
RETURN 0
@GET_ITEM_SUBDESCRIPTION_129()
RESULTS:0 '= @"交流時にコマンド「メイガスの夜」が使用可能になる"
RETURN 0
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_129(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 12000
ITEM_DATA:ITEM_基準生産量 = 3

RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_129(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_スキュラのフェロモン = 1
MATERIAL_NEEDS:ITEM_媚薬 = 3
RETURN 1

;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_129(MODULE_ID)
#DIM MODULE_ID
#DIM CHARA_ID
#DIM IS_CRAFTABLE

SELECTCASE MODULE_ID
    CASE 303    ;錬金台
        FOR LOCAL, 0, MPLY_NUM
            SIF HAS_TALENT(MPLY:LOCAL, "調合")
                IS_CRAFTABLE = 1
        NEXT
        FOR LOCAL, 0, MTAR_NUM
            SIF HAS_TALENT(MTAR:LOCAL, "調合")
                IS_CRAFTABLE = 1
        NEXT
        SIF !IS_CRAFTABLE
            RETURN 0
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_130()
RESULTS '= "セモリナス粉"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_130()
RESULTS:0 '= "素材,食材,"
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_130()
RESULTS:0 '= "古くから中央世界全土で栽培される穀物を製粉し、特殊な魔力を混ぜたもの。"
RESULTS:1 '= ""
RESULTS:2 '= "ある民話によれば、理想の恋人を創り出すためにアレティという魔法使いが用いたのだという。"
RESULTS:3 '= "普通の小麦粉と同じように扱うことができ、調理中に籠めた願いによって効果が変わる。"
RESULTS:4 '= "調理者に良識がなければ、誰かに黙って食べさせたとしても効果は発揮されるだろう。"
RETURN 0
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_130(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 500
ITEM_DATA:ITEM_基準生産量 = 3
RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_130(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_小麦 = 4
MATERIAL_NEEDS:ITEM_骨 = 2
MATERIAL_NEEDS:ITEM_淫堕の宝玉 = 1

RETURN 1

;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_130(MODULE_ID)
#DIM MODULE_ID
#DIM DYNAMIC CRAFTABLE
SELECTCASE MODULE_ID
    CASE 303    ;錬金台
        FOR LOCAL, 0, MPLY_NUM
            SIF HAS_TALENT(MPLY:LOCAL, "調合")
                CRAFTABLE = 1
        NEXT
        FOR LOCAL, 0, MTAR_NUM
            SIF HAS_TALENT(MTAR:LOCAL, "調合")
                CRAFTABLE = 1
        NEXT
        SIF !CRAFTABLE
            RETURN 0
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT

;-----------------------------------
;市販品か否か
;0=ショップに並ばない 1=ショップに並ぶ
;-----------------------------------
@IS_MARKET_AVAILABLE_ITEM_130()
RETURN 1
;-----------------------------------
;敵がドロップするか否か
;0=ドロップしない 1=ドロップする
;-----------------------------------
@IS_DROPPABLE_ITEM_130()
RETURN 1


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_131()
RESULTS '= "豊穣のパンケーキ"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_131()
RESULTS:0 '= "消費,"
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_131()
RESULTS:0 '= "セモリナス粉で作られたパンケーキ。"
RESULTS:1 '= "乳房が大きくなる願いが籠められている。"
RESULTS:2 '= ""
RESULTS:3 '= "ふわふわの生地は柔らかく、どこまでも大きく膨らんでいく。"
RESULTS:4 '= "ある錬金術師は言った。頭よりも存在感があって初めて大きいと言えるのだ、と。"
RESULTS:5 '= "ちなみに男性にも作用する。"
RETURN 0
@GET_ITEM_SUBDESCRIPTION_131()
RESULTS:0 '= @"ホームメニューで使用可能"
RESULTS:1 '= "バストサイズが一段階大きくなる"
RESULTS:2 '= "あまりに大きすぎる乳房には効果がない"
RETURN 0
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_131(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 5000
ITEM_DATA:ITEM_基準生産量 = 1
ITEM_DATA:ITEM_CAN_USE_AT_HOME = 1

RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_131(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_精液 = 3
MATERIAL_NEEDS:ITEM_動物の卵 = 3
MATERIAL_NEEDS:ITEM_セモリナス粉 = 3
RETURN 1

;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_131(MODULE_ID)
#DIM MODULE_ID
SELECTCASE MODULE_ID
    CASE 302    ;キッチン
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT

;-----------------------------------
;アイテム使用時の処理
;-----------------------------------
@GET_ITEM_INFO_AT_USING_131()
#DIMS DICS_ITEM_EFFECT
{
    DICS_ITEM_EFFECT '= "
        [ITEM_ID:131]
        [TARGET_NUM:1]
        [TARGET_CLASS:FOLLOWER]
        [EFFECT_CATEGORY:豊穣のパンケーキ]
        "
}
RESULTS = %DICS_ITEM_EFFECT%

;-------------------------------------------------
; アイテム使用時の処理関数@ITEM_USING_COMMONから呼ばれるアイテム使用時処理
; 共通化できない・する必要がない固有処理はここに記述
; ITEM_USING_COMMON
;-------------------------------------------------
@ITEM_USING_COMMON_豊穣のパンケーキ(DICS_ITEM_EFFECT)
#DIMS DICS_ITEM_EFFECT
#DIM  DYNAMIC ITEM_ID
#DIMS DYNAMIC ITEM_NAME
#DIM  DYNAMIC SELECTED_CHARA_ID
#DIM  DYNAMIC INPUT_VALUE
#DIM  DYNAMIC FIRST_LINE

ITEM_ID = TOINT(DIC_GET(DICS_ITEM_EFFECT, "ITEM_ID"))
CALL GET_ITEM_NAME(ITEM_ID)
ITEM_NAME           = %RESULTS%

;アイテム使用前のメッセージ表示
;-------------------------------------------------
FIRST_LINE = LINECOUNT
WHILE 1
    IF HO_ITEM_STOCK:ITEM_ID == 0
        RETURN
    ENDIF
    REDRAW 0
    CLEARLINE LINECOUNT - FIRST_LINE
    CALLF TAG_PRINT(@"対象キャラクタを選択してください。", 1)
    CALLF TAG_PRINT(@"　%ITEM_NAME%({HO_ITEM_STOCK:ITEM_ID} → @C:{カラー_オレンジ}@{HO_ITEM_STOCK:ITEM_ID -1}@/C@)", 1)
    PRINTL
    CALL SELECT_CHARA_LIST_ONLY_LOGIC_SEX("SAME_FACTION", "NONE")
    CLEARLINE 1
    SELECTED_CHARA_ID = RESULT
    IF SELECTED_CHARA_ID == -1
        RETURN
    ELSEIF TALENT:SELECTED_CHARA_ID:バストサイズ >=4
        CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%の乳房はこれ以上大きくなりません。", 1)
        WAIT
        CONTINUE
    ELSE
        CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%の@C:{カラー_ピンク}@乳房を大きく@/C@します。よろしいですか？", 1)
        CALL ASK_YN()
        IF RESULT == 0
            TALENT:SELECTED_CHARA_ID:バストサイズ += 1
            CALL SET_BUSTSIZE(SELECTED_CHARA_ID, TALENT:SELECTED_CHARA_ID:バストサイズ)
            HO_ITEM_STOCK:ITEM_ID --
            CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は@C:{カラー_ピンク}@%TOSTR_BUSTSIZE(TALENT:SELECTED_CHARA_ID:バストサイズ)%@/C@になりました！", 1)
            WAIT
            RETURN
        ENDIF
    ENDIF
WEND


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_132()
RESULTS '= "清貧のクッキー"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_132()
RESULTS:0 '= "消費,"
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_132()
RESULTS:0 '= "セモリナス粉で作られたクッキー。"
RESULTS:1 '= "乳房が小さくなる願いが籠められている。"
RESULTS:2 '= ""
RESULTS:3 '= "しっかりと固まった生地は平たく、起伏とは無縁のようだ。"
RESULTS:4 '= "ある錬金術師は言った。小さきを恥じる心はどれほどの大きさよりも価値がある、と。"
RETURN 0
@GET_ITEM_SUBDESCRIPTION_132()
RESULTS:0 '= @"ホームメニューで使用可能"
RESULTS:1 '= "バストサイズが一段階小さくなる"
RESULTS:2 '= "既に膨らみのない胸には効果がない"
RETURN 0
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_132(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 1800
ITEM_DATA:ITEM_基準生産量 = 1
ITEM_DATA:ITEM_CAN_USE_AT_HOME = 1

RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_132(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_精液 = 2
MATERIAL_NEEDS:ITEM_動物の卵 = 1
MATERIAL_NEEDS:ITEM_セモリナス粉 = 1
RETURN 1

;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_132(MODULE_ID)
#DIM MODULE_ID
SELECTCASE MODULE_ID
    CASE 302    ;キッチン
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT

;-----------------------------------
;アイテム使用時の処理
;-----------------------------------
@GET_ITEM_INFO_AT_USING_132()
#DIMS DICS_ITEM_EFFECT
{
    DICS_ITEM_EFFECT '= "
        [ITEM_ID:132]
        [TARGET_NUM:1]
        [TARGET_CLASS:FOLLOWER]
        [EFFECT_CATEGORY:清貧のクッキー]
        "
}
RESULTS = %DICS_ITEM_EFFECT%

;-------------------------------------------------
; アイテム使用時の処理関数@ITEM_USING_COMMONから呼ばれるアイテム使用時処理
; 共通化できない・する必要がない固有処理はここに記述
; ITEM_USING_COMMON
;-------------------------------------------------
@ITEM_USING_COMMON_清貧のクッキー(DICS_ITEM_EFFECT)
#DIMS DICS_ITEM_EFFECT
#DIM  DYNAMIC ITEM_ID
#DIMS DYNAMIC ITEM_NAME
#DIM  DYNAMIC SELECTED_CHARA_ID
#DIM  DYNAMIC INPUT_VALUE
#DIM  DYNAMIC FIRST_LINE

ITEM_ID = TOINT(DIC_GET(DICS_ITEM_EFFECT, "ITEM_ID"))
CALL GET_ITEM_NAME(ITEM_ID)
ITEM_NAME           = %RESULTS%

;アイテム使用前のメッセージ表示
;-------------------------------------------------
FIRST_LINE = LINECOUNT
WHILE 1
    IF HO_ITEM_STOCK:ITEM_ID == 0
        RETURN
    ENDIF
    REDRAW 0
    CLEARLINE LINECOUNT - FIRST_LINE
    CALLF TAG_PRINT(@"対象キャラクタを選択してください。", 1)
    CALLF TAG_PRINT(@"　%ITEM_NAME%({HO_ITEM_STOCK:ITEM_ID} → @C:{カラー_オレンジ}@{HO_ITEM_STOCK:ITEM_ID -1}@/C@)", 1)
    PRINTL
    CALL SELECT_CHARA_LIST_ONLY_LOGIC_SEX("SAME_FACTION", "NONE")
    CLEARLINE 1
    SELECTED_CHARA_ID = RESULT
    IF SELECTED_CHARA_ID == -1
        RETURN
    ELSEIF TALENT:SELECTED_CHARA_ID:バストサイズ <=-2
        CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%の胸はこれ以上小さくなりません。", 1)
        WAIT
        CONTINUE
    ELSE
        CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%の@C:{カラー_ピンク}@乳房を小さく@/C@します。よろしいですか？", 1)
        CALL ASK_YN()
        IF RESULT == 0
            TALENT:SELECTED_CHARA_ID:バストサイズ -= 1
            CALL SET_BUSTSIZE(SELECTED_CHARA_ID, TALENT:SELECTED_CHARA_ID:バストサイズ)
            HO_ITEM_STOCK:ITEM_ID --
            CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は@C:{カラー_ピンク}@%TOSTR_BUSTSIZE(TALENT:SELECTED_CHARA_ID:バストサイズ)%@/C@になりました！", 1)
            WAIT
            RETURN
        ENDIF
    ENDIF
WEND


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_133()
RESULTS '= "成熟のマフィン"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_133()
RESULTS:0 '= "消費,"
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_133()
RESULTS:0 '= "セモリナス粉で作られたマフィン。"
RESULTS:1 '= "お尻が大きくなる願いが籠められている。"
RESULTS:2 '= ""
RESULTS:3 '= "しっとりとした生地は、どこまでも形良く膨らんでいく。"
RESULTS:4 '= "ある錬金術師は言った。太くとも太くはない、あるべきものがそこにあるだけだ、と。"
RESULTS:5 '= "ちなみに男性にも作用する。"
RETURN 0
@GET_ITEM_SUBDESCRIPTION_133()
RESULTS:0 '= @"ホームメニューで使用可能"
RESULTS:1 '= "ヒップサイズが一段階大きくなる"
RESULTS:2 '= "あまりに大きすぎるお尻には効果がない"
RETURN 0
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_133(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 5000
ITEM_DATA:ITEM_基準生産量 = 1
ITEM_DATA:ITEM_CAN_USE_AT_HOME = 1

RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_133(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_精液 = 3
MATERIAL_NEEDS:ITEM_動物の卵 = 3
MATERIAL_NEEDS:ITEM_セモリナス粉 = 3
RETURN 1

;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_133(MODULE_ID)
#DIM MODULE_ID
SELECTCASE MODULE_ID
    CASE 302    ;キッチン
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT

;-----------------------------------
;アイテム使用時の処理
;-----------------------------------
@GET_ITEM_INFO_AT_USING_133()
#DIMS DICS_ITEM_EFFECT
{
    DICS_ITEM_EFFECT '= "
        [ITEM_ID:133]
        [TARGET_NUM:1]
        [TARGET_CLASS:FOLLOWER]
        [EFFECT_CATEGORY:成熟のマフィン]
        "
}
RESULTS = %DICS_ITEM_EFFECT%

;-------------------------------------------------
; アイテム使用時の処理関数@ITEM_USING_COMMONから呼ばれるアイテム使用時処理
; 共通化できない・する必要がない固有処理はここに記述
; ITEM_USING_COMMON
;-------------------------------------------------
@ITEM_USING_COMMON_成熟のマフィン(DICS_ITEM_EFFECT)
#DIMS DICS_ITEM_EFFECT
#DIM  DYNAMIC ITEM_ID
#DIMS DYNAMIC ITEM_NAME
#DIM  DYNAMIC SELECTED_CHARA_ID
#DIM  DYNAMIC INPUT_VALUE
#DIM  DYNAMIC FIRST_LINE

ITEM_ID = TOINT(DIC_GET(DICS_ITEM_EFFECT, "ITEM_ID"))
CALL GET_ITEM_NAME(ITEM_ID)
ITEM_NAME           = %RESULTS%

;アイテム使用前のメッセージ表示
;-------------------------------------------------
FIRST_LINE = LINECOUNT
WHILE 1
    IF HO_ITEM_STOCK:ITEM_ID == 0
        RETURN
    ENDIF
    REDRAW 0
    CLEARLINE LINECOUNT - FIRST_LINE
    CALLF TAG_PRINT(@"対象キャラクタを選択してください。", 1)
    CALLF TAG_PRINT(@"　%ITEM_NAME%({HO_ITEM_STOCK:ITEM_ID} → @C:{カラー_オレンジ}@{HO_ITEM_STOCK:ITEM_ID -1}@/C@)", 1)
    PRINTL
    CALL SELECT_CHARA_LIST_ONLY_LOGIC_SEX("SAME_FACTION", "NONE")
    CLEARLINE 1
    SELECTED_CHARA_ID = RESULT
    IF SELECTED_CHARA_ID == -1
        RETURN
    ELSEIF TALENT:SELECTED_CHARA_ID:ヒップサイズ >=2
        CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%のお尻はこれ以上大きくなりません。", 1)
        WAIT
        CONTINUE
    ELSE
        CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%の@C:{カラー_ピンク}@お尻を大きく@/C@します。よろしいですか？", 1)
        CALL ASK_YN()
        IF RESULT == 0
            TALENT:SELECTED_CHARA_ID:ヒップサイズ += 1
            CALL SET_HIPSIZE(SELECTED_CHARA_ID, TALENT:SELECTED_CHARA_ID:ヒップサイズ)
            HO_ITEM_STOCK:ITEM_ID --
            CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は@C:{カラー_ピンク}@%TOSTR_HIPSIZE(TALENT:SELECTED_CHARA_ID:ヒップサイズ)%@/C@になりました！", 1)
            WAIT
            RETURN
        ENDIF
    ENDIF
WEND


code:
;-----------------------------------
;アイテム名
;-----------------------------------
@GET_ITEM_NAME_134()
RESULTS '= "無垢のスコーン"
RETURN 0
;-----------------------------------
;アイテムの分類
;-----------------------------------
@GET_ITEM_CATEGORY_134()
RESULTS:0 '= "消費,"
RETURN 0
;-----------------------------------
;アイテムの説明
;-----------------------------------
@GET_ITEM_DESCRIPTION_134()
RESULTS:0 '= "セモリナス粉で作られたスコーン。"
RESULTS:1 '= "お尻が小さくなる願いが籠められている。"
RESULTS:2 '= ""
RESULTS:3 '= "小さくてもふうわりとした生地は、触れると吸いつくような感触をしている。"
RESULTS:4 '= "ある錬金術師は言った。どのような見識や知見で推し量ろうとそれは太すぎる、と。"
RETURN 0
@GET_ITEM_SUBDESCRIPTION_134()
RESULTS:0 '= @"ホームメニューで使用可能"
RESULTS:1 '= "ヒップサイズが一段階小さくなる"
RESULTS:2 '= "既に小さすぎるお尻には効果がない"
RETURN 0
;-----------------------------------
;アイテムの情報
;-----------------------------------
@GET_ITEM_INFO_134(ITEM_DATA)
#DIM REF ITEM_DATA
ITEM_DATA:ITEM_PRICE = 1800
ITEM_DATA:ITEM_基準生産量 = 1
ITEM_DATA:ITEM_CAN_USE_AT_HOME = 1

RETURN 0
;-----------------------------------
;アイテムの素材
;-----------------------------------
@GET_ITEM_MATERIAL_134(MATERIAL_NEEDS)
#DIM REF MATERIAL_NEEDS
MATERIAL_NEEDS:ITEM_精液 = 2
MATERIAL_NEEDS:ITEM_動物の卵 = 1
MATERIAL_NEEDS:ITEM_セモリナス粉 = 1
RETURN 1

;-----------------------------------
;アイテムが作成可能なモジュールか確認
;-----------------------------------
@CHECK_ITEM_CRAFTABLE_134(MODULE_ID)
#DIM MODULE_ID
SELECTCASE MODULE_ID
    CASE 302    ;キッチン
        RETURN 1
    CASEELSE
        RETURN 0
ENDSELECT

;-----------------------------------
;アイテム使用時の処理
;-----------------------------------
@GET_ITEM_INFO_AT_USING_134()
#DIMS DICS_ITEM_EFFECT
{
    DICS_ITEM_EFFECT '= "
        [ITEM_ID:134]
        [TARGET_NUM:1]
        [TARGET_CLASS:FOLLOWER]
        [EFFECT_CATEGORY:無垢のスコーン]
        "
}
RESULTS = %DICS_ITEM_EFFECT%

;-------------------------------------------------
; アイテム使用時の処理関数@ITEM_USING_COMMONから呼ばれるアイテム使用時処理
; 共通化できない・する必要がない固有処理はここに記述
; ITEM_USING_COMMON
;-------------------------------------------------
@ITEM_USING_COMMON_無垢のスコーン(DICS_ITEM_EFFECT)
#DIMS DICS_ITEM_EFFECT
#DIM  DYNAMIC ITEM_ID
#DIMS DYNAMIC ITEM_NAME
#DIM  DYNAMIC SELECTED_CHARA_ID
#DIM  DYNAMIC INPUT_VALUE
#DIM  DYNAMIC FIRST_LINE

ITEM_ID = TOINT(DIC_GET(DICS_ITEM_EFFECT, "ITEM_ID"))
CALL GET_ITEM_NAME(ITEM_ID)
ITEM_NAME           = %RESULTS%

;アイテム使用前のメッセージ表示
;-------------------------------------------------
FIRST_LINE = LINECOUNT
WHILE 1
    IF HO_ITEM_STOCK:ITEM_ID == 0
        RETURN
    ENDIF
    REDRAW 0
    CLEARLINE LINECOUNT - FIRST_LINE
    CALLF TAG_PRINT(@"対象キャラクタを選択してください。", 1)
    CALLF TAG_PRINT(@"　%ITEM_NAME%({HO_ITEM_STOCK:ITEM_ID} → @C:{カラー_オレンジ}@{HO_ITEM_STOCK:ITEM_ID -1}@/C@)", 1)
    PRINTL
    CALL SELECT_CHARA_LIST_ONLY_LOGIC_SEX("SAME_FACTION", "NONE")
    CLEARLINE 1
    SELECTED_CHARA_ID = RESULT
    IF SELECTED_CHARA_ID == -1
        RETURN
    ELSEIF TALENT:SELECTED_CHARA_ID:ヒップサイズ <=-2
        CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%のお尻はこれ以上小さくなりません。", 1)
        WAIT
        CONTINUE
    ELSE
        CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%の@C:{カラー_ピンク}@お尻を小さく@/C@します。よろしいですか？", 1)
        CALL ASK_YN()
        IF RESULT == 0
            TALENT:SELECTED_CHARA_ID:ヒップサイズ -= 1
            CALL SET_HIPSIZE(SELECTED_CHARA_ID, TALENT:SELECTED_CHARA_ID:ヒップサイズ)
            HO_ITEM_STOCK:ITEM_ID --
            CALLF TAG_PRINT(@"%ANAME(SELECTED_CHARA_ID)%は@C:{カラー_ピンク}@%TOSTR_HIPSIZE(TALENT:SELECTED_CHARA_ID:ヒップサイズ)%@/C@になりました！", 1)
            WAIT
            RETURN
        ENDIF
    ENDIF
WEND