Skip to content

cyan92128505/mini_rouge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

Roguelike Card Game


1. 產品概述

1.1 產品定位

一款單人 Roguelike 卡牌探索遊戲,玩家透過路徑選擇、資源管理、骰子判定來深入多層結構的關卡,最終擊敗 Boss 獲得勝利。

1.2 核心體驗

  • 策略決策:在有限資訊下做出路徑與資源分配選擇
  • 風險管理:平衡前進速度與資源消耗
  • 隨機挑戰:每局遊戲的關卡配置不同,提供重玩性
  • 成長感:角色在單局內逐漸變強

1.3 設計原則

  • 主題無關性:機制與主題分離,支援未來換皮
  • 素材可抽換:所有視覺元素可替換
  • 規則資料驅動:遊戲數值透過設定檔控制,非硬編碼

2. 遊戲規則

2.1 遊戲結構

遊戲 (Game)
└── 層 (Floor) × N(預設 4 層)
    └── 區域 (Area) × M(每層可配置)
        └── 節點 (Node) × 8(固定,二元樹狀路徑)
            └── 事件 (Event)

2.1.1 層 (Floor)

  • 遊戲包含多個層,層數可配置(預設 4 層)
  • 每層有獨立名稱與視覺主題(可換皮)
  • 層級越深,難度係數越高
  • 每層最後一個區域結束時出現 Boss

2.1.2 區域 (Area)

  • 每個區域包含固定 9 個節點
  • 節點以 3×3 網格排列,形成二元分支路徑
  • 玩家從左上角進入,右下角離開
  • 離開區域時強制消耗「維持資源」

2.1.3 節點路徑規則

[1] ──→ [2] ──→ [3]
 │       │       │ 
 ↓       ↓       ↓ 
[4] ──→ [5] ──→ [6]
 │       │       │ 
 ↓       ↓       ↓ 
[7] ──→ [8] ──→ [出口]
  • 玩家只能向右或向下移動
  • 不可回頭
  • 8 個節點中必經 4 個

2.2 資源系統

2.2.1 角色屬性

屬性 識別碼 說明 初始值 最大值
生命值 hp 歸零則遊戲失敗 角色設定 角色設定
護甲 armor 減免受到的傷害 角色設定 可配置
經驗值 xp 累積升級,增加骰子數 0 可配置
維持資源 supply 每次深入消耗,無則扣 HP 角色設定 可配置
貨幣 currency 交易媒介 角色設定 無上限

2.2.2 等級系統

  • 經驗值達到門檻時自動升級
  • 升級增加可用骰子數量
  • 等級門檻可配置
等級 1: 0 XP,  1 顆骰
等級 2: N XP,  2 顆骰
等級 3: M XP,  3 顆骰
...
  • 達到最大等級後,獲得的 XP 轉換為 HP(轉換率可配置)

2.2.3 消耗品 (Consumable)

  • 玩家最多持有 K 個消耗品(預設 2)
  • 同類型消耗品不可重複持有
  • 可主動丟棄以騰出空間

消耗品類型

類型 識別碼 使用時機 效果
攻擊型 A consumable_atk_a 戰鬥中 增加固定傷害
攻擊型 B consumable_atk_b 戰鬥中 使敵人暈眩 1 回合
攻擊型 C consumable_atk_c 戰鬥中 敵人持續掉血
防禦型 A consumable_def_a 任意時機 恢復 HP
防禦型 B consumable_def_b 任意時機 解除所有負面狀態
防禦型 C consumable_def_c 檢定前 自動通過檢定

2.3 負面狀態系統

狀態 識別碼 效果 解除方式
減值狀態 debuff_reduce 所有骰子結果 -1 特定消耗品、事件
持續傷害 debuff_dot 每次擲骰損失 HP 特定消耗品、事件
資訊遮蔽 debuff_blind 無法預覽下一個節點 特定消耗品、事件
  • 每種負面狀態最多 1 層,不可疊加
  • 負面狀態以「加入負面骰」方式實現

2.4 骰子系統

2.4.1 骰子類型

類型 用途
角色骰 玩家擲出,用於檢定與戰鬥
事件骰 決定事件結果分支
負面骰 負面狀態觸發時加入骰池

2.4.2 角色骰面值定義

面值 數值 特殊效果
1 0 失誤,無效
2 2 -
3 3 -
4 4 -
5 5 檢定成功符號
6 6 檢定成功符號 + 爆擊(可重擲累加)

2.4.3 技能檢定流程

1. 擲出所有角色骰 + 事件骰 + 負面骰(如有)
2. 處理負面骰效果
3. 檢查是否有任一角色骰顯示成功符號(5 或 6)
   - 有 → 檢定成功
   - 無 → 檢定失敗
4. 依據事件骰結果查表,獲得對應獎勵或懲罰

2.4.4 重擲機制 (Feat)

  • 戰鬥中可消耗資源重擲骰子
  • 消耗選項:XP 或 HP(數值可配置)
  • 每顆骰每回合限重擲一次
  • 重擲後結果強制接受(除非觸發爆擊)

2.5 戰鬥系統

2.5.1 戰鬥流程

初始化:設定敵人 HP(依當前層級查表)

迴圈:
  1. 玩家攻擊階段
     a. 擲骰(角色骰 + 負面骰 + 事件骰)
     b. 處理負面骰效果
     c. 移除失誤骰(值 ≤ 1)
     d. 處理爆擊(值 = 6 可重擲累加)
     e. 可執行重擲 (Feat)
     f. 加總傷害,扣除敵人 HP
     g. 可使用攻擊型消耗品
  
  2. 檢查敵人是否死亡 → 是則結束,獲得獎勵
  
  3. 敵人攻擊階段
     a. 查看事件骰結果
        - 1: 未命中
        - 2-5: 命中,傷害 = 敵人攻擊力 - 玩家護甲
        - 6: 命中且無視護甲
     b. 若命中,觸發敵人特殊能力(如有)
  
  4. 檢查玩家是否死亡 → 是則遊戲結束

重複直到一方 HP ≤ 0

2.5.2 敵人屬性

屬性 說明
HP 依層級不同,查表決定
攻擊力 依層級不同,查表決定
特殊能力 可選,命中後觸發

敵人特殊能力類型

能力 識別碼 效果
施加減值 ability_debuff_reduce 命中後給予減值狀態
施加持續傷害 ability_debuff_dot 命中後給予持續傷害狀態
施加資訊遮蔽 ability_debuff_blind 命中後給予資訊遮蔽狀態
無視護甲 ability_ignore_armor 攻擊無視護甲
削弱 ability_weaken 命中後扣除玩家 XP

2.6 事件系統

2.6.1 事件類型總覽

類型 識別碼 機制模式
戰鬥 event_combat 骰子戰鬥
Boss 戰鬥 event_boss 強化版戰鬥,可多階段
檢定獎勵 event_check_reward 成功得獎勵,失敗無事
檢定風險 event_check_risk 成功得獎勵,失敗受罰
純隨機 event_random 擲事件骰決定結果
資源轉換 event_convert 消耗 A 得 B
商店 event_shop 買賣交易
休息 event_rest 多選一恢復

2.6.2 事件詳細定義

戰鬥事件 (event_combat)
  • 遭遇敵人,進入戰鬥流程
  • 敵人數值依當前層級查表
  • 勝利後獲得獎勵(依層級查表)
Boss 戰鬥事件 (event_boss)
  • 每層最後必定出現
  • 可設定多階段(每階段獨立 HP)
  • 階段間不延續狀態效果
  • 擊敗後獎勵較豐厚
檢定獎勵事件 (event_check_reward)
執行技能檢定
├── 成功 → 依事件骰查表獲得獎勵
└── 失敗 → 無事發生

適用場景:寶箱、搜索

檢定風險事件 (event_check_risk)
執行技能檢定
├── 成功 → 依事件骰查表獲得獎勵,可 ±1 調整結果
└── 失敗 → 依事件骰查表承受懲罰

適用場景:陷阱、墳墓

純隨機事件 (event_random)
擲事件骰 → 查表決定結果(好壞皆有可能)
可選:消耗貨幣將結果 +1

適用場景:神殿、祭壇

資源轉換事件 (event_convert)
消耗指定資源 → 獲得對應效果
可選擇不執行

適用場景:餵食靈獸獲得技能

商店事件 (event_shop)
  • 顯示可購買物品清單
  • 可買可賣(賣價 < 買價)
  • 交易非強制

商品類型

商品 買價 賣價 效果
小型恢復 可配置 - 立即 +N HP
中型恢復 可配置 - 立即 +M HP
解除狀態 可配置 - 移除所有負面狀態
護甲 可配置 可配置 +1 護甲
消耗品 可配置 可配置 獲得指定消耗品
休息事件 (event_rest)
  • 提供多個選項,只能選一個
  • 同時刷新角色技能

選項類型

選項 效果
恢復 +N HP
補給 +M 維持資源
修練 +K XP

2.7 角色系統

2.7.1 角色定義

每個角色包含:

欄位 說明
識別碼 唯一 ID
名稱 顯示名稱(可換皮)
圖像 角色圖(可換皮)
初始 HP 起始生命值
最大 HP 生命上限
初始護甲 起始護甲
初始維持資源 起始 supply
初始貨幣 起始金錢
戰鬥技能 戰鬥中使用的主動技能
探索技能 非戰鬥時使用的主動技能

2.7.2 技能系統

  • 每個角色有 2 個技能:戰鬥技能 + 探索技能
  • 技能使用後進入冷卻,需透過休息事件刷新
  • 戰鬥技能取代該回合的攻擊

預設技能範例

技能 類型 效果
連擊 戰鬥 本次攻擊傷害加倍
元素爆發 戰鬥 使用任一攻擊型消耗品效果(不消耗)
預知 探索 翻開最多 3 張未知節點
閃避 探索 跳過當前節點不解決

2.8 回合流程

2.8.1 區域探索流程

準備階段:
1. 生成 8 個節點(從事件池隨機抽取)
2. 排列為 4×2 網格
3. 若當前區域需出現 Boss,放置於出口位置
4. 翻開起點節點
5. 放置玩家於起點

探索階段(重複):
1. 解決當前節點事件
2. 翻開下兩個可選節點(右方 + 下方)
   - 若有資訊遮蔽狀態,不翻開
3. 玩家選擇移動方向
4. 移動至新節點
5. 若到達出口,結束探索階段

深入階段:
1. 消耗 1 維持資源
   - 若無維持資源,改為損失 HP(數值可配置)
2. 刷新角色技能
3. 前進至下一區域
   - 若已是最後區域,進入下一層
   - 若已是最後一層最後區域,遊戲勝利

2.9 遊戲結束條件

條件 結果
玩家 HP ≤ 0 遊戲失敗
擊敗最終 Boss 遊戲勝利

3. 功能需求

3.1 遊戲核心功能

F-001: 新遊戲

  • 玩家可開始新遊戲
  • 選擇角色(從已解鎖角色中)
  • 初始化所有資源與狀態

F-002: 節點探索

  • 顯示當前區域的節點網格
  • 標示玩家位置
  • 標示已探索/未探索節點
  • 顯示可移動方向

F-003: 事件解決

  • 依據節點事件類型顯示對應 UI
  • 執行事件邏輯
  • 更新玩家資源狀態

F-004: 骰子擲骰

  • 視覺化擲骰動畫
  • 顯示每顆骰子結果
  • 支援重擲操作
  • 計算並顯示總結果

F-005: 戰鬥

  • 顯示敵人資訊(HP、攻擊力、特殊能力)
  • 執行攻擊階段
  • 執行敵人攻擊階段
  • 顯示傷害數值
  • 支援使用消耗品
  • 支援使用技能

F-006: 資源管理

  • 即時顯示所有資源數值
  • 顯示消耗品列表
  • 顯示負面狀態
  • 支援消耗品使用與丟棄

F-007: 角色技能

  • 顯示技能狀態(可用/冷卻中)
  • 執行技能效果
  • 技能冷卻管理

3.2 存檔功能

F-008: 自動存檔

  • 每次狀態變更後自動存檔
  • 存檔內容:
    • 當前層/區域/節點位置
    • 玩家所有資源狀態
    • 已探索節點狀態
    • 當前區域的節點配置
    • 遊戲進行時間

F-009: 讀取存檔

  • 啟動遊戲時檢查是否有存檔
  • 提供繼續遊戲選項
  • 完整還原遊戲狀態

F-010: 存檔管理

  • 顯示存檔資訊(角色、進度、時間)
  • 支援刪除存檔

3.3 紀錄與統計

F-011: 遊戲紀錄

  • 記錄每局遊戲結果
    • 使用角色
    • 最終結果(勝/敗)
    • 死亡原因(若失敗)
    • 到達層級/區域
    • 遊戲時長
    • 擊殺敵人數
    • 獲得總 XP/貨幣

F-012: 統計總覽

  • 總遊戲次數
  • 勝率
  • 各角色使用次數與勝率
  • 最高紀錄(最快通關、最高傷害等)

3.4 設定功能

F-013: 遊戲設定

  • 音效開關
  • 音樂開關
  • 動畫速度(正常/快速/跳過)

F-014: 遊戲資訊

  • 規則說明
  • 事件類型說明
  • 消耗品說明

4. 資料結構概要

此章節為 SDD 銜接用,定義核心資料實體

4.1 設定資料(靜態,可換皮)

4.1.1 主題包 (ThemePack)

ThemePack
├── id: String
├── name: String
├── floors: List<FloorConfig>
├── enemies: List<EnemyConfig>
├── bosses: List<BossConfig>
├── events: List<EventConfig>
├── consumables: List<ConsumableConfig>
├── characters: List<CharacterConfig>
└── assets: AssetMapping

4.1.2 樓層設定 (FloorConfig)

FloorConfig
├── id: String
├── name: String
├── order: Int
├── areaCount: Int
├── difficultyMultiplier: Float
└── bossId: String

4.1.3 敵人設定 (EnemyConfig)

EnemyConfig
├── id: String
├── name: String
├── imageKey: String
├── hpByFloor: Map<Int, Int>
├── damageByFloor: Map<Int, Int>
├── rewardXpByFloor: Map<Int, Int>
├── abilities: List<AbilityId>
└── isBoss: Boolean

4.1.4 事件設定 (EventConfig)

EventConfig
├── id: String
├── type: EventType
├── name: String
├── imageKey: String
├── weight: Int (抽取權重)
└── config: EventTypeSpecificConfig

4.1.5 消耗品設定 (ConsumableConfig)

ConsumableConfig
├── id: String
├── name: String
├── imageKey: String
├── category: ConsumableCategory (攻擊/防禦)
├── useTiming: UseTiming (戰鬥中/任意/檢定前)
└── effect: EffectConfig

4.1.6 角色設定 (CharacterConfig)

CharacterConfig
├── id: String
├── name: String
├── imageKey: String
├── initialHp: Int
├── maxHp: Int
├── initialArmor: Int
├── initialSupply: Int
├── initialCurrency: Int
├── combatSkill: SkillConfig
└── exploreSkill: SkillConfig

4.2 執行時資料(動態)

4.2.1 遊戲狀態 (GameState)

GameState
├── currentFloor: Int
├── currentArea: Int
├── currentNode: Int
├── playerState: PlayerState
├── areaState: AreaState
├── gameStatus: GameStatus (進行中/勝利/失敗)
└── statistics: RunStatistics

4.2.2 玩家狀態 (PlayerState)

PlayerState
├── characterId: String
├── hp: Int
├── maxHp: Int
├── armor: Int
├── xp: Int
├── level: Int
├── supply: Int
├── currency: Int
├── consumables: List<ConsumableId>
├── debuffs: List<DebuffId>
├── combatSkillAvailable: Boolean
└── exploreSkillAvailable: Boolean

4.2.3 區域狀態 (AreaState)

AreaState
├── nodes: List<NodeState> (8 個)
├── visitedNodes: Set<Int>
└── revealedNodes: Set<Int>

4.2.4 節點狀態 (NodeState)

NodeState
├── position: Int (0-7)
├── eventId: String
└── resolved: Boolean

4.3 持久化資料

4.3.1 存檔 (SaveData)

SaveData
├── id: String
├── timestamp: DateTime
├── gameState: GameState
└── playTime: Duration

4.3.2 遊戲紀錄 (GameRecord)

GameRecord
├── id: String
├── timestamp: DateTime
├── characterId: String
├── result: GameResult (勝/敗)
├── finalFloor: Int
├── finalArea: Int
├── playTime: Duration
├── enemiesDefeated: Int
├── totalXpGained: Int
├── totalCurrencyGained: Int
└── deathCause: String? (若失敗)

5. 畫面流程

5.1 畫面列表

畫面 識別碼 說明
標題畫面 screen_title 遊戲入口
角色選擇 screen_character_select 新遊戲時選角
主遊戲畫面 screen_game 探索與事件解決
戰鬥畫面 screen_combat 戰鬥專用
商店畫面 screen_shop 商店交易
暫停選單 screen_pause 遊戲內選單
遊戲結束 screen_game_over 顯示結果
紀錄總覽 screen_records 歷史紀錄與統計
設定畫面 screen_settings 遊戲設定

5.2 畫面流程圖

[標題畫面]
    ├── 新遊戲 → [角色選擇] → [主遊戲畫面]
    ├── 繼續遊戲 → [主遊戲畫面]
    ├── 紀錄 → [紀錄總覽]
    └── 設定 → [設定畫面]

[主遊戲畫面]
    ├── 遭遇戰鬥事件 → [戰鬥畫面] → 返回
    ├── 遭遇商店事件 → [商店畫面] → 返回
    ├── 暫停 → [暫停選單]
    │       ├── 繼續 → 返回
    │       └── 放棄 → [標題畫面]
    ├── HP 歸零 → [遊戲結束] (失敗)
    └── 擊敗最終 Boss → [遊戲結束] (勝利)

[遊戲結束]
    └── 確認 → [標題畫面]

6. 非功能需求

6.1 換皮支援

  • 所有顯示文字支援多語系 / 主題替換
  • 所有圖片資源透過 key 映射,支援整包替換
  • 遊戲數值透過設定檔載入,非硬編碼

6.2 離線遊玩

  • 遊戲完全離線可玩
  • 無需網路連線

6.3 存檔安全

  • 存檔資料加密儲存(防止簡易修改)
  • 存檔損壞時提供清除選項

7. 名詞對照表

供換皮時參考,以下為機制術語與預設顯示名稱對照

機制術語 預設顯示名稱 說明
hp 生命值 玩家生命
armor 護甲 傷害減免
xp 經驗值 升級用
supply 補給 維持資源
currency 金幣 交易貨幣
debuff_reduce 虛弱 骰子減值
debuff_dot 中毒 持續傷害
debuff_blind 迷惑 無法預覽
consumable 道具 消耗品統稱
feat 奮力一擊 重擲機制
floor 大區域
area 區域 中區域
node 房間 事件節點

8. 附錄

8.1 預設數值參考

以下數值供參考,實際由設定檔決定

等級門檻

等級 累計 XP 骰子數
1 0 1
2 6 2
3 12 3
4 18 4
5 24 5
6 (Max) 30 6

重擲消耗

資源 消耗量
XP 1
HP 2

維持資源耗盡懲罰

  • 損失 3 HP

消耗品上限

  • 2 個

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors