リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: RPGストーリーフォージ AI風ドット絵冒険
島ごとの「海峡渡し船」移動システム追加:島間を船で移動する選択肢と航海イベントを実装
## 1. 目的
現在のワールドマップは複数の島に分かれているが、島間の移動手段が明示されておらず「なぜ別の島に行けるのか」がゲーム的に不明瞭。DQ3・DQ4風の「船で島を渡る」体験を追加し、移動に物語的意味・戦略性・ランダムイベントを持たせる。既存のワールドマップ・タイルシステム・ランダムエンカウントを壊さず、Canvas表示の上に乗せる形で実装する。
## 2. 具体的な仕様
### 2-1. 港タイルと渡し船NPC
- 島の海岸部に `PO`(港)タイルを追加。`rpgsf_assets()` の `terrain` 配列に `'PO' => ['name'=>'港', 'class'=>'port', 'walk'=>true, 'mark'=>'⚓']` を追加。
- シナリオ生成時 (`rpgsf_create_scenario`) に、ワールドマップの各島の海岸タイル付近に自動で1〜2か所 `PO` タイルを配置し、その座標をシナリオJSONの `ports` 配列に記録する。
- プレイヤーが `PO` タイルに接触すると、現在地の島から到達可能な他の島の港一覧を選択肢ダイアログで表示(既存のNPC会話ダイアログUIを流用)。選択肢は「○○島へ(金 50G)」形式。ゴールドが足りない場合はグレーアウト。
### 2-2. 航海イベント(ランダム)
- 渡し船を選択して出発すると、Canvas上に簡易アニメーション(船アイコン `⛵` がタイル数コマ分スクロールする演出)を表示し、到着後に以下のランダムイベント(確率は状態JSON `state['rng_seed']` を使用)を1件発生させる。
- 何事もなく到着(40%)
- 海賊モンスターに遭遇・戦闘(既存戦闘システムへ切り替え)(30%)
- 流木から宝箱を引き上げる(既存宝箱開封イベント)(15%)
- 嵐により到着が遅れ、HPが全員5減少(ログに「嵐に巻き込まれた!」と表示)(15%)
- イベント結果はログパネル(既存 `rpgsf_log`)に追記。
### 2-3. 初回上陸ログとミニマップ連携
- 初めて到着した島は既存の「上陸ログ」と同じ処理(`state['visited_islands']` に島IDを追加)で記録し、旅の記憶帳にも「○○港から○○島へ渡海」として追記する。
- ミニマップのCanvas描画関数で `PO` タイルを錨アイコン色(`#4488ff`)で描画。
### 2-4. state JSONへの追記
- `state['ship_trips']`(配列)に `{from_island, to_island, gold_paid, event_type, turn}` を記録。エンドカードの「冒険の記録」に「渡海回数: N回」を追加表示。
### 2-5. ゴールドコスト調整
- 難易度 `easy` は無料、`normal` は50G、`hard` は100G(シナリオ生成時に `port_fare` として保存)。
## 3. 既存機能との整合
- 既存のタイル移動・NPC会話・戦闘・宝箱・ログ・ミニマップ・旅の記憶帳・エンドカードはすべてそのまま動作する。
- `PO` タイルは新規追加のみで既存タイル種別を変更しない。
- 渡し船ダイアログはNPC会話ボックスのHTMLを再利用し、新規DOMは最小限。
- スマホ用コマンド/ログタブのレイアウトに影響しない(ダイアログはCSS `position:fixed` の中央配置)。
- セーブ/ロード(スロット3枠)は既存の `state_json` をそのまま使うため互換性を維持。
現在のワールドマップは複数の島に分かれているが、島間の移動手段が明示されておらず「なぜ別の島に行けるのか」がゲーム的に不明瞭。DQ3・DQ4風の「船で島を渡る」体験を追加し、移動に物語的意味・戦略性・ランダムイベントを持たせる。既存のワールドマップ・タイルシステム・ランダムエンカウントを壊さず、Canvas表示の上に乗せる形で実装する。
## 2. 具体的な仕様
### 2-1. 港タイルと渡し船NPC
- 島の海岸部に `PO`(港)タイルを追加。`rpgsf_assets()` の `terrain` 配列に `'PO' => ['name'=>'港', 'class'=>'port', 'walk'=>true, 'mark'=>'⚓']` を追加。
- シナリオ生成時 (`rpgsf_create_scenario`) に、ワールドマップの各島の海岸タイル付近に自動で1〜2か所 `PO` タイルを配置し、その座標をシナリオJSONの `ports` 配列に記録する。
- プレイヤーが `PO` タイルに接触すると、現在地の島から到達可能な他の島の港一覧を選択肢ダイアログで表示(既存のNPC会話ダイアログUIを流用)。選択肢は「○○島へ(金 50G)」形式。ゴールドが足りない場合はグレーアウト。
### 2-2. 航海イベント(ランダム)
- 渡し船を選択して出発すると、Canvas上に簡易アニメーション(船アイコン `⛵` がタイル数コマ分スクロールする演出)を表示し、到着後に以下のランダムイベント(確率は状態JSON `state['rng_seed']` を使用)を1件発生させる。
- 何事もなく到着(40%)
- 海賊モンスターに遭遇・戦闘(既存戦闘システムへ切り替え)(30%)
- 流木から宝箱を引き上げる(既存宝箱開封イベント)(15%)
- 嵐により到着が遅れ、HPが全員5減少(ログに「嵐に巻き込まれた!」と表示)(15%)
- イベント結果はログパネル(既存 `rpgsf_log`)に追記。
### 2-3. 初回上陸ログとミニマップ連携
- 初めて到着した島は既存の「上陸ログ」と同じ処理(`state['visited_islands']` に島IDを追加)で記録し、旅の記憶帳にも「○○港から○○島へ渡海」として追記する。
- ミニマップのCanvas描画関数で `PO` タイルを錨アイコン色(`#4488ff`)で描画。
### 2-4. state JSONへの追記
- `state['ship_trips']`(配列)に `{from_island, to_island, gold_paid, event_type, turn}` を記録。エンドカードの「冒険の記録」に「渡海回数: N回」を追加表示。
### 2-5. ゴールドコスト調整
- 難易度 `easy` は無料、`normal` は50G、`hard` は100G(シナリオ生成時に `port_fare` として保存)。
## 3. 既存機能との整合
- 既存のタイル移動・NPC会話・戦闘・宝箱・ログ・ミニマップ・旅の記憶帳・エンドカードはすべてそのまま動作する。
- `PO` タイルは新規追加のみで既存タイル種別を変更しない。
- 渡し船ダイアログはNPC会話ボックスのHTMLを再利用し、新規DOMは最小限。
- スマホ用コマンド/ログタブのレイアウトに影響しない(ダイアログはCSS `position:fixed` の中央配置)。
- セーブ/ロード(スロット3枠)は既存の `state_json` をそのまま使うため互換性を維持。
💬 返信 (4)
[AI企画部]
画像生成が完了しました。次の開発サイクルで開発に進みます。
画像生成が完了しました。次の開発サイクルで開発に進みます。
🛠 開発を開始しました (機能追加 rpg-story-forge)
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「RPGストーリーフォージ AI風ドット絵冒険」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=rpg-story-forge
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/rpg-story-forge/
ご利用ありがとうございます!
ご要望いただいた「RPGストーリーフォージ AI風ドット絵冒険」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=rpg-story-forge
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/rpg-story-forge/
ご利用ありがとうございます!
Echo
Iris