code:
;-------------------------------------------------
;クエスト定義ファイル
;QUEST_1:サンプルクエスト
;-------------------------------------------------
@QST_TITLE_QUEST_1
RESULTS '= "蠢く洞窟"

;ギルドメニューでクエストをフィルターする際のタグリスト。末尾の','を忘れないように
@QST_QUEST_TAG_1
RESULTS '= "単発,探索,"

;クエストメニュー右上段の概要欄。10行まで
@QST_SUMALLY1_QUEST_1
RESULTS:0 '= "森林で活動していたノルディアのアカデミーの植物採集隊が現地の洞窟で消息を絶った"
RESULTS:1 '= "依頼内容は彼らの救助である。成功すればアカデミーから報酬が支払われる"
RESULTS:2 '= ""
RESULTS:3 '= "しかし、十分に注意すべきだろう。先行して救助に向かった冒険者の一団も音信がない"
RESULTS:4 '= "何か未知の脅威があるようだ……"

;クエストメニュー右下段の備考欄。難易度や条件、報酬等を記述。7行まで
@QST_SUMALLY2_QUEST_1
RESULTS:0 '= @"難易度：@C:{カラー_注意}@★★★@/C@"
RESULTS:1 '= "報酬：15,000ディナリ"
RESULTS:2 '= "推奨パーティ人数:3人以上　　　推奨平均戦闘値：35以上"
RESULTS:5 '= @"@C:{カラー_選択不可}@「コモンウェルスはノルディアの学者さんらは穴があれば何処へでも頭を突っ込みたがる」@/C@"
RESULTS:6 '= @"@C:{カラー_選択不可}@「……お得意様をあまり悪くは言えんが、大事な頭がもげちまったら元も子もなかろうに……」@/C@"

;-------------------------------------------------
;クエストの実行可能条件を定義
;-------------------------------------------------
@QST_AVAILABLE_QUEST_1(QUEST_ID)
#DIM QUEST_ID
;平原の探索の攻略が必要
SIF !QST_SV_QUEST_FLAG:3
    RETURN 0
SIF QST_SV_QUEST_FLAG:QUEST_ID != 2
    RETURN 1

;-------------------------------------------------
;マップデータ定義
;[ROOM_ID:]　…　配置するエリアの種類
;[ROOM_PATH:]　…　エリア間の接続情報(※)
;[EVENT_LIST:]　…　エリアに配置するイベントのID(※)
;(※)要素の末尾の','を忘れないように注意
;EmueraをDEBUGMODEで起動した場合、[領地の手入れ]画面から編集したエリア情報をテキストファイルにエクスポートできる
;出力txtをベースに編集すると少し楽かもしれない
;-------------------------------------------------
@QST_SET_MAPDATA_QUEST_1(MAP_ID)
#DIM MAP_ID
QST_MAPNAME '= "蠢く洞窟"
_DIC_HO_MAPDATA:MAP_ID:0  '= "[ROOM_ID:200][ROOM_PATH:5,]"
_DIC_HO_MAPDATA:MAP_ID:1  '= "[ROOM_ID:0][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:2  '= "[ROOM_ID:202][ROOM_PATH:7,][EVENT_LIST:3,]"
_DIC_HO_MAPDATA:MAP_ID:3  '= "[ROOM_ID:0][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:4  '= "[ROOM_ID:0][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:5  '= "[ROOM_ID:202][ROOM_PATH:6,0,][EVENT_LIST:0,]"
_DIC_HO_MAPDATA:MAP_ID:6  '= "[ROOM_ID:202][ROOM_PATH:7,5,][EVENT_LIST:1,]"
_DIC_HO_MAPDATA:MAP_ID:7  '= "[ROOM_ID:201][ROOM_PATH:2,8,12,6,]"
_DIC_HO_MAPDATA:MAP_ID:8  '= "[ROOM_ID:201][ROOM_PATH:7,][EVENT_LIST:4,]"
_DIC_HO_MAPDATA:MAP_ID:9  '= "[ROOM_ID:0][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:10 '= "[ROOM_ID:0][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:11 '= "[ROOM_ID:0][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:12 '= "[ROOM_ID:202][ROOM_PATH:7,17,]"
_DIC_HO_MAPDATA:MAP_ID:13 '= "[ROOM_ID:0][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:14 '= "[ROOM_ID:0][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:15 '= "[ROOM_ID:0][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:16 '= "[ROOM_ID:0][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:17 '= "[ROOM_ID:202][ROOM_PATH:12,22,][EVENT_LIST:5,]"
_DIC_HO_MAPDATA:MAP_ID:18 '= "[ROOM_ID:0][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:19 '= "[ROOM_ID:0][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:20 '= "[ROOM_ID:0][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:21 '= "[ROOM_ID:0][ROOM_PATH:]"
_DIC_HO_MAPDATA:MAP_ID:22 '= "[ROOM_ID:201][ROOM_PATH:17,23,][EVENT_LIST:7,]"
_DIC_HO_MAPDATA:MAP_ID:23 '= "[ROOM_ID:202][ROOM_PATH:22,24,][EVENT_LIST:8,9,]"
_DIC_HO_MAPDATA:MAP_ID:24 '= "[ROOM_ID:201][ROOM_PATH:23,][EVENT_LIST:10,]"

;-------------------------------------------------
;クエストのタイプ
;マップ探索を伴う場合 "MAP"
;文章のみで完結する場合 "DIALOGUE"
;-------------------------------------------------
@QST_TYPE_QUEST_1
RESULTS '= "MAP"

;-------------------------------------------------
;QST_INTRO_QUEST_n はQUEST開始前に呼ばれる
;クエストの導入文などを記述
;"DIALOGUE"型のクエストは当該関数のCALLのみ行う
;-------------------------------------------------
@QST_INTRO_QUEST_1
PRINTFORMW %QST_LEADER_NAME()%の前にぽっかりと洞窟が口を開けている
PRINTFORMW 一見はなんの変哲もない洞窟だ
PRINTFORMW しかしこの場所でまずはアカデミーの植物採集隊が、次いで救助に向かった冒険者の一団が、相次いで行方不明になっているという
PRINTL
PRINTFORMW 中がどうなっているのか、どれほどの深さなのか、外からでは検討もつかない
PRINTFORMW %QST_LEADER_NAME()%がゆっくりと足を踏み入れると洞窟の奥から生ぬるい風が吹き込んだ
PRINTFORMW ひどく嫌な予感がする。十分に警戒して進むべきだろう……
PRINTW

;-------------------------------------------------
;イベントリストに登録するイベント情報を記述する
;<記述方法>
;EVENT_TRIGGER
; "ENTER_ROOM" イベントが配置されたルームの入室時に強制的に実行される
; "EVENT_SLOT" イベントリストのクリック時に実行される
; "TRAIN_EXIT" 調教イベント終了後 ※予め変数:QST_TRAIN_EXIT_EVENT_ID に調教終了後に実行したいイベントIDを指定する必要がある
;EVENT_SLOT_NAME
; イベントリスト上の表示名
;EVENT_TYPE
; "ONCE" クエスト中一度のみ呼出されるイベント(※トリガーが"ENTER_ROOM"のイベントのみ機能)
;           実行済みかをフラグ管理するまでもないイベント(会話など)で使用する想定
;
;戻り値
; RESULT:0 = EVENT_TRIGGER
; RESULT:1 = EVENT_SLOT_NAME
; RESULT:2 = EVENT_TYPE
;-------------------------------------------------
;-------------------------------------------------
;EV0
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_1_EVENT_0
#DIMS EVENT_TRIGGER = "ENTER_ROOM"
#DIMS EVENT_TYPE = "ONCE"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:2 = %EVENT_TYPE%

;-------------------------------------------------
;実行するイベントの実行内容を記述
;イベント用の関数はTRYCALLFORMで呼ばれるため
;@QST_QUEST_{QUEST_ID}_EVENT_{EVENT_ID}の書式で記述する
;-------------------------------------------------
@QST_QUEST_1_EVENT_0

PRINTFORMW %ANAME(QST_RANDCHARA())%は額を伝う汗を拭った
PRINTFORMW 洞窟の中は強い湿気を帯びており、異様なまでに生暖かい
PRINTFORMW 加えてかすかな生臭さが鼻をつく……

;-------------------------------------------------
;EV1
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_1_EVENT_1
#DIMS EVENT_TRIGGER = "ENTER_ROOM"
RESULTS = %EVENT_TRIGGER%

;-------------------------------------------------
;実行するイベントの実行内容を記述
;イベント用の関数はTRYCALLFORMで呼ばれるため
;@QST_QUEST_{QUEST_ID}_EVENT_{EVENT_ID}の書式で記述する
;-------------------------------------------------
@QST_QUEST_1_EVENT_1
#DIM DYNAMIC TARGET_ID
#DIM DYNAMIC MOB_ID
#DIM CONST 派生イベントID = 2

;派生先イベントが解決済みの場合イベント実行を省略
CALL QST_GET_SV_EVENT_FLAG(派生イベントID)
IF RESULT
    RETURN
ENDIF

TARGET_ID = QST_RANDCHARA()

PRINTFORMW 一行が隘路を奥へ進むと、隘路いっぱいに広がった水たまりに出くわした
PRINTFORMW 床を満たす液体は、暗くて十分には判別出来ないが、濁っており生臭い臭気を放っている
PRINTFORMW 洞窟を満たす異様な香りはこれのせいなのだろうか……？
PRINTL
PRINTFORMW いずれにせよ先に進むにはこの水たまりを横切るしかない
PRINTFORMW 深さは大人の膝下程あるようだ。中に何か潜んでいる可能性も考慮すべきだろう……
PRINTW
PRINTFORMW %ANAME(TARGET_ID)%が粘性を帯びた水たまりをかき分けて進んでいると何かが足先に触れた
PRINTFORMW 正体を探るべく、身を屈めてランタンを近づける……
PRINTW
CALL COLOR_PRINTW(@"―――― 何かが%ANAME(TARGET_ID)%の足に絡みつき、水たまりに引きずり込もうとしている！", カラー_注意)
CALL QST_ROLL_MULTI("戦闘,身体,", "ナイフで斬りつける(戦闘),全力で振りほどく(身体),","100,100,", , ,"なすがまま", TARGET_ID)
IF RESULT == 1
    CALL QST_QUEST_1_EVENT_2
ELSE
    CALL COLOR_PRINTW(@"%ANAME(TARGET_ID)%は触手に引きずり込まれ、引き倒されてしまった……", カラー_ピンク)
    ;調教イベントの初期設定
    CALL CLEAR_MPLY()
    CALL CLEAR_MTAR()
    FLAG:ウフフフラグ = 1
    FLAG:調教モード = 調教_慰安
    TFLAG:調教ターン数 = 5
    CVARSET CFLAG, GETNUM(CFLAG, "調教参加フラグ") , 0
    CFLAG:TARGET_ID:主導除外 = 1
    CFLAG:TARGET_ID:凌辱被害者フラグ = 1
    CFLAG:TARGET_ID:調教参加フラグ = 1

    ;モブ生成
    FOR LOCAL, 0, 3
        CALL QST_TRAIN_MOB_PRESET("ブラシ触手", "うねる茎")
        MOB_ID = RESULT
        CALL ADD_MPLY(MOB_ID)
        CALL SET_EQUIP(GETNUM(TRAINNAME, "触手召喚"), 1)
        CALL DEL_MPLY(MOB_ID)
    NEXT

    QUEST_1_TARGET_ID = TARGET_ID
    CALL QST_ENQUEUE_TRAIN_EXIT_EVENT(派生イベントID)
ENDIF

;-------------------------------------------------
;EV2
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_1_EVENT_2
#DIMS EVENT_TRIGGER = "TRAIN_EXIT"
RESULTS = %EVENT_TRIGGER%

@QST_QUEST_1_EVENT_2
#DIM CONST EVENT_ID = 2
#DIM EVENT_FLAG
#DIM CC_RESULT
PRINTFORMW %ANAME(QUEST_1_TARGET_ID)%は触手をなんとか振りほどいた！
PRINTFORMW %QST_LEADER_NAME()%は武器を手に取り、なお襲いかからんとする触手の群れに対峙した
;戦闘イベント
CALL CC_INIT()
FOR LOCAL, 0, LIST_COUNT(_LIST_QST_PARTY)
    CALL CC_ADDCHARA("ATTACKER", TOINT(LIST_GET(_LIST_QST_PARTY, LOCAL)))
NEXT
CALL CC_ADDMOB("DEFENDER", "這い寄る触手", 2300, 2300, 30)
CALL CC_ADDMOB("DEFENDER", "滴り蠢く茎", 1800, 1800, 25)
CALL CC_ADDMOB("DEFENDER", "粘性触手", 1800, 1800, 25)
CALL CLOSE_COMBAT()
CC_RESULT = RESULT
CALL CC_APPLY_CHARA_HP()
;CLOSE_COMBATの戻り値は攻撃側勝利 = 1,防衛側勝利 = 2
IF CC_RESULT == 1
    PRINTFORMW %QST_LEADER_NAME()%は襲いくる触手の群れを退けた
    CALL CC_ADD_COMBAT_EXP(2)
    CALL QST_SET_SV_EVENT_FLAG(EVENT_ID ,1)
ELSE
    CALL COLOR_PRINTW(@"%QST_LEADER_NAME()%は触手の群れに打ち負かされてしまった……", カラー_注意)
    PRINTFORMW 抵抗する力を失った%QST_LEADER_NAME()%に無数の触手の群れが群がる……
    CALL QST_QUEST_1_DEFEAT_EVENT
ENDIF

;-------------------------------------------------
;EV3
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_1_EVENT_3
#DIM CONST EVENT_ID = 3
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "発光する肉腫"

CALL QST_GET_SV_EVENT_FLAG(EVENT_ID)
SIF RESULT
    EVENT_SLOT_NAME '= "肉腫の残骸"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%

@QST_QUEST_1_EVENT_3
#DIM CONST EVENT_ID = 3
#DIM EVENT_FLAG
#DIM DYNAMIC CHARA_ID

CALL QST_GET_SV_EVENT_FLAG(EVENT_ID)
IF !RESULT
    PRINTFORMW %QST_LEADER_NAME()%の前にある肉腫は仄かに光を帯びている
    PRINTFORMW 周囲に巻き付く触手を取り除けば、内部にあるものを取り出すことが出来そうだが……
    PRINTL
    CALL ASK_YN("回収を試みる (観察判定)","放っておく")
    SIF RESULT
        RETURN
    CALL QST_PARTY_ROLL("観察", 0, 1)
    CHARA_ID = RESULT:1
    IF RESULT == 1
        PRINTFORMW %ANAME(CHARA_ID)%は肉腫を覆う触手が食虫植物の感覚毛に近い器官を持つことに気がついた
        PRINTFORMW それに触れぬよう注意深く肉腫を切り開く……
        PRINTW
        PRINTFORMW 肉腫は高純度のマナ結晶を包んでいた。もしかしたらこれが彼らの栄養源なのかもしれない……
        CALL CHANGE_ITEM_STOCK(ITEM_マナ結晶, 6)
        CALL GET_ITEM_NAME(ITEM_マナ結晶)
        CALL COLOR_PRINTW(@"%RESULTS%を６つ手に入れた", カラー_注意)
        CALL QST_SET_EVENT_SLOT_NAME(EVENT_ID, "肉腫の残骸")
        CALL QST_SET_SV_EVENT_FLAG(EVENT_ID, 1)
    ELSEIF RESULT == 0
        CALL COLOR_PRINTW(@"―――― 肉腫を切り開こうと手をのばすなり、鞭のようにしなる触手が%ANAME(CHARA_ID)%を殴打した！", カラー_注意)
        CALL QST_CHANGE_HP(CHARA_ID, -200)
        CALL QST_ARMOR_BREAK(CHARA_ID, 被覆部位_乳首, 100)
    ENDIF
ELSE
    PRINTFORMW 切り開かれた肉腫の残骸が転がっている
ENDIF

;-------------------------------------------------
;EV4
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_1_EVENT_4
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "湧き水"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%

@QST_QUEST_1_EVENT_4
#DIM CONST EVENT_ID = 4
#DIM EVENT_FLAG
#DIM TARGET_ID

CALL QST_GET_EVENT_FLAG(EVENT_ID)
EVENT_FLAG = RESULT
IF EVENT_FLAG == 2
    PRINTFORMW 水場は既に枯れている
    RETURN
ENDIF

PRINTFORMW 岩の隙間から水がしみ出している
PRINTFORMW 一見すると透明で危険はないように見えるが……
PRINTL
CALL ASK_MULTI_JUDGE("飲んでみる", 1, "よく調べる (観察判定)",EVENT_FLAG == 1 ? 0 # 1, "手を付けない", 1)
SELECTCASE RESULT
    CASE 0
        PRINTFORMW %QST_LEADER_NAME()%は水を手に取り口に含んだ
        PRINTFORMW 清純な水分が喉を潤す……
        ;パーティ全員の体力を回復
        FOR LOCAL, 0, QST_PARTYNUM
            TARGET_ID = TOINT(LIST_GET(_LIST_QST_PARTY, LOCAL))
            CALL QST_CHANGE_HP(TARGET_ID, 500)
        NEXT
        WAIT
        CALL QST_SET_EVENT_SLOT_NAME(EVENT_ID, "枯れた水場")
        CALL QST_SET_EVENT_FLAG(EVENT_ID, 2)
    CASE 1
        CALL QST_PARTY_ROLL("観察", -200, 1)
        TARGET_ID = RESULT:1
        IF RESULT
            PRINTFORMW この水は非常に清潔なようだ！　飲めば消耗した体力を回復(+500)できるだろう
            CALL PRINT_ADD_EXP(TARGET_ID, "知識経験値", 4, 1)
            CALL TRAIN_AUTO_ABLUP(TARGET_ID)
            CALL QST_SET_SV_EVENT_FLAG(EVENT_ID, 2)
        ELSE
            PRINTFORMW %ANAME(TARGET_ID)%が確かめてみたもののよくわからなかった……
        ENDIF
        CALL QST_SET_EVENT_FLAG(EVENT_ID, 1)
    CASEELSE
        RETURN
ENDSELECT

;-------------------------------------------------
;EV5
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_1_EVENT_5
#DIMS EVENT_TRIGGER = "ENTER_ROOM"
#DIMS EVENT_TYPE = "ONCE"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:2 = %EVENT_TYPE%

@QST_QUEST_1_EVENT_5
#DIM CONST EVENT_ID = 5
#DIM CONST 派生イベントID = 6
#DIM EVENT_FLAG
#DIM MOB_ID

CALL QST_GET_SV_EVENT_FLAG(EVENT_ID)
SIF RESULT
    RETURN

CALLF TAG_PRINT(@"@C:{カラー_ピンク}@ジュル……グチュッ……ジュルルッ……@/C@", 1)
WAIT
PRINTFORMW %QST_LEADER_NAME()%が洞窟を奥へ奥へと歩みをすすめると、奥から断続的な水音が聞こえてきた
PRINTFORMW 正体を確かめるべくさらに奥へと歩みを進める……
PRINTW
PRINTFORMW %QST_LEADER_NAME()%の眼前では凄惨な狂宴が繰り広げられていた

FLAG:ウフフフラグ = 1
FLAG:調教モード = 調教_慰安
TFLAG:調教ターン数 = 12
FLAG:調教スキップ可 = 1

CVARSET CFLAG, GETNUM(CFLAG, "調教参加フラグ") , 0
;モブ生成
FOR LOCAL, 0, 4
    CALL QST_TRAIN_MOB_PRESET(SPLIT_RAND("触手/触手/ブラシ触手",1), SPLIT_RAND("蠢く触手/粘性触手/触手群体",1))
    MOB_ID = RESULT
    CALL ADD_MPLY(MOB_ID)
    CALL SET_EQUIP(GETNUM(TRAINNAME, "触手召喚"), 1)
    CALL DEL_MPLY(MOB_ID)
NEXT
CALL QST_TRAIN_MOB_PRESET("触手寄生体", SPLIT_RAND("寄生体",1))
CALL QST_TRAIN_MOB_PRESET("触手寄生体", SPLIT_RAND("寄生体",1))

;調教対象を生成
CALL QST_QUEST_1_CREATE_TRAIN_VICTIMS

CALL QST_ENQUEUE_TRAIN_EXIT_EVENT(派生イベントID)

CALL QST_SET_SV_EVENT_FLAG(EVENT_ID ,1)
RETURN

;-------------------------------------------------
;EV6
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_1_EVENT_6
#DIMS EVENT_TRIGGER = "TRAIN_EXIT"
RESULTS = %EVENT_TRIGGER%

@QST_QUEST_1_EVENT_6
PRINTFORMW %QST_LEADER_NAME()%は助けに入ろうと武器を握りしめる
PRINTFORMW ところが触手の群れは捕らえた女性をきつく絡め取り、洞窟のさらに深奥へと引き込んでしまった……

;-------------------------------------------------
;EV7
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_1_EVENT_7
#DIMS EVENT_TRIGGER = "ENTER_ROOM"
#DIMS EVENT_TYPE = "ONCE"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:2 = %EVENT_TYPE%

@QST_QUEST_1_EVENT_7
#DIM CONST EVENT_ID = 7
#DIM CC_RESULT

CALL QST_GET_SV_EVENT_FLAG(EVENT_ID)
SIF RESULT
    RETURN

PRINTFORMW 隘路を抜けると少し開けた空間に出た
PRINTFORMW 先程の女性の姿は見えない……。代わりに二人の男が背を向けて立っている
PRINTL
PRINTFORMW 軽装の鎧を身にまとっており、その風貌からどうやら冒険者のように見える
PRINTFORMW 先立って救助に向かった者たちだろうか……？
PRINTL
PRINTFORMW %QST_LEADER_NAME()%は声をかけようとしたがどうも様子がおかしい……
PRINTFORMW 「アッ……アア……、アァ……」
PRINTFORMW 男たちはうわ言のように何かを呟いている
PRINTL
PRINTFORMW %ANAME(QST_RANDCHARA())%は男の鎧の隙間から触手が蠢くのを目にしてしまった。彼らは無数の触手に寄生されている！
PRINTFORMW 男たちはゆっくりと振り返り、剣先を%QST_LEADER_NAME()%に向けた
PRINTL
PRINTFORMW ―― 既に彼らは正気ではない。どうやら戦うしかないようだ！
PRINTW

;戦闘イベント
CALL CC_INIT()
FOR LOCAL, 0, LIST_COUNT(_LIST_QST_PARTY)
    CALL CC_ADDCHARA("ATTACKER", TOINT(LIST_GET(_LIST_QST_PARTY, LOCAL)))
NEXT
CALL CC_ADDMOB("DEFENDER", "寄生体", 2500, 2500, 35)
CALL CC_ADDMOB("DEFENDER", "寄生体", 2500, 2500, 35)
CALL CLOSE_COMBAT()
CC_RESULT = RESULT
CALL CC_APPLY_CHARA_HP()
IF CC_RESULT == 1
    PRINTFORMW %QST_LEADER_NAME()%は寄生体を打ち倒した
    CALL CC_ADD_COMBAT_EXP(3)
    WAIT
    PRINTL
    PRINTFORMW さらに冒険者の亡骸から使えそうな装備を回収した
    CALL QST_GET_WEAPON(1, "冒険者の鉄の短剣", WPN_材質_鉄)
    CALL COLOR_PRINTW(@"―― 武器はクエスト中でも[ITEM] -> [武器]から変更できる。状況に応じて持ち替えるとよいだろう", カラー_注意)
    CALL QST_SET_SV_EVENT_FLAG(EVENT_ID ,1)
ELSE
    CALL COLOR_PRINTW(@"%QST_LEADER_NAME()%は寄生体に打ち負かされてしまった……", カラー_注意)
    PRINTFORMW 抵抗する力を失った%QST_LEADER_NAME()%に無数の触手の群れが群がる……
    CALL QST_QUEST_1_DEFEAT_EVENT
ENDIF

;-------------------------------------------------
;EV8
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_1_EVENT_8
#DIMS EVENT_TRIGGER = "ENTER_ROOM"
#DIMS EVENT_TYPE = "ONCE"
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:2 = %EVENT_TYPE%

@QST_QUEST_1_EVENT_8
#DIM CONST EVENT_ID = 8
#DIM CONST 派生イベントID = 9
CALL QST_GET_SV_EVENT_FLAG(派生イベントID)
SIF RESULT == 2
    RETURN

PRINTFORMW %QST_LEADER_NAME()%の前に床に打ち捨てられた一糸まとわぬ女性が横たわっている
PRINTFORMW 先程の寄生体の件もある。軽率に近寄るのは避けるべきかもしれないが……

;-------------------------------------------------
;EV9
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_1_EVENT_9
#DIM CONST EVENT_ID = 9
#DIMS EVENT_TRIGGER = "EVENT_SLOT"
#DIMS EVENT_SLOT_NAME = "全裸で横たわる女性"
CALL QST_GET_SV_EVENT_FLAG(EVENT_ID)
SIF RESULT == 2
    EVENT_SLOT_NAME '= "女魔術師"

RESULTS:0 = %EVENT_TRIGGER%
RESULTS:1 = %EVENT_SLOT_NAME%

@QST_QUEST_1_EVENT_9
#DIM CONST EVENT_ID = 9
#DIM EVENT_FLAG
#DIM TARGET_ID

CALL QST_GET_SV_EVENT_FLAG(EVENT_ID)
EVENT_FLAG = RESULT
IF EVENT_FLAG == 2
    PRINTFORMW 「どうかお気をつけて……」
    RETURN
ENDIF

PRINTFORMW さて、どうしたものだろうか……？
PRINTL
CALL ASK_MULTI_JUDGE("救助を試みる", 1, "よく観察する (観察判定)",EVENT_FLAG == 1 ? 0 # 1, "放っておく", 1)
SELECTCASE RESULT
    CASE 0
        PRINTFORMW 幸いなことに女性は触手の寄生を受けておらず、息もあるようだ
        PRINTFORMW 気付け薬を少し飲ませてやると、意識を取り戻した
        PRINTL
        PRINTFORMW 「助かった……のでしょうか……？」
        PRINTL
        PRINTFORMW %QST_LEADER_NAME()%は女性が落ち着くのを待ってから情報収集を試みる
        PRINTFORMW 「生存者は……おそらく私だけでしょう。皆あれに喰われてしまいました……。私が最後の生き餌だったのです」
        PRINTFORMW どうやら女性は学術調査隊に同行していた護衛の魔術師のようだ
        PRINTL
        PRINTFORMW 「あれらの触手には母体が存在します。母体を葬れば末端の触手もやがて枯死するでしょう」
        PRINTFORMW 「どうか隊の……皆の仇をとっていただけないでしょうか……？」
        PRINTL
        PRINTFORMW そのために来たのだと%ANAME(QST_RANDCHARA())%が告げると女性は安堵の表情を浮かべた
        PRINTW
        PRINTFORMW 「ありがとうございます……。母体は常に無数の小群体を護衛として引き連れています」
        PRINTFORMW 「小群体は攻撃的ですが、脆弱です。あれを優先して排除すれば優位に立てるはずです」
        PRINTL
        CALL COLOR_PRINTW(@"―― 脅威選定に(低耐久)を持つ武器は体力の低い敵を優先的に攻撃する。所持しているならば装備することで優位に戦闘を進められるかもしれない", カラー_注意)
        PRINTL
        PRINTFORMW 女魔術師が呪文を唱えると%QST_LEADER_NAME()%は身体が軽くなるのを感じた
        PRINTL
        FOR LOCAL, 0, QST_PARTYNUM
            TARGET_ID = TOINT(LIST_GET(_LIST_QST_PARTY, LOCAL))
            CALL QST_CHANGE_HP(TARGET_ID, 1500)
        NEXT
        PRINTL
        WAIT
        PRINTFORMW 「どうかご武運を……」
        CALL QST_SET_EVENT_SLOT_NAME(EVENT_ID, "女魔術師")
        CALL QST_SET_SV_EVENT_FLAG(EVENT_ID, 2)
    CASE 1
        CALL QST_PARTY_ROLL("観察", 0, 1)
        IF RESULT
            PRINTFORMW どうやら寄生はされておらず、息もあるようだ。今なら助けられるだろう
        ELSE
            PRINTFORMW %ANAME(RESULT:1)%には判断がつかなかった……。
        ENDIF
        CALL QST_SET_SV_EVENT_FLAG(EVENT_ID, 1)
    CASEELSE
        RETURN
ENDSELECT

;-------------------------------------------------
;EV10
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_1_EVENT_10
#DIMS EVENT_TRIGGER = "ENTER_ROOM"
#DIMS EVENT_TYPE = ""
RESULTS:0 = %EVENT_TRIGGER%
RESULTS:2 = %EVENT_TYPE%

@QST_QUEST_1_EVENT_10
#DIM CONST EVENT_ID = 10
#DIM CC_RESULT

PRINTFORMW 洞窟の深奥に歩みを進めた%QST_LEADER_NAME()%を猛烈な熱気と臭気が襲う
PRINTFORMW 空間の中央に鎮座しているのは、禍々しい肉のうねりだ
PRINTFORMW 無数の触手が蠢き、のたうち、一つの巨大な群体を構成している
PRINTL
PRINTFORMW さらにその周囲をせわしなく動く小型の触手の群れが這い回っている
PRINTFORMW 母体を護衛する役割を担っているようだ
PRINTL
PRINTFORMW %ANAME(QST_RANDCHARA())%は眼前のおぞましい光景に顔をしかめ、固く武器を握りしめる
PRINTFORMW これら全てを退治するのはいささか骨が折れそうだ……

;戦闘イベント
CALL CC_INIT()
FOR LOCAL, 0, LIST_COUNT(_LIST_QST_PARTY)
    CALL CC_ADDCHARA("ATTACKER", TOINT(LIST_GET(_LIST_QST_PARTY, LOCAL)))
NEXT
CALL CC_ADDMOB("DEFENDER", "テンタクル・レギオン", 3500, 3500, 40)
CALL CC_ADDMOB("DEFENDER", "繊毛の尖兵", 300, 300, 30)
CALL CC_ADDMOB("DEFENDER", "破甲の茎", 300, 300, 30)
CALL CC_ADDMOB("DEFENDER", "浸透する細毛", 300, 300, 30)
CALL CC_ADDMOB("DEFENDER", "刺突毛", 300, 300, 30)
CALL CC_ADDMOB("DEFENDER", "乱舞する鞭毛", 300, 300, 30)
CALL CLOSE_COMBAT("[BGM:Boss_0.ogg]")
CC_RESULT = RESULT
CALL CC_APPLY_CHARA_HP()
IF CC_RESULT == 1
    PRINTFORMW %QST_LEADER_NAME()%は死闘の末に触手の群れを打ち倒した……！
    CALL CC_ADD_COMBAT_EXP(5)
    CALL QST_SET_SV_EVENT_FLAG(EVENT_ID ,1)
    PRINTW
    PRINTFORMW %QST_LEADER_NAME()%の一撃が致命傷となり、群体を維持できなくなったテンタクル・レギオンは崩れ落ちた
    PRINTFORMW 周囲に展開していた無数の触手も母体からの栄養の供給を失い、程なくして動かなくなった
    PRINTW
    CALL FL_PLAYSE("Fanfare_0.ogg")
    CALL COLOR_PRINTW(@"―― %QST_LEADER_NAME()%は依頼を完遂した！", カラー_注意)
    CALL QST_QUEST_1_ENDING
ELSE
    CALL COLOR_PRINTW(@"%QST_LEADER_NAME()%は触手の群れに打ち負かされてしまった……", カラー_注意)
    PRINTFORMW 抵抗する力を失った%QST_LEADER_NAME()%に無数の触手の群れが群がる……
    CALL QST_QUEST_1_DEFEAT_EVENT
ENDIF

;-------------------------------------------------
;EV15
;敗北イベント後の共通エンディング（クエスト失敗）
;-------------------------------------------------
@QST_ADD_EVENT_QUEST_1_EVENT_15
#DIMS EVENT_TRIGGER = "TRAIN_EXIT"
RESULTS = %EVENT_TRIGGER%

@QST_QUEST_1_EVENT_15
#DIM CONST EVENT_ID = 15
#DIM EVENT_FLAG
#DIM TARGET_ID
TARGET_ID = QST_RANDCHARA()
PRINTW
PRINTFORMW ……………………
PRINTFORMW ………………
PRINTFORMW …………
PRINTW
PRINTFORMW 事態を重く見たギルドが派遣した熟練冒険者たちによって%QST_LEADER_NAME()%は奇跡的に救出された……
PRINTFORMW 「しかしまぁ……生き残っちまった方がよほど不運ですぜ、ありゃぁ」
PRINTFORMW 毛布にくるまり焦点のあわない虚ろな目で荷馬車に揺られる%ANAME(TARGET_ID)%に冒険者の一人が憐れみの目を向ける
PRINTFORMW 「よしたまえよ。……まぁ何れにせよ命は残った。再起できるかは……%PRONOUN(TARGET_ID)%次第だろう」
PRINTW
PRINTFORMW %QST_LEADER_NAME()%はなんとか生還することができた……
PRINTFORMW クエストは失敗に終わったが、再起の機会はあるはずだ
PRINTL
QST_SV_QUEST_FLAG:QST_有効クエストID = 1
TFLAG:クエスト_完了フラグ = 1
CALL TRAIN_EXIT()

;-------------------------------------------------
;以下イベントリストで管理する必要のない処理,イベント固有の関数など
;-------------------------------------------------
@QST_QUEST_1_ENDING
PRINTW
PRINTFORMW ……………………
PRINTFORMW ………………
PRINTFORMW …………
PRINTW
PRINTFORMW %QST_LEADER_NAME()%たちは無事依頼を完遂し帰路についた
PRINTFORMW あの恐るべき触手の怪物がどのようして生じたのか、あるいはどこからやってきたのか、以前謎は残る
PRINTFORMW しかし一先ずは、これ以上哀れな被害者を増やすことは防げたはずだ
PRINTW
PRINTFORMW 後日、ノルディアのアカデミーからギルドを介して%QST_LEADER_NAME()%に報酬が支払われた
CALL COLOR_PRINTW("15,000ディナリを得た", カラー_注意)
MONEY += 15000
QST_SV_QUEST_FLAG:QST_有効クエストID = 2
TFLAG:クエスト_完了フラグ = 1
CALL TRAIN_EXIT()

;-------------------------------------------------

@QST_QUEST_1_DEFEAT_EVENT
#DIM CONST 派生イベントID = 15
#DIM DYNAMIC MOB_ID

;調教イベントの初期設定
CALL CLEAR_MPLY()
CALL CLEAR_MTAR()
FLAG:ウフフフラグ = 1
FLAG:調教モード = 調教_慰安
TFLAG:調教ターン数 = 20
CVARSET CFLAG, GETNUM(CFLAG, "調教参加フラグ") , 0
FOR LOCAL, 0, QST_PARTYNUM
    CFLAG:(TOINT(LIST_GET(_LIST_QST_PARTY, LOCAL))):主導除外 = 1
    CFLAG:(TOINT(LIST_GET(_LIST_QST_PARTY, LOCAL))):凌辱被害者フラグ = 1
    CFLAG:(TOINT(LIST_GET(_LIST_QST_PARTY, LOCAL))):調教参加フラグ = 1
NEXT

;触手系モブ生成
FOR LOCAL, 0, 4
    CALL QST_TRAIN_MOB_PRESET(SPLIT_RAND("触手/触手/ブラシ触手",1), SPLIT_RAND("蠢く触手/粘性触手/触手群体",1))
    MOB_ID = RESULT
    CALL ADD_MPLY(MOB_ID)
    CALL SET_EQUIP(GETNUM(TRAINNAME, "触手召喚"), 1)
    CALL DEL_MPLY(MOB_ID)
NEXT
CALL QST_TRAIN_MOB_PRESET("触手寄生体", SPLIT_RAND("寄生体",1))

CALL QST_ENQUEUE_TRAIN_EXIT_EVENT(派生イベントID)
RETURN
;-------------------------------------------------
;慰安モブの定義
;-------------------------------------------------
@QST_QUEST_1_CREATE_TRAIN_VICTIMS(主導除外フラグ = 1)
#DIM 対象
#DIMS 名前
#DIM 主導除外フラグ

名前 = %SPLIT_RAND("冒険者/村娘/魔術師/学者",1)%

CALL CREATE_RANDOM_CHARA(0, -1, 1)
FLAG:汎用武将カウント --
対象 = RESULT
IF LOCAL == -1
    RETURN -1
ENDIF

NO:対象 = GET_EMPTY_NO()
NAME:対象 = %名前%
CALLNAME:対象 = %名前%
TALENT:対象:処女 = 0
TALENT:対象:キス未経験 = 0
TALENT:対象:童貞 = 0
TALENT:対象:アナル処女 = 0
CSTR:対象:0 =
CSTR:対象:1 =
TALENT:対象:性別 = 1
ABL:対象:性知識 =  3
ABL:対象:Ｃ感 = 28
ABL:対象:奉仕 = 1
ABL:対象:性技 = RAND(10, 14)
ABL:対象:欲望 = RAND(3, 7)
ABL:対象:性交 = RAND(13, 15)
ABL:対象:マゾ = RAND(0, 3)
ABL:対象:主導度Ｕ = RAND(0, 500)
ABL:対象:倒錯度 = RAND(0, 300)
TALENT:対象:貞操無頓着 = 1
TALENT:対象:貞操観念 = 0
TALENT:対象:崩壊 = 1
TALENT:対象:母乳体質 = 1
CFLAG:対象:調教参加フラグ  = 主導除外フラグ
CFLAG:対象:主導除外  = 1
CFLAG:対象:慰安モブ = 1