Files
ashen-realms/docs/playable-slices/0.9-First-Quest-and-Bag-Tutorial.md
Bastian Wagner 987242541d inventory
2026-08-21 12:52:44 +02:00

322 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Ashen Realms Playable Slice 0.9
## First Quest & Loot-Bag Tutorial
**Status:** Implementation Specification
**Depends on:** Slice 0.8.5
**Purpose:** Introduce quests, NPC-directed progression, bag capacity and the merchant loop through one small coherent tutorial chain.
---
## 1. Goal
This slice should teach several systems without a conventional tutorial popup sequence.
The player learns naturally that:
- NPCs provide direction
- monster goods must be carried
- carrying capacity matters
- merchants can help
- reputation affects relationships/offers
- hunting goods can later be exchanged for progression
The quest should feel like world interaction, not a checklist tutorial.
---
## 2. Quest Concept
Working quest title:
**Trouble Beyond the Gate**
Quest-giver:
**South Gate Warden**
Use an existing named gate NPC if one has already been implemented. Do not create a duplicate NPC merely because this document uses a generic title.
Merchant:
**Borin, Quartermaster** or the existing Graufurt merchant.
---
## 3. Narrative Flow
### Step 1 Speak with the South Gate Warden
The warden is concerned about increasingly aggressive scavengers and raiders beyond the gate.
Player-facing English example:
> "The road has gone bad. Start small. Bring me five Ashen Pelts from the rats beyond the gate. I want to know what the ash is doing to them."
Objective:
```text
Collect 5 Ashen Pelts
```
---
## 4. Capacity Problem
The player currently has no Hide Bag.
Default HIDE capacity is 1.
After collecting the first Ashen Pelt:
```text
Ashen Pelts 1 / 1
Hide capacity reached.
```
The quest remains at `1 / 5`.
The game should now provide a clear next action rather than leaving the player confused.
Suggested quest update:
```text
You cannot carry enough pelts. Return to the South Gate Warden.
```
Do not secretly increase capacity for the quest.
---
## 5. Referral to the Merchant
On returning, the warden acknowledges the problem and refers the player to Borin.
Example:
> "Right. You're not equipped for hauling spoils yet. Go see Borin in Graufurt. Tell him I sent you. He'll complain, but he'll give you something useful."
Set a persisted unlock/referral flag, for example:
```text
referred-by-south-gate-warden
```
New objective:
```text
Speak with Borin in Graufurt
```
---
## 6. Merchant Interaction
Borin normally would not provide the bag at the player's current reputation.
His dialogue should make the relationship system visible.
Example:
> "I don't know you, and I don't hand out gear to every wanderer who walks in here."
Then after recognizing the referral:
> "But the South Gate Warden sent you. Fine. Take this. Bring it back full and make it worth my trouble."
Grant:
**Basic Hide Bag**
```text
Category: HIDE
Capacity: 5
```
The grant should use the quest/referral exception supported by Slice 0.8.5.
---
## 7. Continue the Hunt
The player can now carry five HIDE-category goods.
Objective returns to:
```text
Collect 5 Ashen Pelts
```
Important:
- an already-owned first pelt still counts
- the player should need four more, not five more
- the bag capacity view changes immediately to `1 / 5`
---
## 8. Quest Turn-In
The player returns to the South Gate Warden with five Ashen Pelts.
The quest consumes the required five pelts.
The warden explains the normal long-term loop:
> "Good. That's enough for me. From now on, take hides and trophies to Borin. He'll pay for useful spoils, and word gets around when you keep the roads clear."
This line connects:
- monster loot
- merchant exchange
- Silver
- regional reputation
- World Renown
without needing a separate tutorial screen.
---
## 9. Quest Rewards
The main reward of this quest is the **Basic Hide Bag** and system knowledge.
Optional one-time rewards may include:
- small regional reputation increase
- small World Renown milestone increase
- quest completion flag
Avoid a large Silver reward that undermines the merchant trade loop.
No XP reward.
---
## 10. Minimal Quest System Requirements
The system must support at least:
- quest definition
- quest acceptance
- ordered objectives
- item collection progress
- NPC interaction objective
- persisted completion
- quest flags/unlock flags
- item consumption on turn-in
- one-time rewards
Do not build a full branching narrative engine.
A simple step-based quest state machine is sufficient.
---
## 11. Quest State Safety
The flow must not softlock when:
- player already owns one or more Ashen Pelts before accepting
- player sells/trades pelts while quest is active
- player disconnects during a quest step
- bag was already obtained through development data
- player tries to receive the referral bag twice
Define deterministic behavior.
Recommended:
- objectives derive progress from current owned quantity where appropriate
- quest item consumption validates quantity at turn-in
- bag grant is idempotent
- referral flag persists
---
## 12. UI Requirements
At minimum:
### NPC / Local View
- quest available marker
- quest in progress marker
- quest turn-in marker
- Talk interaction
### Quest UI
Show:
- title
- short description
- current objective
- progress
Example:
```text
Trouble Beyond the Gate
Collect Ashen Pelts 1 / 5
You cannot carry enough pelts. Return to the South Gate Warden.
```
### Bag UI
When the bag is granted:
```text
New Loot Bag
Basic Hide Bag
Hide Capacity: 5
```
---
## 13. Tests
- quest can be accepted only once in active state
- first pelt updates objective to 1/5
- no bag blocks carrying second HIDE item
- return step activates correctly
- referral flag is set
- merchant grants Basic Hide Bag once
- capacity becomes 5
- previously owned pelt remains counted
- five pelts allow turn-in
- turn-in consumes five pelts
- quest completes and cannot reward bag repeatedly
---
## 14. Acceptance Criteria
- [ ] One complete NPC quest chain is playable.
- [ ] The quest intentionally exposes the default 1-item carrying limit.
- [ ] The player is directed back instead of softlocked.
- [ ] A persisted merchant referral is created.
- [ ] Merchant grants Basic Hide Bag because of the referral.
- [ ] Hide capacity becomes 5.
- [ ] Player can collect five Ashen Pelts.
- [ ] Turn-in consumes the pelts and completes the quest.
- [ ] NPC explains that future goods should be traded to the merchant.
- [ ] Quest grants no XP.
- [ ] All dialogue/UI text is English.
---
## 15. Out of Scope
Do not implement:
- branching quest choices
- voice acting
- cinematic dialogue
- daily quests
- repeatable bounty framework
- quest sharing
- party quest progress
- large quest journal taxonomy