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

フラグ・アイテム・仲間加入の「共通仕組み」
状態管理の基本
-
party… 仲間リスト(文字列の配列) -
items… 所持アイテム名の配列 -
flags… 進行状況を保存するフラグ用オブジェクト(連想配列)
-
仲間加入は
addParty("戦士A")のように文字列を push。 -
アイテム取得は
addItem("長剣A")など。
噂, rumor オブジェクト
-
複数NPCから噂を聞き終えたかどうかを管理する専用フラグ。
-
allMazeHeard()等で条件が揃ったかを判定。 -
条件成立時に
-
「戦士の証」付与+
unlocked_WarriorDEFを立てる -
「長剣H」付与 などのイベントを発動。
-
ステージ別:NPCのフラグ/アイテム/仲間加入まとめ
共通形式
-
「会話のみ」タイプ
→ フラグ変更なし、ただメッセージを出すだけ -
「噂フラグ」タイプ
→rumor.~~ = true;をセット -
「アイテム配布」タイプ
→addItem()+ 条件チェック -
「仲間加入イベント」タイプ
→inParty(),hasItem(),hasFlag()を組み合わせてshowChoice→addParty()
「完了工程」としてできていること
-
多マップ構造+境界ワープ+船移動
-
map0〜map11とneighborIndexによるステージ切り替え -
船/陸の判定、
seaTiles/landWalk/boatTiles
-
-
NPCシステム
-
ステージ・座標ベースの NPC 配置
-
npcAt()による取得とtalk関数実行
-
-
フラグ・アイテム・仲間管理
-
flags/items/partyの管理API -
噂トラッカー
rumorによる複合条件イベント -
1回きりイベント用
once()
-
-
イベントパズル&ルート構成
-
剣・杖・帽子・ペンダント・槍・鎧・魔術書などが
それぞれ特定の仲間やボス条件に紐づいている -
フィールド上の「武具ラック」「木箱」「井戸」などの調べイベント
-
-
セーブ/ロード/タイトルメニュー
-
localStorageによるセーブデータ保持 -
タイトル画面・ニューゲーム・コンティニュー
-
-
UI
-
メッセージウィンドウ・選択肢ウィンドウ
-
コンパクトなメニュー(仲間・アイテム ミニ一覧付き)
-
-
評価処理の骨組み
-
finalEvaluate()でスコア判定とランク(S/A/B/C)
-
次の工程(この先の発展案)
今のコードは「探索+会話+仲間集め+フラグ管理」が可能。
ゲームループとしての「エンディング到達」の実装
-
どこか特定マス(本ボス地点)に到達・討伐したタイミングで
-
bossCleared = trueを立てる -
finalEvaluate()を呼んで評価画面を表示
-
ステータス画面・仲間の説明追加
-
メニューに「仲間詳細」ページを追加して
BGM・効果音の追加
-
Audioオブジェクトを使って-
タイトルBGM
-
港町BGM
-
井戸やアイテム入手時の SE
-
操作まとめ(実装版)
移動:矢印キー
会話:X / Enter(プレイヤーの正面にNPCがいると発火)
メニュー:Esc(仲間/アイテム/セーブ/タイトルへ戻る)
船の乗降:Z(船タイル上で乗る、陸で降りる)
タイトル:Enter/X=ニューゲーム、C=コンテニュ




