A poorly maintained dock lies before you, at this time no boat to unload is present, nor any bandits...
<b><i>Back to..</i></b>
- [[Bandits]]<b><i>Where to?</i></b>
- [[SouthGate]]
- [[Bandit Dock]]Musty interior tells you how likely anyone bathes between posts.
<b><i>Where to?</i></b>
- [[SouthGate]]
- [[Bandits]]<b><i>Where to?</i></b>
- [[Square]]
- [[Southern Pass|T2]]
- [[Witches]]:: BlackoutPassage
You feel the world spinning... and then everything goes black.
<<set $focus to 50>> <!-- Restore focus -->
<<set $blackoutTriggered to false>> <!-- Reset blackout trigger -->
<<set $depletionActive to true>> <!-- Reactivate depletion -->
<<set _percentageLoss = 0.1 + ($prestige * 0.05)>> <!-- Base 10% + 5% per prestige level -->
<<set _fundsLoss = Math.floor($funds * _percentageLoss)>> <!-- Calculate loss -->
<<set $funds -= _fundsLoss>> <!-- Subtract the loss -->
<<if $funds < 0>>
<<set $funds = 0>> <!-- Ensure funds do not go below 0 -->
<</if>>
You lost <<print _fundsLoss>> coins during the blackout.
When you awaken, a few coins seem to be missing, but you're not quite sure what happened...
[[North Gate]]
[[Continue|View Cart]]<b><i>Where to?</i></b>
- [[North Path|T1]]
- [[Witches]]
- [[MayorOffice]]
<sub><u>Toward Moon Docks</u></sub>
- [[Moonligh Path|T4]]- <<link "Main Hall">>
<<goto "MayorOffice">>
<</link>>- <<link "Main Hall">>
<<goto "MayorOffice">>
<</link>>A massive farm sprawls the area from where you stand. Up ahead a handful of land caretakers seem to be in a meeting...
<b><i>Do you..</i></b>
- [[Inquire the huddle.|Caretakers]]
- [[Look around north.|Stalls]]
- [[Look around East.|Wheatfield]]
<sub><u>Back to Crowl</u></sub>
- [[Slums]]
- [[Lower Slums]]<i>You continue further to the clanking and sounds of forced fusion. You see a plethora of tables with odds and ends of repurposed materials. A blacksmith nearby yells out after noticing you:</i>
<i><b>"YA frae to use, just bring your own supplies to bully!"</b></i>
<sub><u>Return.</u></sub>
- [[Back to Workshop|Workshop]]
<u><b>Choose an item to craft:</b></u>>
<div id="crafting-interface">
<<include "CraftingUI">>
</div><ul>
<<for _item, _materials range setup.recipes>>
<<capture _materials _item>>
<li>_item (Requires: <<for _mat, _num range _materials>><<= _mat + " x" + _num + " ">><</for>>)
<<if $materials.compare(_materials)>>
<<button "Craft">>
<<run $materials.unmerge(_materials)>>
<<pickup $equipment _item 1>>
<<replace "#crafting-interface">><<include "CraftingUI">><</replace>>
<</button>>
<<else>>
Not enough materials.
<</if>>
</li>
<</capture>>
<</for>>
</ul>[[North Gate|North Gate]]Fresh sea breeze rushes your nostrils. The scent of worn copper passing many hands lingers.
<b><i>Where to?</i></b>
- [[Central Road|T3]]
- [[Quarters|DockQrts]]
- [[MerchantGuild]]
- [[Southern Dock|Dock.2]]
<sub><u>To Moon Dock</u></sub>
- [[Moon Pass|T4]]Fresh sea breeze rushes your nostrils. The scent of worn copper passing many hands lingers.
<b><i>Where to?</i></b>
- [[Northern Dock|Dock.1]]
- [[Quarters|DockQrts]]
- [[MerchantGuild]]
- [[Homes]]Spwarling with live of all kinds is the coastal neighborhood of Crowl. Some are well off, then others just linger...
<b><i>Where to?</i></b>
- [[Central Road|T3]]
- [[Northern Dock|Dock.1]]
- [[Southern Dock|Dock.2]]
- [[MerchantGuild]]
- [[Homes]]<h2>Late that Night</h2>
<<fadein 10s>>The voices drift into your half-conscious mind—snatches of conversations that sound like riddles folded over riddles. You aren’t sure who’s speaking, but the tales are clear enough. They whisper of Crowl, of merchants who speak in riddles, cursed bazaars where every bargain costs more than coin, and a mayor whose smile could hide a dagger. Someone mutters about a "cart without wheels, sitting forever at a farmhouse, its price rising like a snake uncoiling in the sun."<</fadein>>
<<fadein 5s 11s>>[[Then you hear the strangest thing of all.|Listen...]]<</fadein>>::End Game
<h1>The Cart Without Wheels is Yours!</h1>
<p>You’ve finally acquired the cart... and with it, the dream of creating The Merchant Mile feels closer than ever.</p>
<p>But deep down, you know—this is only the beginning of a grander journey.</p>
<p>(To be continued...)</p><!-- Background image styling -->
<style>
#passage {
background-image: url('images/background.jpg'); /* Replace with your background image path */
background-size: cover;
background-position: center;
color: white;
padding: 20px;
font-family: 'Georgia', serif;
text-shadow: 1px 1px 3px black;
}
</style>
<!-- Passage Content -->
<h1>Opener</h1>
<u><h3>Crowl: The Merchant’s Gateway</h3></u>
<i>
Nestled along the southern coast of Vanqui(i), Crowl is a town on the edge of change.
It’s a bustling hub for traders, wanderers, and schemers—a place where fortunes are made and lost
with each passing day. Though the town appears ordinary to the untrained eye,
nothing in Crowl is ever exactly as it seems. Whispers travel through the streets like invisible threads,
connecting everyone to something bigger.
</i>
[[ Crowl Intro|Crowl Opener]]<<inv $equipment>><<link "Steak" "Next Passage">>
<<set $multipleChoiceSelection to 'Steak'>>
<<run send_multiple_choice()>>
<</link>>
→ Example setup
I saw a <span id="dog">dog</span>.
→ Append to the contents of the target element
<<link "Doing">>
<<append "#dog" t8n>> chasing a cat<</append>>
<</link>>
→ Result, after clicking
I saw a <span id="dog">dog<span class="macro-append-insert"> chasing a cat</span></span>.
→ Example setup
I saw a <span id="dog">dog</span>.
→ Prepend to the contents of the target element
<<link "Size">>
<<prepend "#dog">>big <</prepend>>
<</link>>
→ Result, after clicking
I saw a <span id="dog">big dog</span>
<<linkreplace "You'll //never// take me alive!" t8n>>On second thought, don't hurt me.<</linkreplace>>
The answer to the //Ultimate Question of Life, the Universe, and Everything// is?
<<listbox "$lbanswer" autoselect>>
<<option "Towel">>
<<option "π" 3.14159>>
<<option 42>>
<<option 69>>
<<option "∞" Infinity>>
<</listbox>>
→ Creates a text box that modifies $pie
What's your favorite pie? <<textbox "$pie" "Blueberry">>
→ Creates a text box that modifies $pie and forwards to the "Cakes" passage
What's your favorite pie? <<textbox "$pie" "Blueberry" "Cakes">>
→ Creates a number box that modifies $wager
Wager how much on Buttstallion in the race? <<numberbox "$wager" 100>>
→ Creates an automatically focused number box that modifies $wager
Wager how much on Buttstallion in the race? <<numberbox "$wager" 100 autofocus>>
What's your favorite pie?
* <<radiobutton "$pie" "blueberry" checked>> Blueberry?
* <<radiobutton "$pie" "cherry">> Cherry?
* <<radiobutton "$pie" "coconut cream">> Coconut cream?
hat's your favorite pie?
* <label><<radiobutton "$pie" "blueberry" checked>> Blueberry?</label>
* <label><<radiobutton "$pie" "cherry">> Cherry?</label>
* <label><<radiobutton "$pie" "coconut cream">> Coconut cream?</label>
→ Creates a text block that modifies $pieEssay
Write a short essay about pies:
<<textarea "$pieEssay" "">>→ Given the following
I'd like a <span id="huge-cupcake">humongous </span>cupcake, please.
→ Remove the target element
<<link "Go small">>
<<remove "#huge-cupcake">>
<</link>>
→ Result, after the click
I'd like a cupcake, please.
→ Example setup
I saw a <span id="dog">dog</span>.
→ Replace the contents of the target element
<<link "Breed">>
<<replace "#dog" t8n>>Catahoula Cur<</replace>>
<</link>>
→ Result, after clicking
I saw a <span id="dog"><span class="macro-replace-insert">Catahoula Cur</span></span>.[[View Cart]]
<if/else>
[[Wake|Wake]]Along the entirety of the walls in this room hold all the statistics of an individual, as if they were being watched. Almost every decision they've ever made has appeared here...
<div class="hall-of-records">
<div class="stat-item">
<img src="icon-url/focus.png" alt="Focus Icon">
<p>Focus: <<print $focus>> / <<print $maxFocus>></p>
</div>
<div class="stat-item">
<img src="icon-url/cart.png" alt="Cart Visits Icon">
<p>Cart Visits: <<print $cartVisits>></p>
</div>
<div class="stat-item">
<img src="icon-url/funds.png" alt="Funds Icon">
<p>Funds: <<print $funds>></p>
</div>
<div class="stat-item">
<img src="icon-url/prestige.png" alt="Prestige Icon">
<p>Prestige: <<print $prestige>></p>
</div>
<div class="stat-item">
<img src="icon-url/drain.png" alt="Focus Drain Icon">
<p>Base Focus Drain: <<print $baseDrain>>%</p>
</div>
<div class="stat-item">
<img src="icon-url/passages.png" alt="Passages Icon">
<p>Passages Visited: <<print $Totalpassages>></p>
</div>
<div class="stat-item">
<img src="icon-url/rent.png" alt="Rent Icon">
<p>Daily Rent: <<print $rent>></p>
</div>
</div>
- <<link "Main Hall">>
<<goto "MayorOffice">>
<</link>><b><i>Where to?</i></b>
- [[Dock.2]]
- [[DockQrts]]
- [[Post]]Iron: @@#mats;<<= $materials.count("iron")>>@@
You head to the mouth of the mine, darkness greets you ahead...
<<if $focus >= 10>>
<<if $equipment.has("pickaxe")>>
<<button "Use the pickaxe">>
<<set $focus -= 5>> <!-- Decrease focus -->
<<pickup $player "iron" 1>> <!-- Add 1 iron to inventory -->
<<replace "#mats">><<inv $player count "iron">><</replace>>
<<if $focus <= 0>>
<p style="color:red;">
You're on the verge of blacking out! If you don’t restore your focus, the next action will cause a blackout!
</p>
<</if>>
<</button>>
<<else>>
<p>You don't have the right tools to gather iron…</p>
<</if>>
<</if>>
<<if $focus < 10>>
<p>Your focus is too low for this task. You need at least 10 focus to continue.</p>
<</if>>
[[Back to Crowl|SouthGate]]<h2>Items for sale:</h2>
[[Go back|Jewelers]]<h2>Items on hand:</h2>
[[Go back|Jewelers]]A fine looking establishment, oddly though adhesive strips seem to be patching a massive part of the west wall...
<big><b>Business </b></big>
[[JewelerBuy]]
[[JewelerSell]]
<b><i>Where to?</i></b>
- <<link "Center of Town">>
<<goto "T3">>
<</link>><<fadein 5s 1s>>
<<fadeout 5s 6s>>
"The cart calls. It waits for someone foolish enough to answer. Buy it once, and you’re cursed to buy it again... and again... until nothing remains but desire itself.”
<</fadeout>>
<</fadein>>
<<fadein 2s 6s>>
[[Wake yourself up.|Wake]] <br> [[Sleep through it.|Farm]]
<</fadein>><<pickup $player 'potion' 2>> <!-- Add 2 potions to the player -->
<<pickup $player 'elixir' 1>> <!-- Add 1 elixir to the player -->
<b><i>Where to?</i></b>
- [[To Square|Square]]
- [[Well|Well]]As you linger by the buildings nearby you hear tinks, and hammering nearby...
<b><i>Where to?</i></b>
[[To Square|Square]]
[[Well|Well]]
[[SoundsofCreation|Workshop]]<b><i>Where to?</i></b>
-<<link " South">>
<<goto "SouthGate">>
<</link>>
- [[Slums]]
- [[CityFarm]]<<inv $materials>><b><i>Where to?</i></b>
- [[CBridgeA]]
<sub><u>Offices</u></sub>
- [[CityRegistration|CReg]]
- <<link "Storage">>
<<goto "CStorage">>
<</link>>
- <<link "Record Hall">>
<<goto "HallOfRecords">>
<</link>><b><i>Where to?</i></b>
- [[North Dock|Dock.1]]
- [[Southern Dock|Dock.2]]
- [[Quarters|DockQrts]]
- [[Dock Homes|Homes]]
<sub><u>Offices</u></sub>
- [[Registration]]
- <<link "Storage">>
<<goto "Storage">>
<</link>>
- <<link "Traders Hall">>
<<goto "Trade Hall">>
<</link>><b><i>Where to?</i></b>
- [[Moon Dock|MoonDock]]
<sub><u>Back to Crowl.</u></sub>
- [[Moon Pass|T4]]<b><i>Where to?</i></b>
- [[MoonIsle]]
- [[Moon Brigde|MoonBr]]
<sub><u>Back to Crowl.</u></sub>
- [[Moon Pass|T4]]<b><i>Where to?</i></b>
- [[Moon Dock|MoonDock]]
- [[Moon Brigde|MoonBr]]
<sub><u>Back to Crowl.</u></sub>
- [[Moon Pass|T4]]:: Dream Sequence
<div id="typewriter-container" class="typewriter"></div>
<<script>>
$(document).one(':passagedisplay', function () {
const container = document.getElementById('typewriter-container');
const text = "The voices drift into your half-conscious mind—snatches of conversations that sound like riddles folded over riddles. They whisper of Crowl, cursed bazaars, and a cart that binds those foolish enough to desire it.";
typewriter(container, text, 50);
});
function typewriter(element, text, speed) {
let i = 0;
element.innerHTML = ''; // Clear content before typing.
function type() {
if (i < text.length) {
element.innerHTML += text.charAt(i);
i++;
setTimeout(type, speed);
}
}
type();
}
<</script>>
[[Wake up.|NextPath]]<h3>Crowl’s Key Locations</h3>
*<b> The Bazaar:</b> Enchanted wares and mysterious artifacts are sold, each item hiding a secret enchantment or curse.
*<b> The Dripping Kettle Tavern:</b> The heart of the town, where deals are made over drink. Owned by Jim—who is definitely not the original owner.
*<b> Merchant Guild Office:</b> A front for a hidden organization, with deep connections to the city's shadowy underbelly.
*<b> The Well:</b> A mysterious well said to hold the lost secrets of the giants, a remnant of a forgotten age.
<b><i>Where to?</i></b>
- [[Travelers Square|Square]]
-<<link " Toward the Slums...">>
<<goto "Slums">>
<</link>>Whatever pull this cart has its strong, and now you realize how strong....
[[Continue to North Gates|North Gate]]
[[Walk along the river.|River]]:: Conversation
<div id="npc-response" class="response-box">
<p>"So, what brings you to Crowl?"</p> <!-- Initial question -->
</div>
<div id="npc-image" class="image-box">
<img src="https://inklings.live/Twines/MMP/mapgui/SouthGate.webp" alt="The merchant smiles" />
</div>
<div id="player-choices" class="choices">
<<button "Ask about the cart">>
<<set $conversationStep to 1>>
<<replace "#npc-response">>
<div id="npc-response" class="response-box">
<p>"Ah, the cart! Yes, the one without wheels... its price rises like a snake basking in the sun."</p>
</div>
<</replace>>
<<replace "#npc-image">>
<div id="npc-image" class="image-box">
<img src="https://inklings.live/Twines/MMP/mapgui/SouthGate.webp" alt="An old, wheel-less cart." />
</div>
<</replace>>
<<replace "#player-choices">>
<div id="player-choices" class="choices">
<<button "Why does the price keep rising?">>
<<set $conversationStep to 2>>
<<replace "#npc-response">>
<div id="npc-response" class="response-box">
<p>"It’s a curse, they say. Every time you look at it, your desire to buy it grows."</p>
</div>
<</replace>>
<<replace "#npc-image">>
<div id="npc-image" class="image-box">
<img src="images/cursed_cart.jpg" alt="The cursed cart glowing faintly." />
</div>
<</replace>>
<<replace "#player-choices">>
<div id="player-choices" class="choices">
<<button "I don't believe in curses.">>
<<set $path to "doubt">>
<<replace "#npc-response">>
<div id="npc-response" class="response-box">
<p>"Suit yourself. Everyone who thought the same came back with regrets."</p>
</div>
<</replace>>
<<replace "#npc-image">>
<div id="npc-image" class="image-box">
<img src="images/merchant_warning.jpg" alt="The merchant shrugs." />
</div>
<</replace>>
<<replace "#player-choices">>
<div id="player-choices" class="choices">
[[Continue.|NextPath]]
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
</div>
<</replace>>
<</button>>
<<button "Say you're just passing through">>
<<set $path to "passing">>
<<replace "#npc-response">>
<div id="npc-response" class="response-box">
<p>"Just passing through, eh? Crowl’s the kind of place that sticks with you, whether you like it or not."</p>
</div>
<</replace>>
<<replace "#npc-image">>
<div id="npc-image" class="image-box">
<img src="images/crowl.jpg" alt="The misty streets of Crowl." />
</div>
<</replace>>
<<replace "#player-choices">>
<div id="player-choices" class="choices">
[[Continue.|NextPath]]
</div>
<</replace>>
<</button>>
</div>:: Prologue
<<fadein 5s 1s>>\
"The Wishbone hums with the sound of murmuring voices, the low crackle of a campfire, and the occasional clink of worn coin. It’s the kind of place where travelers meet on accident, stay too long by misfortune, and leave with stories they’ll never tell the same way twice. Tonight, a subtle sense of unease lingers in the air, carried by the way the flames dance just a bit too wildly in the evening breeze."!\
<</fadein>>
[[While at the Wishbone...|Wishbone]]Focus: <<print $focus>>
Funds: <<print $funds>>
Prestige: <<print $prestige>><b><i>Where to?</i></b>
- <<link "Center of Town">>
<<goto "T3">>
<</link>>
- [[Homes]]
- [[DockQrts]]<b><i>A long desk made of mahogony is present, on it three different stacks of aggressive paperwork. The current receptionist reacts to your arrival:</i></b>
<<set _greetings = [
"Hi traveler, looks like you're in the trade.",
"Welcome, please take a form and return it with the proper funds.",
"Good to see you again, what’s your business today?",
"Ah, another seeker of fortune. You’ll need a license for that.",
"Greetings, merchant. May your trade be prosperous!"
]>>
<div style="display: flex; gap: 10px; justify-content: center; margin-top: 20px;">
<!-- Entry License -->
<div style="width: 200px; padding: 10px; border: 1px solid #ccc; text-align: center;">
<<message 'Entry' btn>>
<h3>Entry License</h3>
<p>Cost: 45 Focus, 100 Funds</p>
<p>Description: A basic license for entry-level merchants.</p>
<<if $hasEntryLicense>>
<p style="color: gray;">Already have this license.</p>
<<else>>
<<if $focus >= 45 && $funds >= 100>>
<<link "Purchase Entry License">>
<<set $focus -= 45>>
<<set $funds -= 100>>
<<set $hasEntryLicense = true>>
<<replace "#confirmation">>You purchased the Entry License!<</replace>>
<</link>>
<<else>>
<p style="color: gray;">Not enough resources</p>
<</if>>
<</if>>
<</message>>
</div>
<!-- Middleman License -->
<div style="width: 200px; padding: 10px; border: 1px solid #ccc; text-align: center;">
<<message 'Middleman' btn>>
<h3>Middleman License</h3>
<p>Cost: 60 Focus, 500 Funds</p>
<p>Description: A license for experienced traders facilitating larger transactions.</p>
<<if $hasMiddlemanLicense>>
<p style="color: gray;">Already have this license.</p>
<<else>>
<<if $focus >= 60 && $funds >= 500>>
<<link "Purchase Middleman License">>
<<set $focus -= 60>>
<<set $funds -= 500>>
<<set $hasMiddlemanLicense = true>>
<<replace "#confirmation">>You purchased the Middleman License!<</replace>>
<</link>>
<<else>>
<p style="color: gray;">Not enough resources</p>
<</if>>
<</if>>
<</message>>
</div>
<!-- Prestige License -->
<div style="width: 200px; padding: 10px; border: 1px solid #ccc; text-align: center;">
<<message 'Pretige' btn>>
<h3>Prestige License</h3>
<p>Cost: 85 Focus, 1200 Funds</p>
<p>Description: An elite license, allows resetting with Prestige 1 active.</p>
<<if $hasPrestigeLicense>>
<p style="color: gray;">Already have this license.</p>
<<else>>
<<if $focus >= 85 && $funds >= 1200>>
<<link "Purchase Prestige License">>
<<set $focus -= 85>>
<<set $funds -= 1200>>
<<set $hasPrestigeLicense = true>>
<<set $prestige = 1>> <!-- Activate Prestige 1 -->
<<replace "#confirmation">>You purchased the Prestige License!<</replace>>
<</link>>
<<else>>
<p style="color: gray;">Not enough resources</p>
<</if>>
<</if>>
<</message>>
</div>
</div>
<div id="confirmation" style="text-align: center; margin-top: 20px;">
<!-- This will display purchase confirmations -->
</div>
<b><i>Back</i></b>
- <<link "Main Hall">>
<<goto "MerchantGuild">>
<</link>>Reflection
*Here you see your progression throughout the game.
[[North Gate]]<b><i>Where to?</i></b>
-<<link "Toward the Norther Gate.">>
<<goto "North Gate">>
<</link>>
- [[CityFarm]]
- [[Lower Slums]]The southern gate of Crowl, facing the coast and nothing much more, mostly acting as a small buffer from nearby bandits south of here.
The lower slums is also accesible from here but venture those parts is <i>risky.</i>
<b><i>Where to?</i></b>
- [[To Square|Square]]
- [[Barracks|Barracks]]
- [[Bandits]]
-<<link " Toward the Slums...">>
<<goto "Lower Slums">>
<</link>>
<sub><u>Resources</u></sub>
- [[Quarry|Stone]]
- [[Mine|Iron]]The fresh air here makes you feel like anything is possible until you witness the amount of endless merchants offering trade and barter... <i>how will you stand among them?</i>
<<if $focus >= 90>>
<<link "Examine the hidden door">>
You carefully examine the hidden door and discover a secret passage!</p>
<<set $focus -= 10>> <!-- Deduct focus or apply any other effects as needed -->
<</link>>
<</if>>
<b><i>Where to?</i></b>
<sub><u>Square Directory</u></sub>
- [[North Gate]]
- [[North Merchants|Loc1]]
- [[Well|Well]]
- [[South Merchants|Loc2]]
- [[South Gate|SouthGate]]
<sub><u>Futher Into Crowl</u></sub>
- [[To the tents|Bazaar]]
- [[North Path|T1]]
- [[South Path|T2]]Stones: @@#mats;<<= $materials.count("stone")>>@@
Amongst the quarry are a handeful of pockets previous visitors have had at. Perhaps theres a fresh spot for you nearby.
<<if $focus >= 10>>
<<if $equipment.has("pickaxe")>>
<<button "Use the pickaxe">>
<<set $focus -= 5>> <!-- Decrease focus -->
<<pickup $player "stone" 3>> <!-- Add iron to inventory -->
<<replace "#mats">><<inv $player count "iron">><</replace>>
<<if $focus <= 0>>
<p style="color:red;">
You're on the verge of blacking out! If you don’t restore your focus, the next action will cause a blackout!
</p>
<</if>>
<</button>>
<<else>>
<p>You don't have the right tools to gather stone…</p>
<</if>>
<</if>>
<<if $focus < 10>>
<p>Your focus is too low for this task. You need at least 10 focus to continue.</p>
<</if>>
[[Back to Crowl|SouthGate]]<h2>On hand:</h2>\
<<give $player $storage stack all filter>>
<h2>In storage:</h2>\
<<take $storage $player stack all filter>>
- <<link "Main Hall">>
<<goto "MerchantGuild">>
<</link>>::StoryInit
// CORE STATS //
<<set $focus to 100>> <!-- Initial focus value -->
<<set $maxFocus to 100>> <!-- Max focus value -->
<<set $cartBasePrice to 1000>> <!-- Initial cart price -->
<<set $cartPrice to $cartBasePrice>> <!-- Current dynamic price -->
<<set $cartVisits to 0>> <!-- Track visits to the cart -->
<<set $funds to 100>> <!-- Starting funds -->
<<set $prestige to 0>> <!-- Prestige level -->
<<set $baseDrain to 1>> <!-- Base percentage focus drain per passage -->
<<set $rewardActive to false>> <!-- Immunity state -->
<<set $rewardPassagesLeft to 0>> <!-- Passages remaining with immunity -->
<<set $Totalpassages to 0>> <!-- Track the number of passages visited -->
<<set $blackoutTriggered to false>> <!-- Track Black out trigger -->
<<set $depletionActive to true>> <!-- Control whether depletion continues -->
<<set $rent to 1>> <!-- Tracks the daily living expenses from the $funds. -->
<<set $rentdue to 0>> <!-- Cost of living expenses. -->
<<set $rentnxt to 7>> <!-- Number of passages before rent is due. -->
<<set $hasEntryLicense to true>> <!-- Lic Type -->
<<set $hasMiddlemanLicense to false>> <!-- Lic Type -->
<<set $hasPrestigeLicense to false>> <!-- Lic Type -->
<<set $rndchest1 to false>>
// VARs//
<<set $redUnlocked to false>> <!-- Track if rewards have been claimed -->
<<set $currentBook to 1>> <!-- Track the currently selected book -->
<<set $currentPage to 0>> <!-- Track the current page -->
<<set $conversationStep to 0>> <!-- Track player progress in the conversation -->
<<set $path to "">> <!-- Track the final outcome for branching -->
<<set $lastWellVisit to 0>> <!-- Track the last visit to the well -->
<<set $wellCooldown to 10>> <!-- Number of passages before well resets -->
<<set $spotcard to true>> <!-- Allows access to Moon Isle functions-->
// INVtories
<<newinv '$player'>>
<<newinv '$storage'>>
<<newinv '$witchesh'>>
<<newinv '$tavern'>>
<<newinv '$bazaar'>>
<<newinv '$jewelersh'>>
<<newinv '$dock1sh'>>
<<newinv '$dock2.sh'>>
<<newinv '$mdocksh'>>
<<newinv '$slums'>>
<<newinv '$mguildsh'>>
<<newinv '$loc1sh'>>
<<newinv '$loc2sh'>>
<<newinv '$wellItems'>> <!-- Well inventory -->
//// Crafting
<<newinv $materials>>
<<newinv $equipment>>
<<set $resources to {
stone: { available: true, passages: 0 },
wood: { available: true, passages: 0 },
iron: { available: true, passages: 0 }
}>>
<<pickup $player "Silk Fabric" 3 "Iron Ore" 5 "Exotic Fruit" 2 "Gold Nugget" 1>>
<<set $items = [
{ name: "Silk Fabric", price: 150 },
{ name: "Iron Ore", price: 120 },
{ name: "Spices", price: 300 },
{ name: "Exotic Fruit", price: 400 },
{ name: "Jewels", price: 750 },
{ name: "Gold Nugget", price: 1100 },
{ name: "Timber", price: 90 },
{ name: "Leather", price: 100 },
{ name: "Tea Leaves", price: 225 },
{ name: "Perfume Oils", price: 450 },
{ name: "Silver Coin", price: 600 },
{ name: "Ancient Artifact", price: 1350 },
{ name: "Dried Herbs", price: 65 },
{ name: "Honeycomb", price: 50 },
{ name: "Fine Wine", price: 270 },
{ name: "Scented Candles", price: 180 },
{ name: "Precious Gems", price: 1200 },
{ name: "Ancient Scroll", price: 1500 },
{ name: "Copper Ingot", price: 85 },
{ name: "Ceramic Pottery", price: 130 },
{ name: "Linen Cloth", price: 160 },
{ name: "Incense Sticks", price: 140 },
{ name: "Obsidian Stone", price: 675 },
{ name: "Ancient Coin", price: 825 },
{ name: "Wool", price: 35 },
{ name: "Maple Syrup", price: 100 },
{ name: "Velvet Fabric", price: 330 },
{ name: "Porcelain Figurine", price: 425 },
{ name: "Elven Trinket", price: 900 },
{ name: "Crystal Shard", price: 1275 },
{ name: "Salt", price: 55 },
{ name: "Coal", price: 75 },
{ name: "Amber", price: 360 },
{ name: "Silk Kimono", price: 750 },
{ name: "Dragon Scale", price: 1800 }
]>>
//- Consumable -//
<<consumable "potion">>
<<set $focus = Math.min($focus + 20, 100)>> <!-- Restores 20 focus -->
<<description>>\
A small vial filled with a glowing liquid. It restores 20 focus points.\
<</consumable>>
<<consumable "elixir">>
<<set $focus = Math.min($focus + 50, 100)>>
<<set $stamina = Math.min($stamina + 50, 100)>> <!-- Restores focus and stamina -->
<<description>>\
A rare elixir that replenishes both focus and stamina by 50 points.\
<</consumable>>
// Lics
<<set $licenses = {
entry: {
name: "Entry License",
description: "A basic license for entry-level merchants.",
focusCost: 45,
fundsCost: 100
},
middleman: {
name: "Middleman License",
description: "A license for experienced traders looking to facilitate larger transactions.",
focusCost: 60,
fundsCost: 500
},
prestige: {
name: "Prestige License",
description: "A prestigious license that marks the bearer as an elite merchant.",
focusCost: 85,
fundsCost: 1200,
effect: "Allows resetting the game with Prestige 1 active."
}
}>>
// TRADE ITEMS
<<set $mguildsh = [
{ name: "Silk Fabric", buyValue: 100, tradeValue: 150, license: "entryLic" },
{ name: "Iron Ore", buyValue: 80, tradeValue: 120, license: "entryLic" },
{ name: "Spices", buyValue: 200, tradeValue: 300, license: "middleLic" },
{ name: "Exotic Fruit", buyValue: 250, tradeValue: 400, license: "middleLic" },
{ name: "Jewels", buyValue: 500, tradeValue: 750, license: "prestigeLic" },
{ name: "Gold Nugget", buyValue: 700, tradeValue: 1100, license: "prestigeLic" },
{ name: "Timber", buyValue: 50, tradeValue: 90, license: "entryLic" },
{ name: "Leather", buyValue: 60, tradeValue: 100, license: "entryLic" },
{ name: "Tea Leaves", buyValue: 150, tradeValue: 225, license: "middleLic" },
{ name: "Perfume Oils", buyValue: 300, tradeValue: 450, license: "middleLic" },
{ name: "Silver Coin", buyValue: 400, tradeValue: 600, license: "prestigeLic" },
{ name: "Ancient Artifact", buyValue: 900, tradeValue: 1350, license: "prestigeLic" },
{ name: "Dried Herbs", buyValue: 40, tradeValue: 65, license: "entryLic" },
{ name: "Honeycomb", buyValue: 30, tradeValue: 50, license: "entryLic" },
{ name: "Fine Wine", buyValue: 180, tradeValue: 270, license: "middleLic" },
{ name: "Scented Candles", buyValue: 120, tradeValue: 180, license: "middleLic" },
{ name: "Precious Gems", buyValue: 800, tradeValue: 1200, license: "prestigeLic" },
{ name: "Ancient Scroll", buyValue: 1000, tradeValue: 1500, license: "prestigeLic" },
{ name: "Copper Ingot", buyValue: 55, tradeValue: 85, license: "entryLic" },
{ name: "Ceramic Pottery", buyValue: 90, tradeValue: 130, license: "entryLic" },
{ name: "Linen Cloth", buyValue: 110, tradeValue: 160, license: "middleLic" },
{ name: "Incense Sticks", buyValue: 95, tradeValue: 140, license: "middleLic" },
{ name: "Obsidian Stone", buyValue: 450, tradeValue: 675, license: "prestigeLic" },
{ name: "Ancient Coin", buyValue: 550, tradeValue: 825, license: "prestigeLic" },
{ name: "Wool", buyValue: 20, tradeValue: 35, license: "entryLic" },
{ name: "Maple Syrup", buyValue: 70, tradeValue: 100, license: "entryLic" },
{ name: "Velvet Fabric", buyValue: 220, tradeValue: 330, license: "middleLic" },
{ name: "Porcelain Figurine", buyValue: 275, tradeValue: 425, license: "middleLic" },
{ name: "Elven Trinket", buyValue: 600, tradeValue: 900, license: "prestigeLic" },
{ name: "Crystal Shard", buyValue: 850, tradeValue: 1275, license: "prestigeLic" },
{ name: "Salt", buyValue: 35, tradeValue: 55, license: "entryLic" },
{ name: "Coal", buyValue: 45, tradeValue: 75, license: "entryLic" },
{ name: "Amber", buyValue: 240, tradeValue: 360, license: "middleLic" },
{ name: "Silk Kimono", buyValue: 500, tradeValue: 750, license: "middleLic" },
{ name: "Dragon Scale", buyValue: 1200, tradeValue: 1800, license: "prestigeLic" }
]>>
// LAUNCH SCRIPT
<script>
$(document).on(':passagerender', function () {
console.log("Passage rendered. Refreshing essential UI...");
// Call the modified function to refresh only funds and prestige
window.updateFocusSidebar();
window.updateLocationNotifier();
window.depleteFocus();
window.updatePassageCount();
window.checkRentDue();
});
</script>
<<link "Player Stats">>
<<run Dialog.setup("Player Stats", "player-stats"); Dialog.wiki(Story.get("PlayerStats").text); Dialog.open()>>
<</link>>
<<link "Player Inventory">>
<<run Dialog.setup("PInventory", "inventory"); Dialog.wiki(Story.get("PInventory").text); Dialog.open()>>
<</link>>
<<link "Equipment">>
<<run Dialog.setup("Equipment", "inventory"); Dialog.wiki(Story.get("EquipmentInventory").text); Dialog.open()>>
<</link>>
<<link "Materials">>
<<run Dialog.setup("Materials", "inventory"); Dialog.wiki(Story.get("MaterialInventory").text); Dialog.open()>>
<</link>><b><i>Where to?</i></b>
- [[To Square|Square]]
- [[Mayor's Pass|CBridgeA]]<b><i>You travel along the pathway looking around...</i></b>
<b><i>Where to?</i></b>
- [[Tavern|JimsTavern]]
- [[Bazaar]]
- [[Tents out back...|Witches]]
<sub>South of Crowl</sub>
- [[Center Road|T3]]The central road of Crowl. Many merchants pass through here, never know who you might bump into.
<b><i>Where to?</i></b>
<sub><u>North Crowl</u></sub>
-[[South Road|T2]]
<sub><u>South Crowl</u></sub>
-<<link "Toward the Docks">>
<<goto "Dock.1">>
<</link>>
-<<link "Vist the Jewelers">>
<<goto "Jewelers">>
<</link>>
-<<link "Check the Post">>
<<goto "Post">>
<</link>>
-<<link "Toward Merchant Guild">>
<<goto "DockQrts">>
<</link>><<if $spotcard>>
You have earned access to the privileged few.
[[Moon Bridge|MoonBr]]
<<else>>
You clearly are confused on where you intend to go.
<</if>>
<b><i>Where to?</i></b>
- [[North Dock|Dock.1]]
- [[Mayor's Pass|CBridgeA]]<b><i>Within the massive hall you see materials of all kinds, some core and staples others luxurious with clear signs you won't be touching them anytime soon...</i></b>
<<inv $player filter>>
- <<link "Main Hall">>
<<goto "MerchantGuild">>
<</link>>
<<inv $player use drop inspect all filter>><<set $rndchest1 = $rndchest1 || false>> <!-- Initialize chest flag -->
<<set _secretNumber = random(1, 5)>> <!-- Generate a secret number between 1 and 5 -->
<<set $focus = $focus || 100>> <!-- Initialize focus if not already set -->
<<set _guessCount = _guessCount || 0>> <!-- Initialize guess counter -->
<<set $sidebarMessage = $sidebarMessage || "There's a mysterious chest nearby." >> <!-- Initial sidebar message -->
<p>A locked chest lies before you. Guess the correct number to open it.</p>
<!-- Only show input and button if chest hasn’t been opened -->
<<if !$rndchest1>>
<<textbox "_guess" "" placeholder="Enter a number">> <!-- Input for player’s guess with a placeholder -->
<<button "Try">>
<<set _guess = _guess.trim()>>
<<set _guessCount += 1>> <!-- Increment guess counter -->
<<if _guess == _secretNumber.toString()>>
<<pickup $player "golden key" 1>>
<<set $rndchest1 = true>> <!-- Lock the chest after success -->
<<set $sidebarMessage = "You successfully unlocked the chest and found a golden key!">> <!-- Update sidebar -->
<<replace "#result">>
<p>Correct! You unlock the chest and find a **golden key**!</p>
<</replace>>
<<replace "#attempts">>
<p>You successfully opened the chest after <strong><<= _guessCount >></strong> tries!</p>
<p><<link "Go back">>[[PreviousPage]]<</link>></p> <!-- Link to go back -->
<</replace>>
<<replace "#button-area">>
<p style="color: gray;">The chest is now empty.</p> <!-- Display empty message -->
<</replace>>
<<else>>
<<set $focus -= 5>> <!-- Deduct 5 focus points on failure -->
<<replace "#result">>
<p>Incorrect! The lock doesn’t budge. Your focus is now <strong><<=$focus>></strong>.</p>
<</replace>>
<</if>>
<</button>>
<</if>>
<!-- Button area, replaces with an empty message after success -->
<div id="button-area">
<<if $rndchest1>>
<p style="color: gray;">The chest is now empty.</p>
<</if>>
</div>
<div id="result"></div> <!-- Placeholder for the result message -->
<div id="attempts"></div> <!-- Placeholder for attempts or success message -->
<p>You notice something glinting under the rubble.
<<link "Investigate">>
<<pickup $player "key to the airship" 1>> <!-- Adds the key to the backpack -->
You found a **key to the airship**!
<</link>>
</p>
:: Cart Passage
<<script>>
// Increase the number of cart visits
State.variables.cartVisits += 1;
// Calculate price increase: 10% base + focus penalty
let baseIncrease = Math.ceil(State.variables.cartBasePrice * 0.10);
let focusPenalty = Math.ceil((100 - State.variables.focus) / 10);
// Apply the total price increase
State.variables.cartPrice += baseIncrease + focusPenalty;
// Refill 25 focus, but cap it at 100
State.variables.focus = Math.min(100, State.variables.focus + 25);
// Activate immunity for 10 passages
State.variables.rewardActive = true;
State.variables.rewardPassagesLeft = 10;
console.log(`Cart visit #${State.variables.cartVisits}`);
console.log(`New Cart Price: ${State.variables.cartPrice}`);
console.log(`Focus: ${State.variables.focus}`);
<</script>>
<p><em>There is something unsettling about this cart. A pull—subtle, yet gnawing. It fills you with longing, and in that longing, a fragile clarity. But every visit adds another tether, and the cart's price swells with it.</em></p>
<p>The cart’s current price: <strong>$<<= $cartPrice>> coins</strong></p>
<p>Your current focus: <strong><<=$focus>>%</strong></p>
<<if $funds >= $cartPrice>>
[[Buy the cart and end your journey|End Game]]
<<else>>
<p>You do not have enough funds to buy the cart.</p>
<</if>>
The long back to the Crowl's North Gate leaves a debt you'll need to recover, how did you get back here?...
[[Back to Crowl.|North Gate T.]][[To the road ahead.|EndIntro]]You see two pulleys hanging over the well, each holding something mysterious. Come back later and maybe something will occur.
<b><i>Where to?</i></b>
- [[Back to Square|Square]]
- [[North Merchants|Loc1]]
- [[South Merchants|Loc2]]<<fadein 5s 1s>>\
"You arrived at the Wishbone like anyone else—empty pockets and a head full of schemes. The journey was supposed to be simple: pass through the basin, maybe haggle with a few merchants, then on to Crowl. But something about this place held you, wrapped you in its strange comfort. Strangers offered drinks, stories were shared in passing, and, somewhere in between the crackling fire and a soft lull of song, you let your guard down."\
<</fadein>>
[[You should'nt have.|Dream]]<b><i>Where to?</i></b>
- [[Bazaar]]
- [[Southern Pass|T2]]Wood: @@#mats;<<= $materials.count("wood")>>@@
You go to gather some wood.
<<button "Gather by hand">>
<<pickup $materials "wood" 1>>
<<replace "#mats">><<= $materials.count("wood")>><</replace>>
<</button>>\
<<if $equipment.has("axe")>><<button "Use the axe">>
<<pickup $materials "wood" 2>>
<<replace "#mats">><<= $materials.count("wood")>><</replace>>
<</button>><</if>>
[[Back to Workshop|Workshop]]Workshop
Entering the shop you hear a odd jingle: <i>"Ah yea someones present."</i>, accompanied by a handful of clanks and hammering further within.
There seem to be a flyer on a nearby desk:
<<message 'Flyer' 'uniqueID' 'btn'>><sub>Free Crafting Table rentals!</sub><<message 'Clause' 'anotherUniqueID'>><sub><i>Bring your own materials and have at em, any and all creations that go beyond the beginners handbook share the legal recreation of any onlookers without royality requirements.</i></sub><</message>><</message>>
<b><i>Where to?</i></b>
- [[Go to the crafting table|Crafting]]
- [[Back to Shops|Loc2]]
<sub><u>Go to resource locations:</u></sub>
<sub><sub>This will cost the same respect focus used to travel normally.</sub></sub>
- [[To Quarry|Stone]]
- [[To Forest|Wood]]
- [[To Mine|Iron]]<u><big><b>Focus::</b></big></u> @@#focus;<<= $focus>>@@
<u><big><b>Funds:</b></big></u> @@#funds;<<= $funds>>@@
<<= $sidebarMessage>>
<<widget "funds">>
<<set $funds = Math.max($funds + _args[0], 0)>>
<<replace "#funds">><<= $funds>><</replace>>
<</widget>>
<<widget "buylink">>
<<set _item to _args[0]>>
<<set _amount to _args[1]>>
<<set _price to _args[2]>>
<p @data-item="_item" class="buy-listing">
<span><<= _item>></span>
<span class="count"><<= _amount>></span>
<span class="price">Price: <span><<= _price || 1>></span></span> <!-- Fallback price in case of undefined -->
<span class="buy-link">
<<capture _item, _amount, _price>>
<<link "Buy">>
<<if $funds < _price>>
<<run UI.alert("You don't have enough funds!")>>
<<else>>
<<set $funds -= _price>> <!-- Deducts price from $funds -->
<<replace "#funds">><<= $funds>><</replace>> <!-- Update funds display -->
<<set $player[_item] = ($player[_item] || 0) + 1>> <!-- Add item to player inventory -->
<<set _amount -= 1>> <!-- Reduce available shop quantity -->
<<if _amount > 0>>
<<replace `"p.buy-listing[data-item=\"" + _item + "\"] > .count"`>><<= _amount>><</replace>>
<<else>>
<<remove `"p.buy-listing[data-item=\"" + _item + "\"]"`>>
<</if>>
<</if>>
<</link>>
<</capture>>
</span>
</p>
<</widget>>
<<widget "selllink">>
<<set _item to _args[0]>>
<<set _amount to _args[1]>>
<<set _basePrice to _args[2]>>
<!-- Calculate the sell price based on license and focus -->
<<set _rate = $hasPrestigeLicense ? _sellRates.prestigeLic :
$hasMiddlemanLicense ? _sellRates.middleLic :
$hasEntryLicense ? _sellRates.entryLic : 0>>
<<set _sellPrice = _basePrice * _rate * _focusAdjustment>>
<p @data-item="_item" class="sell-listing">
<span><<= _item>></span>
<span class="count"><<= _amount>></span>
<span class="sell-link">
<<capture _item, _amount, _sellPrice>>
<<link "Sell">>
<<funds _sellPrice>> <!-- Add adjusted funds for the sold item -->
<<set $player[_item] -= 1>> <!-- Remove item from player inventory -->
<<set $shop[_item] = ($shop[_item] || 0) + 1>> <!-- Add item back to shop inventory -->
<<set _amount -= 1>> <!-- Reduce displayed player quantity -->
<<if _amount > 0>>
<<replace `"p.sell-listing[data-item=\"" + _item + "\"] > .count"`>><<= _amount>><</replace>>
<<else>>
<<remove `"p.sell-listing[data-item=\"" + _item + "\"]"`>>
<</if>>
<</link>>
<</capture>>
</span>
</p>
<</widget>>
This is the <h1>NO BEEF</h1>
<img src="https://inklings.live/Twines/MMP/BeefX.webp" alt="No Beef Icon" style="width: 50px; height: 50px;">
Alpha release.
Its core purpose is to show the idea, get a feel for th navigational taste, and filter ideas from the tester community on what would be neat to see.
<big><b><u>NEXT ALPHA RELEASE FEATURES PLANNED</u></b></big>
- I am focusing on the shopping interaction and selling with mutli factors into the benefit of who you sell to and where you shop.
- A minimal combat exp for small based encoutners.
- Gambling to earn back the $funds a little quicker or loose it all together.
- And much more!
Until then try this out imagine its potential and help me push its limits.
<sub>I appreciate your time into viewing this project.</sub>
[[Begin the Demo|Opener]]