,,,,,,,,
### $hotsauce[It is illegal to serve hot sauce to a dragon in Granada]
You are a (link-reveal:"dragon")[(show:?reveal1)].
|reveal1)[You want some (link-reveal:"hot sauce")[(show:?reveal2)] for your freshly-procured steak.]
|reveal2)[But here in the city of Granada, the human invaders have imposed strict law upon the non-human folk. As life proceeds under the watchful eye of the golem Constabulary, it will be (link-reveal:"tough to find")[(show:?reveal3)] an establishment who will risk arrest to serve your desire.]
|reveal3)[But you are a dragon and you will not be daunted!
(link:"Begin your quest!")[[[Ask your nearest neighbour for advice.->0A.the-owl]]]
]The white-feathered owl roosts under the eaves of your penthouse lair.
She cracks open a yellow eye. "Don't you know $hotsauce[it's illegal to serve hot sauce to a dragon in Granada]? But since you insist, I heard something last night..."
You tilt your head and listen carefully as she murmurs some (link-reveal:"helpful information.")[(show: ?para)]
|para)[(set: _informationChange to 2)$infoShow
The owl fluffs her feathers and settles deeper on her perch. "It's hard to find someone who'll serve you. You have to (text-colour: purple)[keep gathering clues around the city.] But be discreet, otherwise (text-colour:red)[the Constables will get suspicious and arrest you!]"
She closes her eyes and goes to sleep. That's a start. [[You'll have to talk to other people.->1.neighbours]]
]A troll lives in the rooms just below your penthouse lair. He often helps you with marinading when you get tired of plain-grilled steaks. (It's hard to prepare food when you only have huge claws.)
You tap on his kitchen window. Usually he doesn't bat an eyelid at your culinary requests, but (link-reveal:"today is different.")[(show:?para1)]
|para1)["Hot sauce?" He shaggy eyebrows disappear into his hairline. "Look, neighbour. I'd usually oblige, but $hotsauce[it's illegal to serve hot sauce to a dragon in Granada]." He shakes his head solemnly. "You and me, we (link-reveal:"ain't getting into any trouble.")[(show:?para2)]"]
|para2)[(set: _suspicionChange to 1, _informationChange to 1)$infoShow
$suspShow
You're not sure if that means the troll doesn't have any hot sauce or if he won't give you any.
So much for asking the neighbours. [[Leave your penthouse and look further abroad.->2.flight.intro]]
]You are a dragon. You want hot sauce for your freshly-procured steak.
(if:(either:1,2) is 1)[ [[1a.neighbours.troll<-Try asking another neighbour.]]]\
(else:)[ [[1b.neighbours.banshee<-Try asking another neighbour.]] ]
Enough of asking around. [[Leave your penthouse and look further abroad.->2.flight.intro]]
(link: "//How fares your quest?//")[$statsShow]You stick a claw over the edge of the roof and (link-reveal:"tap on a window")[(show: ?para1)] below.
|para1)[(text-colour: yellow)[//Yeeeeek!//]
A banshee screams from the rooms right below your penthouse lair. Oops. Did a new tenant just move in? Maybe you should've checked before tapping on the window.
She stares wide-eyed as you introduce yourself, the resident dragon and penthouse tenant.
But your request only agitates her again. "What! $hotsauce[It's illegal to serve hot sauce to a dragon in Granada!]" she shrieks at you before (link-reveal:"yanking the blinds shut.")[(show: ?para2)]]
|para2)[(set: _informationChange to 0, _suspicionChange to 1)$infoShow
$suspShow
Oh, well. So much for asking the neighbours. [[Leave your penthouse and look further abroad.->2.flight.intro]]
](display: "disp.flight")You spread your wings and take off from your penthouse lair. Up from the residential tower where you roost, up from the Albaycin district that is your neighbourhood. The flat-topped buildings and narrow streets shrink below as you spiral up into the sky.
The city of Granada [[2.flight.main<-opens before you.]](display: "disp.flight")(if: not ((history:) contains "2a.square.transit"))[This square lies between several tenanted towers, including yours. It is a small patch of ground, with just enough room for a dragon to turn around without feeling too claustrophobic.
Not ideal. But compared to the narrow, high-walled streets around the Albaycin district, it's positively spacious. Only in the neighbourhood squares can you (link-reveal:"meet and talk with non-dragon people")[(show: ?para)] on the ground.
|para)[Besides, Constable patrols don't come by the neighbourhoods so frequently.
[[2a.square.main<-You land, filling up a quarter of the square.]]]
]\
\(else-if: ((history:) contains "2a.square.transit"))[You pull your wings in and spiral down towards the tiny square...
(live:1.5s)[(go-to: "2a.square.main")]
]The Plaza Nueva is buzzing with the activities of the day. In the middle of the Plaza, people gather to mingle and talk. Pedestrians and passersby promenade down the main road, while stalls with all kinds of wares line the edge of the square. The sounds of haggling and hawking mingle with snatches of music and song.
And discreetly patrolling everywhere are the golems of the Constabulary with their human handlers.
[[4c.plaza.shopkeeper<-Check out the shopkeepers around the Plaza.]]
[[4a.plaza.passerby<-Speak to a passerby.]]
Enough of enduring scrutiny. [[2.flight.takeoff<-Take off and fly somewhere else.]]
<!-- [[4a.plaza.eavesdrop<-Listen to the talk happening around you.]] -->
(link: "//How fares your quest?//")[$statsShow]Some of your fellow tenants and neighbours are in the square. Who will you speak with?
(if: $visited's DragonSleeping is 0)[ [[3a(i).neighbours.dragon<-A fellow dragon naps in the square.]] ]\
\(else-if:$visited's DragonSleeping is 1)[ [[3a(i).neighbours.dragon<-Speak again to your draconic neighbour dozing in the sun.]] ]\
\(else:)[The dragon snores gently, smoke rising from his nostrils.]
(if: $visited's MapleTree is 0)[ [[3a(ii).neighbours.mapletree<-Approach the two elders sitting beneath the maple tree.]] ]\
\(else-if: $visited's MapleTree is 1)[ [[3a(ii).neighbours.mapletree<-One elder has left the maple tree. Try asking again?]]]\
\(else:)[The leaves of the maple tree are still.]
(if: $visited's Housewives is 0)[ [[3a.(iii).neighbours.listen<-Loiter and listen to what your neighbours are saying.]]]\
\(else-if: $visited's Housewives is 1)[ [[3a.(iii).neighbours.listen<-Lurk some more to hear neighbourly chit-chat.]]]\
\(else:)[The square is mostly quiet now.]
You've pestered your neighbours enough. [[2a.square.main<-Speak to someone else.]]
(link: "//How fares your quest?//")[$statsShow]$passersBy
[[3b.square.passerby<-Ask another passerby]], or [[2a.square.main<-take another look around the square.]]
(link: "//How fares your quest?//")[$statsShow]Double-click this passage to edit it.(if: $visited's MapleTree is 0)[The ornamental maple tree graces the courtyard with its stately presence. Burgundy leaves rustle and shiver in the sunlight.
Two elderly folk are sitting beneath the tree. They smile as you greet them. But that changes when you (link-reveal:"explain your quest.")[(show: ?para1)]
|para1)[The faun's face darkens under his graying whiskers. "Absolutely not! Child, you don't want to be asking this question." He snorts, then proceeds to ignore you blatantly.
The dryad shoots a look at her companion, then shrugs and leans back against her maple. "I don't get out much, even less than this greybeard here!"
The faun snorts again. "You heard the dame. (link-reveal:"Begone!")[(show: ?para2)]"]
|para2)[(set: $visited's MapleTree to 1, _informationChange to 0, _suspicionChange to 1)$infoShow
$suspShow
The dryad blinks her leaf-green eyes. Was she winking at you? [[3a.square.neighbours<-Thank them and move on.]]
]]\
\(else-if: $visited's MapleTree is 1)[(set: $visited's MapleTree to 2, _informationChange to 2, _suspicionChange to 0)\
\Sunlight dapples the ground through the leaves of the maple tree. The faun has departed. The dryad is still sitting here, knitting. Her eyes twinkle in her mauve face as she watches you approach.
"Don't mind him. He was a wild young satyr once, but then he sobered up. Now he's even more a stickler for the law than the golem Constables!" She laughs, then lowers her voice. "I may not get out much, but I hear a lot. The things people gossip about when sitting under a tree..."
$infoShow
$suspShow
The dryad winks again when she's done. "Just don't get caught. I'd hate to see you in trouble!"
[[3a.square.neighbours<-Thank her profusely.]]
]
(if: $visited's Housewives is 0)[You settle down in a comfortable spot and (link-reveal:"quietly listen")[(show: ?para)] to the neighbours around you as they pass in and out of the towers.
|para)[Two housewives are gossiping loudly as they leave one of the towers. Which are the most reliable grocers. Who doesn't secretly short-change or fiddle with weights. Where to find preserves and jams and spices. Which are the produce in season, which exotic foods are about to come to Granada. Wait, did they just say something about condiments?
(set: $visited's Housewives to 1, _informationChange to 1, _suspicionChange to 0,)$infoShow
$suspShow
[[3a.square.neighbours<-Enough listening for now.]]]
]\
\(else-if: $visited's Housewives is 1)[(set: $visited's Housewives to 2, _informationChange to 0, _suspicionChange to 0,)\
\You loiter about, but the square is quiet, and there are no more useful chatter from your neighbours.
$infoShow
$suspShow
[[3a.square.neighbours<-You'd better go before you start attracting attention.]]
]You are in the little square just outside your residential tower.
An ornamental maple tree dominates one quarter of the square. Citizens and the occasional Constable walk past on their business. Tenants from the surrounding towers gather around the planters and benches, chatting and enjoying the day in the shade of the buildings.
[[3a.square.neighbours<-Speak to your neighbours.]]
[[3b.square.passerby<-Approach a passerby.]]
You're finished here. [[2.flight.takeoff<-Take off and fly somewhere else.]]
(link: "//How fares your quest?//")[$statsShow](display: "disp.flight")You are in flight. The city of Granada sprawls below you like a patchwork quilt. Where will your quest for hot sauce take you next?
[[2a.square.transit<-Glide to the neighbourhood square]] just outside your home tower.
[[2b.plaza.transit<-Fly to the Plaza Nueva]], the largest and oldest esplanade in the city.
(if: not ((history:) contains "z.suspicion.reduce") and $suspicionValue > 0)[//Your quest is starting to become known to others.// If you [[z.suspicion.reduce<-fly about for a while]], they will forget what you're after. But the clues you've picked up might grow cold too...]\
(else-if: $suspicionValue > 0)[Your quest is becoming known to others. [[z.suspicion.reduce<-Take some time off and just fly.]]]
\(else:)[You're certain that no one knows about your quest now.]
(link: "//How fares your quest?//")[$statsShow](display: "disp.flight")Ah, away from Constable scrutiny! The sky is where a dragon truly belongs!
You fly for a while...
(live: 2s)[\
\(if:(random:1,3) < 3)[...ahhh, how long have you been flying and relishing the feel of air under your wings?
You've forgotten some of the clues you've learnt. But no matter -- the Constabulary have also lost your trail. It'll be easy to pick up your quest again!
(set: _suspicionChange to -1, _informationChange to -1)$infoShow
$suspShow
[[2.flight.main<-So, what's next?]] ](stop:)\
\(else:)[...and think about the clues you've learnt.
A-ha! You can see how all these disparate hints fit together! You now have a clearer idea of where hot sauce may be found. And the Constabulary have also lost your trail!
(set: _suspicionChange to -1, _informationChange to 1)$infoShow
$suspShow
[[2.flight.main<-So, what's next?]] ](stop:)
]{
<!-- Visiting locations/people -->
(set: $visited to (dm:
"DragonSleeping",0,
"MapleTree",0,
"Housewives",0,
"ShopkeepVisit",0,
)
)
(set: $ShopPick to (shuffled: 1,2,3,4,5)'s (a:1,2,3))
<!-- managing Stats: Information -->
(set: $informationValue to 0)
(set: $informationValueDesc to (dm:
0,"You know nothing. Nothing!",
1,"You know a smidgin more than nothing.",
2,"You know a smidgin more than nothing.",
3,"You have a few clues.",
4,"You have a few clues.",
5,"You are gaining more information.",
6,"You are gaining more information.",
7,"You are putting your clues together.",
8,"You are putting your clues together.",
9,"You are so close to your goal you can practically smell it!",
10,"Aha - you know who serves hot sauce inside the city.",
11,"Aha - you know who serves hot sauce inside the city.",
12,"Aha - you know who serves hot sauce inside the city.",
13,"Yes! You know where to find hot sauce outside Granada!",
14,"Yes! You know where to find hot sauce outside Granada!",
15,"Yes! You know where to find hot sauce outside Granada!",
)
)
(set: $informationChangeDesc to (dm:
-2, "You have forgotten several clues! What are you doing, daydreaming?",
-1, "Uh-oh, you have forgotten a clue.",
0, "You have learnt nothing new.",
1, "You have learnt a clue.",
2, "You have gained several clues!",
)
)
<!-- managing Stats: Suspicion -->
(set: $suspicionValue to 0)
(set: $suspicionValueDesc to (dm:
0,"No one knows about your quest. You are safe.",
1,"A few people raise their eyebrows at you. Your quest is starting to be known.",
2,"People are frowning. They are getting suspicious of your intentions.",
3,"You see a constable out of the corner of your eye. You are looking //very// suspicious.",
4,"Two constables are watching you! One more wrong step and you **will be arrested!**",
5,"A constable patrol stops you! Your quest is foiled!",
6,"A constable patrol stops you! Your quest is foiled!",
)
)
(set: $suspicionChangeDesc to (dm:
-1, "You are looking less shady. Thank goodness!",
0, "Whew, no one seems to suspect you.",
1, "Whoops, that was a jumpy reaction. You need to be more careful.",
2, "Uh-oh, many people are staring at you. You're getting too suspicious for your comfort!",
)
)
<!-- Formatting -->
(set: $printSuspColour to (text-colour: red) + (text-style: "italic"))
(set: $printSuspGrey to (text-colour: grey) + (text-style: "italic"))
(set: $printInfoColour to (text-colour: purple) + (text-style: "italic"))
(set: $printInfoGrey to (text-colour: grey) + (text-style: "italic"))
(set: $hotsauce to (text-colour: orange))
<!-- showing Stats -->
(set: $statsShow to (display: "X.statsWindow"))
(set: $infoShow to (display: "disp.printInfo"))
(set: $suspShow to (display: "disp.printSusp"))
(set: $passersBy to (display: "disp.passerby.variables"))
<!-- ending -->
(set: $ending to (dm:
"fail",0,
"okay",0,
"good",0,
))
}
(set: $ending's fail to 2)(text-colour: red)[Your suspicion is too high! You have been caught by the Constabulary!]
A patrol of human and golem Constables surrounds you! You decide not to risk flying away -- the golems can do some serious anti-dragon damage. You submit yourself to be led away to their headquarters and (link-reveal:"questioned.")[(show: ?para1)]
|para1)[Thankfully you haven't actually done anything illegal, so you get away with a fine for "loitering" and "untoward behaviour", paid in a (link-reveal:"ration on the fresh steaks")[(show: ?para2)] you can procure.]
|para2)[As you leave the Constabulary headquarters, a human officer says, "We know what you're looking for, dragon. When our forefathers conquered Granada, the resistance passed messages through the produce that came through the markets and eating-houses. You non-humans may all have been isolated then, but who knew that you were organizing yourselves through condiments and gravies?
"That's why $hotsauce[it is illegal to serve hot sauce to a dragon in Granada.] (link-reveal: "Watch yourself, citizen.")[(show: ?para3)]"]
|para3)[So much for your quest for a tasty dinner. You are glad that you got off so lightly. But the Constabulary now has its eye on you, so you'll have to lie low until the law turns away.
Someday, (link-reveal:"you will find hot sauce for your steak.")[(show: ?end)]]
|end)[
=><=
### .:: [[THE END]] ::.
](set: $eavesDrop to 1)
(set: $gatherInfo to 0)
(print: "Eavesdrop: " + "$eavesDrop" + "Info gathered: " + "$gatherInfo")
(link-repeat:"Search for information?")[
(if:(random:1,5) >= $eavesDrop)[(set: $eavesDrop to $eavesDrop + 1)(set: $gatherInfo to $gatherInfo + 1) You gain information!](else:)[(set: $eavesDrop to 2)(set: $gatherInfo to 0)A constable stops you!]
(print: "Eavesdrop: " + "$eavesDrop" + "Info gathered: " + "$gatherInfo")
]
<!-- TO-DO: Check if the eavesdrop variable is adding correctly.
Convert this to Eavesdrop selection. Allow player to back out and collect information before hitting suspicion.
When player has backed out OR kicked out by Constable suspicion - they can't return until they've flown off and then flown back. Set a persistent variable then use plaza.transit page to clear it.
-->(if: $visited's DragonSleeping is 0)[A fellow dragon is dozing here, occupying a good one-third of the square. For as long as you remember, he's been the penthouse tenant on the neighbouring residential tower. Sometimes he comes down here to get away from the air traffic and chatter of Granada's flying denizens.
He seems to be in a mellow mood today. At least, he hears your request without (link-reveal:"cutting you off.")[(show: ?para)]
|para)["Hrrrrrgmmm," he rumbles. "Been a while since I last looked for hot sauce. It doesn't taste the same now as before the human invasion, aye? Just not worth the trouble with Constables. But since you insist..."
(set: $visited's DragonSleeping to 1, _informationChange to 1, _suspicionChange to 1)$infoShow
$suspShow
The elder dragon narrows his orange eyes at you, before closing them again.
[[3a.square.neighbours<-Enquire of another neighbour.]]
]]\
\(else-if: $visited's DragonSleeping is 1)[(set: $visited's DragonSleeping to 2, _informationChange to 0, _suspicionChange to 1)\
\The elder dragon stirs again at your interruption, but this time, his eyes glitter a baleful red. "Again?" he snarls. "I told you what I know. I fought the human invaders once. I'm not interested in fighting them now. Do not be hasty to get dragons into trouble."
He glares at you, nostrils smoking, then curls back to sleep, turning his back on you.
$infoShow
$suspShow
Oops, you have pushed him too far. [[3a.square.neighbours<-Best not to disturb him anymore.]]
](display: "disp.flight")(if: not ((history:) contains "2b.plaza.transit"))[The Plaza Nueva is the largest and oldest square in the city of Granada. You vaguely remember that it used to be the place where anyone could meet freely, could barter or buy anything that they desired.
But times have changed since the humans conquered Granada and imposed their rule upon the non-human population. The Plaza still bustles with activity, but more subdued now that the Constabulary are everywhere, watching everyone.
Here, you have a better chance of finding a supplier who'd serve hot sauce to a dragon. But there are also more Constables around. (link-reveal:"You have to be careful.")[(show:?para)]
|para)[You spot an open space in the midst of the Plaza Nueva, [[and land.->2b.plaza.main]]]
](else-if: (history:) contains "2b.plaza.transit")[\
You glide down towards the white expanse of the Plaza Nueva...
(live:1.5s)[(go-to: "2b.plaza.main")]
]You spread your wings and leap into the air...
(live:1s)[(go-to: "2.flight.main")]//How fares your quest?//
**What do you know?** (text-color: purple)[(print: $informationValue of $informationValueDesc)]
[**Do they suspect?**] (text-color: red)[(print: $suspicionValue of $suspicionValueDesc)]
(if: $ending's okay is 1 and $informationValue >= 10)[Getting nervous? [[END.okay<-Wrap up your quest and get hot sauce within Granada city.]]]{
<!-- PART 1. DEFINE PERSON. -->
<!-- Here comes... -->
(set: _startSingular to
(ds: "Along comes", "Here comes", "Down the street comes", "Approaching you is", "Walking past you is", "Here is", "Along the street goes", "There goes", "Passing by is", "Walking briskly past is", "Coming past you is",
)
)
(set: _startPlural to
(ds: "Along come", "Here come", "Down the street come", "Approaching you are", "Here are", "Along the street go", "There go", "Passing by are",
)
)
<!-- ...a person/people... -->
(set: _raceSingular to
(ds: "kobold", "goblin", "gryphon", "banshee", "unicorn", "faerie", "pixie", "basilisk", "rakshasa", "djinn", "grimmalkin", "faun", "naiad", "nymph", "talking rat", "monkey", "centaur", "rukh", "giant", "troll", "medusa", "drake", "wyvern", "dragonlet", "sphinx",
)
)
(set: _racePlural to
(ds: "kobolds", "goblins", "gryphons", "banshees", "unicorns", "fae", "pixies", "basilisks", "rakshasa", "djinn", "grimmalkins", "fauns", "naiads", "nymphs", "talking rats", "monkeys", "centaurs", "rukh", "giants", "trolls", "medusae", "drakes", "wyverns", "dragonlets", "sphinxes",
)
)
(set: _raceChoice to (shuffled: ..._raceSingular))
(set: _groupsPlural to
(ds: "a pair of", "a group of", "several", "a bunch of", "a trio of", "some",
)
)
(set: _wholePlural to
(ds:
"a (print:_raceChoice's 1st) and a (print:_raceChoice's 2nd)",
"(either: ..._groupsPlural) (either: ..._racePlural)",
"(either: ..._groupsPlural) (either: ..._raceSingular) children",
"(either: ..._groupsPlural) (either: ..._raceSingular) elders",
)
)
<!-- NOT USED - figure out how to implement this -->
(set: _raceSingularPronoun to
(ds: "She", "He",
)
)
<!-- ...VERBing... -->
(set: _WALKingSingular to
(ds: " walking", " ambling", " jogging", " striding", " briskly walking", "",
)
)
(set: _WALKingPlural to
(ds: " walking together", " ambling together", " jogging together", " striding together", " briskly walking together", "",
)
)
(set: _PUSHing to
(ds: "pulling", "pushing", "dragging",
)
)
(set: _CARRYing to
(ds: "carrying", "loaded down with", "bearing", "holding",
)
)
<!-- ...these items... -->
(set: _itemWheeled to
(ds: "cart", "wheelbarrow", "buggy", "hand-cart", "trolley", "rickshaw",)
)
(set: _itemCarry to
(ds: "a basket", "a pallet", "a package", "a sack", "an armful", "a box", "a pack",)
)
(set: _itemThings to
(ds: "books", "foodstuffs", "clothing", "chickens", "ducklings", "mysterious bottles", "fragrant foods", "apothecary items",)
)
(set: _itemThingsBig to
(ds: "amphorae of wine", "old rags", "junk", "chattering children", "rambunctious fae", "bolts of cloth", "crates", "an aquarium filled with water and curious sea-creatures")
)
<!--- PART 1. Final sentence. --->
(set: _PartOneSentence to
(ds:
"(either: ..._startPlural) a (print:_raceChoice's 1st) and a (print:_raceChoice's 2nd) (either: ..._PUSHing) a (either: ..._itemWheeled) containing (either: ..._itemThings, ..._itemThingsBig).",
"(either: ..._startPlural) (either: ..._wholePlural)(either: ..._WALKingPlural, ..._WALKingSingular).",
"(either: ..._startSingular) a (either: ..._raceSingular) (either: ..._PUSHing) a (either: ..._itemWheeled) filled with (either: ..._itemThings, ..._itemThingsBig).",
"(either: ..._startSingular) a (either: ..._raceSingular) (either: ..._CARRYing) (either: ..._itemCarry) of (either: ..._itemThings).",
"(either: ..._startSingular) a (either: ..._raceSingular)(either: ..._WALKingSingular).",
)
)
<!-- PART 2. Stopping response. -->
<!-- They stop... -->
(set: _stoppingSingular to
(ds: "pauses in stride", "slows down", "slows", "clatters to a halt", "slows to an amble", "eases their jog", "skids to a stop", "turns",)
)
(set: _stoppingPlural to
(ds: "pause in stride", "slow down", "slow", "clatter to a halt", "slow to an amble", "ease their jog", "skid to a stop", "turn",)
)
<!--- ...to listen... --->
(set: _listen to
(ds: "size up", "hear", "consider", "contemplate", "listen to", "ponder",)
)
<!--- How you're speaking... -->
(set: _request to
(ds: "request", "question", "oblique hint", "brazen demand", "enquiry", "polite enquiry", "sidelong hint",)
)
<!-- PART 3. Outcome of how they respond. -->
(set: _passerbyInfo to
(dm:
0,"They shake their head, ",
1,"They drop a hint, ",
2,"They speak softly, ",
)
)
(set: _passerbySusp to
(dm:
0,"barely acknowledging you.",
1,"eyes darting about.",
2,"leaning close.",
)
)
(set: _RollInfo to (either:...(datanames: _passerbyInfo)))
(set: _RollSusp to (either:...(datanames: _passerbySusp)))
<!-- END VARIABLES -->
}\
\(if: (_RollInfo is 0 and _RollSusp is 1) or (_RollInfo is 2 and _RollSusp is 0))[A (either:"patrol of human Constables walks","golem Constable strides","golem Constable with its human handler pass") by. The law is currently out in force. Best to not speak to anyone until they leave.
]\
\(else:)[(either: ..._PartOneSentence) They (either: ..._stoppingPlural) to (either: ..._listen) your (either: ..._request) about finding hot sauce.
(if: _RollInfo is 0 and _RollSusp is 2)[(set: _suspicionChange to _RollSusp)But before they can speak, (text-style: "bold")[a golem Constable appears!] It glowers at you and raises a huge, inhuman hand to move you on. The law has noticed you. Best to lie low for a while.
$suspShow
]\
\(else:)[(set: _informationChange to _RollInfo, _suspicionChange to _RollSusp)(print: _RollInfo of _passerbyInfo)(print: _RollSusp of _passerbySusp)
$infoShow
$suspShow
]]Research the FAIL ending - any better reason for illegal hot sauce?
Work on eavesdropping.
How to do transition: on a enchant: background (see disp.Flight page)
How to remove a value from an array when you don't know its position. (Shopkeeper pages - I want to remove a choice from the shortlisted array when the player has used it. How to find the value in the array and then remove it without knowing its position?){
(if: $informationValue >= 0)[(set: $informationValue to it + _informationChange)]
}\
\(if: _informationChange is 0)[$printInfoGrey[(print:_informationChange of $informationChangeDesc)]]\
\(else:)[$printInfoColour[(print: _informationChange of $informationChangeDesc)]]{
(if: $suspicionValue >= 0)[(set: $suspicionValue to it + _suspicionChange)]
}\
\(if: _suspicionChange is 0)[$printSuspGrey[(print:_suspicionChange of $suspicionChangeDesc)]]\
\(else:)[$printSuspColour[(print: _suspicionChange of $suspicionChangeDesc)]]$passersBy
[[4a.plaza.passerby<-Ask another passerby]], or [[2b.plaza.main<-do something else in the Plaza.]]
(link: "//How fares your quest?//")[$statsShow]{<!-- not used - try streamlining code later? -->
(set: _Shopkeepers to (dm:
1, "[[5a.clothier<-the clothier]]",
2, "[[5b.apothecary<-the apothecarist]]",
3, "[[5c.bladesmith<-the bladesmiths]]",
4, "[[5d.troubadour<-the troubadours]]",
5, "[[5e.grocer<-the grocer]]",
)
)
}\
\Various shopkeepers and stalls are located around the perimeter of the Plaza Nueva. Customers and passersby throng around and browse the wares. Some shops here look like they could aid your quest.
(if: $visited's ShopkeepVisit is 0)[//There are no Constables patrolling near you. // Who will you talk to?](else-if: $visited's ShopkeepVisit is 1)[(text-colour: red)[//A Constable is watching you. You can probably talk to one more person before you attract too much attention.//] Who will you talk to?](else:)[(text-colour: red)[//There are too many Constables here to risk further enquiries. Best to go off and do something else.//]]
{<!-- 5a. Clothier -->
(if: not ($ShopPick contains 1))[$printSuspGrey[The clothier's stall is not here today.]]
(else-if: $ShopPick contains 1 and not ((history:) contains "5a.clothier") and $visited's ShopkeepVisit < 2)[[[The clothier's stall billows with colourful wares.->5a.clothier]]]
(else:)[The clothier is preoccupied with a customer.]
}
{<!-- 5b. Apothecary -->
(if: not ($ShopPick contains 2))[$printSuspGrey[The narrow alley is deserted.]]
(else-if: $ShopPick contains 2 and not ((history:) contains "5b.apothecary") and $visited's ShopkeepVisit < 2)[[[A green apothecary banner flutters at the mouth of an alley.->5b.apothecary]]]
(else:)[The apothecary is shuttered closed.]
}
{<!-- 5c. Smith -->
(if: not ($ShopPick contains 3))[$printSuspGrey[The smithy's furnace is cold today.]]
(else-if: $ShopPick contains 3 and not ((history:) contains "5c.bladesmith") and $visited's ShopkeepVisit < 2)[[[The sound of hammering comes from the blacksmith's corner.->5c.bladesmith]]]
(else:)[The smiths have gone off on a break.]
}
{<!-- 5d. Troubadour -->
(if: not ($ShopPick contains 4))[$printSuspGrey[Several street performers wander the plaza under the Constables' eye.]]
(else-if: $ShopPick contains 4 and not ((history:) contains "5d.troubadour") and $visited's ShopkeepVisit < 2)[[[A couple of troubadours are setting up under a tree.->5d.troubadour]]]
(else:)[The troubadours are busy playing for an audience.]
}
{<!-- 5e. Grocer -->
(if: not ($ShopPick contains 5))[$printSuspGrey[The grocer's is literally buzzing with activity. It looks too busy to make discreet enquiries.]]
(else-if: $ShopPick contains 5 and not ((history:) contains "5e.grocer") and $visited's ShopkeepVisit < 2)[[[Fragrant aromas waft from the grocer's shop.->5e.grocer]]]
(else:)[The grocer is hissing at a customer. Not a good time to approach him.]
}
You're done with the shops around the Plaza. [[2b.plaza.main<-Try something else.]]
(link: "//How fares your quest?//")[$statsShow](enchant: ?Page, (background:(rgb: 0,0,128))){
(set: $visited's ShopkeepVisit to it + 1)
(set: _shopSuspicion to (either:0,1), _suspicionChange to _shopSuspicion)
(set: _shopInformation to (either:1,2), _informationChange to _shopInformation)
(if: _shopSuspicion is 0)[(replace: ?Susp1st)[and her face softens. "Very well. ](replace: ?Susp2nd)[The elf puts on her smile again as you thank her. ]]
(else-if: _shopSuspicion is 1)[(replace: ?Susp1st)[but her frown only deepens. "Oh, fine. ](replace: ?Susp2nd)[The elf's face remains closed as you thank her. ]]
(if: _shopInformation is 1)[(replace: ?Info1st)[This is all I know, okay?"]]
(else-if: _shopInformation is 2)[(replace: ?Info1st)[I know a person. Listen carefully..."]]
(if: $visited's ShopkeepVisit is 1)[(replace: ?Talkto)["You better not loiter too much, yes?" Her glance slides toward a Constable walking past.]]
(else-if: $visited's ShopkeepVisit is 2)[(replace: ?Talkto)["Now get out of here before the golems take more notice of you." Indeed, a Constable is watching you. Better lie low for a bit.]]
}\
\The clothier's stall stands out brightly in the Plaza Nueva. Stands and tables sprawl around the booth, displaying clothing for all races: from tiny, delicate garments for the fae people, to enormous coats for giantfolk, and even tabards and sashes suitable for dragons.
The elf is a shadow amidst the abundance of colour. Her dark face breaks into a smile at your approach, but just as quickly disappears when she hears what you're after.
She says, "Why do you ask me? I sell clothes, not food!" You put on your most humble expression, |Susp1st>[] |Info1st>[]
$infoShow
$suspShow
|Susp2nd>[] |Talkto>[]
[[4c.plaza.shopkeeper<-Take your leave.]] {
(set: $visited's ShopkeepVisit to it + 1,)
(set: _shopSuspicion to (either:0,1), _suspicionChange to _shopSuspicion)
(set: _shopInformation to (either:1,2), _informationChange to _shopInformation)
(if: _shopInformation is 1)[(replace: ?Info1st)["You're taking risks, you know that? But I don't like humans anymore than you. So pay attention."]]
(else-if: _shopInformation is 2)[(replace: ?Info1st)[But after favouring you with a withering gaze, the apothecarist grins and drops her voice. "I like your cheek. Just like me when I was younger. Anyone who defies the humans is doing something right."]]
(if: _shopSuspicion is 0)[(replace: ?Susp1st)[Her eyes twinkle and she leans closer toward you. Her snakes hiss their secrets softly.](replace: ?Susp2nd)["I never said anything to you. ]]
(else-if: _shopSuspicion is 1)[(replace: ?Susp1st)[She murmurs at your face. Her snakes sway silently.](replace: ?Susp2nd)["Show the humans that we non-humans can't be held down. ]]
(if: $visited's ShopkeepVisit is 1)[(replace: ?Talkto)[You're blocking the whole alley, and my customers can't get past you."]]
(else-if: $visited's ShopkeepVisit is 2)[(replace: ?Talkto)[A patrol will be coming this way soon. They're always punctual."]]
}\
\The apothecarist is in a small alley barely wide enough for your head and shoulders to fit through. The storefront is practically a hole in the wall, covered over with a blind and a bell.
You ring the bell. The blind parts almost immediately, and an elderly medusa peers out at you. "A dragon!" she exclaims. "You firebreathers are always in ridiculous health. You can't be after my medicines. What do you really need?"
She listens to your explanation, a sneer on her face. "On $hotsauce[an illegal quest], eh? Such audacity!" Her head of snakes arch and rear with contempt. |Info1st>[]
|Susp1st>[]
$infoShow
$suspShow
The apothecarist waves you off. |Susp2nd>[] Now get out of here. |Talkto>[]
She snaps down the blind, leaving you to [[4c.plaza.shopkeeper<-back out of the alley.]]{
(set: $visited's ShopkeepVisit to it + 1,)
(set: _shopSuspicion to (either:0,1), _suspicionChange to _shopSuspicion)
(set: _shopInformation to (either:1,2), _informationChange to _shopInformation)
(if: _shopInformation is 1)[(replace: ?Info1st)["Of course they are," the first rat shoots back. "But **I** am not, oh no!"]]
(else-if: _shopInformation is 2)[(replace: ?Info1st)["They're not my family!" the first rat shoots back. "They're //third cousins!//"]]
(if: _shopSuspicion is 0)[(replace: ?Susp1st)[The centaur sighs, and pumps the bellows until the furnace is roaring. Under the crackle of flames, you listen carefully to the rats.]]
(else-if: _shopSuspicion is 1)[(replace: ?Susp1st)[The centaur rolls his eyes. You get the feeling he's heard this many times. You hope he's trustworthy.]]
(if: $visited's ShopkeepVisit is 1)[(replace: ?Talkto)[Hopefully it won't attract too much attention.]]
(else-if: $visited's ShopkeepVisit is 2)[(replace: ?Talkto)[They really are attracting attention.]]
}\
\"Ho, dragon!" a chorus of voices greet you at the blade-and-metalwork stand. The six talking rats pause in their smithing, turning their heads as one to watch. The centaur armourer looks up from where he is operating the bellows at the furnace.
The smallest rat scurries over to hear your request. She hisses and ruffles her fur. "We don't know anything about that," she practically interrupts. "We're authorized to operate here. All our paperwork is in order."
The other rats titter. "As if!" one of them jeers. "We know your family. They're swarming all over the undeground!"
|Info1st>[] And the rats fall to squabbling about who is related to who else in that mysterious rodent empire controlling Granada's smuggling operations.
|Susp1st>[]
$infoShow
$suspShow
You've learnt enough here. The rats are still arguing [[4c.plaza.shopkeeper<-when you leave.]] |Talkto>[]{
(set: $visited's ShopkeepVisit to it + 1,)
(set: _shopSuspicion to (either:0,1), _suspicionChange to _shopSuspicion)
(set: _shopInformation to (either:1,2), _informationChange to _shopInformation)
(if: _shopSuspicion is 0)[(replace: ?Susp1st)["Sure we can. But we're performers, we notice all kinds of things that others don't." He lowers his voice. "Especially not those golem Constables: they have no imagination!"]]
(else-if: _shopSuspicion is 1)[(replace: ?Susp1st)["Indeed, you need to be more careful, dragon. Your guilty intention is written all over your face."]]
(if: _shopInformation is 1)[(replace: ?Info1st)[You think you can hear hints of clues, but most of it was lost on you.]]
(else-if: _shopInformation is 2)[(replace: ?Info1st)[Hmm, there are obvious allusions about forbidden activities in their story. Didn't the dwarf girl wink at you?]]
(if: $visited's ShopkeepVisit is 1)[(replace: ?Talkto)[. Time to ]]
(else-if: $visited's ShopkeepVisit is 2)[(replace: ?Talkto)[, and you spy a Constable watching from a distance. Best to ]]
}\
\A pair of dwarf troubadours have set up their base beneath a tree in the Plaza Nueva, and are tuning up their instruments.
The young woman stops tapping on her bodhran and nods as you bow your head. "Oh, we've a good idea of what you're after," she says before you can even speak. "Don't we?" She glances at her companion.
The young man shrugs as he sets up his accordion and pipes. |Susp1st>[] He tuts, and blows a quick scale on his pipes.
$suspShow
The girl grins widely and winks. "Why not stay for a song?"
You do, and the dwarf pair play and sing a stirring, heroic cycle about the dashing heroes and romantic figures of Granada's yore, before the humans and their golem warriors invaded the land. |Info1st>[]
$infoShow
An audience is gathering|Talkto>[] [[4c.plaza.shopkeeper<-return to the Plaza.]]{
(set: $visited's ShopkeepVisit to it + 1,)
(set: _shopSuspicion to (either:0,1), _suspicionChange to _shopSuspicion)
(set: _shopInformation to (either:1,2), _informationChange to _shopInformation)
(if: _shopSuspicion is 0)[(replace: ?Susp1st)[The grimmalkin gives you a feline grin. "I'm sorry, you'll get nothing from me. ]]
(else-if: _shopSuspicion is 1)[(replace: ?Susp1st)[The grimmalkin bares his teeth in another yawn. "Don't even think of mentioning hot sauce here. ]]
(if: _shopInformation is 1)[(replace: ?Info1st)[It glances at you and squeaks, ]]
(else-if: _shopInformation is 2)[(replace: ?Info1st)[It looks at you and chitters loudly, doing some sort of odd hirpling dance, ](replace: ?Info2nd)[Ah, that's what the weird dance meant...]]
(if: $visited's ShopkeepVisit is 1)[(replace: ?Talkto)[Several more customers arrive. Time to go.]](else-if: $visited's ShopkeepVisit is 2)[(replace: ?Talkto)[A Constable is watching you from a distance. You'd better leave.]]
}\
\You smell the spices long before you arrive at the grocer selling dry goods and fruit. None of this produce interests a dragon, but if anyone would know where to find hot sauce, it's the grocer!
There are other customers in the shop, served by a veritable army of pixies and fae. The giant grimmalkin proprietor pads out to meet you at the entrance. A little tan monkey was riding on his back: it drops to the ground at your feet, blinks its large black eyes at you, then starts playing in the dirt.
The cat throws back his head and laughs at your request. "Of course I sell hot sauce. But you will not taste a drop of it, friend dragon! I keep a list of the humans' law and regulations on my shop wall. All the fae I employ know it by heart. And if they don't..." He yawns, showing little white fangs in a pink mouth. "...My enforcer here will make sure of it."
The tan monkey looks up at you again. Those large black eyes now seem more sinister.
$suspShow
|Susp1st>[] Good day, friend dragon." He stalks back to his store, tail waving.
The monkey looks up from where it was doodling in the dust. |Info1st>[] before racing after the grimmalkin.
Hello, what did it doodle in the dust? Some sort of secret? |Info2nd>[]
$infoShow
|Talkto>[] [[4c.plaza.shopkeeper<-Return to the Plaza.]]{
<! -- Ending: failed -->
(if: $suspicionValue >= 5 and $ending's fail is 0)[(set: $ending's fail to 1)(go-to: "END.fail")]
<!-- Ending: good achievement -->
(if: $suspicionValue < 5 and $informationValue >= 13 and $ending's good is 0)[(set: $ending's good to 1)(go-to: "END.good")]
<!-- Ending: okay achievement -->
(if: $suspicionValue < 5 and $informationValue >= 10 and $ending's okay is 0)[(set: $ending's okay to 1)(go-to: "END.choice")]
}(text-colour: purple)[Your hard work putting clues together has paid off.] You have identified a provider of hot sauce inside Granada, who'd be prepared to serve you.
The problem is, they may only serve you once. You'd enjoy a tasty meal today, but what if you want more in future? And it is terribly risky to be eating hot sauce under the Constabulary's nose.
(link-reveal: "On the other hand...")[ If it's $hotsauce[illegal to serve hot sauce to a dragon in Granada]... what about (link-reveal:"//outside// Granada?")[(show: ?para)]]
|para)[The humans rule the surrounding Iberian peninsula, but it'll certainly be easier to find an eating-house outside the city who will take you as an ongoing customer. Even if it means lugging your steaks all the way out of Granada whenever you want to enjoy them with hot sauce.
You could continue your quest for a better source of hot sauce. But you still risk drawing the Constabulary's attention.
(link: "So what will you do?")[[[Conclude your quest and get hot sauce in Granada?->END.okay]]
Or [[END.choice.keeplooking<-continue looking for clues?]]]
](set: $ending's good to 2)$hotsauce[At last, you have found a place that will serve hot sauce (link-reveal: "outside the city!")[(show: ?para1)]]
|para1)[You take off, and Granada drops away beneath you. After stopping at your penthouse to gather up your steak (not so freshly-procured now), you make for the city outskirts. Your eagerness lends energy to your wings and soon the city is far behind as you wing over the landscape of the Iberia.
Soon, you reach the location you've identified from the clues. It is sufficiently remote and secluded to not be closely monitored by the human occupiers. Here, away from the scrutiny of the law, everyone is more relaxed, non-humans chatting and laughing freely with each other and even a few humans. You find yourself (link-reveal:"relaxing for the first time")[(show: ?para2)] in ages.]
|para2)[A few words with the main contact at this place, and your steak is taken away to be marinaded. Your contact grins at you. "You've found the best place for hot sauce, dragon! It's hard to find the old recipes nowadays, especially since the knowledge of its brewing was lost when your kind were defeated by the invaders. We're glad to have another dragon with us. Just stay discreet and don't share this location with anyone who can't appreciate the flavours of these marinades, aye?"
In no time you're digging into your grilled steak, slathered with (link-reveal:"delicious, delicious hot sauce.")[(show: ?para3)]]
|para3)[Even if you can't manage to fly out this way with your steaks all the time, just knowing a place where it is (link-reveal: "//not// illegal to serve hot sauce to a dragon")[(show:?end)] warms your soul.]
|end)[
=><=
### .:: [[THE END]] ::.
](set: $ending's okay to 2)Aha! (text-colour: purple)[You have put all your clues together and know just where find hot sauce within Granada!]
You visit the supplier and make discreet enquiries. Not surprisingly, they will provide hot sauce once but refuse to be seen serving you, so you'll have to marinade your steak yourself.
You are compelled to wait until dusk, when the air traffic above city is at its heaviest, before you gather up a crate of tinkling bottles and (link-reveal:"fly swiftly to your penthouse")[(show: ?para1)], hoping that the Constables haven't noticed.
|para1)[Food preparation is always hard for one who has huge claws instead of hands, but you manage to not spill too much of the precious marinade (nor make your downstairs neighbours too suspicious), and soon you are enjoying your grilled steak slathered with (link-reveal:"delicious, delicious hot sauce.")[(show: ?para2)]]
|para2)[A satisfying dinner. And all under the nose of the Constabulary. But next time you get a craving, you'll have to search all over again for someone who will (link-reveal: "serve hot sauce to a dragon in Granada.")[(show: ?end)]]
|end)[
=><=
### .:: [[THE END]] ::.
]You decide to risk the Constables' notice and keep searching for clues.
If you change your mind, and still know enough information, you can always //reconsider your quest// and choose to find the supplier inside Granada city.
Now, where were you? [[2b.plaza.main<-The Plaza Nueva]] or [[2a.square.main<-the courtyard outside your home]]?
#### $hotsauce[**You have reached the (if: $ending's okay is 2)[DECENT](else-if: $ending's good is 2)[IDEAL](else-if: $ending's fail is 2)[UNSUCCESSFUL] ENDING in this story!**]
#### There are three endings to discover. (link: "Play again?")[(reload:)]
This game was made by (link-reveal: "Vega")[(open-url:"http://hierofalco.net")] and published Sep, 2018. //Inspired by a writing prompt on Terribleminds.com.//
This is my first Twine game. If you played and enjoyed it, please visit my website (link-reveal: "HIEROFALCO.Net")[(open-url:"http://hierofalco.net")] and send me a note or feedback - I'd love to hear from you.
**Thank you for playing!**