Identity
| WML ID | 16_The_Kalian |
|---|---|
| Default next scenario | 18_A_Spy_in_the_Woods |
| Quest overrides | 17a, 17b, 17c, or 17d |
| Map | 16_The_Kalian.map, 27 × 27 hexes |
| Theme / schedule | Cutscene_Minimal, afternoon |
| Carryover | 100% through every hub departure |
| Archetype | Reusable quest hub / diplomatic council |
|---|---|
| Story importance | Critical |
| WML complexity | Very high state-driven dialogue |
| Combat | None intended |
| Number of visits | Initial visit plus one return after each quest |
Purpose of the scenario
The Ka’lian is one scenario file used repeatedly as the campaign’s four-quest hub. On the first visit, the elven lords debate whether the refugees should be granted land. They agree to offer the plains north and south of the Great River only after Haldric completes four tasks.
After each quest, the campaign returns to the same map and file. The hub greets the player according to the quest just completed, summarizes only unfinished work, hides completed destinations from the choice menu, and changes the council’s evaluation according to num_done.
Map and council staging
The 27 × 27 map is a forest council clearing built from deciduous woodland, grass, villages, water, bridges, and a central elven castle arrangement. Haldric’s party is teleported into a compact audience formation, with Lady Dionli, Lord Logalmier, Lord Aryad, and Lord El’Isomithir positioned as the governing council.
| Character | Unit implementation | Council role |
|---|---|---|
| Lady Dionli | Campaign Autumn Shyde | Advocate for using and admitting the refugees |
| Lord Logalmier | Campaign cutscene wrapper around Elvish Champion | Skeptical senior lord; assigns dragon quest |
| Lord Aryad | Core Elvish Sharpshooter | Assigns troll-hole quest |
| Lord El’Isomithir | Core Elvish Marshal created as hero | Assigns cursed-isle quest |
| Prince Haldric | Noble Commander | Petitioner and quest chooser |
The four quests
| Flag | Scenario | Quest giver | Task premise |
|---|---|---|---|
the_dragon | 17a — The Dragon | Lord Logalmier | Defeat the Dragon of the Green Swamp and its saurian minions. |
a_beach | 17b — Lizard Beach | Lady Dionli | Stop Saurian–Naga metal trading on a nearby beach. |
troll_hole | 17c — Troll Hole | Lord Aryad | Clear a troll nest in the Brown Hills. |
cursed_isle | 17d — Cursed Isle | Lord El’Isomithir | Release the cursed souls of an elven clan on the Isle of Tears. |
Local option macros
Each quest option is defined once as a local macro. The option:
- Uses
[show_if]to appear only while its completion flag is 0. - Plays Haldric’s acceptance line.
- Ends the hub with no bonus and 100% carryover.
- Suppresses carryover report, linger mode, and replay save.
- Overrides
next_scenarioto the selected quest file.
#define DRAGON
[option]
label= _ "I think I’ll fight the dragon!"
[show_if]
[variable]
name=the_dragon
numerical_equals=0
[/variable]
[/show_if]
[command]
...
[endlevel]
result=victory
bonus=no
{NEW_GOLD_CARRYOVER 100}
carryover_report=no
linger_mode=no
next_scenario=17a_The_Dragon
replay_save=no
[/endlevel]
[/command]
[/option]
#enddef
Reusable hub macros
| Macro | Responsibility |
|---|---|
DRAGON, BEACH, HOLE, ISLE | Define individual destination options. |
QUEST_CHOICES | Places all currently available options into one Haldric message. |
QUESTS | Has each lord describe only quests whose completion flag is still 0. |
GREET | Uses last_done to play a quest-specific return greeting. |
All seven local macros are undefined after the scenario file, preventing them from leaking into later preprocessor scope.
Visit progression
num_done | Council behavior |
|---|---|
| 0 | Full first council: refugee petition, land debate, four-quest agreement, complete quest list and menu. |
| 1 | Quest-specific greeting, cautious praise, remaining quest descriptions and menu. |
| 2 | Quest-specific greeting, stronger approval, remaining quests and menu. |
| 3 | Quest-specific greeting, near-acceptance, final remaining quest and menu. |
| 4 | Land grant, Pact of Mutual Aid, Commander Aethyr’s return, cleanup, and transition to Scenario 18. |
Final council outcome
After four quests, the lords grant the refugees the plains north of the Great River and the plains and hills to its south. Haldric establishes a Pact of Mutual Aid. The council warns that the new lands must be guarded and suggests future trade.
Commander Aethyr then arrives with Clearwater survivors and news that “old friends” have appeared. The hub clears all quest-state variables and moves to 18_A_Spy_in_the_Woods with 100% carryover.
State model
The exact writes performed by all four quests are catalogued in the Ka’lian quest comparison.
Why the default next scenario is 18
The scenario header declares next_scenario=18_A_Spy_in_the_Woods, but every incomplete-quest menu option overrides the destination inside its own [endlevel]. The default becomes relevant only for the completed-hub exit, where the source also states the Scenario 18 destination explicitly.
Custom council unit types
| Type | Implementation | Reason |
|---|---|---|
| Autumn Shyde | Campaign level-3 elf: 46 HP, 6 movement, neutral, healer usage, custom autumn sprite and Dionli portrait | Distinctive named council leader hidden from ordinary help listings |
| Elvish Champion Kalian | Inherits the complete core Elvish Champion and changes only the image | Cutscene-only visual identity for Lord Logalmier without duplicated stats or animations |
Assets and reuse
| Resource | Origin | Use |
|---|---|---|
| Dionli, Logalmier, Aryad, Isomithir, and Aethyr portraits | Campaign | Council identity and final messenger |
| Autumn Shyde and Kalian Champion sprites | Campaign | Distinctive council staging |
| Core Elvish Champion, Sharpshooter, Marshal behavior; forest terrain and villages | Core/shared | Most unit mechanics and the entire council environment |
traveling_minstrels.ogg | Core/shared | Hub music |
Scenario WML · Map source · Autumn Shyde · Kalian Champion wrapper · Arc study
Lessons for campaign authors
| Pattern | Reuse lesson |
|---|---|
| One scenario reused as a quest hub | Centralize branching, return dialogue, and final convergence. |
| Separate completion count from individual flags | Use the count for broad progression and flags for menu visibility and detailed text. |
Use last_done for return acknowledgement | Keep greetings specific without inspecting every quest’s internal variables. |
| 100% carryover through hub visits | Do not alter economy when the player is only selecting the next chapter. |
| Undefine local macros | Prevent scenario-local preprocessor helpers from polluting later files. |