集めた仲間によって評価が変わるRPGの作成~全NPCのフラグ(会話、アイテム)と仲間加入イベント①~

 

集めた仲間によって評価が変わるRPGの作成

~全NPCのフラグ(会話、アイテム)と仲間加入イベント①~

こんにちは、東京経済大学3年のSTです。
前回の作業では、全NPCのフラグ(会話、アイテム)と仲間加入イベントの全体的な流れを紹介したと思います。
今回は、全NPCのフラグ(会話、アイテム)と仲間加入イベントを詳しく紹介していこうと思います。(ステージ0,1,4,8)

ステージ0


戦士A

{ active:true, name:"戦士A", sprite:"warrior3", stage:0, x:14,y:6, solid:true, talk:function(){ if(inParty("戦士A")){ showMsg("戦士A","もう仲間になっている。"); return; } if(!hasItem("長剣A")){ showMsg("戦士A","『長剣A』がほしい。"); return; } showChoice("戦士A","それは、、『長剣A』じゃないか?\nそれをくれるのか?",["はい","いいえ"],(i)=>{ if(i===0){ addParty("戦士A"); showMsg("戦士A","よし、ともに行こう。"); } else{ showMsg("戦士A","心決まればまた来い。"); } }); } },

役割

  • マップ0で加入できる戦士NPCの一人。

  • 「長剣A」所持を条件にした、アイテム連動の加入イベント。

イベント/条件

  • 前提:アイテム「長剣A」を所持している必要がある。

  • 会話フロー

    • 仲間済み
      「もう仲間になっている。」

    • アイテム未所持
      「『長剣A』がほしい。」

    • アイテム所持時:選択肢が出る
      「はい」→ addParty("戦士A")
      「いいえ」→「心決まればまた来い。」

評価との関係

  • calcFinalEvaluation() 内で if(inParty("戦士A")) score++; によりスコア加点対象。


魔法使いA

{ active:true, name:"魔法使いA", sprite:"mage4", stage:0, x:1,y:6, solid:true, talk:function(){ if(inParty("魔法使いA")){ showMsg("魔法使いA","もう仲間だ。"); return; } if(!hasItem("魔術書A")){ showMsg("魔法使いA","『魔術書A』が必要だ。"); return; } showChoice("魔法使いA","その書…本物だ。私を仲間にするか?",["はい","いいえ"],(i)=>{ if(i===0){ addParty("魔法使いA"); showMsg("魔法使いA","よし、ともに行こう。"); } else{ showMsg("魔法使いA","時が満ちたらまた来るがいい。"); } }); } },

役割

  • マップ0で加入できる魔法系NPC。

  • 「魔術書A」所持を条件にした加入イベント。

イベント/条件

  • 前提:アイテム「魔術書A」を所持している必要がある。

  • 会話フロー

    • 仲間済み
      「もう仲間だ。」

    • アイテム未所持
      「『魔術書A』が必要だ。」

    • アイテム所持時:選択肢が出る
      「はい」→ addParty("魔法使いA")
      「いいえ」→「時が満ちたらまた来るがいい。」

評価との関係

  • calcFinalEvaluation() 内で if(inParty("魔法使いA")) score++; によりスコア加点対象。


親切な衛兵1

{active:true, name:"親切な衛兵1", sprite:"guard4", stage:0, x:9,y:2, solid:true, talk:function(){ showMsg("親切な衛兵","【基本操作】\n矢印キーで移動、X/Enterで会話・調べる、Zで船の乗降。\nEscでメニュー(仲間/アイテム/セーブ/タイトルへ戻る)。"); }},

役割

  • 操作説明(チュートリアル)用NPC。

イベント/条件

  • 条件なし。話しかけるとメッセージ表示のみ。

評価との関係

  • party/items/flags を変更しないため、評価スコアに直接影響なし。


親切な衛兵2

{active:true, name:"親切な衛兵2", sprite:"guard4", stage:0, x:8,y:2, solid:true, talk:function(){ showMsg("親切な衛兵","【ヒント】\n最初に王様と会うといい。加入可能な仲間が増えるぞ。"); }},

役割

  • 進行ヒント提示(王様=城内へ誘導)用NPC。

イベント/条件

  • 条件なし。話しかけるとヒント表示のみ。

評価との関係

  • 直接の加点なし(フラグ・加入処理なし)。


親切な衛兵3

{active:true, name:"親切な衛兵3", sprite:"guard4", stage:0, x:10,y:2, solid:true, talk:function(){ showMsg("親切な衛兵","【目的】\n仲間を集め、島へ向かうのだ。"); }},

役割

  • ゲーム目的(仲間収集→島)を提示する案内NPC。

イベント/条件

  • 条件なし。話しかけると目的表示のみ。

評価との関係

  • 直接の加点なし。


衛兵(迷路の戦士の噂:G1~G4)

{active:true, name:"衛兵", sprite:"guard2", stage:0, x:18,y:9, solid:true, talk:function(){ rumor.mazeWarriors_heard.g1=true; checkMazeWarriorsProgress(); showMsg("衛兵","迷路には戦士がいるらしい。"); }},
{active:true, name:"衛兵", sprite:"guard3", stage:0, x:17,y:9, solid:true, talk:function(){ rumor.mazeWarriors_heard.g2=true; checkMazeWarriorsProgress(); showMsg("衛兵","三人いるという噂だ。"); }},
{active:true, name:"衛兵", sprite:"guard2", stage:0, x:8,y:9, solid:true, talk:function(){ rumor.mazeWarriors_heard.g3=true; checkMazeWarriorsProgress(); showMsg("衛兵","彼らは証をもつ者を探しているという。"); }},
{active:true, name:"衛兵", sprite:"guard3", stage:0, x:7,y:9, solid:true, talk:function(){ rumor.mazeWarriors_heard.g4=true; checkMazeWarriorsProgress(); showMsg("衛兵","“戦士の証”があれば仲間になってくれるかもな。"); }},

役割

  • 「迷路の戦士」解放のための噂フラグ(G1~G4)を立てるNPC。

イベント/条件

  • 話しかけると rumor.mazeWarriors_heard.g1=true

  • 毎回 checkMazeWarriorsProgress() を呼ぶ。

  • 4つ全部揃うと checkMazeWarriorsProgress() 側で以下が発生:

  • gotWarriorProof=true

  • アイテム「戦士の証」入手

  • unlocked_WarriorDEF=true(戦士D/E/F加入解禁)

評価との関係

  • 直接は加点なし(ただし証入手→仲間増加に繋がる)。


衛兵

{active:true, name:"衛兵", sprite:"guard2", stage:0, x:3,y:2, solid:true, talk:"周辺に多くの戦士がいる。"},
{active:true, name:"衛兵", sprite:"guard3", stage:0, x:2,y:2, solid:true, talk:"さあ、出発をしよう。"},
{active:true, name:"衛兵", sprite:"guard1", stage:0, x:3,y:6, solid:true, talk:"街に行ってみよう。"},

役割

  • フレーバー会話のみの案内NPC。

イベント/条件

  • 条件なし。固定メッセージを表示するだけ。

評価との関係

  • 直接加点なし。


ステージ1


王様

{ active:true, name:"王様", sprite:"king", stage:1, x:10,y:4, solid:true, talk:function(){ const first = !hasFlag('metKing'); if(first) setFlag('metKing',true); // ★ ボス撃破後 → 王に報告でエンディング if(hasFlag("bossCleared") && !hasFlag("endingShown")){ setFlag("endingShown",true); finalEvaluate(); // エンディング&タイトルへ戻る return; } if(first){ showMsg("王様","よく来た、勇者よ。\n仲間を集め、島へ向かうのだ。"); }else{ showMsg("王様","進捗を聞かせてくれ。仲間は集まっておるか?"); } } },

役割

  • ゲーム全体の進行と最終評価を司る中核NPC。

  • 初回会話で metKing フラグを立て、仲間の加入条件を解禁する。

  • ダンジョンボス撃破後に話しかけることで、エンディング処理を開始する。

イベント/条件

  • 初対面

    • metKing が false の場合、metKing=true をセット。

    • 「よく来た、勇者よ。仲間を集め、島へ向かうのだ。」

  • 再訪(ボス未撃破)

    • 「進捗を聞かせてくれ。仲間は集まっておるか?」

  • ボス撃破後

    • bossCleared=true かつ endingShown=false のとき
      finalEvaluate() を呼び出し、エンディングへ。

評価との関係

  • 王様自身は仲間にならない。

  • 最終評価の 計算・表示トリガー を担う存在。


側近A

{ active:true, name:"側近A", sprite:"assistant", stage:1, x:7,y:6, solid:true, talk:function(){ if(!hasItem("魔術書A")){ addItem("魔術書A"); showMsg("側近A","これは『魔術書A』。魔法系に関係があるらしい。"); }else{ showMsg("側近A","魔術書Aを活かす術を探すと良い。"); } } },

役割

  • 魔法使いA加入に必要なキーアイテムを配布するNPC。

イベント/条件

  • 初回

    • アイテム「魔術書A」を入手。

  • 2回目以降

    • 会話のみ。

評価との関係

  • 直接加点なし。

  • 魔法使いA加入を通じて、間接的に評価スコア増加に貢献。


側近B

{ active:true, name:"側近B", sprite:"assistant", stage:1, x:13,y:6, solid:true, talk:function(){ if(!hasItem("研究結果")){ addItem("研究結果"); showMsg("側近B","最新の『研究結果』だ。研究家に渡すと良い。"); }else{ showMsg("側近B","研究家のところへ。何か進展があるはずだ。"); } } },

役割

  • 後半仲間(闇の魔術師)に繋がるキーアイテムの起点NPC。

イベント/条件

  • 初回

    • アイテム「研究結果」を入手。

  • 以降

    • 研究家への誘導会話。

評価との関係

  • 直接加点なし。

  • 闇の魔術師加入ルートの導線。


戦士B

{ active:true, name:"戦士B", sprite:"warrior2", stage:1, x:4,y:8, solid:true, talk:function(){ if(!hasFlag("metKing")){ showMsg("戦士B","王に会ってから来な。"); return; } if(inParty("戦士B")){ showMsg("戦士B","もう仲間になっている。"); return; } showChoice("戦士B","王から話は聞いたか?俺を仲間に入れるか?",["はい","いいえ"],(i)=>{ if(i===0){ addParty("戦士B"); showMsg("戦士B","よし、行こう。"); }else{ showMsg("戦士B","気が変わったらまた来い。"); } }); } },

役割

  • 王への謁見を条件に加入できる城内戦士。

イベント/条件

  • 前提:metKing=true

  • 会話フロー

    • 王に会っていない
      「王に会ってから来な。」

    • 未加入
      選択肢 → 「はい」で加入。

    • 加入後
      「もう仲間になっている。」

評価との関係

  • inParty("戦士B") により最終スコア加点対象。


侍A

{ active:true, name:"侍A", sprite:"samurai", stage:1, x:6,y:10, solid:true, talk:function(){ if(!hasFlag("metKing")){ showMsg("侍A","まずは王に謁見せよ。"); return; } if(inParty("侍A")){ showMsg("侍A","もう、仲間になっている。"); return; } showChoice("侍A","ともに行くか?",["はい","いいえ"],(i)=>{ if(i===0){ addParty("侍A"); showMsg("侍A","うむ。では道を切り拓こう。"); }else{ showMsg("侍A","心定まらば、また来い。"); } }); } },

役割

  • 城内で加入できる侍系キャラクター。

イベント/条件

  • 前提:metKing=true

  • 「はい」を選択すると加入。

評価との関係

  • 仲間数加算による評価スコア上昇。


戦士C

{ active:true, name:"戦士C", sprite:"warrior1", stage:1, x:14,y:8, solid:true, talk:function(){ if(!hasFlag("metKing")){ showMsg("戦士C","まずは王に会ってきな。"); return; } if(inParty("戦士C")){ showMsg("戦士C","もう、仲間になっている。"); return; } showChoice("戦士C","さあ、行くか?",["はい","いいえ"],(i)=>{ if(i===0){ addParty("戦士C"); showMsg("戦士C","うむ。では行こう。"); }else{ showMsg("戦士C","また来い。"); } }); } },

役割

  • 王に会った後に加入できる城内戦士その2。

イベント/条件

  • 前提:metKing=true

  • 「はい」で即加入。

評価との関係

  • 戦士系仲間の一人として評価加点。


衛兵(戦士Gの噂A)

{active:true, name:"衛兵", sprite:"guard2", stage:1, x:2,y:3, solid:true, talk:"戦士Gは大剣を探しているという噂だ。"},

役割

  • 戦士G加入ルートのヒント提示。

評価との関係

  • 直接加点なし。


衛兵(城内・静粛)

{active:true, name:"衛兵", sprite:"guard3", stage:1, x:10,y:1, solid:true, talk:"王の前では静粛に。"},

衛兵(戦士Gの噂B)

{active:true, name:"衛兵", sprite:"guard2", stage:1, x:17,y:3, solid:true, talk:"彼はよく街で見かけられたとか。"},

衛兵(城内・武器)

{active:true, name:"衛兵", sprite:"guard1", stage:1, x:5,y:1, solid:true, talk:"剣や槍に触れるとなにか起こるらしい。"},

衛兵(城内・情報)

{active:true, name:"衛兵", sprite:"guard1", stage:1, x:15,y:1, solid:true, talk:"町にいる衛兵にも話を聞くとなにか情報をもらえるぞ。"},

衛兵(城内・側近)

{active:true, name:"衛兵", sprite:"guard1", stage:1, x:8,y:1, solid:true, talk:"側近に話しかけると、なにかもらえるぞ。"},




ステージ4


おばあさんA

{active:true, name:"おばあさんA", sprite:"granny1", stage:4, x:14,y:4, solid:true, talk:"ようこそ。ここは町だよ。北の洞窟には近づかない方がいいねぇ。"},

役割

  • 町の案内・会話担当。

イベント/条件

  • 条件なし。固定メッセージ表示のみ。

評価との関係

  • 加点なし(仲間加入・フラグ変化なし)。


おじいさんA

{active:true, name:"おじいさんA", sprite:"oldman2", stage:4, x:12,y:4, solid:true, talk:function(){ rumor.fighters_info.grandpaA=true; showMsg("おじいさん","町の犬、猫がなにかくわえているときがあるぞ。"); }},

役割

  • 格闘家加入条件(噂収集)用の進捗フラグを立てるNPC。

イベント/条件

  • 話しかけると rumor.fighters_info.grandpaA=true

  • メッセージ表示。

評価との関係

  • 直接加点なし(格闘家加入→仲間増加の導線)。


おばあさんB

{active:true, name:"おばあさんB", sprite:"granny2", stage:4, x:3,y:1, solid:true, talk:function(){ rumor.fighters_info.grandmaA=true; showMsg("おばあさん","たまにいるパンプキンマンはどこかにアーマーを落としたらしい。"); }},

役割

  • 格闘家条件用の噂フラグ+パンプキンマン関連のヒント担当。

イベント/条件

  • 話しかけると rumor.fighters_info.grandmaA=true

  • メッセージ表示。

評価との関係

  • 直接加点なし(パンプキンマン加入→仲間増加の導線)。


おじいさんB

{active:true, name:"おじいさんB", sprite:"oldman1", stage:4, x:2,y:8, solid:true, talk:"探し物は案外近くにあったりするもんじゃ。"},

役割

  • 会話担当。

イベント/条件

  • 条件なし。固定メッセージのみ。

評価との関係

  • 加点なし。


メイド1

{active:true, name:"メイド1", sprite:"maid1", stage:4, x:12,y:1, solid:true, talk:function(){ if(!hasItem("侍の心得")){ addItem("侍の心得"); showMsg("メイド","『侍の心得』をどうぞ。"); } else{ showMsg("メイド","心得は役に立ってる?"); } }},

役割

  • アイテム「侍の心得」配布(侍B加入の前提アイテム)担当。

イベント/条件

  • 初回:侍の心得 を入手。

  • 2回目以降:会話。

評価との関係

  • 直接加点なし(侍B加入→仲間増加の導線)。


メイド2

{active:true, name:"メイド2", sprite:"maid2", stage:4, x:13,y:1, solid:true, talk:function(){ if(!hasItem("古い杖B")){ addItem("古い杖B"); showMsg("メイド","古い杖だけど、これあげるわ"); } else{ showMsg("メイド","さて、帰らなきゃ"); } }},

役割

  • アイテム「古い杖B」配布(僧侶B加入の前提アイテム)担当。

イベント/条件

  • 初回:古い杖B を入手。

  • 2回目以降:会話。

評価との関係

  • 直接加点なし(僧侶B加入→仲間増加の導線)。


犬2

{active:true, name:"犬(港)", sprite:"dog2", stage:4, x:8,y:8, solid:true, talk:function(){ if(!hasItem("短剣B")){ addItem("短剣B"); showMsg("犬","ワン!(『短剣B』を落とした)"); } else{ showMsg("犬","ワン!"); } }},

役割

  • アイテム「短剣B」配布(盗賊B加入の前提アイテム)担当。

イベント/条件

  • 初回:短剣B 入手。

  • 以降:鳴くだけ。

評価との関係

  • 直接加点なし(盗賊B加入→仲間増加の導線)。


猫1

{active:true, name:"猫(港)", sprite:"cat1", stage:4, x:4,y:4, solid:true, talk:function(){ if(!hasItem("魔法の杖B")){ addItem("魔法の杖B"); showMsg("猫","……(コトッ)『魔法の杖B』を落とした。"); } else{ showMsg("猫","ニャー。"); } }},

役割

  • アイテム「魔法の杖B」配布(魔法使いB加入の前提アイテム)担当。

イベント/条件

  • 初回:魔法の杖B 入手。

  • 以降:鳴くだけ。

評価との関係

  • 直接加点なし(魔法使いB加入→仲間増加の導線)。


僧侶B

{active:true, name:"僧侶B", sprite:"monk2", stage:4, x:18,y:8, solid:true, talk:function(){ if(!hasItem("古い杖B")){ showMsg("僧侶B","その杖…どこかにあるはずだ。"); return; } if(!inParty("僧侶B")){ showChoice("僧侶B","その杖…縁がある。共に行こうか。",["はい","いいえ"],(i)=>{ if(i===0){ addParty("僧侶B"); showMsg("僧侶B","祈りは道を照らす。"); } else{ showMsg("僧侶B","祈りが必要になったら、また来るといい。"); } }); }else{ showMsg("僧侶B","もう仲間になっている。"); } } },

役割

  • 「古い杖B」連動の仲間加入イベント担当(僧侶枠)。

イベント/条件

  • 前提:古い杖B 所持。

  • 未所持:「その杖…どこかにあるはずだ。」

  • 所持&未加入:選択肢「はい」で加入。

  • 加入後:「もう仲間になっている。」

評価との関係

  • スコア加点対象。


僧侶C

{active:true, name:"僧侶C", sprite:"monk3", stage:4, x:1,y:4, solid:true, talk:function(){ if(!hasItem("ペンダントC")){ showMsg("僧侶C","ペンダントの光を感じない…。"); return; } if(!inParty("僧侶C")){ showChoice("僧侶C","ペンダントが光っている。私を仲間にするか?",["はい","いいえ"],(i)=>{ if(i===0){ addParty("僧侶C"); showMsg("僧侶C","私も手伝おう。"); } else{ showMsg("僧侶C","その光を大切にするのだ。"); } }); }else{ showMsg("僧侶C","もう仲間になっている。"); } } },

役割

  • 「ペンダントC」連動の仲間加入イベント担当(僧侶枠)。

イベント/条件

  • 前提:ペンダントC 所持。

  • 未所持:「ペンダントの光を感じない…。」

  • 所持&未加入:「はい」で加入。

  • 加入後:「もう仲間になっている。」

評価との関係

  • スコア加点対象。


衛兵

{active:true, name:"衛兵(港)", sprite:"guard3", stage:4, x:8,y:4, solid:true, talk:"町で聞き込みをしよう。"},
{active:true, name:"衛兵(港B)", sprite:"guard2", stage:4, x:12,y:8, solid:true, talk:"色々と調べてみるといいぞ。"},

役割

  • 誘導(聞き込み推奨)担当。

イベント/条件

  • 条件なし。

評価との関係

  • 加点なし。




ステージ8


村人(A、B)

{active:true, name:"村人(テントA)", sprite:"vill4", stage:8, x:7,y:1, solid:true, talk:function(){ rumor.fighters_info.tentGuy=true; showMsg("村人","格闘家は3人いるらしい。"); }},
{active:true, name:"村人(テントB)", sprite:"vill5", stage:8, x:8,y:1, solid:true, talk:"格闘家は何かを待っているらしい。"},

役割

  • 格闘家加入条件(噂3点セット)を満たすNPC。

イベント/条件

  • 話しかけると rumor.fighters_info.tentGuy=true

評価との関係

  • 直接加点なし(格闘家加入→仲間増加の導線)。


犬1

{active:true, name:"犬(テント)", sprite:"dog1", stage:8, x:17,y:8, solid:true, talk:function(){ if(!hasItem("魔法の帽子C")){ addItem("魔法の帽子C"); showMsg("犬","ワフッ!(袋)『魔法の帽子C』入手!"); } else{ showMsg("犬","ワフッ!"); } }},

役割

  • アイテム「魔法の帽子C」配布(魔法使いC加入の前提)担当。

イベント/条件

  • 初回:魔法の帽子C 入手。

  • 以降:鳴くだけ。

評価との関係

  • 直接加点なし(魔法使いC加入→骸骨王条件にも関与)。


猫2

{active:true, name:"猫(テント)", sprite:"cat2", stage:8, x:4,y:4, solid:true, talk:function(){ if(!hasItem("ペンダントC")){ addItem("ペンダントC"); showMsg("猫","フニャ。(『ペンダントC』入手)"); } else{ showMsg("猫","フニャ。"); } }},

役割

  • アイテム「ペンダントC」配布(僧侶C加入の前提)担当。

イベント/条件

  • 初回:ペンダントC 入手。

  • 以降:鳴くだけ。

評価との関係

  • 直接加点なし。


盗賊A

{active:true, name:"盗賊A", sprite:"rogue1", stage:8, x:1,y:8, solid:true, talk:function(){ if(!hasItem("短刀A")){ showMsg("盗賊A","鋭い短刀がほしい"); return; } if(!inParty("盗賊A")){ showChoice("盗賊A","短刀A。気に入った。くれるのか?",["はい","いいえ"],(i)=>{ if(i===0){ addParty("盗賊A"); showMsg("盗賊A","手伝ってやろう。"); } else{ showMsg("盗賊A","なかなか良いものが見つからないな。"); } }); }else{ showMsg("盗賊A","もう仲間になっている。"); } } },

役割

  • 「短刀A」連動で加入する盗賊枠。

イベント/条件

  • 前提:短刀A 所持(ステージ1のタイル73取得で入手)。

  • 未所持:「鋭い短刀がほしい」

  • 所持&未加入:「はい」で加入。

  • 加入後:「もう仲間になっている。」

評価との関係

  • スコア加点対象。


盗賊B

{active:true, name:"盗賊B", sprite:"rogue2", stage:8, x:12,y:4, solid:true, talk:function(){ if(!hasItem("短剣B")){ showMsg("盗賊B","短剣が欲しい。"); return; } if(!inParty("盗賊B")){ showChoice("盗賊B","短剣B、良いものだ。渡してくれるか?",["はい","いいえ"],(i)=>{ if(i===0){ addParty("盗賊B"); showMsg("盗賊B","手伝ってやる。"); } else{ showMsg("盗賊B","もう少し探すか。"); } }); }else{ showMsg("盗賊B","もう仲間になっている。"); } } },

役割

  • 「短剣B」連動で加入する盗賊枠。

イベント/条件

  • 前提:短剣B 所持(ステージ4の犬(港)で入手)。

  • 未所持:「短剣が欲しい。」

  • 所持&未加入:「はい」で加入。

  • 加入後:「もう仲間になっている。」

評価との関係

  • スコア加点対象。


戦士G

{active:true, name:"戦士G", sprite:"warrior8", stage:8, x:1,y:1, solid:true, talk:function(){ if(!rumor.allWarriorG()){ showMsg("戦士G","……"); return; } if(!hasItem("大剣G")){ showMsg("戦士G","大剣が必要だ。話はそれからだ。"); return; } if(!inParty("戦士G")){ showChoice("戦士G","剣は通じ合う。共に行くか。",["はい","いいえ"],(i)=>{ if(i===0){ addParty("戦士G"); showMsg("戦士G","よしいこう。"); } else{ showMsg("戦士G","ならば、ここで待とう。"); } }); }else{ showMsg("戦士G","もう仲間になっている。"); } } },

役割

  • 「噂2つ+大剣G」で加入する戦士枠(条件付き加入)。

イベント/条件

  • 前提1:rumor.allWarriorG() が true
    (城内の衛兵2人:rumor.warriorG_info.guardA/guardB が両方 true)

  • 前提2:アイテム「大剣G」所持(ステージ4の木箱調べで入手)

  • 条件不足:

    • 噂不足:「……」

    • 大剣不足:「大剣が必要だ。話はそれからだ。」

  • 条件満たす&未加入:「はい」で加入。

評価との関係

  • スコア加点対象。


戦士H

{active:true, name:"戦士H", sprite:"warrior9", stage:8, x:6,y:8, solid:true, talk:function(){ if(!rumor.allWarriorH()){ showMsg("戦士H","……"); return; } if(!hasItem("長剣H")){ showMsg("戦士H","長剣が要る。"); return; } if(!inParty("戦士H")){ showChoice("戦士H","剣を試そう。行くか?",["はい","いいえ"],(i)=>{ if(i===0){ addParty("戦士H"); showMsg("戦士H","よしいこう。"); } else{ showMsg("戦士H","なにかあったら、また来い。"); } }); }else{ showMsg("戦士H","もう仲間になっている。"); } } },

役割

  • 「噂2つ+長剣H」で加入する戦士枠(条件付き加入)。

イベント/条件

  • 前提1:rumor.allWarriorH() が true
    (ステージ5の村人A/B会話で rumor.warriorH_info.villA/villB を両方 true)

  • 前提2:アイテム「長剣H」所持
    (ステージ5の村人A/B会話後に giveLongSwordHIfReady() が走り、揃うと入手)

  • 条件不足:

    • 噂不足:「……」

    • 長剣不足:「長剣が要る。」

  • 条件満たす&未加入:「はい」で加入。

評価との関係

  • スコア加点対象。



参考文献・引用サイト

ぴぽや倉庫
ドット絵世界
DOT  ILLOST
効果音ラボ