{<!--
Before release, be sure that:
1. $debugMode is set to false
-->
(set: $liveCombat to false)
(display: "SetInitQuestData")
(display: "SetRanges")
(display: "SetTextStyles")
(display: "SetIpPoints")
(display: "SetHero")
(display: "SetInitialVariables")
(display: "SetDamages")
(set: $debugMode to false)
(if: $debugMode)[(display: "DebugData")]
(goto: "Welcome")}
=><=
<hr>
(link-undo: "Go back"){(set: $liveCombat to false, _viewedGuide to false)}<center>(text-style: "outline")+(text-size:1.2)+(text-color: black)[$gameTitle]
(transition:"fade") + (transition-delay:1s) + (transition-time: 6s)[<img src="./images/kyrathaba/charsMini.png">]
(text-size:0.8)[experience unlimited adventure in the world of Kyrathaba....]
//combat, quests, barter, craft system, leveling//
(text-size: 0.7)[Note: may not display well on<br>narrow device screens]
(if: (saved-games:) contains "SlotAA")[Load a saved game from the sidebar<br>or<br>(link-goto: "Start a new game", "StartGame")]
(else:)
[(if: (visited: "Guide"))[(link-goto: "Start the game", "StartGame")](else:)[(link-goto: "Start a new game", "SkipGuide")]]
</center>{(if: (passage:)'s tags contains "Malkovian")[
<center><img src="./images/kyrathaba/mountains1.png"</center>
](else-if: (passage:)'s tags contains "Dorn")[<center><img src="./images/kyrathaba/dorn.png"</center>](else-if: (passage:)'s tags contains "protagonistLeft")[<img align="left" vspace="5" hspace="15" src="./images/kyrathaba/protagonistProfileLeft.png">](else-if: (passage:)'s tags contains "meeting-Dorn")[<img align="left" hspace="5" vspace="5" src="./images/kyrathaba/dornProfileLeft.png">](else-if: (passage:)'s tags contains "dorn-bow-quiver")[<center><img src="./images/kyrathaba/bow-and-quiver.png"></center>](else-if: (passage:)'s tags contains "conifers")[<center><img src="./images/kyrathaba/winter-conifers.png"></center>](else-if: (passage:)'s tags contains "wolf-companion")[<img align="right" vspace=7 hspace=7 src="./images/kyrathaba/dorn-wolf.png">](else-if: (passage:)'s tags contains "UseCreditsHeader")[
(set: $gameTitle to "Chronicles of Kyrathaba")<br>
<center>Credits:<br>
(text-style: "outline")+(text-size:1.2)+(text-color: black)[$gameTitle]
<br>is authored by <a href="mailto:kyrathasoft@gmail.com?chroniclesofkyrathaba">Bryan Miller</a><br>
in Twine 2.6.2<br>
using Harlowe 3.3.5</center>
]
(unless: (passage:)'s name is "DesignNotes")[
<!--(unless: $liveCombat)[(display: "IncrementLife")]-->
]
(unless: $debugMode is true)[(set: $numturns to (history:)'s length)]
(if: $debugMode is true)[(set: $numturns = $numturns + 1)]
(if: $justLoaded is true)[
(set: $justLoaded to false)
You successfully loaded a saved game...<br><br>
]
}{(unless: (passage:)'s tags contains "no-footer")[
<center><!--(text-color:#d3d3d3)[Turns: $numturns]-->{
(unless: (passage:)'s tags contains "no-footer")[
(unless: (passage:)'s tags contains "donotshowinventory")[
(unless: (passage:)'s name contains "quests")[
(unless: (passage:)'s name contains "Status")[
(unless: (passage:)'s name contains "Credits")[
(unless: (passage:)'s name contains "inventory")[
___
<p><br>(set: $gotoPsg to (history:)'s last)
(link-goto: "View Inventory", "inventory")<br>
(link-goto: "View Journal", "YourJournal")<br>
(link-goto: "View Status", "Status")<br>
(link-goto: "View Quests", "quests")<br>
<!--closing bracket for unless inventory follows...-->]
<!--closing bracket for unless Credits follows...-->]
<!--closing bracket for unless Status follows...-->]
<!--closing bracket for unless quests follows...-->]
<!--closing bracket for unless donotshowinventory follows...-->]
<!--closing bracket for unless no footer follows...-->]
}</center>
(if: $liveCombat)[
(set: _heroMax to $hero's MaxLife, $lifetimeCombatTurns to it + 1)
(if: _heroMax > 999)[(set: _heroMax to (digit-format: "###,###", _lifeIP))]
(if: $heroLife > 999)[(set: $heroLife to (digit-format: "###,###", $heroLIfe))]
(if: $foeLife > 999)[(set: $foeLife to (digit-format: "###,###", $foeLife))]
(if: $foeMaxLife > 999)[(set: $foeMaxLife to (digit-format: "###,###", $foeMaxLife))]
<br><center><table border="1" bordercolor="lightgray" style="width:370px">
<tr style="background-color:lightgray">
<th colspan="2" backcolor="orange">(text-color:white)[Combat Life Totals]</th>
<tr>
<th rowspan="1">You</th>
<td>**$heroLife / _heroMax**</td>
</tr>
<tr>
<th rowspan="1">Your foe</th>
<td>**$foeLife / $foeMaxLife**</td>
</tr>
</center>
]
]
(unless: (passage:)'s name is "GameOver")[
(if: (passage:)'s tags contains "dead-end")[
<center>(display: "UnderDev")</center>
]
]
(append:?sidebar)[
<!--(if: (passage:)'s name is not "Welcome")[(icon-restart:)]-->
(set: _available to false)
(if: (saved-games:) contains "SlotAA")[(set: _available to true)]
(if: _available is true)[
(link: "Load game")[(load-game:"SlotAA")(set: $justLoaded to true)(seed: (current-time:))](else:)[Failed to load saved game]]
]
}You stand on the plains of Malkyr, the Malkovian mountain range stark against the horizon. The breeze is stiff enough that the cold cuts through (if: $inv contains "a woolen cloak")[your simple woolen cloak. ](else:)[ you like a knife. ]{(unless: $inv contains "a beryl")[There, in the snow, something glints with reflected sunlight.
=><=
<br>
[[investigate the glint->BerylChoice]]<br>
[[ignore it->Malkyr2]]
]}{(set: $index to 0, _wielded to $hero's EquippedWeapon, _off to $hero's EquippedOffhand, _torso to $hero's EquippedTorso, _hands to $hero's EquippedHandwear, _feet to $hero's EquippedFootwear, _eyes to $hero's EquippedEyewear, _neck to $hero's EquippedNeckwear, _shoulders to $hero's EquippedShoulderwear, _footwear to 0)
(set: _length to $inv's length, _heavy to $tooHeavyToWield's length)
(set: _item to "item", _sum to 0)
(if: _length > 1)[(set: _item to "items")]
(if: _length < 1)[(set: _item to "items")]
(if: $inv's length > 0)[
(set: $inv to (sorted: ...$inv))
(if: $inv's length > 12)[<center>(link-goto: "go back", (history:)'s last)</center><p>]
[**Inventory:**<p>]<output|
**Non-weapon items**<br>
(for: each _i, ...($inv))[
(unless: $isWeapon contains _i)[
(if: $isOffhand contains _i)[
(set: _sum to it + 1)
(print: _i)(if: _off contains _i)[ (**in use**)]<br>
]
(else-if: $isTorso contains _i)[
(set: _sum to it + 1)
(print: _i)(if: _torso contains _i)[ (**in use**)]<br>
]
(else-if: $isEyewear contains _i)[
(set: _sum to it + 1)
(print: _i)(if: _eyes contains _i)[ (**in use**)]<br>
]
(else-if: $isFootwear contains _i)[
(set: _sum to it + 1, _footwear to it + 1)
(print: _i)(if: _feet contains _i)[ (**in use**)]<br>
]
(else-if: $isHandwear contains _i)[
(set: _sum to it + 1)
(print: _i)(if: _hands contains _i)[ (**in use**)]<br>
]
(else-if: $isNeckwear contains _i)[
(set: _sum to it + 1)
(print: _i)(if: _neck contains _i)[ (**in use**)]<br>
]
(else-if: $isShoulderwear contains _i)[
(set: _sum to it + 1)
(print: _i)(if: _shoulders contains _i)[ (**in use**)]<br>
](else:)[
(set: _sum to it + 1)
(print: _i)<br>
]
]
]
(for: each _i, ...$tooHeavyToWield)[
(if: _i is "an orc's heavy battleaxe")[
(set: _brawny to $hero's Brawn)
(set: _req to $requiredBrawn's OrcHeavyBattleaxe)
(if: _brawny >= _req)[
(set: $tooHeavyToWield to it - (a: "an orc's heavy battleaxe"))
]
]
]
<br>**Weapon items**<br>
(for: each _i, ...($inv))[
(if: $isWeapon contains _i)[
(unless: $tooHeavyToWield contains _i)[(print: _i)(set: _sum to it + 1) (if: _wielded contains _i)[(**wielded**)]]<br>
]
]
(set: _heavies to 0)
(for: each _i, ...$tooHeavyToWield)[
(if: $inv contains _i)[
(set: _heavies to it + 1)
]
]
(if: _heavies > 0)[
<br>**Too Heavy to Wield:**<br>
(for: each _i, ...$tooHeavyToWield)[
(if: $inv contains _i)[(print: _i)<br>(set: _sum to it + 1)]
]
]
<p>Inventory size: _sum items<p>
<!--(live: 20ms)[(set: $index to it + 1)(append: ?output)[<br>Item $index: (subarray: $inv, $index, $index)](if: $index is $length)[(stop:)]]-->
](else:)[Your inventory is empty.]
(if: $rangerSkills's length > 0)[
<p>**Skills:**<p>
(for: each _i, ...$rangerSkills)[(print: _i)<br>]
]
=><=
(link-goto: "go back", (history:)'s last)
}<center><img src="./images/kyrathaba/beryl.png"></center>
A darkish stone with flecks of brilliance in its depths, this gemstone is finely cut. Clearly, someone lost this.
=><=
[[take the beryl->GrabBeryl]]
[[ignore it->Malkyr2]]You snatch the semi-precious gemstone from the hard-crusted snow, brushing ice crystals away to get a good look at it, before securing it in your (if: $inv contains "a belt pouch")[belt pouch.](else-if: $inv contains "a backpack")[backpack.](else:)[pocket.](unless: $inv contains "a beryl gemstone")[(set: $inv to it + (a: "a beryl gemstone"))]
=><=
[[travel onward->Malkyr2]]
[[head back toward Nickelton->TowardNickelton]]{(unless: $inv contains "a beryl gemstone")[Shaking your head, you blink your eyes, then rub them as you stumble onward through the snow. Snowblindness is a real threat. You need to find shelter or some goggles soon.]
(if: $inv contains "a beryl gemstone")[After debating with yourself, you realize you can only forge ahead. Perhaps you'll encounter a hostel, trapper, or pioneer who will take you in. The sounds of Whitehorse have now faded into the distance behind you.]
(if: (visited: "TowardNickelton"))[You screw your resolve to the sticking point. There's no returning to Nickelton for you. Forging ahead is dangerous, true, given the increasing snowfall, but you need the solitude, the time to think. You need to find shelter soon: it's getting colder, and the glare of the sun off the fallen snow threatens to blind you.]}
=><=
[[onward...->Malkyr3]]You pause in indecision, boots sinking up to mid-calf in the snow. You turn back for a moment, facing into the driving wind and falling snow. Head back to Nickelton? (if: $inv contains "a beryl gemstone")[Perhaps you could return to your psychiatrist, apologize and ask him to reconsider? You could offer him the beryl you found in the snow. The man's an affluent snot who loves jewelry, cufflinks, really anything shiny, after all.]
=><=
[[Yes, I'll return to Nickelton->TowardNickelton2]]
[[No, I'll continue into the snowstorm->Malkyr2]] =><=
<br>(set: $liveCombat to false)
<h3 align="center">Design Notes</h3>
TO-DO:
When using $debugMode set to true in order to start play in an advanced psg, be sure that the correct ``DebugQuest#`` passages have been displayed before the ``(go-to: $psg)`` at the bottom of psg ``DebugData``.
test combat when the hero's equipped weapon is "empty". The expectation is that the hero will inflict damage in range 0 to 1...
<=
Initiated this project on 22nd May 2023
**QuestCreation**
Step 1 of quest creation is to make sure that datamap $questsRewards, defined in psg SetInitQuestData, has been assigned the string defining the quest to be offered.
Step 2 of quest creation is to set $offeredQuest to one of the strings contained in datamap $questsRewards.
Step 3 of quest creation is to set $gotoPsg (tells the game which passage to goto upon quest acceptance/denial)
Step 4 of quest creation: in a psg such as Quest2Offer, or BeforeSmallCave, we will (display) the MakeQuestOffer passage.
**Important**
Red-colored passages are infrastructure for the game. Orange are quest offerings. Yellow are dead-ends that need to be rectified.
Anytime we make a change to a creature that can be fought in the game, we must update passages SetIpPoints and SetDamages. If the creature's range of Life points changes, also remember to update passage SetRanges. Regardless of whether we start play from the very beginning or instead from a debugMode passage, it's important that we ensure that passage SetInitialVariables gets displayed so that its variables are properly initialized.
Anytime we add a weapon to the player's inventory, it's important to add that weapon to array **``$isWeapon``** in passage TooHeavy. Improved inventory by categorizing items carried into Weapons and Non-Weapons, and we now include within the inventory the ability to equip specific weapons. Similarly, there is an array **``$isOffhand``** in that same passage that should be populated with any potential inventory items that could be off-handed. Additionally, if we add a new weapon to the game, be sure to consider its Brawn requirement and make additions to the code pertaining to array **``$tooHeavyToWield``** in passage SetInitialVariables.
Anytime we display passage PreCombatSetup, immediately after that display we should set a value for **``$foe``**.
Anytime I reports a word-count for the WIP, it's only for one particular path through the story, the path that I //myself// tend to choose when playtesting. Obviously, there are story paths not represented in this word-count.
7/19/2023: Sweet! WeaponSelect psg code is working well! At end of day, visits 1 and 2 of psg WolfSleeps are done, and I need to write dialogue for 3rd visit and a link to psg PredawnLight.
7/18/2023: added global variable ``$lifetimeQuestIP`` so we can track Improvement Points derived solely from quest completions.
7/17/2023: Corrected in psg FifthGobDown, where I'd used "a goblin's pinkie" instead of "a goblin pinkie". Added code to psg SoldBeryl to that protagonist gets paid by Dorn if the ranger purchases the beryl. Made correction in psg NightVisitor, changing 'eyes a glowing' to 'eyes glowing'. Went ahead and made passages WolfFriendly to WolfSleeps no-footer passages, since each can be visited multiple times. By moving line breaks (i.e., <br>) out of passages themselves after display 'unvis' links, and **into** 'unvis' itself, I now get properly formatted continuation links at the bottom of passages.
7/16/2023: I'm in the process of playing through, identifying passages where visiting a footer-linked passage causes problems, and marking those passages with the "no-footer" tag. Fixed bug where visiting Inventory from psg GrabBeryl kept on adding "a beryl gemstone" to inventory repeatedly. I think I've now fixed problems with footer links up through passage beginning 'Dorn eyes the sun's position.'
7/14/2023: Added a confirmatory Yes/No if new player (i.e., we don't see saved game data) doesn't manually choose to go to the game Guide.
7/13/2023: Corrected a tricky linking error in third visit to passage NoReservations. Last night's project work put narrative word-count at over 8,000.
7/11/2023: Wow, I spent this entire evening just coding in a single passage, BowUse. Almost 400 words. Considerable nesting, and I feel as if my TwineFu has leveled up.
7/10/2023: added a 'code' passage named 'unvis', which is short form 'unless visited'. It allows me to create 'unless visited' links whose text components are spoken by the main character, the protagonist. This will produce a cumulative savings in bytes in the game file.
7/08/2023: Revamped lots of passages for stylistic issues, correction of typos.
7/06/2023: Updated passage Next to incorporate an orc's heavy battleaxe; updated YouScoredAnAttack to include possibility of no weapon being equipped for the hero. Extended dialog between Dorn and the hero. I've updated the game so that returning to Dorn's cave after the initial goblin-killing spree leads to a hike the following day to the SmallCave.
7/05/2023: Moved the story forward a little bit. Added code to check the $tooHeavyToWield array and remove items from if it attribute requirements to wield those items has been satisfied.
7/04/2023: Today (Tues) I was off work for holiday. Was able to modify the code in passage Status so that an upward-pointing arrow acts as a visual cue when it appears next to Balance, Brain, or Brawn. It only appears when banked IP are sufficient to pay for an increase to the relevant attribute. Clicking on a raise-stat arrow takes you to a relevant passage (IncreaseBalance, IncreaseBrain, or IncreaseBrawn), which then explains your option and gives a Yes/No confirmation.
7/02/2023: I disabled the single point of Life regeneration each time the header passage fires.
7/01/2023: Did some playtesting. Corrected some formatting and grammatical mistakes. Consolidated pre-combat variable setters into passage PreCombatSetup (of which passage SetGoblinFightVars is a specific type). Added array **``$isTorso``** to passage SetInitialVariables. As with weapons, some torso armors have a Brawn and/or Balance requirement. Incorporated this into the inventory passage so that the 'a leather hauberk' armor can be equipped. Updated passage EnemyScoredAnAttack to take into account the small dwarven masterwork shield and the leather hauberk.
Right now, the game file, Kyrathaba.html, which is edited by the Twine desktop program, stands at 598 Kb (113 Kb of which is my own code and narrative, the rest being accounted for by the inner workings).
Added battle axe to relevant passages, including SetDamages and YouScoreAnAttack.
6/30/2023: Added a fight with an orc on the way to the hunter's cave to get warmed up. If you defeat the orc, you loot its heavy battleaxe.
6/29/2023: Coded some options for after either fighting or avoid the big goblin baddie, Nommy. Updated passage IncrementLife so that when Life increases, so does Mana, up to and including the allowed maximum.
Corrected a typo in passage SleepUnderTree.
6/28/2023: Shortened the code in passage WeaponSelect by substituting a for loop. Also, WeaponSelect is now deprecated because I've put its functionality into the Inventory itself.
Now, if the protagonist is not actively engaged in combat, a point of Life is restored each time that there is a passage transition. This is done via a line of code in the HeaderInfo passage:
**``(unless: $liveCombat)[(display: "IncrementLife")]``**
And I prevent that line of code from running when we're in the DesignNotes passage:
**
``(unless: (passage:)'s name is "DesignNotes")[
(unless: $liveCombat)[(display: "IncrementLife")]
]``
**
6/27/2023: Changed end of combat delay back to 5s; we need it for when we level up. Player now has option after killing five goblins to fight a unique goblin beserker and gain level 2. They may opt not to risk this combat, in which case they will need to kill a few more regular goblins before attaining level 2.
6/26/2023: Changed the delay at end of combat (before navigating to gotoPsg passage) from 5 seconds to 4 seconds. Added three passages, one of them psg IncrementLife.
6/25/2023 ``(8:22 PM EST): ``
WIP update: 3,841 words in the story
77 story-beat nodes
111 Twine passages
Story file @ 569 KB (my code is 89 KB {Design Notes 857 words ~6 KB})
The novel-game WIP can be played here: http://williammillerservices.com/twine/story/Kyrathaba.html
Fixed a logic error that permitted one to become trapped between one's backpack and inventory. Fixed a bug in Journey2 that permitted one to acquire the goblin short sword more than once. Added a period after descriptive sentence generated by displaying passage UpdateExperience. Changed the hare's weight from five pounds to four. Removed word underlining in passage NotCrazy. Tweaked the dialogue in passage LikeVideoGame. Because second goblin fight with Dorn is fifteen minutes after the first, in passage ContinueHunt1, I check to see if Life is less than MaxLife and if so, increment it a point: healing occurs fairly quickly in Kyrathaba.
Because I can't predict for sure how much damage the first goblin fight (launched from psg DornVsGoblins1) with Dorn may have caused the protagonist, I coded the following in passage ContinueHunt1:
**``(set: _ok to ($hero's Life / $hero's MaxLife) * 100)``**
I then, frankly, judged that if the protagonist is still at above 70% maximum Life, he'll be able to take on the second goblin all right. If that variable **``_ok``** gets assigned a value above 70, we proceed immediately to the second goblin fight by setting needed variables in the last few lines of psg CcontinueHunt1, and then navigating to psg Next. But, if the hero is at 70% max health or //less//, Dorn notices that the hero is sweaty, recognizes Arrival Syndrome, and quickly kills the goblin with an arrow before hurrying the hero to a safer location, i.e., by going to passage DoubleTime.
6/24/2023: Tried playing through test version of the game on my iPhone. Screen too narrow to correctly show Status screen. Best played on ipad, laptop, or desktop PC. Corrected a typo in passage HowSurvive.
6/23/2023: Played around with Tweego some this evening, but sadly I don't have the story format file for Harlowe's most up-to-date version. Updated DebugData so that testing the game in $debugMode takes us to ContinueHunt1 and sets variables as follows:{
<!-- (set: $hero's EquippedWeapon to "Short Sword (Masterwork)", $hero's Life to $hero's MaxLife)
(set: $liveCombat to false, $lifetimeCombatTurns to 12, $hero's XP to 300, $hero's Credits to 0, $hero's ImprovementPoints to 3, $hero's LifetimeEarnedImprovement to 13, $hero's Balance to 2)
(mock-turns: 65) -->}
6/22/2023: added choice in psg FirstGreenieDown in which member can decide whether to spend IP to raise Balance, so hero is more effective with masterwork short sword. I added a datamap, $num2Str, to psg SetInitialVariables and I use it in passages WordOfWarning and FirstGreenieDown to convert the numerical result of a calculation into the word for the number in question, i.e., 15 to 'fifteen', and 14 to 'fourteen'.
6/21/2023: made some syntax corrections, and fixed some spelling errors.
6/20/2023: added additional creatures to datamaps $ipReward and $xpReward in psg SetIpPoints. Added 'quest-offer' tags (color coded orange) to passages where quests are offered (usually via the MakeQuestOffer psg. It's important to keep //these// datamaps in sync with datamaps $atkModifier, $lowLife, and $highLife in the SetRanges psg. And all these must also be kept in sync with datamaps $lowDamage, $highDamage, and $dmgModifier in the SetDamages psg.
I also added a Winter Wolf to the datamaps in SetDamages, SetIpPoints, and SetRanges. And, I extended XP requirements for up through level 100 in psg CalcTNL.
6/18/2023: added experience points and TNL to Status screen; added WeaponSelect passage that enables user to switch which of multiple carried weapons is equipped. VERY IMPORTANT that you set global variable *gotoPsg* before linking to the WeaponSelect passage, so that the link goto macro with arguments 'back' and global *gotoPsg* at bottom of WeaponSelect will return user to correct passage.
**Engalin Vale** a valley south of the Falls (Pierkeron Falls) which are themselves south of Dorn's Cave.
**Pierkeron Falls** a 70' waterfall several miles south of ''Dorn's Cave'', where the confluence of ''Skullcleave Creek'', ''Battle Branch'', and ''Silver Spring'' run off the edge of an escarpment.
**IP Gains**
slay the rabbit for 1 IP {cumulative 1 IP}
psg BeneathConifer 2 IP {cumulative 3 IP}
psg Journey2 goblin fight for 2 (or 3) IP {cumulative 5 IP}
accept initial equipment for 3 IP in LetsGoHunting {cumulative 8 IP}
survey/quiz starting in Survey {cumulative 13 IP}
psg Predawn2 is completion of quest #3 for 5 IP {cumulative 18}
psg Dawn1Dorn gains Snowshoes skills and 1 IP {cumulative 19}
**QuestOffers/Completions**
1a. Malkyr3 via MakeQuestOffer (on turn #9)
1b. Quest 'obtain food and shelter' completed! (on turn #16)
2a. Quest2Offer via MakeQuestOffer initial equipment (on turn #49)
2b. Gaine 3 IP (turn #50)
3. LetsGoHunting (auto-accepted)
4. Quiz (all 5 right) 5 IP 250 XP (on turn #61)
5. Predawn2 nets you 5 IP for completing quest #3
**Save Points**
1. BeneathConifer
2. RabbitWithDorn
3. LetsGoHunting
4. WolfFriendly
5. Predawn2
6. Dawn1Dorn
**Game Over**
1. NickeltonProper
2. FleeDorn
**Dorn**
Dorn, Fell Ranger 7
LP: 960 MP: 740
Brawn: 8 Brain: 6 Balance: 11
Conditions: Nature's Cloak, One With the Forest, Trackless Step
=><=
(link-undo: "Go back")You begin slogging your way back toward Nickelton, the deep snow hampering your movements. You acted ... precipitously. Upset by your therapy session or not, that's no reason to go traipsing into the wilderness with a blizzard (link: "impending.")[impending.
//So I'll apologize, maybe see if I can catch a ride into Whitehorse.// You have an aunt there who might take you in, but you'll have to lie, convince her that you //are// taking your (link: "medications.")[medications.
//And keep your damned mouth shut about the dragon, Rilk//, you admonish yourself, remembering your psychiatrist's reaction in this afternoon's session.]]
(click-goto: "dragon", "TowardNickelton3")=><=
{(set: _turns to turns)
<!-- commenting this loop out because it quickly begins to lag the display of the Status passage; but anyway, I'll put this code at the very end of the game so player can get a more realistic count of story beats
(for: each _i, ...(history:))[
<!--(print: _i)<br>-->
(if: _i is "CalcTNL")[(set: _turns to it - 1)]
(if: _i is "Credits")[(set: _turns to it - 1)]
(if: _i is "DebugData")[(set: _turns to it - 1)]
(if: _i is "FooterInfo")[(set: _turns to it - 1)]
(if: _i is "GameOver")[(set: _turns to it - 1)]
(if: _i is "Guide")[(set: _turns to it - 1)]
(if: _i is "HeaderInfo")[(set: _turns to it - 1)]
(if: _i is "IncreaseBalance")[(set: _turns to it - 1)]
(if: _i is "IncreaseBrain")[(set: _turns to it - 1)]
(if: _i is "IncreaseBrawn")[(set: _turns to it - 1)]
(if: _i is "IncrementLife")[(set: _turns to it - 1)]
(if: _i is "inventory")[(set: _turns to it - 1)]
(if: _i is "MakeQuestOffer")[(set: _turns to it - 1)]
(if: _i is "PreCombatSetup")[(set: _turns to it - 1)]
(if: _i is "ProtagQuoteGoto")[(set: _turns to it - 1)]
(if: _i is "quests")[(set: _turns to it - 1)]
(if: _i is "SaveGame")[(set: _turns to it - 1)]
(if: _i is "SetCombatAwards")[(set: _turns to it - 1)]
(if: _i is "SetDamages")[(set: _turns to it - 1)]
(if: _i is "SetDebugInventory")[(set: _turns to it - 1)]
(if: _i is "SetDebugVisits")[(set: _turns to it - 1)]
(if: _i is "SetGoblinFightVars")[(set: _turns to it - 1)]
(if: _i is "SetFoeProperties")[(set: _turns to it - 1)]
(if: _i is "SetHero")[(set: _turns to it - 1)]
(if: _i is "SetHeroProperties")[(set: _turns to it - 1)]
(if: _i is "SetInitialVariables")[(set: _turns to it - 1)]
(if: _i is "SetInitQuestData")[(set: _turns to it - 1)]
(if: _i is "SetIpPoints")[(set: _turns to it - 1)]
(if: _i is "SetRanges")[(set: _turns to it - 1)]
(if: _i is "SkipGuide")[(set: _turns to it - 1)]
(if: _i is "Start")[(set: _turns to it - 1)]
(if: _i is "Status")[(set: _turns to it - 1)]
(if: _i is "TooHeavy")[(set: _turns to it - 1)]
(if: _i is "UpdateExperience")[(set: _turns to it - 1)]
(if: _i is "UnderDev")[(set: _turns to it - 1)]
(if: _i is "unvis")[(set: _turns to it - 1)]
(if: _i is "WeaponSelect")[(set: _turns to it - 1)]
]
-->
(set: $gotoPsg to (history:)'s 3rdLast, $weapon to $hero's EquippedWeapon, $offhand to $hero's EquippedOffhand, $torso to $hero's EquippedTorso, _brn to $hero's Brawn, _bra to $hero's Brain, _bal to $hero's Balance, _level to $hero's Level, _lifepool to $hero's Life, _maxlife to $hero's MaxLife, _manapool to $hero's Mana, _maxmana to $hero's MaxMana, _que to $quests's length, _com to $completedQuests's length, _xp to $hero's XP, _creds to $hero's Credits, _lifeIP to $hero's LifetimeEarnedImprovement, _bankedIP to $hero's ImprovementPoints)(set: _brawnUpIpNeeded to _brn * 10, _brainUpIpNeeded to _bra * 10, _balanceUpIpNeeded to _bal * 10)(if: _lifeIP > 999)[(set: _lifeIP to (digit-format: "###,###", _lifeIP)](if: _bankedIP > 999)[(set: _bankedIP to (digit-format: "###,###", _bankedIP)]
(display: "CalcTNL")
(if: $TNL > 999)[(set: $TNL to (digit-format: "###,###", $TNL))]
(if: $lifetimeCombatTurns > 999)[(set: $lifetimeCombatTurns to (digit-format: "###,###", $lifetimeCombatTurns))]
<center><table border="1" bordercolor="lightgray" style="width:400px">
<tr style="background-color:lightgray">
<th colspan="2" backcolor="orange">(text-color:white)[$protagName's Status]</th>
</tr>
<tr>
<td colspan="4">(if: (history:)'s last is "IncreaseBrawn")[(link-goto: "Go Back", $gotoPsg)](else-if: (history:)'s last is "IncreaseBrain")[(link-goto: "Go Back", $gotoPsg)](else-if: (history:)'s last is "IncreaseBalance")[(link-goto: "Go Back", $gotoPsg)](else:)[(link-undo: "Go back")]</td>
</tr>
<th rowspan="1">Equipped Weapon</th>
<td>**$weapon**</td>
<tr>
<tr>
<th rowspan="1">Equipped Off-Hand</th>
<td>**$offhand**</td>
</tr>
<tr>
<th rowspan="1">Equipped Torso</th>
<td>**$torso**</td>
</tr>
<th rowspan="1">Level</th>
<td>**_level**</td>
</tr>
<tr>
</tr>
<tr>
<th rowspan="1">Experience</th>
<td>**_xp**</td>
</tr>
<tr>
<th rowspan="1">Till Next Level</th>
<td>**$TNL**</td>
</tr>
<tr>
<th rowspan="2">Pools</th>
<td>Life **_lifepool / _maxlife**</td>
</tr>
<tr>
<td>Mana **_manapool / _maxmana**</td>
</tr>
<tr>
<th rowspan="3">Prime Attributes</th>
<td>Balance **_bal** (if: _bankedIP >= _balanceUpIpNeeded)[|raiseBalance>[<img src="./images/kyrathaba/raise-stat.png">](click: ?raiseBalance)[(go-to: "IncreaseBalance")]]</td>
</tr>
<tr>
<td>Brain **_bra** (if: _bankedIP >= _brainUpIpNeeded)[|raiseBrain>[<img src="./images/kyrathaba/raise-stat.png">](click: ?raiseBrain)[(go-to: "IncreaseBrain")]]</td>
</tr>
<tr>
<td>Brawn **_brn** (if: _bankedIP >= _brawnUpIpNeeded)[|raiseBrawn>[<img src="./images/kyrathaba/raise-stat.png">](click: ?raiseBrawn)[(go-to: "IncreaseBrawn")]]</td>
</tr>
<tr>
<th rowspan="2">Improvement Points</th>
<td>Lifetime Earned: **_lifeIP**</td>
</tr>
<tr>
<td>Banked Now: **_bankedIP**</td>
</tr>
<tr>
<th rowspan="2">Quests</th>
<td>Active **_que**</td>
</tr>
<tr>
<td>Complete **_com**</td>
</tr>
<tr>
<th rowspan="1">Turns</th>
<td>**(print: _turns)**</td>
</tr>
<tr>
<th rowspan="1">Combat Rounds</th>
<td>**$lifetimeCombatTurns**</td>
</tr>
<tr>
<th rowspan="1">Credits</th>
<td>**_creds**</td>
</tr>
<tr>
<td colspan="4">(if: (history:)'s last is "IncreaseBrawn")[(link-goto: "Go Back", $gotoPsg)](else-if: (history:)'s last is "IncreaseBrain")[(link-goto: "Go Back", $gotoPsg)](else-if: (history:)'s last is "IncreaseBalance")[(link-goto: "Go Back", $gotoPsg)](else:)[(link-undo: "Go back")]</td>
</tr>
</table>
<center>
}
{(unless: (visited: "MakeQuestOffer"))[
Thirty minutes later you are (if: $inv contains "a heavy parka")[perhaps another mile out onto the Malkovian Plain. Though your parka preserves you from the worst of the bitter cold, your ungloved hands are at risk of frostbite. ](else-if: $inv contains "a woolen cloak")[shivering badly, your woolen cloak insufficient protection from the harsh elements.] Your ungloved hands have gone numb. They are at risk of (link: "frostbite.")[frostbite.
=><=
(set: $offeredQuest to "obtain food and shelter", $gotoPsg to "Malkyr4")(go-to: "MakeQuestOffer")]]
(if: (visited: "MakeQuestOffer"))[
You stand upon the Malkovian Plain in a snowstorm(if: (count: $quests, "obtain food and shelter") > 0)[, having just accepted a quest to seek food and shelter. Your psychiatrist isn't going to be pleased to learn this. You've seen his frustration the last few sessions when you've mentioned //quests, dragons, improvement points// and whatnot. You're supposed to be ignoring this byproduct of your illness...<p>](else:)[, having just rejected a quest.<p>]
=><=
[[Continue deeper into the plains->Malkyr4]]
]}
{<center><img width=150 src="./images/kyrathaba/rabbit.png"></center>
Another hour has passed. You can no longer feel your hands, and your lips are chapped. (if: $hero's Life is 15)[You've lost a point of Life due to exposure.(set: $hero's Life to 14)] A large hare goes hopping by, leaving its tracks in the snow.
}
=><=
[[slay the rabbit->AttemptSlayRabbit]]{<!--no need to worry about rabbit armor or damage inflicted by knife; just see whether or not it hits, which is 100% likely -->
(set: _rabbitEvade to 2)
(set: _atk to (random: 1,6) + $hero's RangedRating, $reward to 1)
(if: _atk >= _rabbitEvade)[(text-style: "outline")[System Message:]<p>$gameMsg[Your knife flashes through the air as you reflexively make the throw. You SKEWER the large rabbit! The large rabbit is dead.
(display: "UpdateExperience")
(set: $lifetimeCombatTurns to it + 1, $inv to $inv - (a: "a hunting knife"))]
<p>A good toss, considering your hands are numb from the cold.<p>
=><=
[[collect the slain rabbit->CollectSlainRabbit]]](else:)[You miss your throw and the rabbit continues zigzagging hops and is soon indistinguishable against the white ground and the continuing snow fall.]}You recover your knife, cleanse it of blood in the fallen snow, then return it to your belt sheath. Hefting your kill, you estimate it at four pounds. You tie the hare to your belt by its hind feet. {(unless: $inv contains "a hunting knife")[(set: $inv to it + (a: "a hunting knife"))](unless: $inv contains "a dead rabbit")[(set: $inv to it + (a: "a dead rabbit"))]}<p>
=><=
[[Continue deeper into the plains->Malkyr5]]{
(set: $index to 0, _name to $hero's AltName)
(set: $length to $quests's length)
(set: _item to "item")
(if: $length > 1)[(set: _item to "items")]
(if: $length < 1)[(set: _item to "items")]
=><=
(if: $quests's length > 0)[
(set: $quests to (sorted: ...$quests))
[<h4 align="center">Active Quests ($length _item)</h4> ]<output|
(live: 20ms)[(set: $index to it + 1)(append: ?output)[<br>Quest $index: (subarray: $quests, $index, $index)](if: $index is $length)[(stop:)]]
](else:)[You currently have no active quests.]<p>
Completed quests: (if: $completedQuests's length is 0)[0: ](else:)[(print: $completedQuests's length)]<br>
(for: each _i, ...$completedQuests)[
(set: $quoff to _i)(set: _rwd to $questsRewards's $quoff)
(print: _i) ((print: _rwd) IP)<br>
]
<p>Lifetime IP earned from quests: (if: $lifetimeQuestIP < 1000)[$lifetimeQuestIP](else:)[(set: $lifetimeQuestIP to (digit-format: "###,###", $lifetimeQuestIP))]
(if: $completedQuests's length is 0)[<br>](else:)[<br>]
(link-goto: "go back", (history:)'s last)
}
{In the distance, obscured by the heavily falling snow, lies a darker area on the plain. You continue plodding toward [[it.->Malkyr6]]}{As you draw closer, the plain angles downslope somewhat. Are those //trees// in the [[distance?->Malkyr7]]}{Yes, you've found a copse of trees. You move beneath the eaves, enjoying the partial shelter they provide from the cutting wind. Some of these trees are conifers. A very large one has its lowest, thickly needle-clad limbs weighed down by drifted snow. //Hmm, I bet it's dry under there...//<p>
=><=
[[Dig your way in->BeneathConifer]]}{<!--turns is 17-->You dig your way through the snowdrift and into a surprisingly cozy space beneath the thickly-needled, snow-laden lowest limbs of the conifer.<p>
(set: _condMet to false)
(set: $reward to $questsRewards's $currentQuest)
(set: _msg to "Quest '$currentQuest' completed!")
(if: $quests contains $currentQuest)[(set: _condMet to true)(text-style: "outline")[System Message:]<p>$gameMsg[_msg]]
(if: _condMet is true)[(display: "UpdateExperience")](if:(save-game:"SlotAA"))[$gameMsg[**Game saved!**<p>]]
(if: (count: $quests, $currentQuest) > 0)[
(set: $quests to $quests - (a: $currentQuest))
(if: (count: $completedQuests, $currentQuest) < 1)[(set: $completedQuests to $completedQuests + (a: $currentQuest))]
(set: $lifetimeQuestIP to it + $reward)]
=><=
[[a short time later->ThawingOut]]
}
=><=
(link:"Save game")[(if:(save-game:"SlotAA"))[Game saved!](else:)[Sorry, I couldn't save your game.]]{<center><img src="./images/kyrathaba/protagonist.png"></center>
(if: visits is 1)[An hour goes by. You have slept, wrapped in a heavy woolen blanket from your pack. When you wake, the little remaining daylight that filters to your cozy den is only adequate to see shadows and half-tones. You are still sleepy. Your stomach growls. (set: _life to $hero's Life)(if: _life > 1)[(set: $hero's Life to (_life - 1)) Despite being relatively warm compared to an hour ago, you've lost another point of Life due to your extended exposure to the elements earlier this afternoon.<br>]]
(else:)[(if: $pills is 0 and (history:)'s last is "BottleOfPills")[You take the last Vraylar tablet, screw the lid onto the pharmacy bottle, and secure it in your backpack. //Well, that's that.// You'd been saving that last pill for several days. //Oh, who am I kidding? I've been refusing to take my meds.//<br>](if: (visited: "SleepUnderTree"))[Though still cold, you are no longer shivering. And the nap seems to have done you some good. (if: (visited: "AteProteinBar"))[Your stomach has quieted, thanks to the nut-and-honey packed protein bar. ]You feel (if: $backpack's Pills is 0)[clearer headed. The voices have faded to the faintest whispers...<br>](else:)[rested, yet your head is full of buzzing colors and whispering voices.<br>]]]
}
=><=
{[[root around in your backpack->RootInBackpack]]<br>
(unless: (visited: "SleepUnderTree"))[[[go back to sleep->SleepUnderTree]]](else:)[[[continue your journey->ContinueJourney]]]}
=><=
**Inside Your Backpack**
<=
* (if: $backpack's Pills > 0)[(link-goto: "a bottle of pills", "BottleOfPills")](else:)[(link-goto: "an empty pill bottle", "BottleOfPills")]
* (link-goto: "a journal", "YourJournal")
* (if: $backpack's ProteinBar > 0)[(link-goto: "a protein bar", "ProteinBar")](else:)[an empty protein bar wrapper]
* (if: $backpack's CigaretteLighter is 1)[(link-goto: "a cigarette lighter", "CigaretteLighter")](else:)[a small leather loop to hold a lighter]
* (if: $backpack's WoolBlanket is 1)[a neatly folded wool blanket](else:)[empty slot]
* (if: $backpack's Scrollcase1 is 1)[(unless: $mageSkills contains "Read Magic")[a scroll in a scroll tube (unusable)](else:)[a scroll in a scroll tube (link-reveal-goto: "cast it", "RootInBackpack")[(set: $backpack's Scrollcase1 to 0)]]](else:)[an empty scroll tube]
=><=
[[close backpack->ThawingOut]] You drowse off again, your body unaccountably tired.
=><=
[[when you awake...->ThawingOut]]<center><img src="./images/kyrathaba/pill-bottle.png"></center>
It's a pharmacy bottle. (if: $backpack's Pills is 1)[As you turn it in your hand, something rattles inside. ](else:)[The bottle seems empty. ]The bottle's label is partially effaced, but you know that it shows your name and birthdate, with instructions to take one 4.5 mg capsule of Vraylar each morning. The fill date was a month and three days ago.
Seeing the prescription bottle reminds you of your unpleasant psychiatrist appointment earlier today, where you shot your mouth off, told the doc you'd take your pills when you fucking //feel// like it. You sigh. He dismissed you as a patient and refused to refill your prescription. You left the clinic angry and defiant. The voices told you to head into the wilderness.
=><=
(if: $backpack's Pills is 1)[
(link: "swallow the last pill")[(set: $backpack's Pills to 0)(go-to: "ThawingOut")]]
(link-undo: "put pill bottle back in your backpack")
<center><img src="./images/kyrathaba/protein-bar.png"></center>
=><=
{(set: _ateIt to false)(if: $backpack's ProteinBar > 0)[(link-reveal-goto: "eat the protein bar", "AteProteinBar")[(set: $backpack's ProteinBar to 0, _ateIt to true)(if: $hero's Life < $hero's MaxLife)[(set: $hero's Life to $hero's Life + 1)]]
]<br>(link-goto: "go back", "RootInBackpack")}
{<!--this should NEVER be the first psg visited-->
<center>(if: $backpack's Pills < 1)[You bought this journal at The Common Good, in Whitehorse. It was the last fantasy-themed journal on the shelf, and you just had to have it. ](else:)[It's a beautiful adventurer's journal.]<br>
<img width=200 src="./images/kyrathaba/journal.png"></center>
(if: $journal's length > 0)[
(set: $index to 0)
(set: $length to $journal's length)(if: $length > 1)[<center>(link-undo: "back")</center><p>]
[<center><!--**Journal Entries**<img width=40 src="./images/kyrathaba/down-arrow.png">--></center>]<output|
(live: 20ms)[(set: $index to it + 1)(append: ?output)[<p>(subarray: $journal, $index, $index)](if: $index is $length)[(stop:)]]
](else:)[Your journal is empty.]}
=><=
(link-undo: "back"){(unless: $backpack's WoolBlanket is 1)[(set: $backpack's WoolBlanket to 1)]After resting(if: $backpack's ProteinBar < 1)[, eating,] and warming up, you begin to think about continuing your journey. (if: $backpack's Pills is 1)[Your head feels a bit swimmy, but not in an unpleasant fashion. ](else:)[You glance down at your woolen robe and, just for a moment, it flickers and you instead see that you are wearing an Eddie Bauer leather jacket.] You spy the slain rabbit lying next to the tree's trunk. (if: (visited: "SleepUnderTree"))[You //do// feel hungry after your lengthy nap(if: (visited: "AteProteinBar"))[, even considering the protein bar you ate earlier.](else:)[; in fact, you're ravenous. ]](unless: $backpack's CigaretteLighter is 1)[If only you had some means of kindling a cook fire...]<p>}
=><=
(if: $backpack's CigaretteLighter is 1)[[[cook the rabbit->CookRabbit]]<br>]
[[continue traveling->Journey2]](if: visits is 1)[After stowing a few belongings in your backpack, you emerge reluctantly from the snug shelter beneath the conifer tree. It has stopped snowing. There are perhaps twenty minutes of daylight left. Your peripheral vision gives you only a split second (link: "warning...")[warning as an injured goblin leaps from behind a nearby tree and attacks you! After a brief combat, you manage to stab it in the neck with your hunting knife.
=><=
<center><img width=200 src="./images/kyrathaba/goblin-short-sword.png"></center>
The dead goblin has a sword. (display: "UpdateExperience")(set: _banked to $hero's ImprovementPoints)Your Banked IP is now _banked.
<=
(click: "sword")[You take the goblin's crude but sharp short sword.<br>(set: $inv to $inv + (a: "a goblin short sword"))This crude blade can inflict more damage than your hunting knife.<br>Would you like to equip it? (link-reveal-goto: "Yes", "Journey3")[(set: $hero's EquippedWeapon to "a goblin short sword")] / (link-goto: "No", "Journey3")]
]](else:)[A dead goblin lies frozen in the (link-goto: "crusted snow", "Journey3").]
<center><img src="./images/kyrathaba/campfire.png"></center>
(if: ($inv contains "a dead rabbit"))[It takes some real work, but finally you have gathered enough sticks and dead branches. Using some of the dead, dry pine needles that blanket the ground around your camp beneath the conifer, you are able to get a small fire started(if: $backpack's CigaretteLighter is 1)[ using your cigarette lighter]. Soon, you are feasting on cooked rabbit, so hungry that you keep at it till you've gnawed all the meat off the bones. (if: $hero's Life < $hero's MaxLife)[(set: $hero's Life to it + 1)](unless: $inv contains "some rabbit bones")[(set: $inv to $inv + (a: "some rabbit bones"))](if: $inv contains "a dead rabbit")[(set: $inv to $inv - (a: "a dead rabbit"))]]
=><=
[[continue traveling->Journey2]]<center><img height=150 src="./images/kyrathaba/bic-lighter.png"></center>
It's a Bic lighter.
=><=
(link-undo: "back")<center><img src="./images/kyrathaba/goblin.png"></center>You continue your journey, which is somewhat easier now that the day is waning and the sunlight reflected from fallen snow isn't so blinding. (if: $hero's EquippedWeapon is "a goblin short sword")[You grip the goblin short sword in your right hand, determined to be ready in case more goblinoid vermin lurk nearby. ](else:)[(if: $hero's EquippedWeapon is "a hunting knife")[You are armed with your hunting knife. The goblin's short sword is crudely made, if heavy and sharp. You've stored it in your inventory, for now.(unless: $inv contains "a goblin short sword")[(set: $inv to it + (a: "a goblin short sword"))]]]
Text appears before your eyes, floating mid-air:
(text-style: "outline")[System Message:]
$gameMsg[You have entered goblinoid territory. Your level and skills do not make this a safe zone for you. (if: $hero's Life < $hero's MaxLife)[You are also not at full health. ]It is recommended you find shelter quickly, given local predators and falling temperature.]
<center>[[Dismiss system message->Journey4]]</center>After dismissing the system message, you shake your head, partly in disbelief, partly in vindication. You've been experiencing this alternate reality for months. (if: $backpack's Pills is 1)[//But could all this just be part of my illness? I haven't been taking my medication faithfully, after all...//](else:)[You recently took one of your pills. //But would one pill in the past week be enough to suppress these hallucinations?//]
Five minutes later, you stand near another copse of hardwood and evergreen trees, perhaps an eighth of a mile northwest of where the goblin attacked you. It will be dark soon. In the late afternoon shadows, you can make out a game trail entering the wooded area.
You ponder the 'system message' you just saw. (click-replace: "saw.")[saw. //Or did I just hallucinate that?// (if: $backpack's Pills is 1)[//Shit! Maybe I should have taken my Vraylar...//]]
As you contemplate the path leading into the trees, you feel a moment of apprehension.
=><=
{[[follow the game trail->GameTrail]]<br>
}
{<center><img src="./images/kyrathaba/whitehorse.png"></center>
Finally, you crest a rise, and enter the town of Whitehorse, the massive Grey Mountain and Golden Horn rearing their majestic edifices beyond the human settlement and dominating the skyline.}
=><=
[[enter the town->NickeltonProper]]=><=
Thank you for play-testing. This game remains
<center><img width=250 src="./images/kyrathaba/under-construction.png"></center>
Please take time to go to the (link-goto: "Credits", "Credits") page and email the author your thoughts about, suggestions for, and any found bugs related to the game.(text-color:blue)["I know this is going to sound cliche, but if you want to live, come with me now. There isn't time for questions," ]says a green-cloaked, lean and tall, bearded man standing in the shadows between two white spruce trees adjacent to the path.
=><=
[[Attack this stranger->AttackDorn]]
[[Flee->FleeDorn]]
[[Trust and follow him->GoWithDorn]]Some time later you wake with a headache and a knot on your forehead. The hiss, pop, and crackle of a fire intrudes, and you spy the silhouette of a cloaked and cowled woodsman across the flames from where you lie. (text-color:blue)["Not terribly kind or smart, attacking me,"] the man says, voice gravelly, pitched (link-reveal-goto: "low.", "MeetDorn")[(if: $hero's Life > 1)[(set: $hero's Life to it - 1)]]<center><img src="./images/kyrathaba/winterWolf.png"></center>
You flee, your mind filled with panicked thoughts just as the cold dusk wind fills with renewed flurries of snowfall. Your flight through unfamiliar, snow-covered lands near nightfall soon ends in a broken leg and perhaps a concussion too. The last thing you see is a wolf approaching you, feral eyes locked upon its fortuitous meal.
=><=
(link-goto: "continue", "GameOver")
You make a decision fast, based on insight and the fact that you find youself in a harsh and unfamiliar environment. You place your trust in the speaker, and follow the cowled figure along the forest (link-goto: "path.", "MeetDorn")You enter Whitehorse at the edge of town snidely nicknamed Nickelton, a slur on the wealthy Nickelton family that dominates ownership of houses and businesses of this quarter. You make your way to your apartment building on Ogilvie (link: "Street.")[Street.
As you cross the street to take the stairs up to your second story flat, two uniformed officers step out of the drugstore next door and are on you before you can get away.
(text-color: blue)["Mr. (print: $hero's Lastname), I'm afraid you're going to have to come with us. Dr. Nickelton is committing you on a 72-hour hold."]
You sigh. You've been in this predicament several times before. There's no use resisting. You knew when you turned back toward town that this was in the offing. //Sure, I'll take three hots and a cot for three days.// You aren't worried: the other reality is always just a step away for you, and through the very thinnest of veils.
=><=
The End.
(link-goto: "restart the game", "Start")
]
(if: (visited: "AttackDorn"))[Apparently, the cloaked figure you attacked knocked you unconscious but otherwise did you no harm. ](else:)[Having wisely chosen to follow this woods-wise figure, you've been led to his hidden camp in a large cave. The hiss, pop, and crackle of a fire lulls your eyes, its warmth thawing your bones.]
A status message floats above the man's (link: "head.")[head.
$gameMsg[Dorn, Fell Ranger 7
LP: 960; MP: 740
Brawn: 8; Brain: 6; Balance: 11
Conditions: //Nature's Cloak, One With the Forest, Trackless Step//<p><br>
]<center>
(link-goto: "After a few seconds...", "ImpoliteToStare")</center>]
The ranger turns a rabbit on a spit above the flames. You eyes are drawn repeatedly to the status message floating above the man's head. //That's not normal, but...//
=><=
(text-color: #006400)[(link-goto: "'I must be hallucinating...'", "NotCrazy")]
(text-color: #006400)[(link-goto: "'I //knew// I wasn't imagining this stuff!'", "NotImagine")]
(text-color: #006400)[(link-goto: "I don't trust this woodsman!", "DistrustDorn")]
After several long seconds during which you study his status message, the man grunts, (text-color:blue)["It's considered impolite to stare at another's //Status//."] But his tone carries no particular [[reproach->MeetDorn2]].Dorn chuckles. (text-color:blue)["I assure you, you aren't imagining this. You're really here. //Believe// that, and it will make things much easlier in the coming [[**days**->MeetDorn3]]."]Dorn sighs. (if: (visited: "AttackDorn"))[(text-color:blue)[" Sorry about whacking you over the head. I tried to go as easy as I could, but I've learned that you newcomers often freak out. So I really wasn't surprised when you attacked me."]](else:)[(text-color:blue)["I know this is hard. You're in a strange place, and a stranger is asking for your unearned (link-goto: "trust", "MeetDorn3").]]The delicious smell of the roasting rabbit wafts over to you as Dorn sprinkles on some flavoring herb from a small bag that he then returns to a belt pouch. He glances across the fire at you as dusk melts into early evening. (text-color:blue)["You're in the land of Kyrathaba. It's clear from your dress you're a Newcomer. Be glad I found you. You'd not likely have survived (link-goto: "the night", "MeetDorn4")."]
(text-color: #006400)["I //knew// I hadn't been imagining some of the stuff I've been seeing!"] you exclaim. (text-color: #006400)["Monsters in my backyard, a dragon flitting across the horizon the other day while I admired the sunset. And now //you//, a ranger. So who are you, (link-goto: "Aragorn's", "MeetDorn4") brother?"] {<!--turns 34-->}<center><img src="./images/kyrathaba/fromWithinCave.png"></center>(if: (visited: "NotImagine"))[(text-color:blue)["Eh? I don't get the reference,"] Dorn replies.
Then, after a moment, $dorn["Of //course// you're not imagining these things. Kyrathaba has been pulling at you now for months, like it does all Newcomers, before their Arrival."]] He tosses you a wineskin, turns the rabbit a bit more on the spit. The mouth of the cave lies a few paces away from the fire. Beyond it, the day seems brighter than it should.
=><=
{(unless: (visited: "KyrathabaSetting"))[(text-color: #006400)[(link-goto: "\"Kyr-What-aba?\" you ask", "KyrathabaSetting")]]
}
{
(set: $quests to (a:))
(set: $completedQuests to (a:))
(set: $questsRewards to
(dm: "none", 0,
"obtain food and shelter", 2,
"obtain initial equipment", 3,
"get to know Dorn better", 5,
)
)
(set: $lifetimeQuestIP to 0)
}You eat the protein bar, and can literally feel your blood sugar rising, your health and spirit bolstered...
(link-reveal-goto: "more...", "RootInBackpack")[(set: $backpack's ProteinBar to 0)]{(set: _neededXP to
(dm: "1st", 0,
"2nd", 1000,
"3rd", 2500,
"4th", 4500,
"5th", 7000,
"6th", 10000,
"7th", 13500,
"8th", 17500,
"9th", 22000,
"10th", 27000,
"11st", 32500,
"12nd", 38500,
"13rd", 45000,
"14th", 52000,
"15th", 59500,
"16th", 67500,
"17th", 76000,
"18th", 85000,
"19th", 94500,
"20th", 104500,
"21st", 115000,
"22nd", 126000,
"23rd", 137500,
"24th", 149500,
"25th", 162000,
"26th", 175000,
"27th", 188500,
"28th", 202500,
"29th", 217000,
"30th", 232000,
"31st", 247500,
"32nd", 263500,
"33rd", 280000,
"34th", 297000,
"35th", 314500,
"36th", 332500,
"37th", 351000,
"38th", 370000,
"39th", 389500,
"40th", 409500,
"41st", 430000,
"42nd", 451000,
"43rd", 472500,
"44th", 494500,
"45th", 517000,
"46th", 540000,
"47th", 563500,
"48th", 587500,
"49th", 612000,
"50th", 637000,
"51st", 662500,
"52nd", 688500,
"53rd", 715000,
"54th", 742000,
"55th", 769500,
"56th", 797500,
"57th", 826000,
"58th", 855000,
"59th", 884500,
"60th", 914500,
"61st", 945000,
"62nd", 976000,
"63rd", 1007500,
"64th", 1039500,
"65th", 1072000,
"66th", 1105000,
"67th", 1138500,
"68th", 1172500,
"69th", 1207000,
"70th", 1242000,
"71st", 1277500,
"72nd", 1313500,
"73rd", 1350000,
"74th", 1387500,
"75th", 1425000,
"76th", 1463000,
"77th", 1501500,
"78th", 1540500,
"79th", 1580000,
"80th", 1620000,
"81st", 1660500,
"82nd", 1701500,
"83rd", 1743000,
"84th", 1785000,
"85th", 1827500,
"86th", 1870500,
"87th", 1914000,
"88th", 1958000,
"89th", 2002500,
"90th", 2047500,
"91st", 2093000,
"92nd", 2139000,
"93rd", 2185500,
"94th", 2232500,
"95th", 2280000,
"96th", 2328000,
"97th", 2376500,
"98th", 2425500,
"99th", 2475000,
"100st", 2525000,
)
)
(set: _currentLv to $hero's Level)
(set: $hero's ImprovementPoints to it + $reward, $liveCombat to false)
(set: $hero's LifetimeEarnedImprovement to it + $reward)
(set: $hero's XP to it + $xpAward)$gameMsg[You gained $reward IP and $xpAward XP.]<p>
(display: "CalcTNL")
(if: $TNL < 1)[
(set: _next to _currentLv + 1)(set: $hero's Level to _next)(set: _currentXP to $hero's XP)(set: _targetXP to _neededXP's (str_nth: _next))(set: $afterCombatLevel to _next)
(if: $afterCombatLevel > $beforeCombatLevel)[Congrats! You attained Level _next!<p>(set: $hero's MaxLife to it + $lifeGainedPerLevel, $hero's MaxMana to it + $manaGainedPerLevel)]
(if:(save-game:"SlotAA"))[$gameMsg[**Game saved!**<p>]]]}$dorn["Keer-ah-thah-ba,"] the ranger pronounces carefully. $dorn["It's the name of this place, this..."] he gestures palm up and parallel to the cave floor, moving his hand through an arc encompassing the cave, and everything beyond it, $dorn["...whole world, I suppose."]
=><=
(text-color: #006400)[(link-goto: "\"You //suppose//?\"", "DornSupposes")]
(text-color: #006400)[(link-goto: "\"So, this //Kyrathaba// is a world, like Earth?\"", "DornSupposes2")]$dorn["Yes, I //'suppose.'// I've only been here a few months myself, and I've learned to keep to myself. But I've encountered enough Others to gather that this world, this place, is called Kyrathaba."] He grins wryly. $dorn["We aren't in Kansas anymore, Toto..."]
=><=
(text-color: #006400)[(link-goto: "\"Where are //you// from, then?\"", "DornOrigin")]
(text-color: #006400)[(link-goto: "\"Keep to yourself? Why?\"", "DornStayAlone")]The ranger arches an eyebrow at your question. He takes a carved, wooden spoon and ladles collected juice from a pan over the roasting rabbit. Broth drips intermittently back into the pan beneath your cooking meal.
$dorn["Me? I'm from 1963 Brooklyn, in the Big Apple. How 'bout yourself, Newcomer?"]
(click: "yourself, Newcomer?")[
//1963? What the hell?// After a moment, you shrug, figuring why not answer tit for tat. $protag["I'm from Whitehorse, in the Yukon Territory, 2019..."]
(click: "Territory, 2019")[(go-to: "BothFromEarth")]]$dorn["Because nine out of ten of the folks or //things// you'll run into here would rather try to kill you than to say hello. (if: (visited: "DornSupposes2"))[Even out here I run into plenty of hostiles, only they're generally monsters being territorial, not humanoids ruthlessly hunting down and slaying anyone different from them. ]It's why I brought you //here//."] He looks you up and down with a critical eye. $dorn["You aren't dressed for the weather. Got no decent weapon, no armor. You wouldn't have lasted the night on your own."]
(if: (visited: "BothFromEarth"))[$dorn["Now come on, it's time to eat."] He motions for you to grab the loaf of bread that has been warming on one of the rocks that ring the fire.
<center>(link: "more...")[(go-to: "RabbitWithDorn")]</center>](else:)[
(if: not (visited: "DornOrigin"))[You say, $protag["You talk about Others, Newcomers. I take it you're not from ... //here//. Where are you from?"]]<p><center>(link: "more...")[(go-to: "DornOrigin")]</center>
]$dorn["Ah, excellent!"] the man exclaims. $dorn["At least we have //that// in common. Both from Earth, even if from different generations..."]
You're not entirely sure if he's being sincere or sarcastic.
Dorn ladles more broth over the roasting meat. You note that beneath his heavy cloak and hand-stitched hide overcoat, he's wearing leather armor. $dorn["This is almost ready. Do me a favor? Grab a couple chunks of wood from the pile over there?"]
{(if: (visited: "DornStayAlone"))[<center>(link: "more...")[(go-to: "RabbitWithDorn")</center>]
](else:)[<br><center>
(text-color: #006400)[(link-goto: "\"You said you've learned to keep to yourself? Why?\"", "DornStayAlone")]</center>
]}{<!--turns ~40-->}You and Dorn begin to eat, passing his wineskin back and forth as you split the loaf of bread and the roasted rabbit. You speak of many things. The fire burns low, and Dorn adds more wood. Finally, the light outside wanes into darkness, and gradually it grows colder within the cave, despite the fire's warmth. Dorn brings you a cloak sewn of fur. $dorn["You're safe here, tonight, but don't go near the cave entrance without me: I've set traps to ward my home."]
(text-style: "outline")[System Message:]
$gameMsg[You have obtained temporary safe haven. (if:(save-game:"SlotAA"))[**Game saved!**<p>]]
=><=
(link-goto: "The next morning", "BreakfastAtDorns")
$dorn["Yes, as far as I've been able to learn, this is a world ... somewhere. I don't know if it's ten light years from Earth, in another galaxy altogether, or if it occupies the same location as Earth, only in a parallel dimension. But this is definitely somewhere //else//, somewhere very different from home."] (if: not (visited: "DornSupposes"))[He grins wryly. $dorn["We aren't in Kansas anymore, Toto..."]]
=><=
(text-color: #006400)[(link-goto: "\"Where are //you// from, then?\"", "DornOrigin")]
(text-color: #006400)[(link-goto: "\"You live alone, here in the forest? Why?\"", "DornStayAlone")]It's a new day!{(unless: $inv contains "a furred overcloak")[(set: $inv to it + (a: "a furred overcloak"))]}
(if:(save-game:"SlotAA"))[<!--Game saved!-->]
You spent the night near the fire, sleeping on a thick pile of stitched together furs, your woolen cloak and an overcloak of furs for warmth. You wake in the pre-dawn. Dorn comes into the cave with a squirrel he's just finished field dressing. (unless: $inv contains "an overcloak of furs")[(set: $inv to it + (a: "an overcloak of furs"))]
$dorn["Good morning,"] the ranger greets you. $dorn["And congratulations. You survived your first night in Kyrathaba, something most Newcomers (link-goto: "don't achieve", "BreakfastAtDorns2")."]
(if: $hero's Life < $hero's MaxLife)[(set: $hero's Life to it + 1)]
{(if: visits is 1)[(set: $questions to 3)
$dorn["I'm sure you have lots of questions. I'll answer those I can,"] he says, as he spits the squirrel and suspends it over the fire. He sets a clay jar before you. $dorn["Water from the falls south of here. Always drink from running water, never from a still pool."]<p>
As you take a long draught from the water jar, Dorn continues, $dorn["I'm taking the day off work, to be a good host."] He grins at his own sense of humor. $dorn["Let's see if we can get your initial questions answered and get you oriented to this new environment."] He rotates the squirrel on the spit, then sits back, arching an eyebrow at you.
](else:)[(if: $questions > 0)[You're eating breakfast with Dorn. The ranger is doing his best to answer your questions.](else:)[(go-to: "Quest2Offer")]]
<br>
=><=
(unless: (visited: "HowGetHome"))[(text-color: #006400)[(link-reveal-goto: "\"How do I get home?\"", "HowGetHome")[(set: $questions to it - 1)]<br>]]
(unless: (visited: "HowSurvive"))[(text-color: #006400)[(link-reveal-goto: "\"How can I hope to survive here?\"", "HowSurvive")[(set: $questions to it - 1)]<br>]]
(unless: (visited: "LikeVideoGame"))[(text-color: #006400)[(link-reveal-goto: "\"This feels like I'm in a video game...\"", "LikeVideoGame")[(set: $questions to it -1)]<br>]]
(if: $questions is 0)[<center>(go-to: "Quest2Offer")</center>
<p>]
}
{<!--turns ~43-->}$protag["Okay, so I //get// that somehow, some //way//, I've entered a realm, a world you say is called //Kyrathaba//. I guess my most pressing question would be **'**Is there a way for me to get home, back to Earth -- back to Whitehorse?**'**"]
{(set: _hero to $hero's AltName)(click: "Whitehorse?")[The ranger sighs, pokes at hot coals with a stick. $dorn["Listen, _hero, this will be hard to accept, but there //isn't// any way to get back. At least, none that I've ever come across. Maybe there's some powerful spell, or a portal somewhere, but if so I haven't (link-goto: "heard of it", "BreakfastAtDorns2")."]
]}
{<!--turns ~43-->}$protag["How can I hope to survive in this place? I'm an author, an educator by profession. I've never shot a bow, swung a sword. I never even got in a fight in school. How am I supposed to fight goblins, survive against the elements?"]
{(set: _hero to $hero's AltName)(click: "elements?")[Dorn shakes his head affirmatively, clearly in understanding of your concerns. $dorn["You don't think I was a woodswise ranger in 1963 New York, do you? No, I learned the skills I now wield. When I first got here, I'd never fired a bow, kindled a fire. There's some sort of system here. A system that lets us learn and improve skills. I'll show you how to get started..."]
<p>
//That makes sense// you think to yourself, remembering the System messages you've seen a couple times since arriving here. //It's almost like we're characters in a game of Diablo or Everquest// you think, recalling some MMORPGs (link-goto: "you've enjoyed", "BreakfastAtDorns2").<p><br>
]}{<!--turns ~43-->}$protag["This whole thing feels like a video game to me. And I'm a schizophrenic, Dorn. For all I know, //all// of this is an elaborate series of my own hallucinations."]
{(set: _hero to $hero's AltName)(click: "hallucinations.")[The ranger sighs. $dorn["_hero, that's heavy, schizophrenia. But here's my advice: treat this as the most real that anything //can// be. It's supremely dangerous here. You can't afford any self-doubt."]<p>
Then, almost as an afterthought, he adds, $dorn["And I've no idea what a //(link-goto: "video game", "BreakfastAtDorns2")// is..."]
]}
{(set: $atkModifier to
(dm: "none", 0,
"Goblin", 0,
"GoblinBeserkerUniqueNommy", 1,
"Hobgoblin", 2,
"Kobold", 0,
"Orc", 1,
"OrcDuo", 2,
"Ogre", 3,
"Rabbit", 0,
"Winter Wolf", 5,
)
)
(set: $lowLife to
(dm: "none", 0,
"Goblin", 4,
"GoblinBeserkerUniqueNommy", 7,
"Hobgoblin", 17,
"Kobold", 1,
"Orc", 15,
"OrcDuo", 26,
"Ogre", 19,
"Rabbit", 1,
"Winter Wolf", 17,
)
)
(set: $highLife to
(dm: "none", 0,
"Goblin", 14,
"GoblinBeserkerUniqueNommy", 18,
"Hobgoblin", 34,
"Kobold", 9,
"Orc", 30,
"OrcDuo", 56,
"Ogre", 45,
"Rabbit", 2,
"Winter Wolf", 36,
)
)}(set: $dorn to (text-color: blue), $protag to (text-color: #006400), $gameMsg to (text-color:gray)+(font: "Courier New")+ (text-style: "bold")){(set: $ipReward to
(dm: "Goblin", 2,
"GoblinBeserkerUniqueNommy", 4,
"Hobgoblin", 4,
"Kobold", 0,
"Orc", 3,
"OrcDuo", 4,
"Ogre", 5,
"Rabbit", 0,
"Winter Wolf", 15,
)
)
(set: $xpReward to
(dm: "Goblin", 50,
"GoblinBeserkerUniqueNommy", 500,
"Hobgoblin", 85,
"Kobold", 15,
"Orc", 75,
"OrcDuo", 85,
"Ogre", 100,
"Rabbit", 5,
"Winter Wolf", 300,
)
)
(set: $sellBackCredits to
(dm: "a goblin short sword", 5,
"a hunting knife", 10,
"an orc's heavy battleaxe", 30,
"Chainmail", 250,
"Leather Hauberk", 50,
"Plate and Mail", 750,
"Short Sword (Masterwork)", 150,
"Wooden Shield (Medium)", 30,
"Wooden Shield (Small)", 15,
)
)
<!--Masterwork weapons do 2 more min-damage than their basic counterpart-->
(set: $itemCost to
(dm: "a goblin short sword", 10,
"a hunting knife", 20,
"an orc's heavy battleaxe", 60,
"Chainmail", 500,
"Leather Hauberk", 75,
"Plate and Mail", 1500,
"Short Sword (Goblinoid)", 10,
"Short Sword (Masterwork)", 250,
"Wooden Shield (Medium)", 100,
"Wooden Shield (Small)", 50,
)
)
}
(set: $hero to
(dm: "AltName", "Kril",
"Balance", 1,
"Brain", 1,
"Brawn", 1,
"Credits", 0,
"EquippedEyewear", "empty",
"EquippedFootwear", "empty",
"EquippedHandwear", "empty",
"EquippedHipwear", "empty",
"EquippedNeckwear", "empty",
"EquippedOffhand", "empty",
"EquippedShoulderwear", "empty",
"EquippedTorso", "empty",
"EquippedWeapon", "a hunting knife",
"ImprovementPoints", 0,
"Lastname", "O'Banion",
"Life", 15,
"LifetimeEarnedImprovement", 0,
"Level", 1,
"Mana", 30,
"MaxLife", 15,
"MaxMana", 30,
"MeleeRating", 1,
"Name", "Rilk",
"RangedRating", 1,
"XP", 0,
)
)
(set: $backpack to
(dm: "Pills", 1,
"CigaretteLighter", 1,
"ProteinBar", 1,
"Journal", 1,
"Scrollcase1", 0,
"WoolBlanket", 1,
)
)
(set: $inv to (a: "a backpack"))(set: $opusLength to 11572, $backpack's Scrollcase1 to 1, $author to "Bryan Miller", $gameTitle to "Chronicles of Kyrathaba", $currentQuest to "none", $reward to 0, $protagName to $hero's AltName, $beforeCombatLevel to 1, $afterCombatLevel to 1, $lifeGainedPerLevel to 30, $manaGainedPerLevel to 20, $offhand to "empty", $berylValue to 300)(if: $opusLength > 999)[(set: $opusLength to (digit-format: "###,###", $opusLength))]
(display: "SetInitQuestData")
(unless: $inv contains "a woolen cloak")[(set: $inv to it + (a: "a woolen cloak"))]
(set: $hero's EquippedNeckwear to "a woolen cloak")
(unless: $inv contains "a belt pouch")[(set: $inv to it + (a: "a belt pouch"))]
(unless: $inv contains "a hunting knife")[(set: $inv to it + (a: "a hunting knife"))]
(unless: $inv contains "a pair of loafers")[(set: $inv to it + (a: "a pair of loafers"))]
(set: $rangerSkills to (a:))
(set: $mageSkills to (a:))
(set: $journal to (a:))
(set: _txt to "<br><hr><br>July 21, 2018: I saw a manticore when I glanced outside my kitchenette while sipping coffee early this morning. And I //have// been taking my medication faithfully. I doubt I'll tell my psychiatrist. He's so close-minded, he wouldn't believe me. To him, anything beyond the perfectly mundane must be indicative of mental aberration. I saw it kill the pony in my neighbor's field. And sure enough, I saw the veterinarian there a couple hours later. The Johnson's found the pony dead when it failed to come to the barn for its morning grain...")
(set: $journal to it + (a: _txt), $lifetimeCombatTurns to 0)
(set: $justLoaded to false)
(set: $quests to (a:))
(set: $completedQuests to (a:))
(display: "TooHeavy")
(set: $hero's EquippedFootwear to "a pair of loafers")
(set: $num2Str to
(dm: "0th", "zero",
"1st", "one",
"2nd", "two",
"3rd", "three",
"4th", "four",
"5th", "five",
"6th", "six",
"7th", "seven",
"8th", "eight",
"9th", "nine",
"10th", "ten",
"11st", "eleven",
"12nd", "twelve",
"13rd", "thirteen",
"14th", "fourteen",
"15th", "fifteen",
"16th", "sixteen",
"17th", "seventeen",
"18th", "eighteen",
"19th", "nineteen",
"20th", "twenty",
"21st", "twenty-one",
"22nd", "twenty-two",
"23rd", "twenty-three",
"24th", "twenty-four",
"25th", "twenty-five",
"26th", "twenty-six",
"27th", "twenty-seven",
"28th", "twenty-eight",
"29th", "twenty-nine",
"30th", "thirty",
"31st", "thirty-one",
"32nd", "thirty-two",
"33rd", "thirty-three",
"34th", "thirty-four",
"35th", "thirty-five",
"36th", "thirty-six",
"37th", "thirty-seven",
"38th", "thirty-eight",
"39th", "thirty-nine",
"40th", "forty",
"41st", "forty-one",
"42nd", "forty-two",
"43rd", "forty-three",
"44th", "forty-four",
"45th", "forty-five",
"46th", "forty-six",
"47th", "forty-seven",
"48th", "forty-eight",
"49th", "forty-nine",
"50th", "fifty"
)
)
(set: $locs to
(dm: "CG", "Culver's Gulch",
"EV", "Engalin Vale",
"GG", "Ganuld's Gap",
"PF", "Pierkeron Falls",
"SC", "Skullcleave Creek",
"ST", "Slaytonthorpe Township",
"TV", "Trentham Vale",
"YL", "Yohm Lake",
)
)
(set: $dornFriends to
(dm: "MS", "Merric Silvertongue",
"AnimalCompanion", "Sylfalias",
"HisLongbow", "Aldreanus",
"HisMentor", "Sirac Slatelock"
)
)
(set: $orgs to
(dm: "2ndMoon", "Cohort of the Second Moon"
)
){(display: "SetInitialVariables")(set: $liveCombat to false, $dorn to (text-color: blue), $protag to (text-color: #006400), $gameMsg to (text-color:gray)+(font: "Courier New")+ (text-style: "bold"))
(set: _eyes to $hero's EquippedEyewear, _hands to $hero's EquippedHandwear, _feet to $hero's EquippedFootwear, _neck to $hero's EquippedNeckwear, _hips to $hero's EquippedHipwear, _shoulders to $hero's EquippedShoulderwear)
<!--Equipped items are also "in" your inventory-->
(display: "SetDebugInventory")
(set: $backpack's Scrollcase1 to 1)
(set: $backpack's WoolBlanket to 1)
(set: $completedQuests to it + (a: "obtain food and shelter", "obtain initial equipment"))
(display: "SetDebugVisits")
(unless:$rangerSkills contains "Kindle Fire")[(set: $rangerSkills to it + (a: "Kindle Fire"))]
(if: $inv contains "a beryl gemstone")[(set: $inv to it - (a: "a beryl gemstone"))(set: _credits to $hero's Credits)(set: _credits to it + 300)(set: $hero's Credits to _credits)](else:)[(set: _credits to $hero's Credits)(if: _credits < 300)[(set: $hero's Credits to 300)]]
(display: "DebugQuest1")(display: "DebugQuest2")
(display: "DebugQuest3")
<!--this commented-out code-block was used when current quest was the 3rd quest (not yet achieved). When this code-block isn't commented-out, we should NOT have displayed psg DebugQuest3 above...
(unless: (visited: "Predawn2"))[
(set: $offeredQuest to "get to know Dorn better")
(unless: $quests contains $offeredQuest)[
(set: $quests to it + (a: "get to know Dorn better"))
]
(set: $reward to $questsRewards's $offeredQuest)
]
-->
(set: $hero's Life to $hero's MaxLife, $liveCombat to false, $lifetimeCombatTurns to 55, $hero's XP to 1320, $hero's Credits to 0, $hero's Balance to 2, $hero's Brawn to 2, $hero's Level to 2)(set: $hero's MaxLife to it + $lifeGainedPerLevel, $hero's MaxMana to it + $manaGainedPerLevel)
(set: $hero's Life to $hero's MaxLife, $hero's Mana to $hero's MaxMana, $startHere to "PredawnLight")
(unless: $startsHere contains "SpruceCopse")[
(set: $hero's ImprovementPoints to 13, $hero's LifetimeEarnedImprovement to 33)
](else:)[
(set: $hero's ImprovementPoints to 21, $hero's LifetimeEarnedImprovement to 41)
]
(mock-turns: 95)(go-to: $startHere)
}{<!--Before (display:)ing this passage, we should already have set the following variables:
$offeredQuest (set value to a string from $questsRewards datamap in psg SetInitQuestData)
$gotoPsg (set to passage to goto upon quest acceptance/denial)
-->
<h3>Quest Offer</h3>(set: _reward to $questsRewards's $offeredQuest)
$gameMsg[$offeredQuest for (print: _reward) Improvement Points]<p>
<center>(link-reveal-goto: "no thanks", $gotoPsg)[(set: $currentQuest to "none")]<p>
or, accept this quest by clicking below...<p><br>
(link: "accept quest")[
(unless: $quests contains $offeredQuest)[(set: $currentQuest to $offeredQuest)(set: $quests to it + (a: $currentQuest))<p>QUEST ACCEPTED!<p>
(live: 1000ms)[(go-to: $gotoPsg)]
]]
<p></center>}(unless: $completedQuests contains "obtain initial equipment")[
(set: $offeredQuest to "obtain initial equipment", $gotoPsg to "LetsGoHunting")(go-to: "MakeQuestOffer")
](else:)[
=><=
(link-goto: "continue", "LetsGoHunting")
]{(if: $quests contains "obtain initial equipment")[
(unless: $inv contains "a leather hauberk")[(set: $inv to it + (a: "a leather hauberk"))(set: $hero's EquippedTorso to "a leather hauberk")](unless: $inv contains "Short Sword (Masterwork)")[(set: $inv to it + (a: "Short Sword (Masterwork)"))](set: $reward to $questsRewards's "obtain initial equipment")
(text-style: "outline")[System Message:]<p>$gameMsg[The System has awarded you starting equipment: a masterwork short sword and a leather hauberk. These items have been added to your inventory. {(set: $lifetimeQuestIP to it + $reward)}](display: "UpdateExperience")(if: $quests contains "obtain initial equipment")[(set: $quests to it - (a: "obtain initial equipment"))(set: $completedQuests to it + (a: "obtain initial equipment"))<p>(if:(save-game:"SlotAA"))[**Game saved!**<p>]]<p>$dorn["All right," ]Dorn says, $dorn["now that you have some decent equipment, let's go (link-goto: "hunting goblins", "GoHunting")."]<p><br>
](else:)[<p>
$dorn["We're going hunting. I recommend that you (link-goto: "<u>accept</u>", "Quest2Offer") the 'obtain initial equipment' quest."]
]
}{(set: $gotoPsg to "GoHunting")(unless: $hero's EquippedWeapon is "Short Sword (Masterwork)")[(set: $gotoPsg to "GoHunting")You may want to (link-goto: "consider", "WeaponSelect") your weapon selection before you and Dorn (link-goto: "go hunting", "GoHunting2").](else:)[The masterwork short sword is your equipped weapon. (link-goto: "Smart thinking!", "GoHunting2")]
}{<!--VERY IMPORTANT that you set $gotoPsg before linking to the WeaponSelect passage
(else:)[<(link-reveal-goto: "Equip it", "inventory")[(set: $hero's EquippedWeapon to _i)]>]
-->
(set: _wielded to $hero's EquippedWeapon, _min to 0, _max to 0, _off to $hero's EquippedOffhand, _torso to $hero's EquippedTorso, _eyes to $hero's EquippedEyewear, _hands to $hero's EquippedHandwear, _feet to $hero's EquippedFootwear, _hips to $hero's EquippedHipwear, _neck to $hero's EquippedNeckwear, _shoulders to $hero's EquippedShoulderwear)
<h4 align=center>Equipment Selection</h4><p>
(for: each _i, ...($inv))[
(unless: $tooHeavyToWield contains _i)[
(if: $isWeapon contains _i)[
(print: _i)(if: _wielded contains _i)[ (**wielded**)](else:)[
<(link-reveal-goto: "Equip it", "WeaponSelect")[(set: $hero's EquippedWeapon to _i)]>]<br>
]
(if: $isOffhand contains _i)[
(print: _i)(if: _off contains _i)[ (**in use**) <(link-reveal-goto: "Remove", "WeaponSelect")[(set: $hero's EquippedOffhand to "empty")]>](else:)[
<(link-reveal-goto: "Equip it", "WeaponSelect")[(set: $hero's EquippedOffhand to _i)]>]<br>
]
(if: $isTorso contains _i)[
(print: _i) (if: _torso contains _i)[(**in use**) <(link-reveal-goto: "Remove", "WeaponSelect")[(set: $hero's EquippedTorso to "empty")]>](else:)[
<(link-reveal-goto: "Equip it", "WeaponSelect")[(set: $hero's EquippedTorso to _i)]>]<br>
]
(if: $isEyewear contains _i)[
(print: _i) (if: _eyes contains _i)[(**in use**) <(link-reveal-goto: "Remove", "WeaponSelect")[(set: $hero's EquippedEyewear to "empty")]>](else:)[
<(link-reveal-goto: "Equip it", "WeaponSelect")[(set: $hero's EquippedEyewear to _i)]>]<br>
]
(if: $isHandwear contains _i)[
(print: _i) (if: _hands contains _i)[(**in use**) <(link-reveal-goto: "Remove", "WeaponSelect")[(set: $hero's EquippedHandwear to "empty")]>](else:)[
<(link-reveal-goto: "Equip it", "WeaponSelect")[(set: $hero's EquippedHandwear to _i)]>]<br>
]
(if: $isFootwear contains _i)[
(print: _i) (if: _feet contains _i)[(**in use**) <(link-reveal-goto: "Remove", "WeaponSelect")[(set: $hero's EquippedFootwear to "empty")]>](else:)[
<(link-reveal-goto: "Equip it", "WeaponSelect")[(set: $hero's EquippedFootwear to _i)]>]<br>
]
(if: $isHipwear contains _i)[
(print: _i) (if: _hips contains _i)[(**in use**) <(link-reveal-goto: "Remove", "WeaponSelect")[(set: $hero's EquippedHipwear to "empty")]>](else:)[
<(link-reveal-goto: "Equip it", "WeaponSelect")[(set: $hero's EquippedHipwear to _i)]>]<br>
]
(if: $isNeckwear contains _i)[
(print: _i)(if: _neck contains _i)[ (**in use**) <(link-reveal-goto: "Remove", "WeaponSelect")[(set: $hero's EquippedNeckwear to "empty")]>](else:)[
<(link-reveal-goto: "Equip it", "WeaponSelect")[(set: $hero's EquippedNeckwear to _i)]>]<br>
]
(if: $isShoulderwear contains _i)[
(print: _i)(if: _shoulders contains _i)[ (**in use**) <(link-reveal-goto: "Remove", "WeaponSelect")[(set: $hero's EquippedShoulderwear to "empty")]>](else:)[
<(link-reveal-goto: "Equip it", "WeaponSelect")[(set: $hero's EquippedShoulderwear to _i)]>]<br>
](else:)[
(unless: $isWeapon contains _i)[(unless: $isOffhand contains _i)[(unless: $isTorso contains _i)[(unless: $isEyewear contains _i)[(unless: $isHandwear contains _i)[(unless: $isNeckwear contains _i)[(unless: $isShoulderwear contains _i)[(unless: $isFootwear contains _i)[(unless: $isHipwear contains _i)[(print: _i)<br>]]]]]]]]]]
](else:)[<!--$tooHeavyToWield DOES contain this item-->
(if: $isWeapon contains _i)[(print: _i) (**too heavy to wield**)<br>](else:)[(print: _i) (**too heavy to wear**)<br>]
]
]
}
=><=
(link-goto: "back", $gotoPsg)
{(set: _neededXP to
(dm: "1st", 0,
"2nd", 1000,
"3rd", 2500,
"4th", 4500,
"5th", 7000,
"6th", 10000,
"7th", 13500,
"8th", 17500,
"9th", 22000,
"10th", 27000,
"11st", 32500,
"12nd", 38500,
"13rd", 45000,
"14th", 52000,
"15th", 59500,
"16th", 67500,
"17th", 76000,
"18th", 85000,
"19th", 94500,
"20th", 104500,
"21st", 115000,
"22nd", 126000,
"23rd", 137500,
"24th", 149500,
"25th", 162000,
"26th", 175000,
"27th", 188500,
"28th", 202500,
"29th", 217000,
"30th", 232000,
"31st", 247500,
"32nd", 263500,
"33rd", 280000,
"34th", 297000,
"35th", 314500,
"36th", 332500,
"37th", 351000,
"38th", 370000,
"39th", 389500,
"40th", 409500,
"41st", 430000,
"42nd", 451000,
"43rd", 472500,
"44th", 494500,
"45th", 517000,
"46th", 540000,
"47th", 563500,
"48th", 587500,
"49th", 612000,
"50th", 637000,
"51st", 662500,
"52nd", 688500,
"53rd", 715000,
"54th", 742000,
"55th", 769500,
"56th", 797500,
"57th", 826000,
"58th", 855000,
"59th", 884500,
"60th", 914500,
"61st", 945000,
"62nd", 976000,
"63rd", 1007500,
"64th", 1039500,
"65th", 1072000,
"66th", 1105000,
"67th", 1138500,
"68th", 1172500,
"69th", 1207000,
"70th", 1242000,
"71st", 1277500,
"72nd", 1313500,
"73rd", 1350000,
"74th", 1387500,
"75th", 1425000,
"76th", 1463000,
"77th", 1501500,
"78th", 1540500,
"79th", 1580000,
"80th", 1620000,
"81st", 1660500,
"82nd", 1701500,
"83rd", 1743000,
"84th", 1785000,
"85th", 1827500,
"86th", 1870500,
"87th", 1914000,
"88th", 1958000,
"89th", 2002500,
"90th", 2047500,
"91st", 2093000,
"92nd", 2139000,
"93rd", 2185500,
"94th", 2232500,
"95th", 2280000,
"96th", 2328000,
"97th", 2376500,
"98th", 2425500,
"99th", 2475000,
"100st", 2525000,
)
)
(set: _currentLv to $hero's Level)(set: _next to _currentLv + 1)(set: _targetXP to 0)(set: _currentXP to $hero's XP)
(set: _targetXP to _neededXP's (str_nth: _next))
<!--To achieve lv _next you must attain _targetXP XP.-->
(set: $TNL to _targetXP - _currentXP)
}Dorn strings his longbow and slings it over a shoulder. $dorn["That wind is going to be brutal. Fasten your fur overcloak as tightly as you can. "]
(if: visits is 1)[The ranger reties one of his boots, then stands and regards you. (if: $inv contains "a leather hauberk")[(set: _torso to $hero's EquippedTorso)(unless: _torso contains "a leather hauberk")[$dorn["You should equip your leather armor."]](else:)[$dorn["Very good, I see that you've donned your leather armor."]]]]
(click: "can")[
He fills a canteen from the clay water jar, secures it to his belt, then glances your way, staring at a point directly above your head for a few seconds. $dorn["Forgive the rudeness, just checking your Status. Hmm, I think I can easily get you a few more Improvement Points and Experience Points. Are you up for taking a 5-item quiz?"]
=><=
(text-color: #006400)[(link-goto: "\"Yes, absolutely!\"", "Survey")]
(text-color: #006400)[(link-goto: "\"No, let's just skip to goblin hunting\"", "Hunt3")]
]You exit the cave together, pulling the cowls of your cloak down to partially protect your eyes from the reflected glare from the snow.
=><=
(link-goto: "continue...", "WordOfWarning"){(text-style: "outline")[System Message:]<p>$gameMsg[Complete the following five-item quiz to earn IP and XP...]<p>(set: $answers to (a: "Kyrathaba", "drink only running water", "Newcomer", "goblin", "ranger"))(set: $myanswers to (a:))(set: $correct to 0)
1. What is the name of this realm?
(dropdown: bind _answer, "Kratolia", "Kordoba", "Kyrathaba", "Kuragan")
(link-reveal-goto: "Continue...", "Survey2")[(set: $myanswers to it + (a: _answer))(if: $answers's 1st contains $myanswers's 1st)[(set: $correct to it + 1)]]
}{2. What rule did Dorn the Ranger give for drinking water?
(dropdown: bind _answer, "avoid this realm's water", "drink only blue-tinted water", "don't drink water unless your Brawn is 4 or greater", "drink only running water")
(link-reveal-goto: "Continue...", "Survey3")[(set: $myanswers to it + (a: _answer))(if: $answers's 2nd contains $myanswers's 2nd)[(set: $correct to it + 1)]]
<p>Thus far, $correct of 1 answers is correct.
}{3. What label has Dorn the Ranger given you?
(dropdown: bind _answer, "Stranger", "Newcomer", "Arriver", "Earther")
(link-reveal-goto: "Continue...", "Survey4")[(set: $myanswers to it + (a: _answer))(if: $answers's 3rd contains $myanswers's 3rd)[(set: $correct to it + 1)]]
<p>Thus far, $correct of 2 answers are correct.
}{4. What type of monster did you kill before Dorn found you?
(dropdown: bind _answer, "goblin", "orc", "gnoll", "owlbear")
(link-reveal-goto: "Continue...", "Survey5")[(set: $myanswers to it + (a: _answer))(if: $answers's 4th contains $myanswers's 4th)[(set: $correct to it + 1)]]
<p>Thus far, $correct of 3 answers are correct.
}{5. What class is Dorn?
(dropdown: bind _answer, "warrior", "ranger", "mage", "druid")
(link-reveal-goto: "Continue...", "Survey6")[(set: $myanswers to it + (a: _answer))(if: $answers's 5th contains $myanswers's 5th)[(set: $correct to it + 1)]]
<p>Thus far, $correct of 4 answers are correct.
}{(set: _prevIP to $hero's ImprovementPoints, _lifetimeIP to $hero's LifetimeEarnedImprovement, _prevXP to $hero's XP)
You answered $correct of five questions correctly. You formerly had _prevXP XP, _prevIP IP, and _lifetimeIP Lifetime Earned IP.<p>
(set: _xp to 50 * $correct, _ip to $correct)
(text-style: "outline")[System Message:]<p>
(if: $correct < 1)[$gameMsg[Unfortunately, no IP or XP can be awarded for your quiz responses.]](else:)[$gameMsg[Congratulations! You earned _ip Improvement Points and _xp Experience Points!]
(set: $hero's ImprovementPoints to it + _ip)(set: $hero's XP to it + _xp)(set: $hero's LifetimeEarnedImprovement to it + _ip)
<p>(if:(save-game:"SlotAA"))[Game saved!]
]<p>
=><=
(if: $correct < 1)[(link-goto: "Dorn says, \"Well, better luck next time\"", "FinallyLetsHunt")](else-if: $correct > 4)[(link-goto: "Dorn says, \"Wow! Well done!\"", "FinallyLetsHunt")](else:)[(link-goto: "Dorn says, \"Great! You got $correct out of five correct!\"", "FinallyLetsHunt")]
}$protag["Well, that was interesting,"] you say as you dismiss the quiz results notification. $protag["How close am I to leveling?"]
(click: "leveling?")[
Dorn explains, $dorn["Pull up your Status screen. You'll see a field labeled 'Till Next Level'. //That's// the number of experience points you still need before you can (link-goto: "level up", "WordOfWarning")."]
]
{(display: "CalcTNL")Dorn glances at you, then briefly at your Status readout above your head. (set: _xpGoblin to $xpReward's Goblin)(set: _neededXP to $TNL)(if: _neededXP > 2 * _xpGoblin)[$dorn["All right, you need _neededXP XP to level-up." ] He squints, cocks his head, thinking. (set: _kills to $num2Str's (str_nth: (trunc: _neededXP / _xpGoblin))) $dorn["That means you're gonna need to kill about _kills goblins, give or take, to make (link-goto: "second level", "WordOfWarning2")."]](else:)[$dorn["Ah, excellent! You're close to making level 2 already! Let's get you there, then work toward your (link-goto: "third level", "WordOfWarning2")."]]<p>
}{(if: visits is 1)[
$dorn["All right, listen close, $protagName, we're going to swing south of the Falls and then work our way through Engalin Vale before heading back to the cave. If we don't encounter any foes -- which is highly unlikely -- it'll take us about four hours to make the (link-goto: "round trip", "WordOfWarning2")."]<p><br>]
(if: visits is 2)[
The two of you have moved into the lee of a large boulder to gain partial cover from the biting wind. $dorn["Stay close to me. Try not to let anything separate us. That's a common tactic of goblin hunting parties -- to separate their foes from one another."] The ranger sharpens a knife on a whetstone, making slow gentle circles of the blade across the stone. $dorn["In the unlikely event that I die, my cave is yours, as is everything in it. Just be careful at the entrance. There's a spike trap that is triggered if you disturb the large, L-shaped sandstone (link-goto: "even slightly", "WordOfWarning2")."]<p><br>]
(if: visits is 3)[
Dorn puts away his sharpened knife. $dorn["//If// we get surrounded, we fight back to back, as little space between us as possible without risking cutting each other."] The ranger begins walking south, and you maintain lockstep. $dorn["Don't make the mistake of allowing yourself to feel pity. Kill them without mercy, you understand? Individually, they aren't that tough, but they can be really dangerous when (link-goto: "grouped up", "WordOfWarning2")."]<p><br>]
(if: visits is 4)[The wind is indeed frigid. You estimate it must be around 0° F with the wind chill factor. Dorn is now leading you down a saddle of land, and a couple minutes later you are both traipsing alongside a trickling stream. $dorn["This is Skullcleave Creek,"] the ranger informs you. At your raised eyebrow, he chuckles, $dorn["Yeah, I named it myself after cleansing it of a pack of gnolls (link-reveal-goto: "last Fall", "DornVsGoblins1")[(set: $gotoPsg to "OneGreenieDown")]."]<p><br>]
}{(display: "PreCombatSetup")
(set: $foe to "a goblin")
(set: $gotoPsg to "FirstGreenieDown")
After the two of your have walked awhile, Dorn lays a hand on your arm, making the universal //shush// gesture when you seek his eyes. He leans in close. $dorn["About twenty yards ahead, next to the tree with white blossoms. A lone goblin. //See him?//] When you acknowledge you've spotted him, the ranger breathes, $dorn["Go. Take it down!"]
<p><br><center>(link-reveal-goto: "Sneak up on the goblin", "Next")[(set: $liveCombat to false)]</center>
}{(set: _xpGoblin to $xpReward's Goblin, _neededXP to $TNL, _bal to $hero's Balance, _ip to $hero's ImprovementPoints)
You've slain your first goblin of the day. Coming up to you, Dorn makes sure you see him in your peripheral vision well before he draws close, eying the (if: $weapon is "Short Sword (Masterwork)")[sword ](else-if: $weapon is "a goblin short sword")[sword ](else-if: $weapon is "a hunting knife")[knife ](else:)[weapon ]in your hand. Dorn glances above your head to read your Status.<p>$dorn["Well done, $protagName! "] He claps you on the shoulder. $dorn["I'd say another (set: _gobs to $num2Str's (str_nth: (trunc: _neededXP/_xpGoblin))) _gobs goblins for you to level up!"]<p>
(set: _suggest to false)(if: _bal is 1 and _ip > 9)[(set: _suggest to true)](if: _suggest)[$dorn["I recommend that you spend some of your banked Improvement Points to raise your Balance stat. That would both increase your attack accuracy and the amount of damage you can inflict with that masterwork short sword."]<p>
<center>
Spend 10 of your _ip IP to raise Balance from 1 to 2?<p>
(link-reveal-goto: "Yes", "ContinueHunt1")[(set: $hero's ImprovementPoints to it - 10, $hero's Balance to it + 1)]<p>
(link-goto: "No", "ContinueHunt1")
</center>
](else:)[<center>(link-goto: "continue", "ContinueHunt1")</center>]
}
{(if: $liveCombat is true)[
(if: $heroLife < 1)[<br>You have died.{(set: $gotoPsg to "GameOver")} (after: 3s)[(set: $liveCombat to false)(go-to: $gotoPsg)]](else-if: $foeLife < 1)[<br>You have slain $foe. (display: "UpdateExperience")(after: 5s)[(set: $liveCombat to false)(go-to: $gotoPsg)]](else:)[(set: $combatTurns to it + 1)(go-to: "UpdateStatus")]
]}{(display: "SetHeroProperties")
(display: "SetRanges")
(display: "SetDamages")
(display: "SetCombatAwards")
(display: "SetFoeProperties")
(set: $trans to "1s", $weapon to $hero's EquippedWeapon, $beforeCombatLevel to $hero's Level)
<br>Transition duration: (cycling-link: bind $trans, "1s", "2s", "3s", "0.5s")<br>
(if: $hero's EquippedWeapon is "empty")[You don't have a weapon equipped. Therefore, you'll do damage in the range of 0 to 1 for this combat. You may want to learn some martial arts if you're going to be fighting without a weapon.](else:)[(set: $weapon to $hero's EquippedWeapon)You will be fighting with $weapon.]
<!--(if: $inv contains "a goblin short sword")[
Select your weapon: (cycling-link: 2bind $weapon, "Short Sword (Masterwork)", "an orc's heavy battleaxe", "a goblin short sword", "a hunting knife")
<p>](else:)[
Select your weapon: (cycling-link: 2bind $weapon, "Short Sword (Masterwork)", "an orc's heavy battleaxe", "a hunting knife")<p>
]
(if: $weapon is "Short Sword (Masterwork)")[(set: $hero's EquippedWeapon to "Short Sword (Masterwork)")](else-if: $weapon is "a goblin short sword")[(set: $hero's EquippedWeapon to "a goblin short sword")](else-if: $weapon is "a hunting knife")[(set: $hero's EquippedWeapon to "a hunting knife")](else-if: $weapon is "an orc's heavy battleaxe")[(set: $hero's EquippedWeapon to "an orc's heavy battleaxe")] -->
You will be fighting $foe. If victorious, you'll gain IP of $awardedIpAmt and $awardedXpAmt XP. (set: _life to $hero's Life)You will start combat at _life Life. (set: _atkMod to $foeAtkMod, _dmgMod to $foeDmgMod, _life to $foeLife)Your foe, $foe, has attack modifier _atkMod and damage modifier _dmgMod, and starts combat at _life Life.}<p>
<center>(link-reveal-goto: "begin combat", "Combat")[(set: $liveCombat to true)]</center><br>
(set: $updatedStatus to it + 1)(if: $your_turn is true)[(go-to: "YourTurn")](else:)[(go-to: "EnemyTurn")]
{(set: $your_atk to (random: 1,100), $foe_def to (random: 1,100), _heroAtkMod to $hero's Brawn + $hero's Balance + $hero's Brain)
(if: $debugMode)[Updated status # $updatedStatus]
You attack your foe with (print: $hero's EquippedWeapon). (set: $your_atk to it + _heroAtkMod)(if: $your_atk > $foe_def)[(display: "YouScoredAnAttack")](else:)[You missed your foe. (if: $debugMode)[(text-color:red)[Your foe defends with $foe_def against your $your_atk attack.]]]
(set: $your_turn to false)
(if: $trans is "10s")[(after: 10s)[(go-to: "Combat")]]
(if: $trans is "6s")[(after: 6s)[(go-to: "Combat")]]
(if: $trans is "3s")[(after: 3s)[(go-to: "Combat")]]
(if: $trans is "2s")[(after: 2s)[(go-to: "Combat")]]
(if: $trans is "1s")[(after: 1s)[(go-to: "Combat")]]
(if: $trans is "0.5s")[(after: 500ms)[(go-to: "Combat")]]}{(set: $your_def to (random: 1,100), $foe_atk to (random: 1,100))
(if: $debugMode)[Updated status # $updatedStatus<br>]
(if: $your_def < $foe_atk)[(display: "EnemyScoredAnAttack")](else:)[You dodge the attack of $foe. (if: $debugMode)[(text-color:red)[Your defense $your_def beats your foe's attack $foe_atk.]]]
(set: $your_turn to true)
(if: $trans is "10s")[(after: 10s)[(go-to: "Combat")]]
(if: $trans is "6s")[(after: 6s)[(go-to: "Combat")]]
(if: $trans is "3s")[(after: 3s)[(go-to: "Combat")]]
(if: $trans is "2s")[(after: 2s)[(go-to: "Combat")]]
(if: $trans is "1s")[(after: 1s)[(go-to: "Combat")]]
(if: $trans is "0.5s")[(after: 500ms)[(go-to: "Combat")]]}{(set: _dieRoll to 0, _dmgMod to 0)
(set: _brawn to $hero's Brawn, _bal to $hero's Balance, _brain to $hero's Brain, _minDmg to 0, _maxDmg to 0, _dmgMod to 0)
(if: $hero's EquippedWeapon is "an orc's heavy battleaxe")[(set: _minDmg to $baseWeaponDamage's BattleAxe, _maxDmg to $maxWeaponDamage's BattleAxe, _dmgMod to _brawn)]
(if: $hero's EquippedWeapon is "a hunting knife")[(set: _minDmg to $baseWeaponDamage's Knife, _maxDmg to $maxWeaponDamage's Knife, _dmgMod to _bal)]
(if: $hero's EquippedWeapon is "a goblin short sword")[(set: _minDmg to $baseWeaponDamage's ShortSword, _maxDmg to $maxWeaponDamage's ShortSword, _dmgMod to _brain)]
(if: $hero's EquippedWeapon is "Short Sword (Masterwork)")[(set: _minDmg to ($baseWeaponDamage's ShortSword) + 2, _maxDmg to $maxWeaponDamage's ShortSword, _dmgMod to _bal)]
(if: $hero's EquippedWeapon is "a club")[(set: _minDmg to $baseWeaponDamage's Club, _maxDmg to $maxWeaponDamage's Club, _dmgMod to _brawn)]
(if: $hero's EquippedWeapon is "a long sword")[(set: _minDmg to $baseWeaponDamage's LongSword, _maxDmg to $maxWeaponDamage's LongSword, _dmgMod to _brawn)]
(if: $hero's EquippedWeapon is "empty")[(set: _minDmg to 0, _maxDmg to 1, _dmgMod to 0)]
(set: _dieRoll to (random: _minDmg, _maxDmg))
(set: $heroInflicts to _dieRoll + _dmgMod)Your attack hits your foe for $heroInflicts damage. (if: $debugMode)[(text-color:red)[You rolled a _dieRoll in range _minDmg to _maxDmg and added _dmgMod. ]](set: $foeLife to it - $heroInflicts)(if: $debugMode)[(text-color: red)[Your atk value $your_atk beat your foe's defense value $foe_def]]
}{Your foe hits you for $foeInflicts damage.
(if: $debugMode)[(random from rng $foeMin to $foeMax yielded $foeIntermediateDmg, to which we added $foeDmgMod)]
(if: $inv contains "a leather hauberk")[(if: $hero's EquippedTorso contains "a leather hauberk")[(set: $foeInflicts to it - 1)]]
(if: $hero's EquippedOffhand contains "a small dwarven masterwork shield")[(set: $foeInflicts to it -1)]
(if: $foeInflicts < 1)[(set: $foeInflicts to 1)]
(set: $heroLife to it - $foeInflicts)
(if: $debugMode)[(text-color:red)[Your foe's attack of $foe_atk beats your defense of $your_def.]]}{(set: $heroLife to $hero's Life, $heroInflicts to 0)
(if: $weapon is "a goblin short sword")[(set: $hero's EquippedWeapon to "a goblin short sword")]
(if: $weapon is "a club")[(set: $hero's EquippedWeapon to "a club")]
(if: $weapon is "a long sword")[(set: $hero's EquippedWeapon to "a long sword")]
(if: $weapon is "a hunting knife")[(set: $hero's EquippedWeapon to "a hunting knife")]
(if: $weapon is "Short Sword (Masterwork)")[(set: $hero's EquippedWeapon to "Short Sword (Masterwork)")]
(If: $weapon is "orc's heavy battleaxe")[(set: $hero's EquippedWeapon to "an orc's heavy battleaxe")]
}{
(if: $foe is "a goblin")[
(set: $foeAtkMod to $atkModifier's Goblin, $foeDmgMod to $dmgModifier's Goblin, $foeLife to (random: $lowLife's Goblin, $highLife's Goblin), $foeMin to $lowDamage's Goblin, $foeMax to $highDamage's Goblin)
]
(if: $foe is "a beserker goblin named Nommy")[
(set: $foeAtkMod to $atkModifier's GoblinBeserkerUniqueNommy, $foeDmgMod to $dmgModifier's GoblinBeserkerUniqueNommy, $foeLife to (random: $lowLife's GoblinBeserkerUniqueNommy, $highLife's GoblinBeserkerUniqueNommy), $foeMin to $lowDamage's GoblinBeserkerUniqueNommy, $foeMax to $highDamage's GoblinBeserkerUniqueNommy)
]
(if: $foe is "a hobgoblin")[
(set: $foeAtkMod to $atkModifier's Hobgoblin, $foeDmgMod to $dmgModifier's Hobgoblin, $foeLife to (random: $lowLife's Hobgoblin, $highLife's Hobgoblin), $foeMin to $lowDamage's Hobgoblin, $foeMax to $highDamage's Hobgoblin)
]
(if: $foe is "a kobold")[
(set: $foeAtkMod to $atkModifier's Kobold, $foeDmgMod to $dmgModifier's Kobold, $foeLife to (random: $lowLife's Kobold, $highLife's Kobold), $foeMin to $lowDamage's Kobold, $foeMax to $highDamage's Kobold)
]
(if: $foe is "an orc")[
(set: $foeAtkMod to $atkModifier's Orc, $foeDmgMod to $dmgModifier's Orc, $foeLife to (random: $lowLife's Orc, $highLife's Orc), $foeMin to $lowDamage's Orc, $foeMax to $highDamage's Orc)
]
(if: $foe is "an orc duo")[
(set: $foeAtkMod to $atkModifier's OrcDuo, $foeDmgMod to $dmgModifier's OrcDuo, $foeLife to (random: $lowLife's OrcDuo, $highLife's OrcDuo), $foeMin to $lowDamage's OrcDuo, $foeMax to $highDamage's OrcDuo)
]
(if: $foe is "an ogre")[
(set: $foeAtkMod to $atkModifier's Ogre, $foeDmgMod to $dmgModifier's Ogre, $foeLife to (random: $lowLife's Ogre, $highLife's Ogre), $foeMin to $lowDamage's Ogre, $foeMax to $highDamage's Ogre)
]
(set: $foeIntermediateDmg to (random: $foeMin, $foeMax))
(set: $foeInflicts to $foeIntermediateDmg + $foeDmgMod)
(set: $foeMaxLife to $foeLife)
}{(set: $baseWeaponDamage to
(dm: "BattleAxe", 3,
"Knife", 1,
"ShortSword", 2,
"Short Sword (Masterwork)", 4,
"Club", 2,
"LongSword", 4,
)
)
(set: $maxWeaponDamage to
(dm: "BattleAxe", 10,
"Knife", 4,
"ShortSword", 6,
"Short Sword (Masterwork)", 6,
"Club", 6,
"LongSword", 8,
)
)
(set: $lowDamage to
(dm: "none", 0,
"Goblin", 1,
"GoblinBeserkerUniqueNommy", 1,
"Hobgoblin", 2,
"Kobold", 0,
"Orc", 1,
"OrcDuo", 2,
"Ogre", 4,
"Rabbit", 0,
"Winter Wolf", 5,
)
)
(set: $highDamage to
(dm: "none", 0,
"Goblin", 2,
"GoblinBeserkerUniqueNommy", 2,
"Hobgoblin", 6,
"Kobold", 1,
"Orc", 4,
"OrcDuo", 6,
"Ogre", 9,
"Rabbit", 1,
"Winter Wolf", 15,
)
)
(set: $dmgModifier to
(dm: "none", 0,
"Goblin", 0,
"GoblinBeserkerUniqueNommy", 1,
"Hobgoblin", 2,
"Kobold", -1,
"Orc", 1,
"OrcDuo", 2,
"Ogre", 3,
"Rabbit", 0,
"Winter Wolf", 5,
)
)}
{(set: $ipAward to
(dm: "none", 0,
"Goblin", 2,
"GoblinBeserkerUniqueNommy", 4,
"Hobgoblin", 4,
"Kobold", 1,
"Orc", 3,
"OrcDuo", 4,
"Ogre", 5,
"Rabbit", 0,
)
)
(set: $xpAward to
(dm: "none", 0,
"Goblin", 50,
"GoblinBeserkerUniqueNommy", 500,
"Hobgoblin", 100,
"Kobold", 25,
"Orc", 75,
"OrcDuo", 85,
"Ogre", 100,
"Rabbit", 5,
)
)
(if: $foe is "a goblin")[(set: $awardedIpAmt to $ipAward's Goblin, $awardedXpAmt to $xpAward's Goblin)]
(if: $foe is "a beserker goblin named Nommy")[(set: $awardedIpAmt to $ipAward's GoblinBeserkerUniqueNommy, $awardedXpAmt to $xpAward's GoblinBeserkerUniqueNommy)]
(if: $foe is "a hobgoblin")[(set: $awardedIpAmt to $ipAward's Hobgoblin, $awardedXpAmt to $xpAward's Hobgoblin)]
(if: $foe is "a kobold")[(set: $awardedIpAmt to $ipAward's Kobold, $awardedXpAmt to $xpAward's Kobold)]
(if: $foe is "an orc")[(set: $awardedIpAmt to $ipAward's Orc, $awardedXpAmt to $xpAward's Orc)]
(if: $foe is "an orc duo")[(set: $awardedIpAmt to $ipAward's OrcDuo, $awardedXpAmt to $xpAward's OrcDuo)]
(if: $foe is "an ogre")[(set: $awardedIpAmt to $ipAward's Ogre, $awardedXpAmt to $xpAward's Ogre)]
(set: $xpAward to $awardedXpAmt, $reward to $awardedIpAmt)
}
{<center><img src="./images/kyrathaba/gobbie.png"></center>(if: visits is 1)[
(if: $hero's Life < $hero's MaxLife)[(set: $hero's Life to it + 1)]
(if: $hero's Balance is 2)[
(if:(save-game:"SlotAA"))[$gameMsg[Congratulations! Your Balance has improved from 1 to 2. **Game saved!**<p>]]
](else:)[You decide to save up Improvement Points for now and decide later how to spend some of them.]
<p>Fifteen minutes later, you and the ranger have left (print: $locs's SC) and are navigating your way slowly around (print: $locs's PF), fog filling the lowland. Dorn touches your shoulder to signal you, but you've already seen it: another goblin, there ahead, just visible through the moisture. And it sees //you// (link: "simultaneously!")[(goto: "ContinueHunt1")]
](else-if: visits is 2)[
(set: _ok to ($hero's Life / $hero's MaxLife) * 100)
(if: _ok > 70)[
(set: $foe to "a goblin", $your_turn to true, $liveCombat to false, $gotoPsg to "SecondGobDown")It's time to (link-goto: "bring death", "Next") to another goblin!
](else:)[An arrow sprouts from the goblin's chest. You turn to look at Dorn. Sure enough, he's just now lowering his bow. $dorn["Sorry to steal-kill, but we need to move. On me, now, $protagName. Let's (link-reveal-goto: "double-time", "DoubleTime")[(set: $doubleTimeOriginator to "ContinueHunt1")] it!"]]
]}
{(set: $gotoPsg to "SecondGobDown")}You've killed your second goblin of the day! (if: (visited: "DoubleTime"))[You see the hole in its throat where Dorn's arrow was lodged. ](else:)[You see the numerous gashes left by your weapon only moments ago.]
{(if: $hero's Life < $hero's MaxLife)[(set: $hero's Life to it + 1)]}Ten minutes later, you and Dorn have slipped close to another goblin, this one filling a waterskin at a brook not far from the muted thundering of nearby (print:$locs's PF).
=><=
(link-reveal-goto: "Attack the goblin", "Next")[(display: "SetGoblinFightVars")(set: $gotoPsg to "ThirdGobDown")]
{<!--If we arrived here from ContinueHunt1, then we are in this passage because the hero's Life is at 70% maximum or less, and Dorn doesn't want to risk this Newcomer dying in one of his first combats. -->
(if: $doubleTimeOriginator is "ContinueHunt1")[Shortly, you and the ranger stand ensconced behind an elderberry bush, looking down on the area where the ranger just a minute ago shot a goblin with his bow.
A moment later, your legs buckle, and Dorn helps ease you to the ground. $dorn["Easy, $protagName. I've got you. Deep breathes."]<p>The ranger digs into a belt pouch. $dorn["Here, "]he stuffs a leave in your right hand. $dorn["Chew on this. It tastes awful, but it'll (link-goto: "help.", "DoubleTime2")]]
}{(set: $liveCombat to false)}Welcome to **$gameTitle**, a work of interactive fiction spanning $opusLength words!
This work of interactive fiction plays a bit as if you were reading a //GameLit// novel. There is an unfolding story, but there are also choices along the way. You will be playing as Kril, a citizen in the modern-day Yukon Territory, who gets pulled into an alternate realm (or is it all just a figment of his imagination, a byproduct of his illness?)
This game is configured to use a single save game slot. If multiple people intend to play the game from the same computer, they should ensure that they log into their own separate browser profile, or their own separate Windows user account.
Players may also find Tomas Dvorak's <a target="_blank" href="https://www.tomas-dvorak.cz/localstorage-backup/">bookmarklets</a> handy. In particular, his //Backup local storage// bookmarklet would be a handy utility. You could use it to make backups of local storage so that you don't lose game progress if your browser decides to do something funky.
Navigation through the game-story most often takes place by the player clicking on hyperlinked text at the end of a sentence or paragraph.(click-replace: "sentence or paragraph.")[sentence or paragraph.
Yep, just like that!]
You'll find that you can't save just anytime you wish, but the game will have intermittent save points where it will backup your progress to local browser storage. When this happens, you may want to use Tomas Dvorak's bookmarklet (linked above) to backup this data.
=><=
(if: turns < 5)[(link-goto: "close Guide and play game", "StartGame")](else:)[(link-undo: "go back")](if: $doubleTimeOriginator is "ContinueHunt1")[
A few minutes later, the weakness in your knees seems to have passed. Dorn sighs, $dorn["I must apologize, $protagName. I should have foreseen this."]
more...
(click-replace: "more...")[
You wipe your sweaty brow, but the perspiration has already frozen. $protag["I must've had a panic attack. I haven't been taking my medication lately,"] you explain.
more...
(click-replace: "more...")[
$dorn["No, I've seen this before,"] the ranger counters. $dorn["This is Arrival Syndrome. I saw it coming on you, down in the valley, when you were about to go after that second goblin." He ticks off on his fingers: $dorn["Your pallor, the rapid breathing. Nobody breaks out in a sweat in this weather, not if there isn't a problem. It should be past now. I've never seen it last longer than ten minutes."]]
more...
(click-replace: "more...")[
Soon you're feeling much better, even a bit sheepish. You say to Dorn, $protag["Let's get back to killing goblins."]
(click: "killing goblins")[(go-to: "SecondGobDown")]
]
]]]
{(set: $awardedIpAmt to 0, $awardedXpAmt to 0, $foe to "a goblin", $foeInflicts to 0, $foeMin to 0, $foeMax to 0, $foeLife to 0, $foeMaxLife to 0, $heroLife to 0, $heroInflicts to 0, $reward to 0, $trans to "3s", $updatedStatus to 0, $weapon to $hero's EquippedWeapon, $xpAward to 0, $your_turn to true, $liveCombat to false)}
You've slain your third goblin of the day. {(set: _xpGoblin to $xpReward's Goblin) (set: _neededXP to $TNL)}(if: _neededXP > 2 * _xpGoblin)[$dorn["All right, you need (if: _neededXP < 1000)[_neededXP](else:)[(digit-format: "###,###", _neededXP)] XP to level-up," ]Dorn says. He squints, cocks his head, thinking. (set: _kills to $num2Str's (str_nth: (trunc: _neededXP / _xpGoblin))) $dorn["That means you're gonna need to kill about _kills more goblins, give or take, to make second level."]]
The ranger severs the goblin's pinkie finger from its left hand and adds it to his belt pouch. Noting your look, he says, $dorn["I'll explain when we get back to the cave."] He looks around, sniffs the air, then glances back at you. $dorn["You making it okay? The weakness all gone now?"]
=><=
(link-reveal-goto: "\"I'm good to go. Let's hunt!\"", "Next")[(display: "SetGoblinFightVars")(set: $gotoPsg to "FourthGobDown")]
(link-goto: "\"I think I'm ready to call it a day\"", "CaveAfterGoblinHunt")You've slain your fourth goblin. Well, for today: there was that injured one you killed yesterday.<p>(if:(save-game:"SlotAA"))[Game saved!]<p> {(set: _xpGoblin to $xpReward's Goblin) (set: _neededXP to $TNL)(set: _kills to $num2Str's (str_nth: (trunc: _neededXP / _xpGoblin)))(if: _neededXP >= _xpGoblin)[You need _kills more kills to level, and you are taking goblins down left and right, with little difficulty. Perhaps this realm of Kyrathaba isn't so bad...]
(click: "so bad")[<p>The next goblin (link-reveal-goto: "brings the fight to you", "Next")[(display: "SetGoblinFightVars")(set: $gotoPsg to "FifthGobDown")(display: "IncrementLife")], charging you ten minutes later as the other two goblins of their trio rush to attack Dorn.]
}{<!--we may have arrived here from NommyFinger or from BigGobbieDown-->}Quite some time later, you are back at Dorn's cave after hunting goblins with the ranger. (if: (history:)'s last is "ThirdGobDown")[You only slew three goblins before the glare from the snow and the extreme cold began to take their toll on you. ](else-if: $hero's Level is 2)[It's been a long day of goblin-slaying, but a satisfying one, both because of the strenuous exercise of combat but also because you attained another level. ]{(if: $hero's Life < $hero's MaxLife)[(set: $hero's Life to $hero's MaxLife)](if: $hero's Mana < $hero's MaxMana)[(set: $hero's Mana to $hero's MaxMana)]<p>
(set: $hero's EquippedOffhand to "empty")
(if: (visited: "SkipBigGobbie"))[A small part of you wishes you'd risked it all and attacked the goblin berserker. That dwarven shield it had carried ... man, that would have been quite the prize.](else:)[(if: $inv contains "a small dwarven masterwork shield")[You admire the polished dwarven shield which you took from the goblin berserker. (if: $hero's EquippedOffhand is "empty")[You make a mental note to equip the shield before you next enter combat.]]]<p><br>
<center>(link-goto: "the following day...", "DayAfterGobbies")</center>
}You're definitely getting the hang of this. {(set: _xpGoblin to $xpReward's Goblin) (set: _neededXP to $TNL)(set: _kills to $num2Str's (str_nth: (trunc: _neededXP / _xpGoblin)))(if: _neededXP >= _xpGoblin)[You need _kills more goblin kills to level up.]<p>}
You squat down and sever the pinkie finger from this goblin's left hand, then plant it in the snow to let it drain of blood. You glance over just to be sure the ranger is okay, but you've pretty much already figured out that these goblins don't pose much of a threat to the experienced man. No, this hunting trip is for //your// benefit.<p>
(click: "benefit")[The ranger walks over to you a minute later, tosses two more goblin pinkies into the snow, then grunts as you collect them. {(set: $inv to it + (a: "a goblin pinkie", "a goblin pinkie", "a goblin pinkie"))}<p>
The other two goblins lie neaby, several feet apart, each with an arrow through (link-goto: "its throat", "BrokenArrow").]
{(if: $hero's Life < $hero's MaxLife)[(set: $hero's Life to it + 1)]
(if: $hero's Mana < $hero's MaxMana)[(set: $hero's Mana to it + 1)]}{(display: "IncrementLife")<center><img src="./images/kyrathaba/arrowHead.png"></center>}
$dorn["Damn it!"] Dorn grumbles. You glance over to where he's recovered his two arrows from goblin corpses. One arrow is broken. He snaps off the arrowhead and pockets it, then tosses the shaft aside. $dorn["Let's go. Daylight's wasting."]
(click: "wasting")[{(display: "IncrementLife")}<center>***</center><p>Fifteen minutes later, the two of you have made your way around the (print: $locs's PF). The sun has reached its zenith. The two of you are hunkered down behind thorny brambles, spying upon quite a large goblin specimen some (link-goto: "thirty yards away", "BigGobbie").]{(display: "IncrementLife")}
From where the two of you hunker down, observing the particularly large and vicious-looking goblin, Dorn whispers, $dorn[//That's a goblin berserker. That shield of his is dwarven-made, a masterwork item. It would serve you well. Not only that, but he's a tough one. The XP you'd get from killing him and gaining that shield would likely level you up. Of course, he's more dangerous than the goblins you've faced so far..."//]
<center><img src="./images/kyrathaba/nommy.png"></center>
=><=
(link-goto: "\"Nah, too risky,\" you say", "SkipBigGobbie")
(link-reveal-goto: "\"Wish me luck\" you say, then you rush the goblin", "Next")[(display: "PreCombatSetup")(set: $foe to "a beserker goblin named Nommy", $gotoPsg to "BigGobbieDown")] {(set: $gotoPsg to "BigGobbie")}<==
{(set: _xpGoblin to $xpReward's Goblin) (set: _neededXP to $TNL)(set: _kills to $num2Str's (str_nth: (trunc: _neededXP / _xpGoblin)))}Dorn watches the big goblin a few seconds longer before whispering, $dorn["Yeah, probably too early to tackle that challenge."]
The two of you keep hidden, watching. After a couple minutes, the big goblin moves on, heading for shelter somewhere if he has any sense.
(click: "any sense")[Apparently, Dorn also realizes its too damn cold to lollygag about. He turns to you and asks, $dorn["Well, what's your preference, hunt more goblins or head back to the cave? If the former, I'd estimate you need another _kills goblin kills to level up."]
=><=
(link-goto: "\"It's awfully damned cold. Let's head back...\"", "CaveAfterGoblinHunt")
(link-goto: "\"I'm good. Let's keep hunting!\"", "DornVsGoblins2")
]
{(set: _shieldUsed to false, _xp to $hero's XP)Wow! You've killed the goblin berserker and taken its masterwork dwarven-made shield.
(if: (count: $inv, "a small dwarven masterwork shield") < 1)[(set: $inv to it + (a: "a small dwarven masterwork shield"))(set: $hero's EquippedOffhand to "a small dwarven masterwork shield")]
(if: $hero's EquippedOffhand contains "a small dwarven masterwork shield")[(set: _shieldUsed to true)]
(unless: _shieldUsed)[You might want to consider equipping it.]<p>
(if: $afterCombatLevel > $beforeCombatLevel)[Did you notice that you gained a level? Yeah, baby!]<p>
Dorn saunters over to you, chuckling. $dorn["Very well done, $protagName! What do you say we head back to the cave?"] He gazes above your head momentarily. (if: $afterCombatLevel > $beforeCombatLevel)[$dorn["Nice job, leveling!"]]<p><br>}
=><=
(text-color: #006400)[(link-goto: "\"It's awfully damned cold. Let's head back...\"", "CaveAfterGoblinHunt")]<br>
(text-color: #006400)[(link-goto: "\"I'm good. Let's keep hunting!\"", "DornVsGoblins2")]{(display: "CalcTNL")(set: _xpGoblin to $xpReward's Goblin) (set: _neededXP to $TNL)(set: _kills to $num2Str's (str_nth: (trunc: _neededXP / _xpGoblin)))
(text-style: "outline")[System Message:]
$gameMsg[You need (if: $TNL > 999)[(digit-format: "###,###", $TNL)](else:)[$TNL] XP to reach third level. That would require killing roughly _kills goblins, which would be a bit of a slog.]<p><br>
Dorn eyes the sun's position. $dorn["We've got maybe five hours of daylight left. Probably ought to be making our way back toward my cave."]<p><br>
(for: each _i, ...(range: 0, 2))[
(display: "IncrementLife")
]
}
=><=
(text-color: #006400)[(link-goto: "\"All right, homeward it is, then.\"", "CaveAfterGoblinHunt")]<br>
(text-color: #006400)[(link-goto: "\"I'm freezing. Is there anywhere we can warm up?\"", "WarmUpPlace")]<br>
(text-color: #006400)[(link-goto: "\"Let me just grab this bad boy's pinkie finger, first...\"", "NommyFinger")]Your Great Adventure has ended.
=><=
(link-goto: "restart the game", "Start")
(if: (saved-games:) contains "SlotAA")[
or, use the Load game menu in the sidebar...
]{<!--we can get here from DornVsGoblins2 or from NommyFinger-->}(if: visits is 1)[
$dorn["Yes, there's a small cave about half a mile from here than I sometimes use when I'm out hunting. Let's make for it. We can collect some wood for a fire when we get close."]
The two of you take off, hiking across a swath of lowland before climbing a gentle rise and entering a section of forest. The rumble of (print: $locs's PF) is now only very faintly audible behind you.
(click: "behind you")[(align: "<===")[A few minutes later, when you and the ranger have drawn near to the cave, Dorn is busy gathering an armload of wood when, abruptly, a large green-skinned humanoid bursts from behind a large elm and charges toward your currently defenseless guide. You have but a second to react.]
=><=
(link-goto: "shout a warning", "ShoutedAtDorn")
(link-reveal-goto: "attack the humanoid", "Next")[(display: "PreCombatSetup")(set: $foe to "an orc")]
]
](else-if: visits is 2)[
Dorn has dropped his bundle of wood and spun toward you with a long knife in his hand. Slowly, he lowers it, takes a step toward you, looks down at the corpse. $dorn["Hmm, an orc. They usually aren't found in this zone. And if there's one, then there will be more nearby..."]
<center>(link: "loot the orc's corpse")[(unless: $inv contains "an orc's heavy battleaxe")[(set: $inv to it + (a: "an orc's heavy battleaxe"))]</center>
<===
Looted! You've added the orc's heavy battleaxe to your inventory.<p><br><center>(link-goto: "travel onward to the small cave", "BeforeSmallCave")]</center>
]<img align="left" hspace="5" vspace="5" src="./images/kyrathaba/nommyFinger.png">You kneel down and use your hunting knife to sever the goblin berserker's left-hand pinkie finger. Not that you really know //why// this is a good idea, but presumably Dorn has a purpose in collecting these. As in previous cases, you plant the finger for a minute in the snow, chilling it while allowing blood to drain. Finally, you wrap it in a small patch of cloth and put it in your pack.{(if: (count: $inv, "a goblin pinkie") < 4)[(set: $inv to it + (a: "a goblin pinkie"))]<br>}
=><=
(link-goto: "\"It's awfully damned cold. Let's head home...\"", "CaveAfterGoblinHunt")
(link-goto: "\"I'm freezing. Is there anywhere we can warm up?\"", "WarmUpPlace")<br>{<center><img src="./images/kyrathaba/hunterCave.png"></center>
(if: visits is 1)[Dorn leads you deeper into the interior of the cave, which winds through a couple of turns and leaves you both well protected from the rising snowstorm. Dorn sparks fire to a pair of torches in crude sconces wedged into crevices in the cave's walls. Obviously, Dorn or other hunters have been to this cave before.<p>
The ranger turns to you as he brushes mud and snow from his cloak.
<p>](else:)[
(if: (visited: "YourFirstCampfire"))[
Soon, you and the ranger are enjoying a merrily glowing fire, with enough firewood to last the night if you keep the fire small. Dorn has rigged a tarpaulin that somewhat blocks the icy draft coming from the passageway leading to the cave entrance.<p>
He glances over at you after putting a tin kettle of snow on the fire to melt and then boil. $dorn["Tend this for a few minutes for me, will you? I'm going to set an alarm and a trap at the cave mouth."] As he moves away, he calls back, $dorn["I'll bring more snow when I come back. That full kettle will melt down to about two finger-widths (link-goto: "of water", "SmallCave2")..."]]
]
(unless: (visited: "YourFirstCampfire"))[
$dorn["Have you ever built a fire from scratch before, $protagName?"]<p><br>
=><=
(link-goto: "\"No, I haven't\"", "FireStarter")
]
}
{<!--we get here from WarmUpPlace; this is merely a helper passage. It gives some context before launching the player into combat--><center><img src="./images/kyrathaba/attackingOrc.png"</center>}
(align: "<===")[You cry out in alarm, something that's a cross between a scream and battle roar. Dorn jerks in surprise, clocks that your gaze is fixed beyond him, and spins -- but too late: the orc bowls him over while raising his crude battleaxe and bringing it down with the intent of splitting you in half.]
=><=
(link-reveal-goto: "Fight!", "Next")[(display: "PreCombatSetup")(set: $foe to "an orc")]<!--Note: ALWAYS specify value for **``$foe``** AFTER displaying PreCombatSetup-->(set: $awardedIpAmt to 0, $awardedXpAmt to 0, $foe to "an orc", $foeInflicts to 0, $foeMin to 0, $foeMax to 0, $foeLife to 0, $foeMaxLife to 0, $heroLife to 0, $heroInflicts to 0, $reward to 0, $trans to "3s", $updatedStatus to 0, $weapon to $hero's EquippedWeapon, $xpAward to 0, $your_turn to true, $liveCombat to false, $gotoPsg to "WarmUpPlace", $hero's Life to $hero's MaxLife){(if: visits is 1)[
$dorn["Well, then! There's no time like the present."] He grabs one of the flaming torches, and crosses the uneven cave floor. $dorn["Bring some of those dried pine needles, twigs, and small sticks over here to the fire-ring, (link-goto: "would you?", "FireStarter")"]
](else-if: visits is 2)[
You bring fuel for the fire and squat down next to Dorn and the fire-ring. $dorn["Good,"] says the ranger. $dorn["Now, tease some of the pine needles into a loose clump... yes, just like that. Now, take three of the sticks and lean them together into a tripod shape."] You do as instructed, and the ranger rubs his hands together in approval.<p>$dorn["Now, carefully place some twigs atop the pine needles, being careful not to disturb the (link-goto: "tripod sticks...", "FireStarter")"]
](else-if: visits is 3)[
Dorn takes some dry leaves and pine needles -- which were //not// easy to find amid the falling and already fallen snow -- and lays a track of this material from the edge of the fire-ring to the central pile of needles and twigs. He retrieves flint and steel from a belt pouch. He demonstrates how to strike sparks, then hands them to you.<p>$dorn["The idea is to try to direct the sparks to land on the leaves and pine needles without knocking over the structure (link-goto: "you've built.", "FireStarter")"]
](else:)[
<center>(link: "attempt to light the fire")[(set: _light to (random: 1, 100))(if: _light < 96)[(go-to: "YourFirstCampfire")](else-if: _light < 99)[(go-to: "DohAlmost")](else:)[(go-to: "CollapsedCampfire")]]</center>
]
}(if: visits is 1)[<center><img src="./images/kyrathaba/campfire.png">
Success!
</center>
(align: "<===")[(click: "Success!")[Congratulations, you've kindled your first campfire! (if:(save-game:"SlotAA"))[Game saved!<p>]
(set: $reward to 1, $xpAward to 25)(display: "UpdateExperience")
(text-style: "outline")[System Message: ]$gameMsg[You have gained the **Kindle Fire** skill.](set: $rangerSkills to it + (a: "Kindle Fire"))<p><br>(align: "=><=")[<center>continue</center>]
(click: "continue")[(go-to: "SmallCave")]
]]
](else:)[
(go-to: "SmallCave")
]
$dorn["That's okay, $protagName. I didn't succeed on my (if: visits is 1)[first try](else:)[first few tries] either. Why don't you try again?"]
(click: "try again?")[(set: _light to 1, _try to true)(if: _light < 96)[Great job, you've kindled your first campfire! (set: $reward to 1, $xpAward to 25)(display: "UpdateExperience")
(unless: $rangerSkills contains "Kindle Fire")[(text-style: "outline")[System Message: ]$gameMsg[You have gained the **Kindle Fire** skill.](set: $rangerSkills to it + (a: "Kindle Fire")) <p><br><center>(link-goto: "enjoy the cheery fire", "SmallCave")</center>]]]"Oops, you knocked over the pile of kindling!{(set: _light to 100, _try to false)}
$dorn["That's okay, $protagName. I didn't succeed on my (if: visits is 1)[first try](else:)[first few tries] either. Why don't you try again?"]
(click: "try again?")[(set: _light to 1, _try to true)(if: _light < 96)[Great job, you've kindled your first campfire! (set: $reward to 1, $xpAward to 25)(display: "UpdateExperience")
(unless: $rangerSkills contains "Kindle Fire")[(text-style: "outline")[System Message: ]$gameMsg[You have gained the **Kindle Fire** skill.](set: $rangerSkills to it + (a: "Kindle Fire")) <p><br><center>(link-goto: "enjoy the cheery fire", "SmallCave")</center>]]]
Soon, Dorn returns to your side by the fire. He adds more snow to the tin kettle. $dorn["I've done the best I could at the entrance. Not much material with which to build a trap.
I think we're in good shape: from outside, I don't see any sign of smoke from our fire. Not that I //could// see it even if it were there, given how the snow storm is worsening. The orc you killed is already covered up, blanketed in white. If this doesn't relent soon, we'll be forced to spend the night here."]
=><=
(text-color: #006400)[(link-goto: "\"Oh! Well, should we gather more wood?\"", "MoreWood")]
(text-color: #006400)[(link-goto: "\"What about the orcs in the area. Will they find us?\"", "UmAboutOrcs")](if: (visited: "UmAboutOrcs"))[
$dorn["It's doubtful the orcs will continue patrolling in the snowstorm. And if they were to find us here, or stumble across this cave while seeking shelter... well, the trap I set would give us some advance warning."]
(text-color: #006400)["Do you think we should gather more wood?"]]
$dorn["Mmm, I think //not//,"] says the ranger. $dorn["It's a whiteout out there. Too easy to get lost, suffer a fall, or -- in your particular case -- catch a cold."]
=><=
(text-color: #006400)[(link-goto: "\"In my particular case?\"", "InMyCase")]
(text-color: #006400)[(link-goto: "Add more snow to the kettle", "SnowToKettle")]
{(for: each _i, ... (range: 1,5))[(display: "IncrementLife")]
}(if: (visited: "SnowToKettle"))[You add the last of the collected snow to the kettle that sits on the fire, then ask, ]$protag["In my case? I take it I'm at greater risk of pneumonia or the sniffles than you are, then?"]
Dorn nods, $dorn["Yep, you are. What with it being afternoon already, and the snowfall diffusing the sunlight, the temperature is dropping quickly. With your low Brawn score, you should play it safe and stay in the cave."]
=><=
(text-color: #006400)(link-goto: "\"Surely I'm not //that// susceptible. I heal quickly\"", "HealQuickly")
(text-color: #006400)(link-goto: "\"Well then, can I improve my Brawn score?\"", "BetterBrawn")<!--we only visit this passage to act as a set flag-->(go-to: "InMyCase"){(set: _brawn to $hero's Brawn)
(set: _ip to $hero's ImprovementPoints)
(if: _ip >= (10 * _brawn))[Your banked IP of _ip is sufficient to purchase a Brawn increase to (print: _brawn + 1).<p>Do you wish to spend (print: _brawn * 10) IP to raise your Brawn to (print: _brawn + 1), leaving you with (print: _ip - (10 * _brawn)) IP?<p>
<center>
(link-reveal-goto: "Yes", "Status")[(set: $hero's ImprovementPoints to _ip - (_brawn * 10), $hero's Brawn to _brawn + 1)] | (link-goto: "No", "Status")
</center>
]}
{(set: _brain to $hero's Brain)
(set: _ip to $hero's ImprovementPoints)
(if: _ip >= (10 * _brain))[Your banked IP of _ip is sufficient to purchase a Brain increase to (print: _brain + 1).<p>Do you wish to spend (print: _brain * 10) IP to raise your Brain to (print: _brain + 1), leaving you with (print: _ip - (10 * _brain)) IP?<p>
<center>
(link-reveal-goto: "Yes", "Status")[(set: $hero's ImprovementPoints to _ip - (_brain * 10), $hero's Brain to _brain + 1)] | (link-goto: "No", "Status")
</center>
]}{(set: _bal to $hero's Balance)
(set: _ip to $hero's ImprovementPoints)
(if: _ip >= (10 * _bal))[Your banked IP of _ip is sufficient to purchase a Balance increase to (print: _bal + 1).<p>Do you wish to spend (print: _bal * 10) IP to raise your Balance to (print: _bal + 1), leaving you with (print: _ip - (10 * _bal)) IP?<p>
<center>
(link-reveal-goto: "Yes", "Status")[(set: $hero's ImprovementPoints to _ip - (_bal * 10), $hero's Balance to _bal + 1)] | (link-goto: "No", "Status")
</center>
]}
(go-to: "MoreWood")(go-to: "BetterBrawn")(if: (visited: "HealQuickly"))[$dorn["Well, everyone heals quickly here in Kyrathaba. It has something to do with the fact that Mana infuses everything in such high concentrations. If you think you heal fast //now//, just wait till you get your Brawn score up a few points."]
(text-color: #006400)[$protag["Hmm, can I improve my Brawn?"]]]
Dorn gets that look again that tells you he's reading your Status. $dorn["Yes, if you have sufficient Improvement Points, you can raise any of your attributes. When you pull up your Status screen, look for an upward-pointing arrow. If you see one next to Brawn, or either of your other attributes, it means you can raise that attribute."]
=><=
(text-color: #006400)[(link-goto: "\"Looks like the water is boiling,\" you observe", "BoilingWater")]
(text-color: #006400)[(link-goto: "\"If we get snowed in here, will your cave be safe?\"", "DornCaveSafe")]{(set: $isOffhand to
(a: "a small dwarven masterwork shield",
"a small goblin wooden shield",
"a medium steel shield"
)
)
(set: $isTorso to
(a: "a leather hauberk")
)
(set: $isWeapon to
(a: "a hunting knife",
"a goblin short sword",
"an orc's heavy battleaxe",
"Short Sword (Masterwork)"
)
)
(set: $isEyewear to
(a: "polarized goggles",
)
)
(set: $isHandwear to
(a: "warm leather gloves",
)
)
(set: $isFootwear to
(a: "snowshoes",
"a pair of loafers",
)
)
(set: $isHipwear to
(a:
)
)
(set: $isNeckwear to
(a: "a woolen cloak",
)
)
(set: $isShoulderwear to
(a: "a furred overcloak",
)
)
(set: $requiredBrawn to
(dm: "HuntingKnife", 1,
"GoblinShortSword", 1,
"LeatherHauberk", 1,
"OrcHeavyBattleaxe", 2,
"ShortSwordMasterwork", 1,
"SnowShoes", 1,
)
)
(set: $tooHeavyToWield to (a:))
(set: _req to $requiredBrawn's OrcHeavyBattleaxe)
(if: _req > $hero's Brawn)[
(set: $tooHeavyToWield to it + (a: "an orc's heavy battleaxe"))
]
(set: _req to $requiredBrawn's LeatherHauberk)
(if: _req > $hero's Brawn)[
(set: $tooHeavyToWield to it + (a: "a leather hauberk"))
]
}(set: _wolf to $dornFriends's AnimalCompanion, _mage to $dornFriends's MS, _town to $locs's ST)
(unless: $inv contains "a hunting knife")[(set: $inv to it + (a: "a hunting knife")]
(unless: $inv contains "a leather hauberk")[(set: $inv to it + (a: "a leather hauberk"))]
(unless: $inv contains "a goblin short sword")[(set: $inv to it + (a: "a goblin short sword"))]
(unless: $inv contains "an orc's heavy battleaxe")[(set: $inv to it + (a: "an orc's heavy battleaxe"))]
(unless: $inv contains "a small dwarven masterwork shield")[(set: $inv to it + (a: "a small dwarven masterwork shield"))]
(unless: $inv contains "Short Sword (Masterwork)")[(set: $inv to it + (a: "Short Sword (Masterwork)"))]
<!--comment out the code below that adds goblin pinkies because we no longer need them: they get used up by Dorn's Exchange spell
(if: (count: $inv, "a goblin pinkie") < 3)[
(set: _diff to 3 - (count: $inv, "a goblin pinkie"))
(for: each _i, ...(range: 1, _diff + 1))[
(set: $inv to it + (a: "a goblin pinkie"))
]
]
-->
(unless: $inv contains "an orc's ear")[(set: $inv to it + (a: "an orc's ear"))]
(if: $inv contains "an orc's heavy battleaxe")[
(if: $hero's Brawn > 1)[(set: $hero's EquippedWeapon to "an orc's heavy battleaxe")]
]
(if: $inv contains "Short Sword (Masterwork)")[
(set: $hero's EquippedWeapon to "Short Sword (Masterwork)")
]
(if: $inv contains "a small dwarven masterwork shield")[(set: $hero's EquippedOffhand to "a small dwarven masterwork shield")]
(if: $inv contains "a leather hauberk")[(set: $hero's EquippedTorso to "a leather hauberk")]
(unless: $inv contains "warm leather gloves")[(set: $inv to it + (a: "warm leather gloves"))]
(set: $hero's EquippedHandwear to "warm leather gloves")
(unless: $inv contains "polarized goggles")[(set: $inv to it + (a: "polarized goggles"))]
(set: $hero's EquippedEyewear to "polarized goggles")
(unless: $inv contains "a furred overcloak")[(set: $inv to it + (a: "a furred overcloak"))]
(set: $hero's EquippedShoulderwear to "a furred overcloak")
(unless: $inv contains "a woolen cloak")[
(set: $inv to it + (a: "a woolen cloak"))
(set: $hero's EquippedNeckwear to "a woolen cloak")
]
(unless: $inv contains "snowshoes")[(set: $inv to it + (a: "snowshoes"))]
(set: $hero's EquippedFootwear to "snowshoes")
(set: _txt to "Unknown date: " + _mage + " is a mage that might be able to train me. She lives in " + _town + ". Dorn says she lives in a tower that was raised by magic.")(unless: $journal contains _txt)[(set: $journal to it + (a: _txt))]
(set: _txt to "Unknown date: Dorn tells me that his wolf, " + _wolf + ", is an //Eruin// (eh-ROO-een), a spirit that has taken on animal form. He didn't say, but I imagine such creatures are notably more powerful than their ordinary creature counterparts.")(unless: $journal contains _txt)[(set: $journal to it + (a: _txt))]
(set: _kiala to "kiala: a tea from the Flahn Forest that Dorn introduced me to the night we were holed up in a cave because of a bad snowstorm. The tea is very aromatic and made me feel like I do when I occasionally smoke a strong cigarette.")(unless: $journal contains _kiala)[(set: $journal to it + (a: _kiala))](set: _chalib to "chalib: A drink made from the roots of a tree that grows in the Flahn Forest. Its taste is reminiscent of cocoa, but with a hint of orange or some other citrus fruit flavor. It relieves pain and brings on an enveloping sense of well-being.")(unless: $journal contains _chalib)[(set: $journal to it + (a: _chalib))](mock-visits: "NotCrazy", "NotImagine", "DornOrigin", "BothFromEarth", "DornSupposes", "DornSupposes2", "RabbitWithDorn", "BreakfastAtDorns", "BreakfastAtDorns2", "Quest2Offer", "LetsGoHunting", "GoHunting", "GoHunting2", "Survey", "Survey2", "Survey3", "Survey4", "Survey5", "Survey6", "FinallyLetsHunt", "WordOfWarning", "WordOfWarning2", "DornVsGoblins1", "FirstGreenieDown", "ContinueHunt1", "SecondGobDown", "ThirdGobDown", "FourthGobDown", "FifthGobDown", "BrokenArrow", "BigGobbie", "BigGobbieDown", "NommyFinger")
(mock-visits: "WarmUpPlace", "ShoutedAtDorn", "WarmUpPlace", "SmallCave", "YourFirstCampfire", "BeforeSmallCave", "SmallCave", "SmallCave2", "UmAboutOrcs", "MoreWood", "SnowToKettle", "InMyCase", "HealQuickly", "BetterBrawn", "BoilingWater", "YourLoadout", "OfferScrollcase", "StomachGrowls", "DiscussBeryl", "HoldOntoBeryl", "SoldBeryl", "CheckStorm", "KyrSeasons", "NightWatch", "BarterScroll", "NightVisitor", "HowTamedWolf", "OrcsTrackWolf", "AfterStorm", "TeaRefill", "WolfFriendly")
(mock-visits: "BowUse", "BowUse", "BowUse", "AboutMerric", "AboutMerric", "AboutMerric", "OtherPaths", "OtherPaths", "OtherPaths", "NoReservations", "NoReservations", "NoReservations", "MidnightStorm", "MidnightStorm", "MidnightStorm", "MidnightStorm", "Rifts", "Rifts", "RiftsChalib", "Rifts", "Rifts", "Rifts", "Extradimensional", "Extradimensional")
(unless: $startHere contains "WolfSleeps")[
(mock-visits: "Extradimensional", "GodsPhysics", "GodsPhysics", "GodsPhysics", "WolfSleeps", "WolfSleeps", "Wolfsleeps", "PredawnLight", "Predawn2", "OutHunterCave", "InspireCon", "Dawn1Dorn", "Dawn2Dorn", "Dawn3Dorn", "Dawn4Dorn", "Slay2ndTrio")
](else:)[
(mock-visits: "Extradimensional", "GodsPhysics", "GodsPhysics", "GodsPhysics", "WolfSleeps", "WolfSleeps")
]
Dorn takes your cue and lifts the hot tin of bubbling water off the fire with a gloved hand. He produces a matching pair of tin cups from his pack, then roots around in a belt pouch. $dorn["I'm guessing since you're a new Arrival that you don't have a mess kit yet. We'll need to fix that."] He produces some dark leaves from his pouch, crumbles some of them into each cup, then pours hot water over them. Immediately, a heady fragrance fills the air.
(unless: (visited: "DornCaveSafe"))[$dorn["Remind me when we get back to my cave. I think I have some odds and ends we can use to improve your loadout."]]
=><=
(text-color: #006400)[(link-goto: "\"My 'loadout'?\"", "YourLoadout")]$dorn["My cave? Well, it'll be like all the other times I've gone out hunting or monster killing. Either nobody will come across my cave at all, or -- if they do -- the traps I've set will deter entry and theft."] He shrugs(unless: (visited: "BoilingWater"))[, producing some dark leaves and making tea for the two of you. A heady fragrance fills the area as dark leaves steep in tin cups the ranger has produced from his pack.]
$dorn["There've been times I returned home to find someone squatting in my cave. Once, a pair of bandits even staged an ambush for me."] After a moment he regards you across the dancing flames. $dorn["Let's talk about (link-goto: "your loadout", "YourLoadout")."]
You search through your backpack by the light of the fire and the pair of torches. $protag["I'm guessing by 'loadout' you mean my gear?" ](if: $backpack's Scrollcase1 is 1)[You pull a scroll tube from your pack](if: $backpack's WoolBlanket is 1)[, followed by your wool blanket, which you wrap around your shoulders. ](else:)[. ](if: $inv contains "a beryl gemstone")[You dig in your belt pouch and retrieve the beryl gemstone you found in the snow the other day.]
=><=
(if: $backpack's Scrollcase1 is 1)[(text-color: #006400)[(link-goto: "Let Dorn examine the scroll case", "OfferScrollcase")]]
(if: $inv contains "a beryl gemstone")[(text-color: #006400)[(link-goto: "You hold up the gem and grin at Dorn", "DiscussBeryl")]]
<center><img width="75" src="./images/kyrathaba/scroll.png"></center>
You hold out the smooth scroll tube which seems to be fashioned of an ivory or bone-like substance. $protag["This was in my backpack after I crossed into Kyrathaba."]
Dorn accepts the container and opens it, tapping it, then extracting the rolled up parchment it contains. Unfurling it, he turns so that the firelight illuminates it. $dorn["Ah, a minor healing scroll. Not very powerful, but handy, especially at your low level. It's an appropriate item for your current loadout."] He replaces the parchment and returns the scroll tube to you.
=><=
(unless: (visited: "DiscussBeryl"))[(text-color: #006400)[(link-goto: "Let Dorn examine the beryl gemstone", "DiscussBeryl")]](else:)[(text-color: #006400)[(link-goto: "\"Man, I'm getting hungry...\"", "StomachGrowls")]]
(unless: (visited: "ReadMagic"))[(text-color: #006400)[(link-goto: "\"Why can't I activate the scroll?\"", "ReadMagic")]]
(if: (visited: "DiscussBeryl"))[(unless: (visited: "HoldOntoBeryl"))[(set: $quote to "\"Any reason I ought to hold onto the beryl?\"", $dest to "HoldOntoBeryl")(display: "ProtagQuoteGoto")]]
<center><img src="./images/kyrathaba/beryl.png"></center>
$dorn["May I?"] asks the ranger, extending his hand. You hand the gemstone to him and he leans close to the fire, examining it carefully while turning it over and over with his fingers. $dorn["It's worth about $berylValue credits. You could try selling it in (print: $locs's ST), but they'll try to get you to accept sixty to seventy percent of its real value."]
He hands the jewel back to you. $dorn["Or, I can give you full value for it. I can spare $berylValue credits. Or, I have an assortment of equipment I've collected over the past year. I'm happy to barter with you."]
=><=
(unless: (visited: "OfferScrollcase"))[(text-color: #006400)[(link-goto: "Let Dorn examine the scroll tube", "OfferScrollcase")]](else:)[(unless: (visited: "StomachGrowls"))[(text-color: #006400)[(link-goto: "\"Man, I'm getting hungry...\"", "StomachGrowls")]]]
(unless: (visited: "HoldOntoBeryl"))[(set: $quote to "\"Any reason I ought to hold onto the beryl?\"", $dest to "HoldOntoBeryl")(display: "ProtagQuoteGoto")]<center><img src="./images/kyrathaba/campfire.png"></center>
Dorn nods, acknowledging your comment. $dorn["Yes, I wish we'd hunted. I'm getting pretty hungry, too."] The ranger digs into his pack, then hands you a block of cheese and a twine-bound bundle of jerky. $dorn["Cut me off a chunk of both, would you?"]
=><=
{(unless: (visited: "ReadMagic"))[(set: $quote to "\"How come I can't activate my healing scroll?\"", $dest to "ReadMagic", $cond to "(set: $zvar to \"Boogie\")")
(display: "ProtagQuoteGoto")<br>]
(unless: (visited: "OfferScrollcase"))[(text-color: #006400)[(link-goto: "\"Check out this scroll I found...\"", "OfferScrollcase")]<br>]
(unless: (visited: "DiscussBeryl"))[(text-color: #006400)[(link-goto: "\"Take a look at this gemstone I found.\"", "DiscussBeryl")]](else:)[(set: $quote to "\"Any reason I ought to hold onto the beryl?\"", $dest to "HoldOntoBeryl")(display: "ProtagQuoteGoto")<br>]
}(unless: (visited: "WarmUpPlace"))[You wake refreshed the next morning, around dawn. All the past day's fighting and hiking allowed you to sleep deeply, even though you missed your comfy mattress and heated apartment.
Dorn has finished frying a brace of rabbits and hands you a plate. $dorn["I'm hoping to visit one of my caches today and resupply it, just a place I use sometimes when I'm going to be away overnight."]
$protag["Sure, that sounds good to me. Maybe I can get some more kills in; if I'm lucky, I may even level up again."]
Hours later and miles from Dorn's cave, you pause briefly.
=><=
(text-color: #006400)[(link-goto: "\"I'm freezing. Is there anywhere we can warm up?\"", "WarmUpPlace")]
]{<!--requires that three vars be set before displaying this passage; for instance:
{(set: $quote to "\"How come I can't activate my healing scroll?\"", $dest to "ReadMagic", $cond to "(set: $zvar to \"Boogie\")")
-->
(text-color: #006400)[(link-reveal-goto: $quote, $dest)[$cond]]}{<!--(print: $zvar)-->Dorn blinks a couple of times, then sits up a bit straighter. $dorn["Oh, of course!"] he says, smacking his forehead with an open palm. $dorn["You're brand new to Kyrathaba. You haven't yet learned anything about magic. Reading and casting from scrolls requires the //Read Magic// skill. Without that, the scroll is useless to you."]<br>
=><=
<p>
(unless: (visited: "DiscussBeryl"))[(text-color: #006400)[(link-goto: "Let Dorn examine the beryl gemstone", "DiscussBeryl")]]
(if: (visited: "DiscussBeryl"))[(unless: (visited: "HoldOntoBeryl"))[<br>(set: $quote to "\"Any reason I ought to hold onto the beryl?\"", $dest to "HoldOntoBeryl")(display: "ProtagQuoteGoto")]]
(if: (visited: "DiscussBeryl") and (visited: "HoldOntoBeryl"))[<br>(text-color: #006400)[(link-reveal-goto: "\"I'd like to sell the beryl to you, Dorn\"", "SoldBeryl")[(if: $inv contains "a beryl gemstone")[(set: $inv to it - (a: "a beryl gemstone"))(set: _funds to $hero's Credits)(set: _funds to it + 300)(set: $hero's Credits to it + _funds)]]]]
(if: (visited: "DiscussBeryl") and (visited: "HoldOntoBeryl"))[<br>(text-color: #006400)[(link-goto: "\"I'll keep the beryl, for now...\"", "KeepBerylAwhile")]]
(unless: (visited: "StomachGrowls"))[<br>(text-color: #006400)[(link-goto: "\"Man, I'm starving!\"", "StomachGrowls")]]
(unless: (visited: "OfferScrollcase"))[(text-color: #006400)[(link-goto: "\Hey, check out this scroll...\"", "OfferScrollcase")]]
}<center><img src="./images/kyrathaba/campfire.png"></center>
Dorn purses his lips momentarily at your question before responding. $dorn["That's hard to say. There might be a jeweller somewhere who'd pay even better for the gem. Or, if you were to go down a mage skill path in your development, such a stone might be a useful spell component. But is there any big //gotcha// reason to hold onto it? Not that I know of."]
=><=
{
(unless: (visited: "SoldBeryl"))[(text-color: #006400)[(link-reveal-goto: "\"I'd like to sell the beryl to you, Dorn\"", "SoldBeryl")[(if: $inv contains "a beryl gemstone")[(set: $inv to it - (a: "a beryl gemstone"))(set: _funds to $hero's Credits)(set: _funds to it + 300)]]]<br>]
(if: (visited: "DiscussBeryl") and (visited: "HoldOntoBeryl"))[(text-color: #006400)[(link-goto: "\"I'll keep the beryl, for now...\"", "KeepBerylAwhile")]<br>]
(unless: (visited: "OfferScrollcase"))[(text-color: #006400)[(link-goto: "Let Dorn examine the scroll tube", "OfferScrollcase")]](else:)[(unless: (visited: "ReadMagic"))[(set: $quote to "\"How come I can't activate my healing scroll?\"", $dest to "ReadMagic")(display: "ProtagQuoteGoto")<br>]]}{(set: _creds to $hero's Credits)}$dorn["Excellent!"] enthuses the ranger, accepting the beryl gemstone from you. {(if: _creds < 300)[(set: _creds to it + 300)(set: $hero's Credits to _creds)]}
(text-style: "outline")[System Message:]
$gameMsg[You received 300 credits from Dorn.]
Dorn holds the gem up to the firelight briefly, admiring it, before carefully securing it in a tiny bag, cinching the drawstring, and add that to his (link-goto: "belt pouch", "CheckStorm").{(set: _friend to $dornFriends's MS)}$protag["I think I'll hang onto the beryl for the time being, but if I decide to sell it, I'll definitely remember your interest in it, Dorn."] You return the gemstone to your inventory, then pass Dorn a chunk of cheese and a portion of the jerky.
$dorn["Sure thing,"] replies the ranger, taking a bit of jerky and then lifting his cup of tea. $dorn["Remind me to take you meet my friend, _friend."] The ranger pulls a wrinkled-looking, shrunken brown object from a pocket and offers it to you. $dorn["It's dehydrated apple," ]he explains.
=><=
(unless: (visited: "OfferScrollcase"))[(text-color: #006400)[(link-goto: "\"Hey, check out this scroll...", "OfferScrollcase")]]
(text-color: #006400)[(link-goto: "\"I wonder if the storm has lightened\"", "CheckStorm")]
{(set: _friend to $dornFriends's MS)}The ranger leaves the fire briefly to check the state of the snowstorm at the cave mouth. When he returns, he sighs. $dorn["We'll definitely be spending the night here. It's really coming down thick out there."] After a few moments, he says, $dorn["_friend is a mage, and quite a skilled one too. I'd at least like to get him to teach you the //Read Magic// skill. It's too useful to pass up."]
You nod, bemused. You should have expected a world with goblins and orcs to also have mages. You file this information away, content to visit with this _friend whenever Dorn can manage the introductions.
=><=
(text-color: #006400)[(link-goto: "\"Does Kyrathaba have seasons?\"", "KyrSeasons")]
(text-color: #006400)[(link-goto: "\"Should we share watches tonight?\"", "NightWatch")]
(if: (visited: "KyrSeasons") or (visited: "NightWatch"))[(text-color: #006400)[(link-goto: "\"Could I barter with my scroll?\"", "BarterScroll")]]{(set: _friend to $dornFriends's AnimalCompanion, _you to $protagName)}(if: $inv contains "warm leather gloves")[(if: $inv contains "polarized goggles")[$gameMsg[You have traded Dorn a healing scroll in exchange for warm leather gloves and polarized goggles.]]]<p>As the hair on the back of your neck stands at full attention, you turn toward the dark passage leading to the mouth of the cave. Padding silently into the penumbra of light shed by your fire is a large wolf, eyes glowing yellow. He growls gently but doesn't gather himself for springing at you.
$dorn["Easy big fella..."] You're fairly certain the ranger is talking to the wolf rather than to you. $dorn["_you, this is my animal companion, _friend."]
=><=
{
(set: $gotoPsg to "HowTamedWolf", $quote to "How did you tame a wolf?")(display: "unvis")
(set: $gotoPsg to "OrcsTrackWolf", $quote to "What if the orcs spot wolf tracks?")(display: "unvis")
(set: $gotoPsg to "AfterStorm", $quote to "So, where to after this storm?")(display: "unvis")
}
<!--
(unless: (visited: "AfterStorm"))[(text-color: #006400)[(link-goto: "\"So, where to after this storm?\"", "AfterStorm")]]
In the OrcsTrackWolf example, we shorten from 131 characters to 104 characters, a savings of 27 characters.
In the HowTamedWolf example, we go from 119 bytes to 93 characters, a savings of 26 characters.
In the AfterStorm example, usage of displaying passage unvis would shorten code from 121 characters to 93 characters, a difference of 28 characters; not a lot, but multiplied over hundreds of passages...
SO, IN JUST THIS PASSAGE ALONE, A TOTAL SAVINGS OF 27+26+28=81 BYTES.
Here are the other two we replaced:
(unless: (visited: "HowTamedWolf"))[(text-color: #006400)[(link-goto: "\"How did you tame a wolf?\"", "HowTamedWolf")]]
(unless: (visited: "OrcsTrackWolf"))[(text-color: #006400)[(link-goto: "\"What if the orcs spot wolf tracks?\"", "OrcsTrackWolf")]]
-->$dorn["Yes, Kyrathaba has seasons that mirror those of Earth -- Spring, Summer, Fall, and Winter. Now, as to the mechanics behind the seasons, I don't know if it has to do with planetary rotation, revolution about a sun, or one's latitude."] He takes a sip of tea, thinking. $dorn["In truth, I have no idea where we are located on the (presumable) globe of Kyrathaba."]
=><=
{
(set: $gotoPsg to "NightWatch", $quote to "Should we share watches tonight?")(display: "unvis")
(set: $gotoPsg to "BarterScroll", $quote to "Could I barter with my scroll?")(display: "unvis")
(unless: (visited: "NightVisitor"))[(link-goto: "You hear a low, feral growl...", "NightVisitor")]
}
{(set: _wolf to $dornFriends's AnimalCompanion)}$dorn["It's never //inadvisable// to set watches when in the wilds of Kyrathaba. However, I have summoned my animal companion, _wolf, and he should be arriving shortly."]
(unless: (visited: "NightVisitor"))[You feel a tingle at the base of your skull, your animal hindbrain trying to alert you to danger...]
=><=
{
(set: $gotoPsg to "KyrSeasons", $quote to "Does Kyrathaba have seasons?")(display: "unvis")<br>
(set: $gotoPsg to "BarterScroll", $quote to "Could I barter with my scroll?")(display: "unvis")<br>
(unless: (visited: "NightVisitor"))[(link-goto: "You hear a low, feral growl...", "NightVisitor")]
}Dorn lifts an eyebrow. $dorn["Barter with //me// by using your scroll?"] He considers for a moment. $dorn["Well, truthfully, I've developed beyond the point where that particular scroll would help me much, were I injured. But ..."] He roots around in his pack for a moment, then pulls out a pair of fur-lined leather gloves and some dark goggles like a snow-skier might use. $dorn["Here are a couple items you could definitely use."]
=><=
{
(set: $gotoPsg to "NightVisitor", $quote to "Hmm, let me think about it...")(display: "unvis")
(text-color: #006400)[(link-reveal-goto: "\"Agreed, I'll trade the scroll for those items...\"", "NightVisitor")[(set: $backpack's Scrollcase1 to 0)(unless: $inv contains "warm leather gloves")[(set: $inv to it + (a: "warm leather gloves"))](unless: $inv contains "polarized goggles")[(set: $inv to it + (a: "polarized goggles"))]]]
}
$protag["Wow, Dorn..."] Your body is still trying to regain equilibrium after the surge of adrenaline the wolf's appearance caused. $protag["How? I mean, how did you manage to tame a feral wolf? Or is this really a wolf and not some Kyrathaban analog?"]
$dorn["He's a wolf, yes. And nice job, by the way, working the word 'analog' into the conversation."] The ranger grins. $dorn["Understand, I've only traveled within a hundred miles of my cave. But in my wanderings, I've encountered many of the animals you'd find in North America, Earth. We can generalize and assume that the similarity to Earth is widespread."]
{
(set: $gotoPsg to "OrcsTrackWolf", $quote to "What if the orcs spot wolf tracks?")(display: "unvis")<br>
(set: $gotoPsg to "AfterStorm", $quote to "So, where to after this storm?")(display: "unvis")<br>
(unless: (visited: "TeaRefill"))[(link-goto: "Accept a refill of the last of the tea", "TeaRefill")]
}{(set: _friend to $dornFriends's AnimalCompanion)}$dorn["Unlikely. Like I said before, the orcs probably did the same as we did: holed up as soon as they realized a major storm was upon them. But even if there are orcs that are exposed and moving nearby, the snow will limit visibility to ten feet at best."] The ranger adds another stick to the fire. $dorn["Besides, the tracks that _friend made will be covered up in mere minutes."]
=><=
{
(set: $gotoPsg to "HowTamedWolf", $quote to "How did you tame a wolf?")(display: "unvis")<br>
(set: $gotoPsg to "AfterStorm", $quote to "So, where to after this storm?")(display: "unvis")<br>
(unless: (visited: "TeaRefill"))[(link-goto: "Accept a refill of the last of the tea", "TeaRefill")]
}{(set: _friend to $dornFriends's AnimalCompanion)}$dorn["Where to, indeed?"] The ranger pokes at the fire a bit, tosses _friend a bite of jerky. $dorn["Well, the first thing we'll have to do before //going// anywhere is make two pairs of snowshoes. Major snowstorms here can dump six to ten feet of snow overnight. {(set: _loc to $locs's ST)}But after that? I was thinking we'd make for _loc. I need to purchase supplies and my friend the mage lives there. I've not seen her in weeks."]
=><=
{
(set: $gotoPsg to "HowTamedWolf", $quote to "How did you tame a wolf?")(display: "unvis")
(set: $gotoPsg to "OrcsTrackWolf", $quote to "What if the orcs spot wolf tracks?")(display: "unvis")
(unless: (visited: "TeaRefill"))[(link-goto: "Accept a refill of the last of the tea", "TeaRefill")]
}{
<!--shortcut for this sort of thing:
(unless: (visited: "HowTamedWolf"))[(text-color: #006400)[(link-goto: "\"How did you tame a wolf?\"", "HowTamedWolf")]]
-->
(unless: (visited: $gotoPsg))[(text-color: #006400)[(link-goto: "\"" + $quote + "\"", $gotoPsg)]<br>]
}{(set: _friend to $dornFriends's AnimalCompanion, _you to $protagName, _org to $orgs's "2ndMoon")}(if: (visited: "TeaRefill"))[The ranger refills your cup with steaming tea, and you grunt your thanks.]The fire crackles and pops. As you carve off another thick slice of cheese for yourself and Dorn, the ranger leaves the fire for a minute, taking a small wooden pail with him. $dorn["I'm gonna get us more snow to melt for water. Be right back."]
While he is gone, _friend gazes at you, tongue lolling happily. After a few moments, the large predator moves forward to rest his massive head in your lap.
(if:(save-game:"SlotAA"))[$gameMsg[You have been befriended by _friend, Fang Leader of the _org. **Game saved!**<p>]]
=><=
{
(set: $gotoPsg to "BowUse", $quote to "How did you train in Archery?")(display: "unvis")
(set: $gotoPsg to "AboutMerric", $quote to "Tell me more about your mage friend.")(display: "unvis")
(set: $gotoPsg to "OtherPaths", $quote to "What Skill Paths are available?")(display: "unvis")
(unless: (visited: "NoReservations"))[(link-goto: "Scratch _friend's ears", "NoReservations")]
}(go-to: "WolfFriendly"){(set: _wolf to $dornFriends's AnimalCompanion)}(if: visits is 3)[
Dorn gives you a wry grin. "That's a very perceptive question, Kril. I don't know her purpose. I'm not sure she knows it. Sylfalias befriended me several months ago when I was helping a swanmay druid free her domain from the depredations of a pack of forest trolls. She's been with me ever since then."
=><=
{(set: $gotoPsg to "AboutMerric", $quote to "Okay. Tell me more of the mage")(display: "unvis")
(set: $gotoPsg to "OtherPaths", $quote to "No wonder you pursued rangerhood")(display: "unvis")
(set: $gotoPsg to "BowUse", $quote to "How did you train in Archery?")(display: "unvis")
(set: _moveOn to false)(if: (visited: "BowUse"))[(if: (visited: "AboutMerric"))[(if: (visited: "OtherPaths"))[(set: _moveOn to true)]]]
(if: _moveOn)[The night slowly (link-goto: "winds onward", "MidnightStorm").]
}
](else-if: visits is 2)[
$protag["Okay, so I assume there are other spirits that can take on the form of various other animals, then? Bear, stag? Perhaps an eagle? And how did you come to know this about _wolf?"] you ask.(click: "ask.")[
Dorn refills your cups. $dorn["That's the last of the hot water."] He blows on his cup. $dorn["And yes, there are a few different animal incarnations that some spirits can adopt. It's rare, of course. Most spirits choose to reside in the Outer Planes, or else they roam the Astral plane. But sometimes, some purpose draws them here, to the prime material world. That was the case for _wolf."] The wolf's ears perk up when the ranger speaks her name.(click: "her name")[
$protag["I see. And what is _wolf's purpose here?"] you inquire.(click: "inquire")[(go-to: "NoReservations")]
]
]
](else:)[You grin at Dorn as you run your fingers through _wolf's fur. $protag["I hate to break this to you, but I'm afraid your wolf has a new favorite person."]
(click: "favorite person")[Dorn chuckles. $dorn["Yeah, _wolf has accepted you. But she's not technically a wolf. She's an //Eruin//. It's pronounced Eh-ROO-een. It's the term used for a spirit that has taken on an animal form."]{(set: _txt to "Unknown date: Dorn tells me that his wolf, " + _wolf + ", is an //Eruin// (eh-ROO-een), a spirit that has taken on animal form. He didn't say, but I imagine such creatures are notably more powerful than their ordinary creature counterparts.")(unless: $journal contains _txt)[(set: $journal to it + (a: _txt))]}
Dorn pulls a pair of goblin fingers from his pack and tosses them to _wolf, who eagerly snatches them out of the air and begins devouring the pair of digits. Dorn sees your look of mild revulsion. $dorn["What? She loves these..."]
$protag["//Eh-Roo-een//,"] you (link-goto: "subvocalize", "NoReservations").
]
]
{(set: _wolf to $dornFriends's AnimalCompanion, _bow to $dornFriends's HisLongbow, _mentor to $dornFriends's HisMentor, _mage to $dornFriends's MS, _site to $locs's CG, _town to $locs's ST)}(if: visits is 3)[
<img align="left" hspace="5" vspace="5" src="./images/kyrathaba/dornProfileLeft.png">$dorn["Yes, that's essentially correct. Realize, though, than you would gain //breadth// of skills at the expense of //depth// of a smaller subset of skills. Also, in Kyrathaba, skills sometimes have prerequisites. For example, my skill //Trackless Step// unlocked only after I had obtained its two prerequisites, //Nature's Cloak// and //One With the Forest//. Also, some skills have prerequisites in one or more of //Brawn, Brain// or //Balance//, the three prerequisites all creatures and monsters in Kyrathaba possess."]
=><=
{
(set: $gotoPsg to "AboutMerric", $quote to "Okay. Tell me more of the mage")(display: "unvis")
(set: $gotoPsg to "NoReservations", $quote to "I think _wolf likes me")(display: "unvis")
(set: $gotoPsg to "BowUse", $quote to "How did you train in Archery?")(display: "unvis")
(set: _moveOn to false)(if: (visited: "BowUse"))[(if: (visited: "AboutMerric"))[(if: (visited: "NoReservations"))[(set: _moveOn to true)]]]
(if: _moveOn)[The night slowly (link-goto: "winds onward", "MidnightStorm").]
}
](else-if: visits is 2)[
<img align="left" vspace="5" hspace="15" src="./images/kyrathaba/protagonistProfileLeft.png">$dorn["If I understand correctly, I could train as a ranger for a period of time, then apprentice myself to a mage, and perhaps a couple years later take up a third path. After that, I might return and work more on ranger skills, picking up where I left off?"] You look across the flames at Dorn as he digests (link-goto: "your question", "OtherPaths").
](else:)[
$protag[What Skill Paths are available?"] you ask the ranger.
For a moment, the ranger looks lost in the conversation. You can tell from the faraway cast of his gaze that he's accessing //The System//, which is apparently Dorn's appellation for whatever intelligence controls access to things like skills, inventory, credits, etc.
After a few moments, Dorn says, $dorn["//Skill Paths// -- I'm still trying to come to terms with some of the meta vocabulary needed here in Kyrathaba. So, //Skill Paths// are what we'd have called //Career Paths// in my native home and timeline. There are lots of different skill paths, and there is no requirement to stay in a particular path for a lengthy (link-goto: "time period", "OtherPaths")."]
]{(set: _wolf to $dornFriends's AnimalCompanion, _bow to $dornFriends's HisLongbow, _mentor to $dornFriends's HisMentor, _mage to $dornFriends's MS, _site to $locs's CG, _town to $locs's ST)}(if: visits is 3)[
You scratch your chin, pondering the ranger's words. $protag["In my Earth timeline, I read lots of novels about warriors, mages, clerics. R. A. Salvatore was a prolific author, though I think his writings came a good while after you'd already entered this realm."] You go on to list other authors you enjoyed, and Dorn perks up and shows interest when you mention Jack Vance's //The Dragon Masters//.
=><=
{(set: $gotoPsg to "OtherPaths", $quote to "What are the available skill paths?")(display: "unvis")<br>
(set: $gotoPsg to "NoReservations", $quote to "I think _wolf likes me")(display: "unvis")<br>
(set: $gotoPsg to "BowUse", $quote to "How did you train in Archery?")(display: "unvis")<br>
(set: _moveOn to false)(if: (visited: "BowUse"))[(if: (visited: "OtherPaths"))[(if: (visited: "NoReservations"))[(set: _moveOn to true)]]]
(if: _moveOn)[The night slowly (link-goto: "winds onward", "MidnightStorm").]
}
](else-if: visits is 2)[
{(set: _txt to "Unknown date: " + _mage + " is a mage that might be able to train me. She lives in " + _town + ". Dorn says she lives in a tower that was raised by magic.")(unless: $journal contains _txt)[(set: $journal to it + (a: _txt))]
(set: _rnd to (random: 1,2), _replaced to false)
A damp piece of wood hisses as the fire begins vaporizing its moisture.<p>
(if: _rnd is 1)[
(text-color: #006400)["I wonder if the mage accepts apprentices."]<p>
(click: "I wonder if the mage accepts apprentices.")[$dorn["I don't know, but you can definitely ask her. Mages in Kyrathaba are a bit anemic initially, but after leveling a few times they become quite formidable."] The ranger flicks a cave cricket (link-goto: "off his leg", "AboutMerric"). ]
](else:)[
(text-color: #006400)["Do not meddle in the affairs of wizards..."]<p>
(click: "Do not meddle in the affairs of wizards...")[$dorn[So! You truly //have// read Tolkien, I see! Wizard, mage, elementalist -- whatever you want to call them, they're collectively grouped under the term //mage// here in Kyrathaba. And I would agree with the quote about wizards. Merric doesn't suffer fools gladly, but I think she'd be well disposed toward you, $protagName, given our friendship.] Dorn sips tea and (link-goto: "looks thoughtful", "AboutMerric").
]
]
}
](else:)[
$dorn["_mage?"] Dorn puts more snow in the tin kettle and returns it to the fire. (if: (visited: "BowUse"))[$dorn["She's an accomplished mage who was with me, _mentor, and _wolf at _site. She dealt the wyvern //_bow// a lot of damage with her mana bolts; otherwise, no doubt she and I would also have perished (link-goto: "in that fight", "AboutMerric")."]
](else:)[$dorn["She says she's native to Kyrathaba, although _mentor once confided to me that he suspected she's from //elsewhere//. She lives in a tower situated in the foothills above _town. It's a beautiful structure, raised (link-goto: "entirely by magic", "AboutMerric")."]]]{(set: _wolf to $dornFriends's AnimalCompanion, _bow to $dornFriends's HisLongbow, _friend to $dornFriends's HisMentor, _site to $locs's CG)}(if: visits is 3)[
Dorn stares over your shoulder, past the firelight shadows that flicker on the cave wall. $dorn["_friend died when he and I took on a wyvern near _site. I dealt the wyvern the death blow, inherited my mentor's bow, and named it after the boss monster we slew."]
=><=
{
(set: $gotoPsg to "AboutMerric", $quote to "Okay. Tell me more of the mage")(display: "unvis")
(set: $gotoPsg to "OtherPaths", $quote to "No wonder you pursued rangerhood")(display: "unvis")
(set: $gotoPsg to "NoReservations", $quote to "I think _wolf likes me")(display: "unvis")
(set: _moveOn to false)(if: (visited: "OtherPaths"))[(if: (visited: "AboutMerric"))[(if: (visited: "NoReservations"))[(set: _moveOn to true)]]]
(if: _moveOn)[The night slowly (link-goto: "winds onward", "MidnightStorm").]
}
](else-if: visits is 2)[
$dorn["So, "] Dorn continues, $dorn["back to //_bow// and _friend..."]
$protag["Go ahead,"] you encourage him as you lift your cup of tea.
Dorn rubs his hands then holds them out to the fire. $dorn["_friend was a ranger, became my mentor. He kept me alive those first few weeks I was here, just as I am doing for you. _friend wasn't a Newcomer. In fact, he was native to Kyrathaba; at least, he said he was.
I learned what I know of archery here in Kyrathaba. Not a lot of folks in New York in the 60's using longbows...
No, pretty much all my ranger skills I gained from _friend."]
The ranger takes a sip of tea, then tosses _wolf another piece of jerky.
(click-goto: "piece of jerky", "BowUse")
](else:)[
You glance at Dorn's bow that is leaned against the cavern wall, easily within the ranger's reach. $protag["Your bow, it's pretty fancy looking. I'm guessing you didn't fashion it yourself -- no offense if you're a master bowyer. And how did you train up your archery skill? Were you a good shot back on Earth, or have you gained all your skill since coming to this realm?"]
Dorn turns to regard his longbow, then looks back at you.
(click-replace: "back at you.")[back at you.
<img align="left" vspace=7 hspace=7 src="./images/kyrathaba/dornProfileLeft.png">$dorn["You're right. I didn't craft //_bow//. When I first found myself in this realm, I had the good fortune to meet and be befriended by an elf, _friend. He and I--"]
$protag["Wait! There are real elves here?"] you interrupt.
(click-replace: "you interrupt.")[
Dorn snorts, amused, lifts the tin kettle off the fire. He adds another leaf to his cup, pours, then glances at your cup. $dorn["Yes, elves are real, here. As opposed to the imaginary elves you've read about in //Tolkien's// works. You //have// read J. R. R. Tolkien, right?"]
Only when you finally (truthfully?) answer 'Yes' does the ranger refill your (link-goto: "cup of tea", "BowUse").
]
]
]{(set: _town to $locs's ST, _wolf to $dornFriends's AnimalCompanion)(if: visits is 5)[<!--This is visit # (print: visits)-->
Dorn shrugs his shoulders equivocally. $dorn["Newcomers are part of the //Drawn//, but there are also monsters and creatures that enter Kyrathaba through Rifts. And there are powerful entities that have come here from other dimensions, drawn most likely by the concentrated mana that infuses this world."]
The ranger tests the water in the kettle with a fingertip, then returns his attention to the conversation. $dorn["Some of them benign, some malicious."]<p><br>
=><=
(set: $gotoPsg to "Rifts", $quote to "Could a Rift lead to Earth?")(display: "unvis")
(set: $gotoPsg to "Extradimensional", $quote to "Extradimensional entities?")
(display: "unvis")
(set: $gotoPsg to "GodsPhysics", $quote to "Is Kyrathaba similar to Earth?")(display: "unvis")
(set: $gotoPsg to "WolfSleeps", $quote to "I think " + _wolf + " is asleep")(display: "unvis")
](else-if: visits is 4)[
$protag["So, why even fool with packs and sacks and belt pouches and bags?"](click: "and bags?")[<p>$dorn["Multiple reasons. First, to blend in with the natives. People born here don't have access to the //System// and an inventory, not unless they obtain a skill that confers it. And so //not// being seen to carry various containers is a big giveaway that you're one of the Drawn."](click: "the Drawn.")[<p>You take a deep breath, putting away your journal. $protag["You've used that terms several times, //the Drawn//. Do you just mean people who are Newcomers, like me?"] (link-goto: "you ask", "MidnightStorm").]]
](else-if: visits is 3)[
You nod. $protag["Right, and I'm looking forward to meeting shopkeepers in _town."] You absently rub the leather-bound tome in your lap. $protag["I notice that I can either carry my backpack physically on my shoulders, or I can make it disappear into my //inventory//. How does that happen?"](click: "that happen?")[<p>$dorn["You're surprised you can make things disappear into an extradimensional space? I figure that once you accept you've been Drawn from your home world to Kyrathaba, everything else can be taken pretty easily on faith."] The ranger chuckles.<p>$dorn["But to your point: yes, you can just make things disappear into your inventory with a thought, and retrieve them just (link-goto: "as easily", "MidnightStorm")."]]
](else-if: visits is 2)[
Dorn nods knowingly. $dorn["Some things translate with us when we're //Drawn//. Other things, the //System// added to our inventory upon our arrival, or soon thereafter."]
(click: "soon thereafter.")[<p>$protag["Okay, well, I guess that tracks with what I've experienced so far. So this //System// added the journal and scroll to my backpack when I first ... //translated// or whatever; then, later, it added my short sword and this leather armor."(click: "leather armor.")[<p>$dorn["Yes, the System can add things to your inventory covertly, but usually it does so in response to a completed quest or a finished transaction with (link-goto: "a shopkeeper", "MidnightStorm")."]]]]
](else:)[
You dig in your backpack and pull out your journal while Dorn goes to check on the storm's status at the mouth of (link: "the cave.")[the cave.<p>
As Dorn returns from the cave entrance, another bucket of snow in hand, he says, $dorn["I think the worst of the storm is over, but we'll probably get another three to six inches of accumulation before it peters out.] He dumps about a third of the bucket of snow into the tin kettle, then replaces it on (link: "the fire.")[the fire.<p>$protag["This journal," ] you say, indicating the well-made tome on your lap. $protag["It's like my scroll. I don't remember //acquiring// it. My backpack is the same one I packed all through my university years, and used as a briefcase in more (link-goto: "recent years", "MidnightStorm")."]
<p><br>
=><=
(link-goto: "Your Journal", "YourJournal")]]
]}=><=
Skip reading the Guide and start the game?
(link-goto: "no", "Guide") / (link-goto: "yes", "StartGame"){(set: _cnt to (count: $inv, "a goblin pinkie"), _wolf to $dornFriends's AnimalCompanion, _wielded to $hero's EquippedWeapon, _off to $hero's EquippedOffhand, _torso to $hero's EquippedTorso, _eyes to $hero's EquippedEyewear, _hands to $hero's EquippedHandwear, _feet to $hero's EquippedFootwear, _hips to $hero's EquippedHipwear)(if: visits is 3)[
<!--Third visit to WolfSleeps psg<p>
(unless: (visited: "Predawn2"))[
=== DEBUG FUNCTIONING CORRECTLY ===
]-->
(for: each _item, ...$inv)[(if: _item contains "a goblin pinkie")[(set: $inv to it - (a: "a goblin pinkie"))]]Dorn takes the goblin pinkie fingers. $dorn["You won't see any flash of light or feel the hairs on the back of your neck stand up or anything, but this is the //Exchange// spell. We can commit this material back to the System in exchange for items we desperately need. You can only use this spell once per month. I'll try to get Merric to teach it to you, $protagName."] So saying, Dorn waggles his fingers theatrically. For a moment, nothing happens. Then, the goblin fingers disappear and two pairs of snowshoes materialize in the (link-goto: "ranger's hands.", "PredawnLight")
](else-if: visits is 2)[
The ranger puts out your fire and leads you to the cave's entrance, where dawnlight is emergent. $dorn["Ordinarily, I'd take the time to teach you how to fashion snowshoes. The problem is that to //get to// the raw materials I'd need would require crossing the very snow for which we need the snowshoes in the first place."](click: "first place.")[==
<p>
$protag["So, what then is the alternative?"] you ask the ranger, the man who is quickly becoming your mentor in this new world.(click: "new world.")[==
<p>
Dorn nods, looks at you. (if: _cnt > 2)[{(set: _cnt to $num2Str's (str_nth: _cnt))}$dorn["Do you still have some of those goblin fingers?"] When you nod and produce _cnt of them, he says $dorn["We'll use them and a spell called //Exchange//."]](else:)[$dorn["I have a few goblin fingers left. We'll use them, and a spell called //Exchange//."]](click-goto: "called Exchange.", "WolfSleeps")
](else:)[
Dorn smiles, then runs a hand through _wolf's fur at the nape of the beast's neck. $dorn["She catches a few winks every now and then. She doesn't need very much; to tell the truth, she's not really asleep //now//. Just resting her eyes, enjoying the warmth of the fire."](click: "the fire.")[==
<p>The ranger looks toward the passageway leading to the cave entrance. $dorn["Dawn will soon be upon us. Our fire will last another few hours if left alone, but I'll dump some snow on it; we may need the fuel for another stay here at a later time."] He moves down the passageway with his pail after encouraging you to get your (link-reveal-goto: "equipment sorted", "WeaponSelect")[(set: $gotoPsg to "WolfSleeps")].
]}(if: visits >= 3)[{(set: _wolf to $dornFriends's AnimalCompanion)}
$protag["Well,"] you continue, $protag["I guess my next question is 'Are there gods here, some sort of pantheon that the natives recognize?'"] Dorn's brow scrunches up at your (link: "question.")[==question.<p>Dorn sighs. $dorn["I never imagined I'd be having this kind of conversation with a Newcomer. Most are either angry or afraid -- usually both. The Newcomers, that is. They're just eager to get back to the place from which they were //Drawn//."] He pauses, (link: "studies you.")[==studies you<p>$dorn["But you are a //thinker//, for sure."] The ranger chuckles, then sobers and answers, $dorn["As I've shared, I'm a practicing Catholic. I can't say I buy into the local pantheon, but yes there //is// one and many of the natives venerate one of more Kyrathaban //gods//."] He adds the last two large chunks of wood to the (link: "campfire.")[==campfire.<p>$protag["And this pantheon actually wields power, or at least gives that appearance?"] you ask, leaning forward to push a pair of hot coals toward the fire's center. Dorn's answer is naught but a skeptical shrug.<p>
{
=><=
(set: $gotoPsg to "Extradimensional", $quote to "Extradimensional entities?")(display: "unvis")
(set: $gotoPsg to "Rifts", $quote to "Could a Rift lead to Earth?")(display: "unvis")
(set: $gotoPsg to "WolfSleeps", $quote to "I think " + _wolf + " is asleep")(display: "unvis")
(set: _moveOn to false)(if: (visited: "Extradimensional"))[(if: (visited: "Rifts"))[(if: (visited: "WolfSleeps"))[(set: _moveOn to true)]]](if: _moveOn)[Hours have passed. Faint light now filters toward you and the dwindling campfire, a sure sign that (link-goto: "dawn approaches", "PredawnLight").
]}
](else-if: visits is 2)[
$protag["I notice that with a mere thought, I can call up my status, my inventory, etc. Perhaps the simplest explanation is that I'm merely //imagining// all of this,"] you (link: "say.")[==say.<p>
You continue, $protag["However, you've stressed how important you believe it is that I take all of this as reality, and for now I'm willing to do that. If all this is real and I can pull up screens of information with but a thought, then there are two avenues of explanation: science, and the supernatural. Either some very sophisticated technology is in use, or //else// some supernatural or paranormal explanation accounts for all these skills, credits, inventory items. I'll admit, I'm more inclined toward the first of those two explanations,"] you (link: "posit.")[==posit.<p>
$dorn["Go on,"] says the ranger, apparently accepting your logic up to this (link-goto: "point.", "GodsPhysics")
](else:)[
$protag["Is Kyrathaba similar to Earth?"] you ask Dorn.(click: "ask Dorn.")[<p>The ranger shrugs. $dorn["Oh, there are many similarities: birds tweet, the sun shines, gravity still works, and there are the cycles of days and nights, and the seasons."] (click: "the seasons.")[<p>$dorn["Many of the //dis//similarities you will have already noted: we have goblins and orcs here, for instance. Magic is a real force, and some sort of //meta// system provides us with structure in the form of gaining levels, developing skills, and manipulating (link-goto: "our inventories", "GodsPhysics")."]]]
]{(set: _mage to $dornFriends's MS, _wolf to $dornFriends's AnimalCompanion)}(if: visits is 3)[
Dorn nods once, hearing the sincerity in your voice. $dorn["Good! I'm relieved to hear you say that,"] the older man admits. He says this in such a considered, clinical tone, and just for a moment he isn't dressed in ranger's garb but is rather wearing a white lab coat, a stethoscope around his neck. (click: "his neck.")[<p>Beyond him is a sterile white room. You see that you and he are seated in a plexiglassed meeting cubicle within the larger space. Three other such areas can be seen through the transparent glass. Another white-smocked (cycling-link: "doctor", "scientist", "lab tech", "therapist", "experimenter") leaves an adjoining cubicle and disappears into a hallway, while an assistant pushes a straight-jacketed woman into the hallway in a wheelchair, then turns in the opposite direction. (click: "opposite direction")[<p>You blink and refocus, and it's just Dorn again. (if: (visited: "RiftsChalib"))[//It's the chalib. Dorn said it had a narcotic-like effect.//
{
=><=
(set: $gotoPsg to "Rifts", $quote to "Could a Rift lead to Earth?")(display: "unvis")
(set: $gotoPsg to "GodsPhysics", $quote to "Is Kyrathaba similar to Earth?")(display: "unvis")
(set: $gotoPsg to "WolfSleeps", $quote to "I think " + _wolf + " is asleep")(display: "unvis")
(set: _moveOn to false)(if: (visited: "Extradimensional"))[(if: (visited: "GodsPhysics"))[(if: (visited: "WolfSleeps"))[(set: _moveOn to true)]]](if: _moveOn)[Hours have passed. Faint light now filters toward you and the dwindling campfire, a sure sign that (link-goto: "dawn approaches", "PredawnLight").
]}
]]]
](else-if: visits is 2)[
Dorn (perhaps wisely) remains silent, letting you work through this. (click: "through this")[<p>You grin, appreciating the absurdity of this discussion. $protag["It didn't come along until after you were already //drawn// into this world, but would you believe that I grew up playing a game called //Dungeons & Dragons//? In it, brave warriors, sage wizards, and wise clerics fought bandits, owlbears, griffons, wyverns, and yes, //dragons//."] (click: "yes, dragons")[<p>You bark a half-amused, half-derisive laugh. $protag["And now I find myself in just such a realm, and I learn that there are indeed dragons."] You lean forward, seeking the fire's warmth. (click: "fire's warmth")[<p>$protag["But you know what? I'm actually convinced that all this really //is// real, because not even in my wildest delusions would a time-displaced catholic offer me proof of dragons from the book (link-goto: "of Isaiah!", "Extradimensional")"]]]]
](else:)[
(if: (visited: "Rifts"))[$protag["So, aside from dragons, angels, and demons, what other extradimensional entities should I be on the lookout for while I'm visiting Kyrathaba?"] you ask with forced lightheartedness.(click: "forced lightheartedness.")[<p>$dorn["I understand your incredulity, $protagName, I really do,"] the ranger says. $dorn["But, as I told you when I first found you, it's //imperative// that you believe in the reality of everything you're experiencing and learning here."] He gives you an imploring look, as if he is at pains to preclude you from some undesirable future. (click: "undesirable future")[<p>$protag["I suppose my life has taught me to view my own memories and experiences with a jaundiced eye, Dorn. I suffer schizophrenic hallucinations. For all I know, everything I've //experienced// here in Kyrathaba is just one big delusional episode!"] You pound a fist into an (link-goto: "open palm", "Extradimensional").]]]
]{(set: _mage to $dornFriends's MS, _wolf to $dornFriends's AnimalCompanion)(if: visits is 5)[
You shrug and turn your palms up, a quizzical look on your face.<p>$dorn["Isaiah 30:6,"] he explains. $dorn['Fiery flying serpent'. Ring any bells?"], he asks. (click: "asks.")[<p>$protag["I see,"] you say. In truth, talk about the spiritual or supernatural has always made you somewhat uncomfortable. Perhaps it's time to nudge the conversation in a slightly different direction.<p><br>
=><=
(set: $gotoPsg to "Extradimensional", $quote to "Extradimensional entities?")
(display: "unvis")
(set: $gotoPsg to "GodsPhysics", $quote to "Is Kyrathaba similar to Earth?")(display: "unvis")
(set: $gotoPsg to "WolfSleeps", $quote to "I think " + _wolf + " is asleep")(display: "unvis")
(set: _moveOn to false)(if: (visited: "Extradimensional"))[(if: (visited: "GodsPhysics"))[(if: (visited: "WolfSleeps"))[(set: _moveOn to true)]]](if: _moveOn)[Hours have passed. Faint light now filters toward you and the dwindling campfire, a sure sign that (link-goto: "dawn approaches", "PredawnLight").
]
]
](else-if: visits is 4)[
You blink. $protag["Demons and angels? Aren't they a peculiarly Earth notion?"]<p>(click: "Earth notion?")[Dorn sighs, as if this is a rabbit hole he's gone down in the past. $dorn["I'm a catholic from 1960s New York, with all that //that// entails, $protagName. If there are angels and demons, and in //my// worldview there indeed are, I doubt they are confined to a single world."]<p>(click: "single world")[You (if: (visited: "RiftsChalib"))[take another sip of //chalib//.](else:)[sigh. ] $protag["Okay, I get that. But dragons? Really?"]<p>(click: "dragons? Really?")[Dorn arches an eyebrow, then quotes:<p>$dorn["//The burden against the beasts of the South. Through a land of trouble and anguish, from which came the lioness and the lion, the viper and the fiery flying serpent, they will carry their riches on the backs of young donkeys, and their treasures on the humps of camels, to a people who shall not profit.//"](click-goto: "not profit", "Rifts")]]]
](else-if: visits is 3)[
(if: (visited: "RiftsChalib"))[You take another sip of //chalib// and promise yourself you will obtain a supply of it for yourself someday.](else:)[A pang of empathy ripples through you as you take in Dorn's expression as he sips more //chalib//.]<p>
//Mental note: ask Merric about rifts, if I get the chance...//<p>(click: "the chance")[$protag["What sort of creatures come here through rifts? Do you think _wolf may have arrived in that way?"] you ask. The wolf's ears perk up at the mention of her name, though she doesn't turn to look at you.]<p>(click: "at you")[Dorn stands and stretches, then turns to warm his backside by the flames. Finally, he turns back to you and resumes his seat. $dorn["Unknown,"] he breathes, $dorn["Merric feels confident _wolf is an //Eruin//, and I trust her assessment. But was she originally a spirit of //this// world or another? Who knows? Such things are beyond me."]<p>(click: "beyond me")[$dorn["The natives tell us there are various sorts of immigrant creatures that arrive here, creatures and monsters from various worlds, angels, demons, dragons..."] He stares into the flaming fire.<p>(click-goto: "flaming fire", "Rifts")]]
](else-if: visits is 2)[(set: _tmp to "After a long minute, during which the ranger adds another log to the fire and _wolf" + " moves to lie down by the ranger's feet, he says, ", _tmp2 to "\"To address your question further, the mage _mage" + " would agree with you that there //may// be rifts leading back to Earth.\"")
(if: (visited: "RiftsChalib"))[
Dorn smiles at the look on your face as you take your first sip of //chalib//. $dorn["Oh, yes! It's //that// good. Sip it slowly, $protagName. It's hard to come by: make it last..."](click: "it last...")[<p>_tmp $dorn[_tmp2]](click: "to Earth")[You nod, absorbing Dorn's words. (click: "Dorn's words")[(go-to: "Rifts")]]
](else:)[
$dorn["Suit yourself. You don't know what you're missing, though,"] Dorn says, tapping a generous pile of powdered root into his own cup before resealing the envelope and returning it to his belt pouch.](click: "belt pouch")[<p>_tmp $dorn[_tmp2] You nod, committing the ranger's words to memory. (click: "to memory.")[(go-to: "Rifts")]]
](else:)[
<img align="left" vspace="5" hspace="15" src="./images/kyrathaba/protagonistProfileLeft.png">$protag["Is it possible that one of these Rifts you speak of might lead back to Earth? I mean, if other creatures come //to// Kyrathaba through rifts, //we// probably did too, right?"](click: "too, right?")[<p>It takes you a moment to realize that the rising hiss that is just on the boundary of audibility is coming from the kettle of water rather than from the storm raging outside the cave.<p>$dorn["Well, that certainly seems sensible,"] the ranger allows. He pulls a large envelope of waxed paper from a belt pouch.](click: "belt pouch")[<p>$dorn["You seemed to enjoy the //kiala// tea. Would you like to try some //chalib//? It's reminiscent of cocoa and has a mildly narcotic effect."]<!--(display: "PrintInvLength")-->(set: _kiala to "kiala: a tea from the Flahn Forest that Dorn introduced me to the night we were holed up in a cave because of a bad snowstorm. The tea is very aromatic and made me feel like I do when I occasionally smoke a strong cigarette.")(unless: $journal contains _kiala)[(set: $journal to it + (a: _kiala))](set: _chalib to "chalib: A drink made from the roots of a tree that grows in the Flahn Forest. Its taste is reminiscent of cocoa, but with a hint of orange or some other citrus fruit flavor. It relieves pain and brings on an enveloping sense of well-being.")(unless: $journal contains _chalib)[(set: $journal to it + (a: _chalib))]<!--(display: "PrintInvLength")--><p><br>
=><=
(text-color: #006400)[(link-goto: "\"Yes, don't mind if I do\"", "RiftsChalib")] <br>(text-color: #006400)[(link-goto: "\"No thank you\"", "RiftsNoChalib")]
]]}<p>(print: $inv's length)<p>You graciously accept an offer of //chalib//.You graciously decline an offer of //chalib//.(display: "AcceptChalib")(after: 3s)[(go-to: "Rifts")](display: "DeclineChalib")(after: 3s)[(go-to: "Rifts")]{<!--this should remain a single-visit passage--><center><img src="./images/kyrathaba/snowshoes.png"></center>(unless: $inv contains "snowshoes")[(set: $inv to it + (a: "snowshoes"))(set: $hero's EquippedFootwear to "snowshoes")](set: _feet to $hero's EquippedFootwear, _hands to $hero's EquippedHandwear, _eyes to $hero's EquippedEyewear)
Predawn light floods the cave tunnel's mouth. Dorn arranges his snowshoes before him, makes sure you're watching as he straps them on over his supple, leather boots. He then turns carefully in the ungainly footwear. $dorn["Your turn, now. Strap on your snowshoes, just like you saw me do. (unless: _eyes contains "polarized goggles")[Don't forget to equip your goggles. ](unless: _hands contains "warm leather gloves")[And your gloves.]"]
<p>
(if: (_eyes contains "empty") or (_hands contains "empty"))[<p><br>
<center>
(link-reveal-goto: "Dress for the weather outside the cave", "WeaponSelect")[(set: $gotoPsg to "Predawn2")]
</center>](else:)[
<center>(link-goto: "Follow Dorn out of the cave", "Predawn2")</center>
]
}(unless: $completedQuests contains "get to know Dorn better")[
(set: $offeredQuest to "get to know Dorn better", $gotoPsg to "SmallCave")(go-to: "MakeQuestOffer")
](else:)[
=><=
(link-goto: "continue", "SmallCave")
]{(set: _eyes to $hero's EquippedEyewear, _hands to $hero's EquippedHandwear, _feet to $hero's EquippedFootwear, _shoulders to $hero's EquippedShoulderwear, _wielded to $hero's EquippedWeapon)(set: $hero's Life to $hero's MaxLife)As you follow Dorn out of the cave, even in the early light the reflection from the snow makes you squint. (unless: _eyes contains "polarized goggles")[You realize that the glare will be overpowering by midmorning, unless you use some form of eye protection. ](else:)[Fortunately, your polarized goggles cut the worst of the glare, enabling you to see clearly, and better minute by minute, as daylight grows across the land.] (unless: _shoulders contains "a furred overcloak")[In only a few seconds of exposure, your body quickly reminds you that you failed to don your furred overcloak.](else:)[The added weight and bulk of the furred overcloak, gifted you by Dorn, is a small inconvenience for the protection it offers against the frigid temperature.]<p>(unless: _hands contains "warm leather gloves")[Your hands sting from exposure. ](else:)[The thin leather gloves given you by the ranger keep your hands surprisingly warm. They must be enchanted.] (unless: _hands contains "warm leather gloves")[(if: _wielded contains "Short Sword (Masterwork)")[Your bare hand is growing numb where it grips your masterwork shortsword.]]<p>
(set: $currentQuest to "get to know Dorn better")
(set: $reward to $questsRewards's $currentQuest)
(set: _msg to "Quest '$currentQuest' completed!")
(display: "UpdateExperience")(if:(save-game:"SlotAA"))[$gameMsg[**Game saved!**<p>]]
(set: $quests to (a:))
(if: (count: $completedQuests, $currentQuest) < 1)[(set: $completedQuests to $completedQuests + (a: "get to know Dorn better"))]
(set: $lifetimeQuestIP to it + $reward, $currentQuest to "")<p>
Dorn blinks, then glances above your head. $dorn["Oh, congrats. I got a couple IP as well."] He adjusts his belt, pulls his hood (link-goto: "snugger", "OutHunterCave").
}{
(set: $offeredQuest to "obtain food and shelter")
(set: _reward to $questsRewards's $offeredQuest)
(unless: $completedQuests contains $offeredQuest)[(set: $completedQuests to it + (a: $offeredQuest))]
(set: $lifetimeQuestIP to it + _reward)
(if: $quests contains $offeredQuest)[(set: $quests to it - (a: $offeredQuest))]
}{
(set: $offeredQuest to "obtain initial equipment")
(set: _reward to $questsRewards's $offeredQuest)
(unless: $completedQuests contains $offeredQuest)[(set: $completedQuests to it + (a: $offeredQuest))]
(set: $lifetimeQuestIP to it + _reward)
(if: $quests contains $offeredQuest)[(set: $quests to it - (a: $offeredQuest))]
}Outside of the hunter's cave, the two of you survey the swells and dips of uniform whiteness across the vista. $dorn["Follow in my footsteps. I'm going to try to avoid areas where the snow covers a pit, crevasse, or ravine. If you fall, try to curl into a ball and shield your head with your arms."]
{<center>(set: $quote to "\"You really inspire confidence...\"", $dest to "InspireCon", $cond to "")
(display: "ProtagQuoteGoto")<br>(set: $quote to "\Understood, Dorn\"", $dest to "Understoodly", $cond to "")(display: "ProtagQuoteGoto")<br>(set: $quote to "\Where to, now?\"", $dest to "NextDest", $cond to "")(display: "ProtagQuoteGoto")</center>}{
(set: $offeredQuest to "get to know Dorn better")
(set: _reward to $questsRewards's $offeredQuest)
(unless: $completedQuests contains $offeredQuest)[(set: $completedQuests to it + (a: $offeredQuest))]
(set: $lifetimeQuestIP to it + _reward)
(if: $quests contains $offeredQuest)[(set: $quests to it - (a: $offeredQuest))]
}{(set: _town to $locs's ST, _mage to $dornFriends's MS, _gap to $locs's GG, _vale to $locs's TV, _lake to $locs's YL)<p>(if: (visited: "InspireCon"))[Dorn chuckles. $dorn["I know this area fairly well. We're probably safe enough." ]](else-if: (visited: "NextDest"))[$dorn["I thought we'd make for _town, so I can introduce you to my friend, _mage." ]](else:)[Dorn takes your silence for tacit understanding and agreement. ]The two of you trudge-waddle to the northeast, gradually leaving the hunter's cave behind you. After an hour, Dorn has taken you up quite considerably in elevation. (if: $hero's EquippedFootwear contains "snowshoes")[Your legs complain about the unaccustomed muscle group use, but you're starting to get the hang of using snowshoes.<p>](unless: $rangerSkills contains "Use Snowshoes")[(if:(save-game:"SlotAA"))[Game saved!<p>]
(set: $reward to 1, $xpAward to 25)(display: "UpdateExperience")
(text-style: "outline")[System Message: ]$gameMsg[ You have gained the **Use Snowshoes** skill.](set: $rangerSkills to it + (a: "Use Snowshoes"))<p>]
$dorn["I'm hoping to slip through _gap sometime tomorrow, then make our way down into _vale, and finally to _town by way of the western side of _lake,"] the ranger confides, as the two of you pause for a break and take in the beautiful view to the (link-goto: "southwest", "Dawn2Dorn").}(go-to: "Dawn1Dorn")(go-to: "Dawn1Dorn")(go-to: "Dawn1Dorn")<center><img src="./images/kyrathaba/cliff-in-winter.png"></center>
{(if: visits is 1)[
$protag["It's breathtakingly beautiful,"] you acknowledge as the two of you take in the snowy vista from your current elevation. Even now, a light snow falls.
The sonorous blare of a horn cuts the silence. $dorn["Shit!"] Dorn barks. $dorn["Aw, double shit!"] He unslings his bow from (link: "his shoulder.")[==his shoulder.<p>
$protag["Orcs?"] you (link: "surmise.")[==surmise.<p>
$dorn["I'm afraid so,"] the ranger says morosely, drawing two arrows from his quiver. One he drives blade down into the snow, while he fits the other to his bowstring. $dorn["Orc scouts. We've been spotted. Let's hope it's a pair and not a hunting party."]
(set: $gotoPsg to "Dawn2Dorn")You do a rapid (link-goto: "equipment check", "WeaponSelect").
](else:)[
(display: "PreCombatSetup")
(set: $foe to "an orc duo")
(set: $gotoPsg to "Dawn3Dorn")
Three orcs close on the two of you, from three different directions. Dorn draws his bow, $dorn["I've got //ugly//..."]<p>
$protag["Not entirely helpful,"] you breathe, then you pivot and engage the pair of orcs who have begun to (link-reveal-goto: "converge upon you.", "Next")[(set: $liveCombat to false)]
]}{(display: "IncrementLife")<center><img src="./images/kyrathaba/orcTrio.png"></center>(if: visits is 1)[You may have gained the //Use Snowshoes// skill, but that doesn't mean it wasn't awkward fighting while wearing them!<p>Less than a minute after the fight ends, you and the ranger are hidden in a copse of evergreen trees when the other three orcs from the hunting band draw up less than twenty yards from your hiding spot and take stock of the scene of (link-goto: "carnage.", "Dawn3Dorn")
](else-if: visits is 2)[
Dorn rests his left hand on your right shoulder as you watch the remaining three orcs from your hidden position. One of the orcs stands after prodding the fallen orcs and searching them. (text-color: "brown")["Ig'n mok t'bruk fek sulokk!"] he grumbles, gesturing with his greatsword at the slain. This orc wears a helm and carries a large shield with a white skull embossed on it. The sword looks too big and heavy to permit the shield's (link-goto: "use.", "Dawn3Dorn")
](else-if: visits is 3)[<!--the following commented-out code should remain commented-out, except for testing purposes...--><!--(if: $inv contains "an orc's heavy battleaxe")[(set: $inv to it - (a: "an orc's heavy battleaxe"))]-->
One of the other three remaining orcs carries a large battleaxe(if: $inv contains "an orc's heavy battleaxe")[, very similar to the one you are packing.](else:)[.] The snowfall has increased a bit, as has the wind. One of the orcs, apparently obeying the command of his leader, begins gathering the slain orcs' weapons. $dorn["//They're getting ready to move on,//"] Dorn whispers (link-goto: "to you.", "Dawn3Dorn")
](else:)[
<!--4th and final visit-->
(if: $hero's EquippedNeckwear contains "a woolen cloak")[You pull the cowl of your cloak lower for warmth as you stare daggers at the nearby orcs. ]
(unless: $hero's EquippedShoulderwear contains "a furred overcloak")[You shiver, reminding yourself to put on your furred overcloak, just as soon as these orcs have been either killed or avoided. ](else:)[You revel in the warmth of your furred overcloak, which continues to hold in much of the warmth generated by your recent skirmish. ]$protag["Should we attack while they're stationary?"] you inquire of (link-goto: "your mentor.", "Dawn4Dorn")
]
}{(display: "IncrementLife")<center><img src="./images/kyrathaba/orcTrio.png"></center>
(if: visits is 1)[
$dorn["//Well...//"] the ranger muses, not taking his eyes off the three orcs, $dorn["//It'd be three-on-two, so not great odds. On the other hand, if we don't take care of them now, we run the chance of encountering them later under worse conditions, or perhaps with more of their fellows...//"]<p>
Dorn turns to regard you momentarily before turning his attention back to the three orcs. (if: $hero's Life < ($hero's MaxLife - 10))[$dorn["//You look a little banged up, and I don't have any healing potions.//"]]<p><br><center>
(set: $gotoPsg to "Slay2ndTrio", $quote to "Let's surprise attack them!")(display: "unvis")
(set: $gotoPsg to "LetTrioGo", $quote to "Let's go the cautious route")(display: "unvis")
</center>
]
}{(display: "IncrementLife")<center><img src="./images/kyrathaba/orcTrio.png"></center>
(if: visits is 1)[
$dorn["//Well, all right, $protagName,//"] he says, knocking an arrow and drawing, $dorn["//Let me get off three arrows before you engage them. Hell, if we're lucky, I may even get a fourth shot off before they realize from where the arrows are coming. If they charge this position, I'll hold station and you try to come in behind them.//"]<p>The ranger puts two arrows into helmet orc before the trio orients and charges, and a third arrow drops the brute. The other two don't slacken their pace, and Dorn leans his bow calmly against a spruce tree and draws his short sword and dagger.<p>
(display: "PreCombatSetup")(set: $foe to "an orc duo")
(set: $gotoPsg to "Slay2ndTrio")You wait for just the right moment, then (link-reveal-goto: "attack.", "Next")[(set: $liveCombat to false)]
](else:)[
A grin splits your face as the two of you finish taking out this second trio of orcs. $protag["Well, that went well, I think."] You wipe blood off your (if: $hero's EquippedWeapon contains "Short Sword (Masterwork)")[short sword](else-if: $hero's EquippedWeapon contains "an orc's heavy battleaxe")[battle axe](else:)[weapon], first in the snow and then on one of the dead (link-goto: "orc's furs", "SpruceCopse").
]
}{(display: "IncrementLife")The two of you remain stationary and conversing quietly for long minutes after the three orcs have moved on. Finally, with the snow thickening and the wind growing stronger, the ranger asks, $dorn["Ready to move on?"]<p><br>
<center>(set: $quote to "\"The snowfall is thickening...\"", $dest to "BeneathSpruce", $cond to "")
(display: "ProtagQuoteGoto")<br>(set: $quote to "\Yes, let's add some distance\"", $dest to "KeepClimbing", $cond to "")(display: "ProtagQuoteGoto")<br></center>
}{(display: "IncrementLife")(if: visits is 1)[The two of you remain stationary and conversing quietly for long minutes
(if: (visited: "Slay2ndTrio"))[after slaying the second trio of orcs.](else:)[after letting the remaining three orcs move on.] Finally, with the snow thickening and the wind growing stronger, the ranger asks, $dorn["Ready to move on?"]<p><br>
<center>(set: $quote to "\"The snowfall is thickening...\"", $dest to "SpruceCopse", $cond to "")
(display: "ProtagQuoteGoto")<br>(set: $quote to "\Yes, let's add some distance\"", $dest to "KeepClimbing", $cond to "")(display: "ProtagQuoteGoto")<br></center>
](else:)[
You jointly decide to shelter within the thick copse of spruce trees. $dorn["No sense risking getting disoriented or lost if the snowfall intensifies further."] The ranger finds a particularly large spruce and the two of you burrow through accumulated snow into it's rather cozy interior. It reminds you of the first shelter you ever found for yourself after being //drawn// to Kyrathaba.
]
}This passage incomplete.<p>You jointly decide to shelter within the thick copse of spruce trees. $dorn["No sense risking getting disoriented or lost if the snowfall intensifies further."] The ranger finds a particularly large spruce and the two of you burrow through accumulated snow into it's rather cozy interior. It reminds you of the first shelter you ever found for yourself after being //drawn// to Kyrathaba.