[WIP] Life in the Frontier OXP

Discussion and information relevant to creating special missions, new ships, skins etc.

Moderators: winston, another_commander

User avatar
Cody
Sharp Shooter Spam Assassin
Sharp Shooter Spam Assassin
Posts: 16081
Joined: Sat Jul 04, 2009 9:31 pm
Location: The Lizard's Claw
Contact:

Re: [WIP] Life in the Frontier OXP

Post by Cody »

limbo wrote: Thu Dec 01, 2022 10:29 am
has anyone here read The Gap Cycle" by Stephen Donaldson?
Yep! Just don't mention his Thomas Covenant novels!
I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
limbo
Competent
Competent
Posts: 38
Joined: Mon Feb 08, 2016 11:13 am

Re: [WIP] Life in the Frontier OXP

Post by limbo »

lol. gottit.
his gap cycle is how i imagine space would be. grotty sleazy life being cheap. making weimar berlin look like a teddy bear's marshmallow picnic.
traders and miners and such would need to wsar EVA to get inside. high cost of personal storage at a station would necessitate having to wear the suit inside. probably be areas where the owners of the station wouldnt oxygenate.
only the very very wealthy would have any form of... niceties.
User avatar
Cholmondely
Archivist
Archivist
Posts: 5345
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: [WIP] Life in the Frontier OXP

Post by Cholmondely »

Rock Hermits

Previous detailed RH post
limbo wrote: Thu Dec 01, 2022 11:41 am
lol. gottit.
his gap cycle is how i imagine space would be. grotty sleazy life being cheap. making weimar berlin look like a teddy bear's marshmallow picnic.
traders and miners and such would need to wear EVA to get inside. high cost of personal storage at a station would necessitate having to wear the suit inside. probably be areas where the owners of the station wouldn't oxygenate.
only the very very wealthy would have any form of... niceties.
Very good point!

I'd never thought of that.

So maybe four grades of RH:
a) Nothing. Just a physical location for rendezvous. Eg, for miner RH's, a worked-out asteroid in the asteroid field where the trader meets the miners, buys their minerals and sells them food and drink. He's trying to avoid the pirates in his peregrinations. This would presumably be an impractical model for the smugglers and the pirate coves who would need a permanently staffed base.
b) Dirt Poor with no oxygenated sections at all, but permanently staffed. These poorest hermit-owners would probably live in their ships while moored at the hermit, using it merely as a location for business and for storage.
c) Poor with an oxygenated bar and living quarters for the residents only.
d) Wealthy - totally oxygenated (the vanilla-game Oolite RH).

So the fancy-shmancy docking port would not exist either, except for the (d) more expensive oxygenated models.

I have a feeling in my waters that this would require a heck of a lot of programming (not my forté). The official "oolite docking procedure" probably necessitates a dock such as we have for the orbital stations, external docking not being an option (yet). And the official "oolite docking procedure" is presumably needed to change over the F1-F4 screens from Viewscreens to Launch/Save game/Ship's Chandlery/Ship-Station interfaces.

The official "oolite docking procedure" might also be tied in with programming restrictions regarding saving one's game.

So, just following this thread of thought a tad further, for the three main flavours of Rock Hermit in Oolite,
•Pirate Coves would almost never have (d) totally oxygenated RH's unless they were presumed secure from GalCop attack (GalCop rarely straying beyond the orbital station, and even then not beyond the Witchpoint-Station space lane due to lack of dosh from the Anarchies for doing so). So in anarchies with a better organised GalCop (where they would try and identify such Pirate Coves and raid them, if strong enough), they might not exist (too much investment for a probably short-lived pirate cove), in other anarchies where GalCop was more laid back, they might flourish.
•Smugglers might well have (d) totally oxygenated premises as they might well be in cahoots with the pirates, and would not expect attention from GalCop.
•Miners would not bother investing even for the (c) poor RH's as pirate raids would render such a waste.

This would of course all change with enhanced GalCop presence, and increased wealth.

And there are of course the various RH-derived stations, the Free Trade Zone, the Imperial AstroFactory, the mining outpost, etc.

EVA activity could be performed using some version of Astronaut.oxp - but, Catch 22, at the moment one needs to dock first before "changing ship" into a spacesuit.

Image
Image
Image

Edited to include link to previous RH post
Last edited by Cholmondely on Tue Dec 06, 2022 10:00 am, edited 1 time in total.
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
Cholmondely
Archivist
Archivist
Posts: 5345
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: [WIP] Life in the Frontier OXP

Post by Cholmondely »

Third Post on Pubs/Bars.

There are several ways to differentiate these:
•by decor (eg the Imprint Bar, the Vacuum Bar, Gasparyan's Grill - all from first post, Mark Addy from second post)
•antique collections (see second post)
•by clientele - locals, felines, CGC fanatics, pirates, commies, etc.
•by type of drink - cocktails, beer, coffee, whisky, etc.
Of course, the locals might go to the whisky-specialist with a collection of antique Zaoncese hunting crossbows, while the pirates patronise the Mark Addy style bar overlooking the station's docking bays which serves micro-brewed beers and boasts a collection of Zaalelan goat horns mounted above the bar.

If the station docking bays are not oxygenated, but operate in the vacuum of space, then a Vacuum Bar could well be sited inside in an inconspicuous corner.

First Post
Second Post

Descriptions.
By collection:
•Space-ship nameplates, or seatbelts/harnesses, or HOTAS's, or toilet seats, or bobble-heads, etc.
•CGC paraphenalia - Blessed Barque, Pylon of Purity, Holy Sceptre of Sacerdotal Serenity, Wheel of Destiny/Fortune, Knucklebones of Negation
•Sporting gubbins: Mud-hockey sticks, Tibecean Snow Balls (frozen), Zero-G Rugby Helmets and knee-pads - especially lobstoid versions! (see Sports)
•Zaoncese hunting crossbows, Digebitian dueling pistols,
•Potted trumbles, bits of Thargons - or of Thargoids, mountain seoids, Zaatxeian deadly Ouenbeoid, Riinusian tree grub, killer mountain Esbionoids, Atrabiinian killer edible Nuatoids, killer edible arts graduates, Geregeian spotted wolf, Geisgezaian mountain slug, Esustiian spotted cat, killer mountain Reetaboids, Leonedian tree snakes, Vetiticean or Tiquatic Parking Meters, Orsonian food blenders, Anlereian spotted shrew, holostims of Ouzan tulips or of Aanbiatian Alinet bananas, Bemaeraian deadly Noseoids/evil Noseoids, Bierleian deadly Diusoid, Atrebibiian deadly monkey, Maxeedsoian tree wolf, Tiinlebiian mountain slug

By clientele:
•In-system Locals
•By species
•By other system (neighbouring)
•By occupation: pirate, trader, GalCop, dockworker, station admin, ship's chandler/ship salesman, engineer, shopworker, diplomat, billionaire, etc.
•By religion
•Sports fanatics
•Politics fanatics (commies, feudals, anarchists, etc)
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
Cody
Sharp Shooter Spam Assassin
Sharp Shooter Spam Assassin
Posts: 16081
Joined: Sat Jul 04, 2009 9:31 pm
Location: The Lizard's Claw
Contact:

Re: [WIP] Life in the Frontier OXP

Post by Cody »

Cholmondely wrote: Sun Dec 04, 2022 11:31 pm
... then a Vacuum Bar could well be sited inside in an inconspicuous corner.
I think the aforementioned Vacuum Bar is actually outside the station:
We glide up out the airlock, into the domed cage of the vacuum bar. The station’s hull spreads out, silver in the starlight, turning slow beneath our feet. The planet and the system’s sun are out of sight, hidden down below the station’s bulk. All I can see are stars, stars, stars, and us just hanging here among them.
I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
User avatar
Cholmondely
Archivist
Archivist
Posts: 5345
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: [WIP] Life in the Frontier OXP

Post by Cholmondely »

Fourth Post on Pubs/Bars.

There should be various formulae. Here is one possible such (not quite finished).

1) The

<bar/pub/saloon/tavern/taproom/lounge/barroom/taproom/alehouse>

is

<bursting/full/half-full/half-empty/almost empty>

with

local <"planet name"s/humans/humanoids/felines/cats/tigers/rodents/rats/batrachians/frogs/lizards/avians/birds/feathered people>.

<Not always present: The <room/bar/lounge> <is full of/contains a collection of/has a selection of/has a wall-case containing>
<choices from Third Post collection?>

Choice: Take a seat at a table? <not always present: BB's rowdy table choice> Leave? Go to the bar?

Take a seat at a table:
1) After waiting a couple of minutes, you realise that there seems to be no table service.
Choice: Carry on sitting? Leave? Go to the bar?

2) Almost immediately a waiter approaches and asks you what you wish to drink.
Choice of drinks with prices -
Choice: Drink Up? -> BB's boozy coding/Leave?/Go to the bar?
3) After a few minutes, a waiter approaches and asks you what you wish to drink.
Choice of drinks with prices -
Choice: Drink Up? -> BB's boozy coding/Leave?/Go to the bar?
4) After <a few minutes/a while/a bit/several minutes>, you are still waiting - the <"waiter seems"/"waiters seem"> to be busy
Choice: Carry on sitting? Leave? Go to the bar?
5) After a few more minutes, a waiter approaches and asks you what you wish to drink.
Choice of drinks with prices -
Choice: Drink Up? -> BB's boozy coding/Leave?/Go to the bar?
6) After a few more minutes, you realise that the <waiter seems/waiters seem> to be avoiding you
Choice: Carry on sitting? Leave? Go to the bar?
etc.

Go to the bar:
1) Almost immediately <a/the> bartender approaches and asks you what you wish to drink.
Choice of drinks with prices -
Choice: Drink Up? -> BB's boozy coding/BB's choices/Leave?/Take a drink and move to a table?
2) After a while <a/the> bartender approaches and asks you what you wish to drink.
Choice of drinks with prices -
Choice: Drink Up? -> BB's boozy coding/BB's choices/Leave?/Take a drink and move to a table?
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
Cholmondely
Archivist
Archivist
Posts: 5345
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: [WIP] Life in the Frontier OXP

Post by Cholmondely »

Stations in Communist systems

So the station is paid for by Galcop with the Communist system providing some dosh towards it - and trying to control what goes on inside it.

With commies.oxp loaded, they also have their own stations (if rich enough) and police force/navy: both police and thought-police! There are escaping convicts from the Astrogulags. Commissars whizzing around in limousines. Worker's commuters packed full of hordes of a bedizened proletariat off to perform Stakhanovian feats in the factories and orbital stations.

References: Ships that pass in the night; Commies


Commie LitF Note: This post is currently a WIP

Docking Process
•Docking: met by a People's Policeperson who escorts pilot to the Registration Office where there may well be a long queue of others.
(Ships_tpit_night's yellow line demarking GalCop territory? - only in richer systems where Commies have more power and can restrict GalCop a bit? Ships_tpit_night's' Aqutebi has TL12)
•Registration: filling in many forms in quintuplicate: mistakes lead to problems...
•Then free to roam - but People's Policepersons (and Thought Police in mufti) all over the place keeping tabs on what goes on. Occasional GalCop arbiters who can intervene if the commies step over the line. How about Policepersons outside all churches, for example, with GalCop arbiters turning up if there is a service going on? Or see a conversation taking place in a hallway- and then suddenly the Policepersons turn up and drag all but one (the Thought Police stoogie) away, screaming and kicking? Or see a group of 1-12 Policepersons exit a side corridor with 1-6 handcuffed citizens, moving towards the lifts?

Peoples Palace
•Govt Offices are called the "Peoples' Palace" (BB's idea) and are up on the top floor with the GalCop suite where he placed them (showing that they are "in charge"). The local commissar travels with an entourage for protection and increased efficiency.
Possible encounter with entourage who push everybody out of the way - or possible sighting of them from a distance in a large hallway or some such.
•Tourist office inside (or outside for poorer systems with smaller palaces - say TL 8 or less?) the People's Palace emphasises local culture/arts. Occasionally shut for renovation:

Inines (TL13, Rich Industrial, Human Colonials) - 1:158 - a tedious display of memetic engineers and their development of the three basic personality types which inhabit the planet, keeping all true to the principles of the Ininish Peoples’ Party. The glories of Ininism and the futility of other approaches. Fascinating holostims of the interiors of the Workers' Commuters with their rejoicing and ecstatic labourers, of the contented miners happily working away at the astro-gulags, of the earnestly repentant workers in the SLAPU's, etc., etc.. There is also a small display of the now closed-down Krait manufacturers, deLacy ShipWorks, who merged with Faulcon Manspace of Reorte many decades ago.
Cevege (TL12)
Entizadi (TL12, Average Industrial, Human Colonials) - 1:132 - display of supremely advanced Food Blenders with shots of the factories where they are churned out in profuse quantities for export. HoloStims of the designers and inventors. Statues of the designers holding their wondrous products. Esctatic proletarians hugging their food blenders or holding them up for everyone to see... etc., etc., ad nauseam.
Onlema (T12)
Inonri (TL11, Average Industrial, Human Colonials) - 1:139 - display of Inonrian wolves and of their 'Re-guns'. Holostims of wolves being hunted. Holostims of jubilant & ecstatic workers in the 'Re-gun' factories. Holostims of exploding volcanoes on the planet surface with a display of volcanic geography.
Relaes (TL11)
Vetitice (TL11, Rich Industrial, Human Colonials) - 1:100 - Parking meters! A stupendous display of parking meters with holostims of the factories, the inventors and the designers, and most important, the workers. Chshnabble who built 248 parking meters in just the one day. Grigashakov who designed the Veticean multi-space parking meter, and his deadly rival Babsonorisky, inventor of the Parkulator. And Vetiticeian lethal brandy in a separate room with a range of examples of intricate apparatus (cucurbits and pot stills) with a variety of different examples of the discontinuous fractional distillation apparatus from different parts of the planet.
Esusti (TL10, Average Industrial, Human Colonials) - 1:62 - A magnificent display of the Esustiian Spotted Cat (a rare form of tiger) in its various habitats with fascinating analyses of the DNA; then another hall with examples of the giant Esusti cactus which can grow as high as 100 meters (but not here). There are also holostims of the local dance, the EsTeMambo, with examples of the music and the most renowned dancers. A massive portrait of Giulio Margolista, the gold-star champion, dominates the hall. Small statuettes of Margolista dancing with a tiger around a cactus are available in the museum shop. They come in a range of materials from sintered asteroid dust to palladium.
Locals may well accost the player denouncing the evils of discos.
Riines (TL10)
Tiraor (TL10)
Beesor (TL9)
Eredve (TL9)
Quzadi (TL9, Mainly Industrial, Human Colonials) - 1:94 - Quzadiian 'Thoncedi pies' and a civil war (mainly industrial, Iron Stars region) - display of pie-making equipment!
The civil war is between Laeninists, Stoolinists, Trootskyists, Mooists & Xeists! The Stoolinists currently run the Orbital station. The player may well be approached to give a donation to one of the sides: the Quzadean People's Front (Laeninist), the Quzadean People's Popular Front (Trootskyist), the Campaign for a Free Quzadi (Mooist), and the Popular Front of Quzadi (Xeist).
Soorbi (TL9)
Qucerere (TL8, Mainly Agricultural, Human Colonials) - 1:196 - collection of biographies of commie pioneers
Sotera (TL8)
Anerbe (TL7)
Arusqudi (TL7)
Diora (TL7)
Esanbe (TL7, Mainly Agricultural, Small Blue Bug-eyed Lizards) - 1:133 - a wondrous display of the local "nutri-pills" - all different shapes, colours and sizes. Historic posters showing how they contribute to lizard health, growth and fecundity. A painting of the famous Roh'i clan showing how their health and success was only made possible by prolonged ingestion of "nutri-pills". A second hall is devoted to the famous Esanbese drink 'Ince', which is renowned not for the years of maturation, but the number of earthquakes to which it is exposed. Like a Martini - shaken, not stirred. A final hall is devoted to the local flight academy which specialises in teaching gunnery techniques.
Locals may well accost the player denouncing the evils of casinos.
Oresri (TL7, Rich Agricultural, Rodents) - 1:43 - a display of Diso distilleries, showing how the Diso liquer gains body and flavour through the process. The second hall is devoted to the heroes of the people's revolution, their suffering under the capitalist scourge and their victories in the triumphant battles in which the enemy were liquidated.
Locals may well accost the player seeking support for their side <Laeninist/Stoolinist> in the civil war beneath.
Rebia (TL7)
Ribilebi (TL7)
Xequerin (TL7, Mainly Industrial, Human Colonials) - 1:4 - a rather turgid display of the habitats and zoology of the mountain lobstoid. But the second hall is a much more fascinating collection of local modern art items - quite amazing in their riotous colours, ridiculous shapes and bizarre movements. Several extol the glories of the common human and the apotheosis of communist realism. Intriguing!
Beor (TL6, Rich Agricultural, Large Blue Slimy Rodents) - 1:107 - a display of the wood industry, showing holostims of the forests and the cheerful, smiling blue woodratoids who hew down the trees. There is a smaller hall with a display showing the variety of Soza-fleeces produced down-world. The shop sells small examples of real wood chips.
Reesdice (TL6, Rich Agricultural, Human Colonials) - 1:36 - history - a display of the industrialisation of Reesdice with the concurrent pollution and rise in the death toll. Commissar Maoski's decision to abandon industrialisation and return to an agricultural approach - and the development of the ReesAir technology for air filtration (used in modern space-suits). There is also a hall devoted to the ecology of the Reesdiceian deadly lobstoid.
Rilace (TL6, Rich Agricultural, Human Colonials) - 1:222 - cheeses! An inspired display of the profound relationship between cheesemaking and the coming communist revolution throughout the galaxy - how the aristocratic cream is broken down and mixed into the milk of the lower classes, the whole is homogenised and then produces the perfect cheese, homogenous through and through with the exception of the rind which isolates the people from the nastier vicissitudes of the outer world and maintains the whole, serving it, maintaining it, containing it. There is also a small display of how the planet was terraformed, with the acidic deserts transformed into a rich and fertile world due to the bombardment from space with ice once the planet had been warmed up. Peculiarly, there is no detail about who actually did this. There is a range of cheeses for sale in the museum shop.
Terea (TL6, Rich Agricultural, Human Colonials) - 1:37 - The first hall seems to be devoted to bread. Rye breads, soda breads, sourdough breads, et cetera. There is a fabulous display of the symbolic symbiosis between breadmaking and the ultimate victory of communism. The pulverising of the grains, the removal of harmful and parasitic elements (the chaff), the grinding of the rest into a fine homogenous powder, which is united by baking at high temperature. The result? A homogenous society whose protective (exterior) elements are hardened to protect the delicate contents from the capitalist temptations which always surround perfection. The second hall is devoted to the history of kneading apparatus, from the humble tabletop and rolling pin, through increasing wonders of mechanisation and complexity. The third hall contains a display of the Tereaian edible poet, the habitat, mating habits, nutrition and plumage. There is also a display of some of the poetic production of this rapidly diminishing species. With the introduction of the Entizadian food blenders, the population went into sharp decline, and extinction looms. The museum shop contains recipe books for the edible poets. The most expensive are written as poetry (by the poets themselves?).
Xeoner (TL6, Average Agricultural, Large Yellow Slimy Lizards) - 1:197 - cheeses! The first hall is devoted to the heroism of the cheese-makers, their devotion to duty, their peculiar folk songs and holostims of the most famous of them. A small display dedicated to the Battle of the Bulge, shows how the peoples' heroes rose up against the oppressors who tried to rule by the time-honoured tactic of separating the curds from the whey, thus dividing the people and maintaining their supremacy. Comrade Xe overthrew the capitalists in the capital, Orange Pekoe, and spent the rest of his career, spreading the glories of communism throughout the planet, fighting separatism and recidivism and ensuring the homogeneity of his perfect society. Cheeses for sale in the museum shop.
Biramabi (TL4, Average Agricultural, Human Colonials) - 1:228 - cheeses! Display of cheesemaking equipment. Cheeses for sale in the museum shop.
Laenin (TL4, Poor Agricultural, Human Colonials) - 1:101 - The first hall contains a fabulous display of TV dinners. Their production, their packaging, the glorious factories in which they are made, with their exultant workers - and the rejoicing farmers who happily toil away in the fields producing the necessary raw materials. The Laenians downplanet are shown leading lives of jubilant euphoria, living in a veritable paradise. The second hall is devoted to the famous Laenin himself after whom the planet is named. How he named himself after reading a fictional book on a fictional planet called Earth. In that book a red revolution was described - and the relevant pages are displayed on the walls. This revolution made him invent coomunism. He made an immensely popular sit-com, which is also running in a theatre to the side of the hall. People then loved it. In the ages since, his profound thinking has been spreading all over the 8 galaxies to rapturous acclaim.
Usanant (TL4, Average Agricultural, Human Colonials) - 1:30 - cheeses! Display of cows and milking equipment. Statues of the system's Stakhanovite milkers. Cheeses for sale in the museum shop.



•Station includes an Execution chamber for disposing of the regime's enemies - a glass-walled area inside a hallway/public space where the enemies are exposed to the vacuum with everybody watching.
•Station includes a People's Arena for sporting events and public addresses (rallying the workers). Cordoned off when not in use.
•Fewer restaurants/pubs for the locals as they are mostly fed in work canteens - which also stops them mixing so much with foreigners.
•Screens in public places blaring out agitprop. Maybe use the billboard images from the Commies oxp? And the one below?

Image

More to be filled in above •Added more on Docking Process at the top
Last edited by Cholmondely on Mon Dec 19, 2022 3:08 pm, edited 1 time in total.
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
Cholmondely
Archivist
Archivist
Posts: 5345
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: [WIP] Life in the Frontier OXP

Post by Cholmondely »

Digebiti (0:96)
Massively Locked wrote: Wed Nov 30, 2022 1:38 am
I just added your random text snippets.
Digebitian occasional additions to the people wandering around the orbital station.

In any corridor:
•You see <two/three/four/five/several> <people/men/gentlemen/human colonials/humans> walking towards you wearing top hats, cloaks and swords at their waists. They <stop and start speaking to a lady with a servant/stop and start speaking to two/three/four ladies/break into a run and pass by you/are talking animatedly about some problem with Vetitice/are arguing about what to do about Inonre/are discussing trade with Geera/are sampling snuff/are arguing about extreme dominoes/are planning an expedition to hunt a mountain seoid/are arguing about a real tennis game>.
•You see two chairmen carrying a sedan chair <turn a corner/move towards you/approach you/move towards you and then turn a corner/stop and wait. A <groan emanates/voice calls out/cry comes/shout sounds> from inside, and they start <moving/walking> again.>
•You see a couple of chairmen <walking/running> towards you <carrying/holding> a <black/blue/red/green/yellow/grey/purple> <curtained-off/empty> sedan chair with a coat of arms <on/emblazoned on/painted on> the side.
You see a <chap/man/human/gentleman/person/human colonial> wearing a <top hat/top hat/silk top hat/silk top hat/felt top hat/tricorne/bicorne> <walk/stroll/amble/wander> towards you, <peering through a monocle/reading a newspaper/sucking on his fingers/gazing all around himself/lost in daydreams/lost in thought> and then <pass by/stop and speak to a lady/stop and turn back/move to the wall and pull out a handkerchief/sneeze/cough/give some money to a beggar>.
•<Two/Three/Four> <gentlemen/men/chaps> in <top hats/toppers> are waving their <walking sticks/fingers> at each other in an <unfriendly/peculiar/frightening/antagonistic> fashion.
•<Two/Three/Four> footmen <escorting/accompanying> a sedan chair with the logo of the Church of St Giles <emblazoned/depicted/painted> on the side.
•<A lady + sometimes add: and her maid/escort-escorts/attendant-attendants/parasol-bearer> appears in the distance and walks/strolls/ambles/wanders> towards you, <moving determinately/gazing around herself/lost in daydreams/lost in thought> and then <passes by/stops and speak to a by-stander/stops and turns back/moves to the wall and pull out a handkerchief/sneezes/coughs/gives some money to a beggar>.
•<Two/Three/Four> ladies + sometimes add: and their maids/escorts/attendants/parasol-bearers> appear in the distance and walk/stroll/amble/wander> towards you, <speaking animatedly to each other/walking with intent/arguing/laughing/joking/giggling/whispering to each other>.

In a large hallway:
The above, plus:
•You see several footmen carrying a palanquin with <a couple of people on top/several people sitting on top/a number of people on top/a group on top> <drinking from champagne glasses/taking snuff/drinking tea/laughing out loud/arguing about something/speaking earnestly/joshing each other/playing a card game/holding an armillary sphere and pointing at areas on it/arguing over a book>. <Other footmen form a sort of cordon around the palanquin/nothing/The footmen are all wearing livery/The footmen wear different liveries/The footmen look quite exhausted/The footmen are moving quite rapidly/The footmen are moving slowly/The footmen stop/The footmen come to a <halt/stop>>
•A chap wearing <golden/silver/glowing/shining> robes appears in the distance, <surrounded by a coterie of others/in the centre of a group/surrounded by others/in the middle of a group> and <moves/walks/slowly moves/moves languidly> towards you. He stops and seems to be involved in <an argument/a discussion/a conversation/a joke/a debate/a laugh> with <a bystander/a passerby/one of his group/several of his group/one of his footmen/a lady/several ladies/a man/ some men>. He looks as though he might be a <senior cleric/prelate/archimandrite/bishop/senior priest/canon> of the Church of St. Giles.

Statues: In specific large hallways or the central points where they meet
•A greywacke statue on a plinth stands in the middle of the hallway. It is of a gentleman dressed in a peaked hat and carrying a sword, with some impressive-looking medallions on the jacket. A sign on the plinth declares it to be Sir Cody (Bart.) of El Viejo O.O.O.O.
•A magnificent statue of St Giles steering his Blessed Barque through the Pool of Pellucid Placidity. The barque is made of psuedo-walnut but St Giles is in greywacke. <As you gaze at the statue, you notice that the face is one of a man in deep thought./nothing/The fingers on the rudder are intricately carved/The barque is covered with algebraic glyphs./The waters of the pool are elegantly depicted.>
•There is a painting on the wall of an aristocrat outfitted in gala dress (peruke, knee-socks, tricorne, frock coat, et cetera) standing on a balcony with a mountain range behind and a lake beneath. The sign beneath indicates that it is of Prince-Elector Rupert XIX of the House of Lancaster.
•A large bronze statue of a group of men wearing pith-helmets and armed with blunderbusses confront the massive tentacle of a killer mountain seoid.
•A massive brass statue of a knight in ancient armour holding a sword. The sign at the base shows it to be of Sir Ffoliot Frederick Cary, the Right Honourable Viscount Falkland, original coloniser of Digebiti.

The Bookshop: "The Tib Street Library": hanging over the entrance is a model of a large book.
You stroll inside a shop smelling of coffee, and find a coffee-machine beside the door with a flask of coffee brewing. Inside are a set of large wooden bookcases. One is labelled "Heraldry", another three "History", another "Philosophy", with one "History of Philosophy" and another "Philosophy of History" and then History of Philosophy of History" with an additional "Philosophy of History of Philosophy", yet another "Geography", and the last four "Chivalry". The books all seem to be hardbacks, bound in leather or equivalent substances. They seem rather fine.
<Leave>
<Pour self a cup of coffee>
The bookseller comes over to you. He wears a leather apron and a pair of spectacles: "Can I help you, sir/madam? Are you looking for anything in particular? A new book arrived today <on the Philosophy of the History of Philosophy. By von Haeckel. Would you like to see it?/on the history of chivalry by Huysman. Would you like a look?/about the History of the Philosophy of History by Count Christopher of Yorque. Have you seen it?"/about Funeral Hatchments by Sir Peter Summers. Do you have any of his works?/summarising the history of the philosophy of geography - on vellum and by Professor Stanley Wasserman. Did you hear about it?>"
<Reply: Thank you for the coffee! No, I'm just browsing!>
- Answer "You are welcome!"
<Reply: Just looking, thank you!>
- Answer "You are welcome."
<Reply:Please show me the book!>
- Answer "Here you are! A mere snip at <Random #> credits!>


Sportsshop: hanging over the entrance to the shop is a large domino with "Moody Maynard's" printed on it.
<Enter>
Inside is a large table with catalogues on it, a bookcase and several large dominoes in front of the counter.
<Leave>
<Inspect the shop/Nose around/Have a look>
The catalogues display sets of massive dominoes made of a variety of materials and in a number of different styles. The bookcase contains books on the laws and tactics of Extreme Dominoes. The large dominoes seem to be smaller versions of those from the catalogues (which can be up to twice the size of a lobstoid). The price of a set of dominoes seems to range from 300₢ to 100,000₢ - the more expensive are made from imported Bemearan Walnut Wood! And they seem to take up a lot of space!
<Leave>

Real Tennis Court (Olympian Square)
The door leads to a hallway. There is a balcony on the right and steps leading down on the left. There is a table by the door as you come in and an empty tea stand in the middle of the hall. There is a display cabinet on the wall in front.
<Look at the display cabinet>
The cabinet contains a number of trophies, of tennis rackets which seem to have a "kink" in them, as well as a number of tennis balls - all of which seem to be hand-made and slightly different from each other.
<Go down the steps>
There is a locked door at the bottom of the steps. (to the offices and changing rooms).
<Go to the balcony>
The balcony overlooks a courtyard. In front is a wall with a hanging bell. To the left are pillars holding up a roof which slants back to the left wall. To the right a wall with a kink in it. There is some sort of ditch underneath the net and various lines drawn on the floor and the walls. It all looks rather peculiar.

Croquet Lawn (part of the gardens of Concourse C?)
The grass of the laws is cut very short. There are six metal hoops with a variety of coloured balls and people <standing around/talking and drinking tea/talking and drinking champagne/earnestly/desultorily/standing bored,> watching a group of four armed with mallets hit the balls into each other and knock them through the hoops. <Suddenly, the spectators start clapping./One of the players knocks a ball into another which goes through a hoop. People start clapping./One of the players hits a ball into another, sending the other to the far side of the lawn./Somebody drops a glass, which smashed on the ground.>
<Leave>

Extreme Dominoes Arena with two greywacke balconies (Olympian Square).
This is usually closed.
<Open the door and sneak in>
- You can't! It's locked!
<next activity>
or - You find a vast empty gloomy space. There seem to be balconies mounted high up on the walls. It all feels rather peculiar.
<Leave>

Church - there are three.
1) Church of St Giles
2) The "autocephalous Scottish Catholic Church". Listed as "Church" on the map.
The door has Autocephalous Scottish Catholic Church branded across the front.
<Leave>
<Open the door>
Inside is a Christian church with an altar, a crucifix, a font and a pulpit. The shrine is small and smells of some sort of incense. There is nobody here.
<Leave>
3) The "strict and particular palaeo-anabaptists". Listed as "Church" on the map.
The door has "Strict and Particular" etched into the metal.
<Leave>
<Open the door>
Inside is a Christian church with an altar, a crucifix, a very large wooden platform and a pulpit. The platform contains a large pool of water. There is nobody here.
<Leave>

Viceregal Palace (Govt offices - in Digebiti this is on the top floor besides the GalCop precinct)

<Walk towards the Viceroy's Palace>
As you approach you see several uniformed dragoons in Digebitian blue and gold standing guard on either side of a bridge over what seems to be a trench filled with water (in an orbital space station!).
<Leave>
<Walk over the "bridge">
The dragoons salute as you walk by them and over the bridge. On the far side is a large open gateway with banners on either side, bearing coats of arms.
<Leave>
<Walk through the gateway>
You enter a hallway, lit by a large metal chandelier and find a large door to your left with museum written above it. The rest of the palace is roped off.
<Leave>
<Enter the museum>
The chamber contains a large statue of a bewhiskered man with a pith helmet on his head. The badge on the base says "Sir Ffoliot Frederick Cary, Right Honourable Viscount Falkland, founder of Digebiti". To the left is an impressive display of holostims of killer mountain Seoids, with a map showing their mountain ranges and a large painting of a Seoid mountain Safari showing dozens of knights fighting a seoid with lances and lasers. To the right is a set of paintings of the sights of Digebiti: the Cathedral in Greater Walsingham, the House of Lords in Lesser Walsingham, the University of Old Salisbury and sunrise over the Dismal Desert. At the far end of the chamber is a small collection of photographs of some of the great celestial paintings of Arbuthnot of Digebiti, showing views of the heavens from Digebiti, Lave, Tibecea and Edzaon. They include his renowned Maximal Occultation of the Ordinator of Octoid Reality. Together with the display there is also a photograph of the famous Hounding of Ebortsa from the nave of the cathedral.
Image

Edited to expand the bookshop, re-edited to add system ID#
Last edited by Cholmondely on Sat Dec 17, 2022 5:58 pm, edited 2 times in total.
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
Cholmondely
Archivist
Archivist
Posts: 5345
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: [WIP] Life in the Frontier OXP

Post by Cholmondely »

Zarece (0:186)

Encounters

<A group of large black cats/Two cats/A black feline> caterwauling/singing with <several/a number of/ many/ quite a few> other cats standing around and <listening/talking to each other/joining in>. <There is another cat wandering around collecting money/There is a placard stating that it is a piece from the Romance of Qleo opera/As they stop singing, the audience starts applauding>
<Make a donation - see BB’s beggars routine>
<Walk by>


You are stopped by a large black feline with a clipboard and a badge reading “University of Murraor”. “Good-day!” <he/she> says. “Can I have a couple of minutes of your time? We are conducting a survey on attitudes to catnip. May I ask you a few short questions?”
<Yes, of course!>
<I’m sorry, but I don’t have the time>
<Not today, thank you!>


A large black cat is standing on some sort of box reading out what seems to be poetry. There are <several/a number of/ many/ quite a few> other felines standing around and <listening/talking to each other>. The poetry describes <a battle between <two/three/several> cloud cities of Zarece/the effigies of the emissaries of the cloud cities in the Hall of Heralds/the walnut tree forests of Owmrah/the light of the sun shining through the deep gases and catching the towers of sunken Krawow/the love of Princess Qleo for the Syndic of Basrir>.


A cat is standing in the middle of the corridor handing out vouchers of some sort.
<Avoid the cat!>
<Take one>
->
<It is a voucher for a discounted stay at an artisan’s room downplanet in a crafts-town/It is a voucher for free entry to the Hall of Heralds in the cloud-city of Braathnir, downplanet/It is a voucher for a half-price trip in a cloud-boat to visit the sunken city of Krawow/It is a discount voucher for a hotel in the cloud-city of Owmrah/It is a voucher for a snifter of Thristian's Dark Surprise Rum at the Tourist Office/It is a voucher for free entry to the Librarial Stacks of the University of Murraor on Braathnir>

Government Palace
Zarece is a Confederacy of the 15 Cloud Cities on the gas giant. It is a confederacy because they mostly agree and get along - as opposed to a Multi-Government where there is more friction between the components. The government offices thus contains offices for each of the 15 cities as well as offices for combined matters.

Government Palace: Tourist Office
Outside the tourist office the staff are selling snifters of Thristian's Dark Surprise Rum at a discount (free if you have a voucher). Inside is a display.
<Hand in voucher for a snifter of rum> Can this be programmed? See vouchers 2 paragraphs above
<Buy a snifter of rum> (0.10 ₢)
The rum warms you as you drink it. It is an exceptionally rich rum, dark in colour, with exquisite flavours of citrus fruits, fermented dates, banana, quince, caramel and cinnamon.
<Ignore the offer>
Second set of choices:
<Wander into the display>
<Leave>
The display is a large hall with 14 tables - one for each of the Cloud Cities of Zarece. The grandest is that of Braathnir, which is devoted to the University of Murraor - focusing on the history of the institution and four departments - those of medicine, drama & literature, life sciences and murder. The murder display features depictions of some of the most felinocidal cats in the civil wars between the cloud cities. They seem to have exhibited a preference for poisons - especially in milk or in water.


Orbital Station Museum
The museum has a <magnificent/wondrous/fascinating/eye-popping/fantastic/extravagant/jaw-dropping> display of the <culture/lifestyle/mythology/literature/thespian arts/musical prowess> of the <harmless slimy rodents of Inleus/furry rodents of Arexe/small black rodents of Esesla/fierce yellow furry rodents of Socelage/harmless rodents of Riedquat/large blue slimy rodents of Beor/fierce blue rodents of Celabile/small black slimy rodents of Usrarema>.


Opera House
For 40% of the time:
Today’s performance is of the famous opera about the seduction of Princess Qleo of Krawow by the <renowned/famous/galactically renowned/gifted> composer <Churrrrurre/Miawlar the Black/Frrrrurah of Braathnir>. <It is sold out./There are a mere handful of tickets left./Only the most expensive seats in the Royal Tier are still unsold./There are a few seats left up in the gods./All the seats are taken./No seats are left.>
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
Cholmondely
Archivist
Archivist
Posts: 5345
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: [WIP] Life in the Frontier OXP

Post by Cholmondely »

Massively Locked wrote: Wed Nov 30, 2022 1:38 am
...random text snippets.
Edited LITF_Navigation.js (just BB's text for typos & grammar, but also your line 585 to what I hope now makes sense!)


1) Should we change "Fit Center" to Fitness Center, or leave it as a futuristic jargon?

2) I'm not sure that the government offices should be called "embassies". The planetary governments pay something towards the orbital stations, and so have a say in what goes on insides them (Oolite lore, and uncontested as far as I've seen on the wiki/BB). That is also why their TL is identical to that of the planet. I much prefer your original term, "Government Offices" and BB's terms (People's Palace, etc.).

Part 1:

Code: Select all

"use strict";

this.name	= "LITF_Navigation";
this.author	= "BeeTLe BeTHLeHeM, Massively Locked, Cholmondely";
this.copyright	= "2015 BeeTLe BeTHLeHeM";
this.description= "Life In The Frontier - Navigation";
this.licence	= "CC BY-NC-SA 4.0";

///////////////////////////////////////

var LITF_placeLabel = "";

this.LITF_lastPlaceLabel = "";

// MslyLkd's mod- the following gate vars prevent modding of already-modded locations
this.$hngr = true; this.$govType = true; this.$rocDemo = true; this.$secSitu = true
this.$locDwn = true

// MslyLkd's mod- location tokens used for goNav.  _locAry is for mods, _locAryOri is for resets
this._locAryOri = [["token", "location"], ["revive", "area2_2"], ["hngr", "area1"]]
this._locAry = JSON.parse (JSON.stringify (_locAryOri))

// MslyLkd's mod- mod token's location
this.$locTknMod = function (tkn, loc) {
	for (var kowntr = 0; kowntr < _locAry.length; kowntr++)
		if (_locAry [kowntr] [0] === tkn) {_locAry [kowntr] [1] = loc; break}
}

this.$startNavigation = function() {
	var s = player.ship.dockedStation;

// MslyLkd's mod- layouts & locations
	// Main stn name in the hangar
	if (s.isMainStation && $hngr) {
		if (!this.area1Ori) this.area1Ori = JSON.parse (JSON.stringify (area1))
		area1.text += "  There is a big sign hanging on the wall that reads: Welcome to $StnNam$ " +
			"station of $CurSys$."
		if (!this.embassyOri) this.embassyOri = JSON.parse (JSON.stringify (embassy))
		embassy.text = embassy.text.replace ("CurSys", "$CurSys$")
		switch (system.government) {
			case 0: embassy.text += "DOWN WITH CORRUPT GOVT INSTITUTIONS!!!  (We'd like to " +
				"thank the embassy for hosting our previous event)"; break
			case 1: embassy.text += "The high lord $NAME$ will hold the joyous " +
				"Whipping-of-the-Peasants at his estate this year."; break
			case 2: embassy.text += "The International Economic Summit failed to decide on a " +
				"coherent economic stance towards neighboring systems."; break
			case 3: embassy.text += "Líder Máximo is always watching you..."; break
			case 4: embassy.text += "Glory to the Planet's Revolution!"; break
			case 5: embassy.text += "States rights shall not be abridged by food blenders."; break
			case 6: embassy.text += "Your vote counts!"; break
			case 7: embassy.text += "Sponsored by Friendspace, a wholly owned subsidiary of bIT Cloud"}
		if (s.shipClassName.indexOf ("Dodecahedron") !== -1) {
			area1.c1 = "Walk to the core"; area1.a1 = "goNav:deckD3"
			$locTknMod ("revive", "deckD14Ar2")}
		if (s.shipClassName.indexOf ("Icosahedron") !== -1) {
			area1.c1 = "Walk to the core"; area1.a1 = "goNav:deckI2"
			$locTknMod ("revive", "deckI8Fp2")}
		$hngr = false}
	// Demo- govt 4-7; keep this for upcoming mods depending on govt type
	if (system.government >= 4 && $govType) {
		$govType = false}
	// Demo- rock hermits
	if (s.shipClassName === "Rock Hermit" && $rocDemo) {
		// alt hangar
			if (!this.area1_nongalcopOri)
				this.area1_nongalcopOri = JSON.parse (JSON.stringify (area1_nongalcop))
			const copyFro = area1_nongalcop.text.indexOf ("There")
			const rocHngr = area1_nongalcop.text.slice (0, copyFro)
			area1_nongalcop.text = rocHngr + "There are various doors around- some closed, some " +
				"open into dimly lit corridors."
			area1_nongalcop.c6 = "dev, testing & demo"; area1_nongalcop.a6 = "setLoc:hngr," +
				"area1_nongalcop|goNav:areaDev"
			area1_nongalcop.c5 = area1_nongalcop.c2; area1_nongalcop.a5 = area1_nongalcop.a2
			area1_nongalcop.c4 = area1_nongalcop.c1; area1_nongalcop.a4 = area1_nongalcop.a1
			area1_nongalcop.c3 = "Walk to another hangar";
				area1_nongalcop.a3 = "goNav:areaRHHngr3"
			area1_nongalcop.c2 = "Walk to the 1st ring"; area1_nongalcop.a2 = "goNav:areaRH1"
			area1_nongalcop.c1 = "Walk to next hangar"; area1_nongalcop.a1 = "goNav:areaRHHngr2"
		// start of 1st ring- static refs to this prop don't pick-up the mod
			areaRH1.text0 += "  Like most rock hermits, it's a hot mess."
		// passing out, revive outside med center
			$locTknMod ("revive", "areaRH6")
		// bar
			if (!this.bar0Ori) this.bar0Ori = JSON.parse (JSON.stringify (bar0))
			bar0.text = bar0.text.replace ("The tavern", "This dive bar")
			bar0.text = bar0.text.replace ("pilots", "miners")
			// $locTknMod ("barExit", "areaRH33")
		$rocDemo = false}
	// Demo- lock-down: mod area1, lobby1, lobby4, area4_1
	// disabled until I figure out conditions
	$secSitu = false
	if ($secSitu && $locDwn) {
		// hangar
			if (!this.area1Ori) this.area1Ori = JSON.parse (JSON.stringify (area1))
			area1.text = area1.text + "\n\nThere are flashing lights and a blaring klaxon indicating " +
				"that a lock-down is in effect.  A nearby monitor indicates that there is a security " +
				"situation and certain parts of the station are inaccessible."
		// docks
			if (!this.lobby1Ori) this.lobby1Ori = JSON.parse (JSON.stringify (lobby1))
			lobby1.c4 = lobby1.c6; lobby1.a4 = lobby1.a6
			delete lobby1.c5; delete lobby1.a5
			delete lobby1.c6; delete lobby1.a6
		// GC precinct
			if (!this.lobby4Ori) this.lobby4Ori = JSON.parse (JSON.stringify (lobby4))
			delete lobby4.c4; delete lobby4.a4
			delete lobby4.c5; delete lobby4.a5
		// GC facilities
			if (!this.area4_1Ori) this.area4_1Ori = JSON.parse (JSON.stringify (area4_1))
			area4_1.text = "You're in the GalCop Facilities. The place is crowded and chaotic.  Agents " +
				"are running about dealing with the security situation.  A voice on the PA system " +
				"announces that all GalCop facilities are closed with the exception of the computer " +
				"terminals.  It adds that there is no information on when the lock-down will be lifted."
			delete area4_1.c3; delete area4_1.a3
			delete area4_1.c4; delete area4_1.a4
			delete area4_1.c5; delete area4_1.a5
			delete area4_1.c6; delete area4_1.a6
		$locDwn = false}


	if( s && !s.allegiance || s.allegiance == "galcop" )
		$goPlace("area1");
	else $goPlace("area1_nongalcop");
};


this.$statusScreen = function() {
    var _co = worldScripts.LITF_Common;

    var sText = this.$setStatusText();
    var sChoices = this.$setStatusChoices();

    mission.runScreen(
        {
            title:"COMMANDER STATUS",
            message:sText,
	    screenID:"hdbg-station", //for HD Backgrounds OXP
            choices:sChoices
        },
        this.$statusScreenChoice
    );
};

this.$setStatusText = function() {
    var _rpge = worldScripts.LITF_RPGElements;
    var _co = worldScripts.LITF_Common;
    var _litf = worldScripts.LITF;

    var msText = "[COMMANDER RESUME]\n\n";

    msText += "Commander " + player.name + ", for the people on the station you're " + _rpge.$getReputationFromValue(_litf.LITF_cmdStats.reputation) + ". ";
    msText += "You consider yourself " + _rpge.$getStanceFromValue(_litf.LITF_cmdStats.stance) + ". ";
    msText += "Your physical shape is " + _rpge.$getStrengthFromValue(_litf.LITF_cmdStats.strength) + ". ";
// MslyLkd's mod- formatCredits
    // msText += "You currently have " + _co.$formatNumber(player.credits) + "cr. ";
    msText += "You currently have " + formatCredits (player.credits, true, true)

    if (_litf.LITF_flags.getDrunk == 1) {
        msText += "\n* You're drunk. Hiccups, a bit of nausea and the world swinging left and right.";
    }

    var hDesc = _rpge.$getHealthFromValue(_litf.LITF_cmdStats.health);
    if (hDesc != "") {
        msText += "\n* " + hDesc;
    }

    var sDesc = _rpge.$getSicknessFromValue(_litf.LITF_cmdStats.sickness);
    if (sDesc != "") {
        msText += "\n* " + sDesc;
    }

    msText += "\n";

    // Universal Fitness Badge status

    var fitBadge = _litf.LITF_flags.fitBadge;
    if (fitBadge > -1) {
        var expired = _co.$checkTimeForExpiration(fitBadge);
        if (expired == 1) {
            msText += "\nYou own an expired Universal Fitness Badge.";
        } else {
            var remain = _co.$formatRemainingTime(fitBadge);

            msText += "\nYou own a Universal Fitness Badge: it will expire in " + remain + ".";
        }
    }

    msText += "\n";

    // XXX Contractors and missions
    /*
    if (this.LITF_contractorData != undefined && this.LITF_contractorData != "") {
        var cData = this.LITF_contractorData;

        // Destination system ID, NPC name, mission type, max time
        var cSplit = cData.split("|");

        var remainTime = parseInt(cSplit[3]) - clock.seconds;
        var formattedTime = this.$formatTime(remainTime);

        msText += "\nCONTRACTOR: Meet " + cSplit[1] + " at " + System.systemNameForID(parseInt(cSplit[0]))
            + " for a job. (" + formattedTime + " before expiring).";
    }

    if (this.LITF_missionData != undefined && this.LITF_missionData != "") {
        var mData = this.LITF_missionData;

        // cargo, pay, systemDestId, maxTime, missionType, systemStartId
        var mSplit = mData.split("|");

        var remainTime = parseInt(mSplit[3]) - clock.seconds;
        var formattedTime = this.$formatTime(remainTime);

        var cType = mSplit[4].toUpperCase() + " MISSION";

        msText += "\n" + cType + ": for " + mSplit[1] + "cr deliver " + mSplit[0]
            + " to " + System.systemNameForID(parseInt(mSplit[2])) + " within " + formattedTime + ".";
    }
    */

    //msText += "\n";

    return msText;
};


this.$setStatusChoices = function() {
    var msChoiceList = {};
    msChoiceList["BACK"] = "Back to the Hangar";
    return msChoiceList;
};


this.$statusScreenChoice = function(choice) {
    switch (choice) {
        case "BACK":
            worldScripts.LITF_Navigation.$startNavigation();
	break;
    }
};


this.$goPlace = function(pLabel) {
	var _co = worldScripts.LITF_Common;
	var _ec = worldScripts.LITF_EventsCatalog;
	var _rpge = worldScripts.LITF_RPGElements;
	var _litf = worldScripts.LITF;

	// The commander is dying!
	if (_litf.LITF_cmdStats.health >= 5 || _litf.LITF_cmdStats.sickness >= 5) {
// MslyLkd's mod- add "deck" prefix for location names
		// if (pLabel.indexOf("area") == 0) {
		if (pLabel.indexOf("area") == 0 || pLabel.indexOf ("deck") == 0) {
			var passoutchance = Math.floor(Math.random() * 100) + 1;
			// The commander pass out!
			if (passoutchance < 50) {
				pLabel = "passout0";
			}
		}
	}

	if (pLabel == "area1" && _litf.LITF_flags.defacedShip == 1) {
		pLabel = "area1_defacedShip";
	}

    LITF_lastPlaceLabel = LITF_placeLabel;
	LITF_placeLabel = pLabel;
	_co.$log("[goPlace] " + LITF_placeLabel);

	var pTitle = "AROUND THE SPACE STATION";

	var LITF_place = eval("this." + pLabel + ";");
	//_co.$log("[goPlace] text = " + LITF_place.text);

// MslyLkd's mod- formatCredits
	// var placeText = "[ " + _rpge.$getReputationFromValue(_litf.LITF_cmdStats.reputation) + " " + player.name + "  |  " + _co.$formatNumber(player.credits) + "cr  |  Wounds: " + _rpge.LITF_healthShort[_litf.LITF_cmdStats.health] + "  |  Health: " + _rpge.LITF_sicknessShort[_litf.LITF_cmdStats.sickness] + " ]\n\n";
	var placeText = "[ " + _rpge.$getReputationFromValue(_litf.LITF_cmdStats.reputation) + " " +
		player.name + "  |  " + formatCredits (player.credits, true, true) + "  |  Wounds: " +
		_rpge.LITF_healthShort[_litf.LITF_cmdStats.health] + "  |  Health: " +
		_rpge.LITF_sicknessShort[_litf.LITF_cmdStats.sickness] + " ]\n\n";

    placeText += this.buildLocationText(LITF_place);

	placeText += this.$addRandomHealthSnippet();

	placeText += this.$addRandomStatusSnippet();

	placeText = _co.$replaceConstants(placeText);

    //_co.$log("[goPlace] placeText = " + placeText);

	var placeChoices = _co.$extractChoices(LITF_place);

	var sid = null;
	if( pLabel == "area1_nongalcop" ) {  //for HD Backgrounds OXP
		var w = worldScripts.hdbg;
		if( w ) sid = "hdbg-station";
	}


	// MslyLkd's mod-
	player.ship.hudHidden = true

	mission.runScreen(
		{
			title: pTitle,
			message: placeText,
			screenID: sid, //for HD Backgrounds OXP
			choices: placeChoices
		},
		this.$selectChoice
	);

	_co.$screenBackground(LITF_place.background);
	if( sid ) {
		this.$Roles = w.$Roles;
		this.$SetHDBG = w.$SetHDBG;
		w.guiScreenChanged("GUI_SCREEN_MISSION"); //set HD Background
	}

};

this.buildLocationText = function(pData) {
    var _co = worldScripts.LITF_Common;

    var textCounter = 0;
    var valid = 1;

    var placeText = "";

    var staticText = pData.text;
    if (staticText) {
        // text - static text
        //_co.$log("[buildLocationText] staticText = " + staticText);
        placeText = staticText;
    } else {
        // text0, text1 ... - dynamic text

        while (valid == 1) {
            var t = "text" + textCounter;
            var text = eval("pData." + t + ";");

            if (text) {
                _co.$log("[buildLocationText] indexed text " + t + " = " + text);
                var tSplit = text.split("|");
                if (tSplit.length == 1) {
                    // No conditions - always valid, always shown
                    placeText += text;
                } else {
                    // Needs to validate condition
                    var validate = 1;
                    var LITF_items = tSplit[0].split(",");
                    for (var i = 0; i < LITF_items.length; i++) {

                        if (_co.$checkRequirements(LITF_items[i]) == 0) { validate = 0; }
                        _co.$log("[validateChoice] " + LITF_items[i] + " = " + validate);
                    }

                    if (validate == 1) { placeText += tSplit[1]; }
                }

                textCounter++;
            } else {
                valid = 0;
            }
        }
    }

    //_co.$log("[buildLocationText] placeText = " + placeText);

    return placeText;
};

this.$addRandomStatusSnippet = function() {
	var _litf = worldScripts.LITF;

    var text = "";
	var chance = Math.floor(Math.random() * 100);

	if (_litf.LITF_flags.getDrunk == 1) {
		if (chance < 10) {
			text = "\n\nYou produce a undignified belch.";
		} else if (chance < 20) {
			text = "\n\nYou stumble on your feet.";
		} else if (chance < 30) {
			text = "\n\nYou hiccup.";
		}
	}

	return text;
};


this.$addRandomHealthSnippet = function() {
	var _litf = worldScripts.LITF;

    var text = "";
	var chance = Math.floor(Math.random() * 100);

	var health = _litf.LITF_cmdStats.health;
	var sickness = _litf.LITF_cmdStats.sickness;

	if (health > 0 && chance < 10) {
		switch (health) {
			case 1:
				text = "\n\nYou feel your skin slightly itching.";
				break;
			case 2:
				text = "\n\nYou feel a bit of pain while you walk.";
				break;
			case 3:
				text = "\n\nYou feel pain even standing still.";
				break;
			case 4:
				text = "\n\nYou feel great pain, that makes you moan in anguish.";
				break;
			case 5:
				text = "\n\nYou can't walk straight, trying your best to not fall over. The pain is unbearable.";
				break;
		}
	} else if (sickness > 0 && chance < 20) {
		switch (sickness) {
			case 1:
				text = "\n\nYou cough a couple of times.";
				break;
			case 2:
				text = "\n\nYou sneeze and feel suddenly cold for a while.";
				break;
			case 3:
				text = "\n\nYou feel nauseated.";
				break;
			case 4:
				text = "\n\nYou feel incredibly tired.";
				break;
			case 5:
				text = "\n\nYour head spin, you can't walk straight.";
				break;
		}
	}

	return text;
};


this.$selectChoice = function(choice) {
	var _co = worldScripts.LITF_Common;

	_co.$log("[selectChoice] choice = " + choice);

	if (choice == null || choice == "null") { return; }

	var action = choice.replace('c', 'a');
	_co.$log("[selectChoice] action = " + action);

	// Retrieve the associate actions

	var actionData = eval("worldScripts.LITF_Navigation." + LITF_placeLabel + "." + action);

    _co.$executeActions(actionData);

	/*
    var actionsSplit = actionData.split("|");

	// Iterate, parse and execute the actions
	for (var i = 0; i < actionsSplit.length; i++) {
		var action = actionsSplit[i];

        _co.$executeAction(action);
	}
	*/
};


///////////////////////////////////////

this.passout0 = {
	text: "Suddenly you experience a strong vertigo, your legs become unstable and your body is permeated by a glacial coldness. You fall on the floor, incapable of saying anything, and faint while around you can still hear a far echo of worried voices that call for help... after that, darkness.",
	c1: "...",
	a1: "time:3600,14400|paytreatment:health|paytreatment:sickness|goNav:passout1"
};

this.passout1 = {
	text: "Time passes... until you come round, starting to perceive the world around, chaotic and confused... the lights blinds you, but you can barely move. Someone is near you, and you need to focus completely on $GENDERPOSS$ to understand the words...\n\n'...we managed to get you back from the edge of death, basically. In these cases the law forces us to apply a complete healing process, and confusion aside, you should get well about in twenty minutes. When you feel you can walk again, come to the reception.'\n\nThat was a doctor, and you're in the Medical Center - now you recognize it. You take a deep breath and wait. The world is starting to stabilize...",
	background: "litf_bg_medcenter.png",
	c1: "...",
	a1: "time:600,1200|goNav:passout2"
};

this.passout2 = {
	text: "After a while, against your conjectures, you really feel you can stand up and walk. You're starting to feel better.\n\nYou don your clothes, and exit the room to the Medical Center reception.",
	background: "litf_bg_medcenter.png",
	c1: "Let's hear the news...",
	a1: "goNav:passout3"
};

this.passout3 = {
	text: "The receptionist smiles as usual. She says that the healing process went well, and that you are healthy enough again.\n\nAfter this, the receptionist reminds you that the healing wasn't free. The price for the process has already been debited from your account, and on top of this there is an additional 200cr for the emergency procedure. Don't worry if you haven't enough money: the station banking system will automatically adjust your bounty for debt insolvency. You can clear your bounty using the Galcop terminal at the precinct.\n\n'Good day, commander.'",
	background: "litf_bg_medcenter.png",
	c1: "Yes, really a good day...",
// MslyLkd's mod- location token
//	a1: "reputation:-15|goNav:area2_2"
	a1: "reputation:-15|goNav:$*revive$"
};

///////////////////////////////////////

// MslyLkd's mod- common text for use in locations
this.$cmnTxt = {
}
this.area1 = {
// reminder- properties may be script-modded
// MslyLkd's mod- text & c1 to include player ship's name
//    text: "You're in the hangar where your ship is parked. There are other ships, in different conditions. You see a few of them being examined by the station droids, floating slowly around the hull searching for breaches.",
    text: "You're in the hangar where $PlyrShpNam$ is parked. There are other ships, in different conditions. You see a few of them being examined by the station droids, floating slowly around the hull searching for breaches.",
	c1: "Go to the Docks",
	a1: "randomAndGo:lobby1",
//    c2: "Embark on your ship",
    c2: "Embark on $PlyrShpNam$",
    a2: "endNav:0",
    c3: "See your status",
    a3: "showStatus:1",
// MslyLkd's mod-
c4: "dev, testing & demo", a4: "goNav:areaDev",
};

this.area1_nongalcop = {
// reminder- properties may be script-modded
// MslyLkd's mod- text & c1 to include player ship's name
//    text: "This station is considerably different than main GalCop stations. You're in the hangar where your ship is parked together with other ships. There are some closed doors around, and it looks like you should go back into your ship and do your ordering via the ship communication channels.",
	text: "This station is considerably different than main GalCop stations. You're in the hangar where $PlyrShpNam$ is parked together with other ships. There are some closed doors around, looks like you should go back into your ship and do your orders via ship communication channels.",
    background: "litf_bg_hangar.png",
//    c1: "Embark your ship",
	c1: "Embark on $PlyrShpNam$",
    a1: "endNav:0",
    c2: "See your status",
    a2: "showStatus:1"
};

/*
this.lobby1 = {
    text: "You're in the Docks.\n\nYou see droids moving crates and containers off and on ships. The activity is unrelenting.\n\nFrom here:\n- You can go to your ship in the Hangar\n- You can enter the Cargo Area\n- You can take the Lift and go to the Main Concourse, the Recreation Bridge or the Galcop Precinct.\n\n$LOBBYSNIPPET$",
    background: "litf_bg_docks.png",
    c1: "Enter the Hangar",
    a1: "randomAndGo:area1",
    c2: "Enter the Cargo Area",
    a2: "randomAndGo:area1_2",
    c3: "Lift >> Main Concourse",
    a3: "time:120|goNav:lobby2",
    c4: "Lift >> Recreation Bridge",
    a4: "time:240|goNav:lobby3",
    c5: "Lift >> Galcop Precinct",
    a5: "time:360|goNav:lobby4"
};
*/

this.lobby1 = {
    text: "You're in the Docks.\n\nYou see droids moving crates and containers off and on ships. The activity is unrelenting.\n\n$LOBBYSNIPPET$",
    background: "litf_bg_docks.png",
    c1: "Look at the station map",
    //a1: "goNav:map1",
    a1: "goNav:map",
    c2: "Enter the Hangar",
    a2: "randomAndGo:area1",
    c3: "Enter the Cargo Area",
    a3: "randomAndGo:area1_2",
    c4: "Lift >> Main Concourse",
    a4: "time:120|goNav:lobby2",
    c5: "Lift >> Recreation Bridge",
    a5: "time:240|goNav:lobby3",
    c6: "Lift >> Galcop Precinct",
    a6: "time:360|goNav:lobby4"
};



this.area1_defacedShip = {
// MslyLkd's mod- text to include player ship's name
//    text: "You're in the Docks Area.\n\nThere's people going around, and droids moving crates and containers off and on ships. The activity is unrelenting.\n\nYou can see your ship from here, but it's not exactly like you remembered. It seems someone has painted over the hull a series of colorful insults and raunchy words. A worker suggests you use the Area droids to clean the ship before departing - those graffiti could grant you a fine for public indecence.\n\nYou're annoyed but take control of the droids and erase the insults - a task that takes you an hour...",
    text: "You're in the Docks Area.\n\nThere's people going around, and droids moving crates and containers off and on ships. The activity is unrelenting.\n\nYou can see $PlyrShpNam$ from here, but it's not exactly like you remembered. It seems someone has painted over the hull a series of colorful insults and raunchy words. A worker suggests you use the Area droids to clean the ship before departing - those graffiti could grant you a fine for public indecency.\n\nYou're annoyed but take control of the droids and erase the insults - a task that takes you an hour...",
    c1: "Damn kids...",
    a1: "time:3600|flag_defacedShip:0|goNav:area1"
};


this.area1_2 = {
    text: "You're in the Cargo Area.\n\nDroids transport here all the cargo unloaded from the ships, and return the containers to the ships for reloading. There are dozen of containers of various colors, and the commodities are being put into or removed from them, waiting to be transferred to Storage.\n\nFrom here you can visit the Storage section, or return to the Docks.",
    background: "litf_bg_cargoarea.png",
    c1: "Go to the Docks",
    a1: "randomAndGo:lobby1",
    c2: "Visit the Storage section",
    a2: "goNav:storage0"
};

/*
this.lobby2 = {
    text: "You're in the Main Concourse lobby.\n\nFrom here:\n- You can go to one of three sections of the Concourse:\n  Section A: Passengers Lounge, Hotel\n  Section B: Medical Center, Church of the Cosmic Wanderer, Bookshop\n  Section C: ## DATA NOT FOUND ##\n- You can take the Lift and go to the Docks, the Recreation Bridge or the Galcop Precinct.\n\n$LOBBYSNIPPET$",
    c1: "Enter the Concourse-A section",
    a1: "randomAndGo:area2_1",
    c2: "Enter the Concourse-B section",
    a2: "randomAndGo:area2_2",
    c3: "Enter the Concourse-C section",
    a3: "randomAndGo:area2_3",
    c4: "Lift >> Docks",
    a4: "time:120,goNav:lobby1",
    c5: "Lift >> Recreation Bridge",
    a5: "time:120|goNav:lobby3",
    c6: "Lift >> Galcop Precinct",
    a6: "time:240|goNav:lobby4"
};
*/

this.lobby2 = {
    text: "You're in the Main Concourse lobby.\n\n$LOBBYSNIPPET$",
    c1: "Look at the station map",
    //a1: "goNav:map2",
    a1: "goNav:map",
    c2: "Enter the Concourse-A section",
    a2: "randomAndGo:area2_1",
    c3: "Enter the Concourse-B section",
    a3: "randomAndGo:area2_2",
    c4: "Enter the Concourse-C section",
    a4: "randomAndGo:area2_3",
    c5: "Lift >> Docks",
    a5: "time:120|goNav:lobby1",
    c6: "Lift >> Recreation Bridge",
    a6: "time:120|goNav:lobby3",
    c7: "Lift >> Galcop Precinct",
    a7: "time:240|goNav:lobby4"
};

this.area2_1 = {
    text: "You're in the Concourse-A section.\n\nYou see groups of people walking between the shops and the large decorated plaza.\n\nFrom here you can visit the Passengers Lounge, the Hotel, go to the lobby or to the other Concourse sections.",
    background: "litf_bg_mainconcourse1.png",
    c1: "Exit the Main Concourse",
    a1: "randomAndGo:lobby2",
    c2: "Visit the Passengers Lounge",
// MslyLkd's mod-
//    a2: "goNav:plounge0",
    a2: "savCnctr:0|goNav:plounge0",
    c3: "Visit the Hotel",
// MslyLkd's mod-
//    a3: "goNav:hotel0",
    a3: "savCnctr:0|goNav:hotel0",
    c4: "Enter the Concourse-B section",
    a4: "randomAndGo:area2_2",
    c5: "Enter the Concourse-C section",
    a5: "randomAndGo:area2_3"
};


this.area2_2 = {
// MslyLkd's mod-
//    text: "You're in the Concourse-B section.\n\nYou see many people talking to each other. There's a big fountain with benches around.\n\nFrom here you can visit the Church of the Cosmic Wanderer, the Bookshop or the Medical Center for your health-related issues, go to the lobby or to the other Concourse sections.",
	text: "You're in the Concourse-B section.\n\nYou see many people talking to each other. There's a big fountain with benches around.\n\nFrom here you can visit a church, a bookshop, the medical center for your health-related issues, other concourse sections or return to the lobby.",
    background: "litf_bg_mainconcourse2.png",
    c1: "Exit the Main Concourse",
    a1: "randomAndGo:lobby2",
    c2: "Sit on a bench near the fountain",
    a2: "goNav:area2_4",
/*    c3: "Visit the Church of the Cosmic Wanderer",
    a3: "goNav:church0",
    c4: "Visit the Bookshop",
    a4: "goNav:bookshop0",
    c5: "Visit the Medical Center",
    a5: "goNav:med0",
*/
	c3: "Visit a church", a3: "savCnctr:0|goNav:church0",
	c4: "Visit a bookshop", a4: "savCnctr:0|goNav:bookshop" + (Math.floor (Math.random () * 6)),
		// a4 modded in shipExitedWitchspace handler below
	c5: "Visit the Medical Center", a5: "savCnctr:0|goNav:med0",
    c6: "Enter the Concourse-A section",
    a6: "randomAndGo:area2_1",
    c7: "Enter the Concourse-C section",
    a7: "randomAndGo:area2_3"
// when adding/deleting choices, adjust shipExitedWitchspace handler below (very clunky- fix l8r)
};

// MslyLkd's mod-
this.shipExitedWitchspace = function () {
	area2_2.a4 = "savCnctr:0|goNav:bookshop" + (Math.floor (Math.random () * 6))
}

this.area2_3 = {
    text: "You're in the Concourse-C section.\n\nThere are people working in the gardens. The food processing is automated, and you smell a sweet mix of odours from the facilities.\n\nFrom here you can go to the lobby or to the other Concourse sections.",
    background: "litf_bg_hpgardens.png",
    c1: "Exit the Main Concourse",
    a1: "randomAndGo:lobby2",
    c2: "Enter the Concourse-A section",
    a2: "randomAndGo:area2_1",
    c3: "Enter the Concourse-B section",
    a3: "randomAndGo:area2_2"
};


this.area2_4 = {
    text: "You sit on a bench. The water noise behind you is relaxing, almost hypnotic. You start to zone out, your thoughts going astray... you should rest here for a while...",
    c1: "Better if I go, I don't want to fall asleep here",
    a1: "goNav:area2_2",
    c2: "Stay still. Let's wait some time here",
    a2: "time:1800|goNav:area2_4"
};

/*
this.lobby3 = {
    text: "You're in the Recreation Bridge lobby.\n\nFrom here:\n- You can go to the level sections:\n  Delight Avenue: Local Bar, Wild Worlds Virtual Tour, Museum\n  Olympian Square: Fit Center\n  Mecenate Court: Art Gallery, Opera House, Cinema Hall\n- You can take the Lift and go to the Docks, the Main Concourse or the Galcop Precinct.\n\n$LOBBYSNIPPET$",
    c1: "Enter the Delight Avenue",
    a1: "randomAndGo:area3_1",
    c2: "Enter the Olympian Square",
    a2: "randomAndGo:area3_2",
    c3: "Enter the Mecenate Court",
    a3: "randomAndGo:area3_3",
    c4: "Lift >> Docks",
    a4: "time:240,goNav:lobby1",
    c5: "Lift >> Main Concourse",
    a5: "time:120|goNav:lobby2",
    c6: "Lift >> Galcop Precinct",
    a6: "time:240|goNav:lobby4"
};
*/

this.lobby3 = {
    text: "You're in the Recreation Bridge lobby.\n\n$LOBBYSNIPPET$",
    c1: "Look at the station map",
    //a1: "goNav:map3",
    a1: "goNav:map",
    c2: "Enter the Delight Avenue",
    a2: "randomAndGo:area3_1",
    c3: "Enter the Olympian Square",
    a3: "randomAndGo:area3_2",
    c4: "Enter the Mecenate Court",
    a4: "randomAndGo:area3_3",
    c5: "Lift >> Docks",
    a5: "time:240|goNav:lobby1",
    c6: "Lift >> Main Concourse",
    a6: "time:120|goNav:lobby2",
    c7: "Lift >> Galcop Precinct",
    a7: "time:240|goNav:lobby4"
};

this.area3_1 = {
    text: "You're in Delight Avenue.\n\nPeople joke and laugh, there are expensive clothes around here. You can hear music playing in background.\n\nFrom here you can visit the local Bar, the Museum or the Wild Worlds Virtual Tour, go to the lobby, to Olympian Square or to the Mecenate Court.",
    background: "litf_bg_entcorridor.png",
    c1: "Exit the Recreation Bridge",
    a1: "randomAndGo:lobby3",
    //r2: "flag_getDrunk=0",
    c2: "Visit the local Bar",
// MslyLkd's mod-
//    a2: "if:flag_getDrunk=0?goNav:bar0;goNav:bar0_1",
    a2: "savCnctr:0|if:flag_getDrunk=0?goNav:bar0;goNav:bar0_1",
    c3: "Visit the museum",
    a3: "goNav:museum0",
    c4: "Visit the Wild Worlds Virtual Tour",
    a4: "goNav:wwvt0",
    c5: "Enter Olympian Square",
    a5: "randomAndGo:area3_2",
    c6: "Enter Mecenate Court",
    a6: "randomAndGo:area3_3",
};


this.area3_2 = {
    text: "You're in Olympian Square.\n\nYou see people with colourful tracksuits, ready to exercise or race against other competitors. The place is filled with different sports areas and with gleeful audiences. Various holograms shows different activities and disciplines.\n\nFrom here you can visit the Fit Center, go to the lobby, to Delight Avenue or to the Mecenate Court.",
    background: "litf_bg_entcorridor.png",
    c1: "Exit the Recreation Bridge",
    a1: "randomAndGo:lobby3",
    c2: "Visit the Fit Center",
    a2: "goNav:fit0",
    c3: "Enter Delight Avenue",
    a3: "randomAndGo:area3_1",
    c4: "Enter Mecenate Court",
    a4: "randomAndGo:area3_3"
};


this.area3_3 = {
    text: "You're in Mecenate Court.\n\nThis place is decorated with columns and galleries sculpted in ancient styles. Exotic vines climb the walls in elaborated patterns. In the wide central court you see several people discussing and debating a variety of topics.\n\nFrom here you can visit the Art Gallery, the Opera House or the Cinema Hall, go to the lobby, to Delight Avenue or to Olympian Square.",
    background: "litf_bg_entcorridor.png",
    c1: "Exit the Recreation Bridge",
    a1: "randomAndGo:lobby3",
    r2: "flag_artGallery=0",
    c2: "Visit the Art Gallery",
    a2: "goNav:art0",
    r3: "flag_operaHouse=0",
    c3: "Visit the Opera House",
    a3: "goNav:opera01,opera02,opera03",
    r4: "flag_cinemaHall=0",
    c4: "Visit the Cinema Hall",
    a4: "goNav:cinema0",
    c5: "Enter Delight Avenue",
    a5: "randomAndGo:area3_1",
    c6: "Enter Olympian Square",
    a6: "randomAndGo:area3_2",
};
Last edited by Cholmondely on Sat Dec 17, 2022 8:02 pm, edited 1 time in total.
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
Cholmondely
Archivist
Archivist
Posts: 5345
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: [WIP] Life in the Frontier OXP

Post by Cholmondely »

Part 2:

Code: Select all

/*
this.lobby4 = {
    text: "You're in the Galcop Precinct.\n\nFrom here:\n- You can go to the Galcop Facilities\n- You can take the Lift and go to the Docks, the Main Concourse or the Recreation Bridge.\n\n$LOBBYSNIPPET$",
    c1: "Enter the Galcop Facilities",
    a1: "randomAndGo:area4_1",
    c2: "Lift >> Docks",
    a2: "time:360|goNav:lobby1",
    c3: "Lift >> Main Concourse",
    a3: "time:240|goNav:lobby2",
    c4: "Lift >> Recreation Bridge",
    a4: "time:120|goNav:lobby3",
};
*/

this.lobby4 = {
    text: "You're in the Galcop Precinct.\n\n$LOBBYSNIPPET$",
    c1: "Look at the station map",
    //a1: "goNav:map4",
    a1: "goNav:map",
    c2: "Enter the Galcop Facilities",
// MslyLkd's mod-
    a2: "savCnctr:0|randomAndGo:area4_1",
    c3: "Lift >> Docks",
    a3: "time:360|goNav:lobby1",
    c4: "Lift >> Main Concourse",
    a4: "time:240|goNav:lobby2",
    c5: "Lift >> Recreation Bridge",
    a5: "time:120|goNav:lobby3",
// MslyLkd's mod-
	c6: "Enter the embassy", a6: "savCnctr:0|goNav:embassy",
};


this.area4_1 = {
// MslyLkd's mod- replace desc, reordered choices & location token
/*    text: "You're in the Galcop Facilities.\n\nYou see agents responding to calls and going on patrols. A number of desks is busy with reports from station visitors.\n\nImmediately into the Facilities you see a row of Galcop terminals.\n\nFrom here you can enter the Mission Briefing Room, the Detainment Zone and the Pilot Course Room, or exit to the Precinct.",
	c1: "Exit the Galcop Facilities",
	a1: "goNav:lobby4",
	c2: "Go to one of the Galcop terminals",
	a2: "goNav:area4_2",
	c3: "Enter the Mission Briefing Room",
	a3: "goNav:area4_3",
	c4: "Enter the Detainment Zone",
	a4: "goNav:area4_4",
	c5: "Enter the Social Services Zone",
	a5: "goNav:area4_5",
	c6: "Enter the Pilot Course Room",
	a6: "goNav:area4_6"
*/
	text: "You're in the GalCop Precinct House.  $PrcntHaus$",
	c1: "Go to one of the GalCop terminals", a1: "goNav:area4_2",
	c2: "Enter the Mission Briefing Room", a2: "goNav:area4_3",
	c3: "Enter the Detainment Zone", a3: "goNav:area4_4",
	c4: "Enter the Social Services Zone", a4: "goNav:area4_5",
	c5: "Enter the Pilot Course Room", a5: "goNav:area4_6",
	c6: "Exit the Precinct House", a6: "goNav:leave"
};

this.area4_2 = {
// MslyLkd's mod- replace desc txt
/*	text0: "WELCOME TO GALCOP ANONYMOUS REHABILITATION TERMINAL\n\nPUT YOUR RIGHT PALM ON THE SENSOR\n\nVERIFICATION COMPLETE\n\nHELLO, COMMANDER,",
	text1: "bounty<1|\n\nYOUR CRIMINAL RECORD IS CLEAN.",
	text2: "bounty>0|\n\nYOU CAN CLEAN YOUR CRIMINAL RECORD FOR $BOUNTYFINE$.",
	text3: "\n\nGOOD DAY COMMANDER",
*/
	text0: "Welcome To GalCop Anonymous Rehabilitation Terminal\n\nPlace your palm on the sensor.....\n\nVerification complete\n\n",
	text1: "bounty<1|Your criminal record is clean.",
	text2: "bounty>0|You can clean your criminal record for $BOUNTYFINE$.",
	text3: "\n\nGood day",
	background: "litf_bg_terminal.png",
//	c1: "Good day, terminal",
	c1: "Return to the Precinct House lobby",
	a1: "goNav:area4_1",
    r2: "bounty>0,bountyfine=1",
//	c2: "I want to pay and clean my criminal record.",
	c2: "Pay and clean your record",
	a2: "paybountyfine:1|goNav:area4_2",
    r3: "bounty>0,bountyfine=0",
//	c3: "I have not enough money to clean my criminal record.",
	c3: "You don't have the credits to clean your record",
	a3: "goNav:area4_1"
};

this.area4_3 = {
    text: "The door to the briefing room is closed. An officer tells you that only GalCop associates can join the mission briefings.",
// MslyLkd's mod-
//    c1: "Go away",
	c1: area4_2.c1,
    a1: "goNav:area4_1"
};

this.area4_4 = {
// MslyLkd's mod-
//    text: "You go to the detainment zone gate, but an officer stops before you can enter: 'Sorry, but your legal status in currently under examination. Therefore you are interdicted to this area access, unless you can produce a legitimate and proper payment for this transgression. I believe 30cr should be enough.'",
	text: "You walk to the detainment zone gate, but an officer stops you.  He says: 'Your legal status is currently under examination.  You can't enter unless you produce payment for any transgressions.  Thirty credits should be enough.'",
    r1: "credits>=30",
    c1: "Pay the 'fee'",
    a1: "credits:-30|goNav:area4_41",
//    c2: "Go away",
    c2: area4_2.c1,
    a2: "goNav:area4_1"
};

this.area4_41 = {
    text: "You are inside a big hall, full of metallic cells in a grid scheme, on multiple floors.  You can hear the prisoners complaining and swearing.  GalCop drones patrol the area.",
// MslyLkd's mod-
//    c1: "Exit",
	c1: area4_2.c1,
    a1: "goNav:area4_1"
};

this.area4_5 = {
// MslyLkd's mod-
    text0: "You enter the room, and a GalCop android scans your legal status.  It says, '",
//    text1: "bounty=0|'Your criminal record is clean, but you can contribute to the services if you want, as a volunteer.'",
	text1: "bounty=0|Your criminal record is clean, but you can contribute services as a volunteer.'",
//    text2: "bounty>0|'If you want you can endure a session of work to decrease your bounty, as a volunteer.'",
	text2: "bounty>0|If you want, you can endure a work session to decrease your bounty.'",
    //r1: "bounty>0",
    c1: "Ok, I want to endure a session",
    a1: "time:14400|reputation:2|goNav:area4_51,area4_51,area4_51,area4_52",
//    c2: "Go away",
	c2: area4_2.c1,
    a2: "goNav:area4_1"
};

this.area4_51 = {
    text: "You spend the session working on the back alleys of the station, cleaning floors, fixing lights, repairing blocked doors, supervising little service droids. It isn't a fun job, and at the end of the session you're tired, but you have the feeling of doing something useful.",
    c1: "I'll stop for now",
    a1: "bounty:-20|goNav:area4_1"
};

this.area4_52 = {
// MslyLkd's mod-
//    text: "During the session you feel tired and careless, and as a result you get into an accident and wound yourself. Nothing to worry, you get bandaged and treated readily. But your session ends here, and the associated bonus will be reduced.",
	text: "During the session you feel tired and careless, and as a result you get into an accident and wound yourself.  Not to worry- you get bandaged and treated readily.  Your session ends here, and the associated bonus is reduced.",
    c1: "I should be more careful",
//    a1: "bounty:-5|health:1,2",
	a1: "health:1,2|bounty:-5|goNav:area4_1",
};

this.area4_6 = {
    text: "The door to the pilot course hall is closed. An officer tells you that the courses are suspended for an undefined time.",
// MslyLkd's mod-
//    c1: "Go away",
	c1: area4_2.c1,
    a1: "goNav:area4_1"
};

/////////////////// STATION MAP ///////////////////

this.map = {
    text: " ",
    background: "litf_bg_stationmap.png",
    c1: "Back to the lobby",
    a1: "goNav:back"
};

/*
this.map1 = {
    text: "\n>>",
    background: "litf_bg_stationmap.png",
    c1: "Back to the lobby",
    a1: "goNav:lobby1"
};

this.map2 = {
    text: "\n\n\n\n\n\n>>",
    background: "litf_bg_stationmap.png",
    c1: "Back to the lobby",
    a1: "goNav:lobby2"
};

this.map3 = {
    text: "\n\n\n\n\n\n\n\n\n\n>>",
    background: "litf_bg_stationmap.png",
    c1: "Back to the lobby",
    a1: "goNav:lobby3"
};

this.map4 = {
    text: "\n\n\n\n\n\n\n\n\n\n\n\n\n\n>>",
    background: "litf_bg_stationmap.png",
    c1: "Back to the lobby",
    a1: "goNav:lobby4"
};
*/

/////////////////// SPECIAL LOCATION ///////////////////

this.bar0 = {
// MslyLkd's mod- copyedit & location token.  To enter the bar- use area3_1.a2
//	text: "The place is full of pilots. You don't see free seats at the tables, so you decide to sit at the counter. Everyone is pretty chatty: you hear talks of all kinds, public or private, and the usual jokers who take the opportunity to have a nice drink with friends.",
	text: "The tavern is full of pilots.  You don't see free seats at the tables, so you sit at the counter.  Everyone is pretty chatty.  You hear talk of all kinds- public and private plus the usual jokers who take the opportunity to have drinks with friends.",
	background: "litf_bg_localbar.png",
	r1: "flag_drinkChallenge=0",
//		c1: "A group at a table repeat loud: 'CHALLENGE! CHALLENGE!' Maybe I could check?",
		c1: "A group at a table chants: 'SHOTS!  SHOTS!  SHOTS!'  Go check it out",
		a1: "goNav:bar1",
	r2: "flag_chatBartender=0",
//		c2: "I could talk a bit with the bartender",
		c2: "Talk a bit with the bartender",
		a2: "goNav:bar2",
	r3: "flag_offerToCounter=0,credits>=150",
//		c3: "I could offer a drink to everyone at the counter (should cost no more than 150cr)",
		c3: "Offer a round to everyone at the counter (should cost no more than " +
			formatCredits (150, false, true) + ")",
		a3: "goNav:bar3",
//	c4: "Exit the Bar",
	c4: "Exit the tavern",
//		a4: "time:300|goNav:area3_1"
		a4: "time:300|goNav:leave"
};

this.bar0_1 = {
// MslyLkd's mod- copyedit & location token
//	text: "Suddenly, a brawny bouncer blocks you right at the entrance of the Bar. He's staring right into your eyes. 'We don't like cheaters or drunkard here, and you don't seem a cheater to me. Get lost', he says to you with a deep, serious voice.",
	text: "A brawny bouncer blocks you at the entrance.  He's staring right into your eyes. 'We don't like cheaters or drunkards here, and you don't seem a cheater to me.  Get lost', he says with a deep, serious voice.",
//	c1: "I think I'll follow your advice",
	c1: "I think I'll follow his advice",
//		a1: "goNav:area3_1"
		a1: "goNav:leave"
};

// shots challenge

this.bar1 = {
// MslyLkd's mod- copyedit
//	text: "You sit in front of a $SPECIES_S$ that explains to you the rules of the challenge. 'A liquor is chosen. I drink a glass. You drink a glass. Again. Until one crashes. The bet is 50cr. You're in?",
	text: "You sit in front of a $SPECIES_S$ who explains the rules of the challenge.  'A liquor is chosen.  I do a shot, you do a shot.  Again.  Until one crashes.  The bet is " + formatCredits (50, false, true) + ".  You in?'",
	background: "litf_bg_localbar.png",
	r1: "credits>=50",
//		c1: "Yes, you can count me in",
		c1: "Let's do this",
		a1: "credits:-50|goNav:bar11",
	c2: "Not tonight, thanks",
		a2: "goNav:bar0"
};

this.bar11 = {
// MslyLkd's mod- copyedit
//	text: "Today the liquor is the $LIQUOR$. 'First glass is mine'. The $SPECIES_S$ raise the glass and drink the content in one gulp.",
	text: "Today the liquor is the $LIQUOR$.  The $SPECIES_S$ says, 'First is mine' then raises his glass and downs the shot.",
	background: "litf_bg_localbar.png",
	c1: "It's my turn",
		a1: "goNav:bar12"
};

this.bar12 = {
// MslyLkd's mod- copyedit
	text: "You raise your glass and drink. It burns, but you can stand it.",
	background: "litf_bg_localbar.png",
//	c1: "It's your turn",
	c1: "Piece o' cake",
		a1: "goNav:bar111"
};

this.bar111 = {
// MslyLkd's mod- copyedit
//	text: "'NEXT ROUND! You're not a newbie, I see!'\nThe $SPECIES_S$ raise the glass and drink the content in one gulp.",
	text: "'NEXT ROUND!  You're not a nOOb, I see!'  The $SPECIES_S$ raises his glass and downs the shot.",
	background: "litf_bg_localbar.png",
	c1: "It's my turn",
		a1: "goNav:bar112"
};

this.bar112 = {
// MslyLkd's mod- copyedit
	text: "You raise your glass and drink...",
	background: "litf_bg_localbar.png",
//	c1: "It's your turn",
	c1: "Bring it on",
		a1: "goNav:bar1111"
};

this.bar1111 = {
// MslyLkd's mod- copyedit
//	text: "'NEXT ROUND!'\nThe $SPECIES_S$ raise the glass and drink the content in one gulp.",
	text: "'NEXT ROUND!'  The $SPECIES_S$ raises his glass and downs the shot.",
	background: "litf_bg_localbar.png",
	c1: "It's my turn...",
		a1: "goNav:bar1112,bar1112,bar1112,bar1112,bar1113,bar1113"
};

this.bar1112 = {
// MslyLkd's mod- copyedit
	text: "You raise your glass and drink...",
	background: "litf_bg_localbar.png",
//	c1: "It's your turn!",
	c1: "Neksht...",
		a1: "goNav:bar1111,bar1111,bar1111,bar1111,bar1114,bar1114"
};

this.bar1113 = {
// MslyLkd's mod- copyedit & location token
//	text: "You focus on the glass... but now you see two glasses on the table. No, three glasses... dancing glasses. You move your hand but you can't take them, they always slip away. Then table becomes bigger and someone turn off the lights.\n\nYou awake in the street, outside the bar. Your rival pats you on the shoulder: 'You're not bad. But I won. Thanks for the money.'",
	text: "You focus on the glass... but now you see two glasses on the table.  No, three glasses... dancing glasses.  You move your hand, but you can't take them- they always slip away.  The table becomes bigger and someone turns off the lights.\n\nYou come to in the street outside the bar.  Your rival pats you on the shoulder and says, 'yer not bad, but I won.  Thansh for the 50.'",
	c1: "...burp",
//		a1: "flag_drinkChallenge:1|flag_getDrunk:1|time:3600|goNav:area3_1"
		a1: "flag_drinkChallenge:1|flag_getDrunk:1|time:3600|goNav:leave"
};

this.bar1114 = {
// MslyLkd's mod- copyedit & location token
//	text: "'NEXT ROUND!'\nThat said, the $SPECIES_S$ collapses on the table! You raise one arm for victory while the other pilots at the table applaud you. The bet is yours. Too bad you're drunk, after all, because you can not keep your balance. The owner goes with you to the exit and gently throw you out. 'You can go back when you learn how to walk alone!'. The door closes but you can hear the laughters from inside.",
	text: "'NEXT ROUND!'  That said, the $SPECIES_S$ collapses on the table!  You raise one arm for victory while the other pilots at the table applaud you.  The bet is yours.  Too bad you're drunk and can't keep your balance.  The owner goes with you to the exit and gently throws you out.\n\n'Come back when you learn how to walk alone!'  The door closes, and you can hear the laughter from inside.",
	c1: "It's ok. I won!",
//		a1: "flag_drinkChallenge:1|flag_getDrunk:1|credits:100|time:1800|goNav:area3_1"
		a1: "flag_drinkChallenge:1|flag_getDrunk:1|credits:100|time:1800|goNav:leave"
};

// bartender chat

this.bar2 = {
	text: "The $SPECIES_S$ bartender pours a glass of liquor, and you start chatting. After a bit, the bartender tells you: $GOSSIP$.",
	background: "litf_bg_localbar.png",
	c1: "Ok, I think it's enough for now",
		a1: "time:300|goNav:bar0"
};

// buying rounds

this.bar3 = {
// MslyLkd's mod- copyedit
//	text: "The customers at the counter rejoice and take their drinks. Many begin to sing. After everyone has been drinking his glass, another commander stands up and offers another round. And you have to start over!",
	text: "The customers at the counter rejoice and take their drinks.  Many begin to sing.  After everyone has emptied his/her/its glass, another commander (no, not that one) stands and yells, 'Another round!'  You have to start over!",
	background: "litf_bg_localbar.png",
	c1: "Let's go, another round!",
		a1: "credits:-50,-150|reputation:5|goNav:bar31",
//	c2: "Ok, I'm out, I don't want to go too far...",
	c2: "I'm out- don't want to go too far...",
		a2: "flag_offerToCounter:0|time:600|goNav:bar0"
};

this.bar31 = {
// MslyLkd's mod- copyedit
//	text: "You have just finished your glass, when another commander stands up and offer another round! Screams of joy and new songs! The party goes on!",
	text: "You just finished your glass when another commander stands and yells, 'Another round!'  Screams of joy and new songs!  The party goes on!",
	background: "litf_bg_localbar.png",
	c1: "Let's go, another round!",
		a1: "reputation:3|goNav:bar311,bar313",
//	c2: "Ok, I'm out, I don't want to go too far...",
	c2: "I'm out- don't want to go too far...",
		a2: "flag_offerToCounter:0|time:1200|goNav:bar0"
};

this.bar311 = {
// MslyLkd's mod- copyedit
//	text: "And this glass is empty too! You try to say something when someone offers a new round! The glasses go around the counter, and you find one in your hands. This things could never end...",
	text: "And this glass is empty too!  You try to say something when someone offers a new round!  The glasses go around the counter, and you find one in your hands. This thing might never end...",
	background: "litf_bg_localbar.png",
	c1: "Let's go, another round...",
		a1: "reputation:2|goNav:bar31,bar313",
//	c2: "Ok, I'm out, I don't want to go too far...",
	c2: "I'm out- don't want to go too far...",
		a2: "flag_offerToCounter:0|time:2400|goNav:bar0"
};

this.bar313 = {
// MslyLkd's mod- copyedit & location token
//	text: "You say: 'Another round!', but there isn't another round. And there isn't the counter anymore. You open your eyes and you're on the street. The bar is closed since an hour at least. You decide to keep sitting in your place for a while, just to clear your mind.",
	text: "You say: 'Another round!', but there isn't another round.  And there isn't the counter anymore. You open your eyes, and you're on the street.  The bar had closed an hour ago at least. You decide to keep sitting in place for a while, just to clear your mind.",
	c1: "Five minutes. Five minutes and then I go...",
//		a1: "reputation:-15|flag_getDrunk:1|time:14400|goNav:area3_1"
		a1: "reputation:-15|flag_getDrunk:1|time:14400|goNav:leave"
};

////

this.art0 = {
	text: "The art gallery is open to the public, and there is a good attendance. You see people conversing about the present exhibit, comparing different painting schools. You go to the entrance and read the following announcement:\n\nTHE ART GALLERY IS PROUD TO PRESENT\n\n[[ The masters of $ARTGENRE$ ]]\n\nFOR AN INDEFINITE AND EXTREMELY VARIABLE AMOUNT OF TIME\n\nAdmission price: 10cr",
    r1: "credits>=10",
	c1: "Let's take a look",
	a1: "credits:-10|flag_artGallery:1|goNav:art11,art12,art13",
	c2: "Exit the Art Gallery",
	a2: "goNav:area3_3"
};

this.art11 = {
	text: "The display was better than expected. You have been amazed by certain shapes and combinations of colors and light effects. Not bad. Really.",
	c1: "Exit the Art Gallery",
	a1: "time:3600|goNav:area3_3"
};

this.art12 = {
	text: "At the end of the visit you understand that the only impression left on you is an irresistibly boring one.",
	c1: "Exit the Art Gallery",
	a1: "time:1200|goNav:area3_3"
};

this.art13 = {
	text: "'What's this vileness! This is an insult to Art in every form and conception!' You can't stand looking at these horrible monstrosities for another second!",
	c1: "Exit the Art Gallery",
	a1: "time:600|goNav:area3_3"
};

////

this.cinema0 = {
	text: "A robo-clerk is showing the following announcement:\n\nTONIGHT AT THE CINEMA HALL\n\nAn extended retrospective on the $MOVIEGENRE$ genre\n\n\Three movies and a debate on the history and the importance of the genre in the review of the latest artistic and technological developments.\n\nPrice for admission: 30cr",
    r1: "credits>=30",
	c1: "I'm curious to see what sort of movies are these",
	a1: "credits:-30|flag_cinemaHall:1|goNav:cinema11,cinema12,cinema13",
	c2: "Exit the Cinema Hall",
	a2: "goNav:area3_3"
};

this.cinema11 = {
	text: "The movies were great and the debate was interesting. All in all it was a good show.",
	c1: "Exit the Cinema Hall",
	a1: "time:7200,14400|reputation:1,2|chancesick:10|goNav:area3_3"
};

this.cinema12 = {
	text: "You liked the movies but at the end you felt pretty tired, so you exited the building before the debate.",
	c1: "Exit the Cinema Hall",
	a1: "time:6000,13200|chancesick:10|goNav:area3_3"
};

this.cinema13 = {
	text: "You don't know what were you expecting from this show, but it hasn't been a good idea. You decided to walk out, since nobody will ever give back to you the time you passed in the Hall...",
	c1: "Exit the Cinema Hall",
	a1: "time:3600,7200|chancesick:10|goNav:area3_3"
};

////

this.opera01 = {
	text: "Near the entrance you read the following announcement:\n\nTONIGHT THE OPERA HOUSE PRESENTS\n\nThe exclusive $MUSICGENRE$ singer that will play a selection of $GENDERPOSS$ best hits.\n\nAdmission price: 20cr",
    r1: "credits>=20",
	c1: "That's a genre of music that I didn't know existed",
	a1: "credits:-20|flag_operaHouse:1|goNav:opera11,opera12,opera13",
	c2: "Exit the Opera House",
	a2: "goNav:area3_3"
};

this.opera02 = {
	text: "Near the entrance you read the following announcement:\n\nTONIGHT THE OPERA HOUSE PRESENTS\n\nThe exclusive $MUSICGENRE$ musician that will play a selection of $GENDERPOSS$ best hits.\n\nAdmission price: 20cr",

	r1: "credits>=20",
	c1: "That's a genre of music that I didn't know existed",
	a1: "credits:-20|flag_operaHouse:1|goNav:opera11,opera12,opera13",

	c2: "Exit the Opera House",
	a2: "goNav:area3_3"
};

this.opera03 = {
	text: "Near the entrance you read the following announcement:\n\nTONIGHT THE OPERA HOUSE PRESENTS\n\nThe exclusive $MUSICGENRE$ band, ready to awe the audience with the tracks from their latest album\n\nAdmission price: 20cr",

	r1: "credits>=20",
	c1: "That's a genre of music that I didn't know existed",
	a1: "credits:-20|flag_operaHouse:1|goNav:opera11,opera12,opera13",

	c2: "Exit the Opera House",
	a2: "goNav:area3_3"
};

this.opera11 = {
	text: "The performance was a success. When you exit the show, your ears are still ringing. It was a riveting experience, that allowed you to explore unknown musical landscapes. You won't forget this concert for some time.",
	c1: "Exit the Opera House",
	a1: "time:3600,10800|reputation:1,2|chancesick:10|goNav:area3_3"
};

this.opera12 = {
	text: "When you exit the show, you fail to grasp the appeal of the exhibition. You keep a vague memory of strange melodies and awkward composition, nothing worthy of remembering.",
	c1: "Exit the Opera House",
	a1: "time:3600,10800|chancesick:10|goNav:area3_3"
};

this.opera13 = {
	text: "'LET-ME-PASS WHAT-IS-THIS-AUDIO-TORTURE MY-EARS-ARE-BLEEDING I-HAVE-TO-GET-OUT-OF-HERE!'",
	c1: "Exit the Opera House",
	a1: "time:300,1200|chancesick:10|goNav:area3_3"
};

////

this.med0 = {
	text: "The place is clean and illuminated. Everything is white. The receptionist scans you for a moment before talking: 'Hello Commander, we can provide you services to rid of your physiological annoyances.'",
	background: "litf_bg_medcenter.png",

    //r1: "health>0",
	c1: "Wound Treatment and Tissue Repair",
	a1: "if:health>0?goNav:med1;goNav:med1_1",

    //r2: "sickness>0",
	c2: "Virus and germs Nano disinfestation",
	a2: "if:sickness>0?goNav:med2;goNav:med1_1",

    //r3: "flag_getDrunk=1",
	c3: "Quick alcoholic purge (can generate allergic reactions)",
	a3: "if:flag_getDrunk=1?goNav:med3;goNav:med3_1",

    r4: "tech=hitech,maxStrength<200",
    c4: "Recovering Therapy",
    a4: "goNav:med4",

	c5: "Exit the Medical Center",
// MslyLkd's mod- location token
//	a5: "goNav:area2_2"
	a5: "goNav:leave"
};

this.med1 = {
	text0: "tech=lowtech|'Technology on this station allows us to heal only light wounds. The price for treatment is 100cr.'",
	text1: "tech=avgtech|'Technology on this station allows us to heal serious wounds. The price for treatment is 150cr.'",
	text2: "tech=hitech|'We can heal wounds of every type and severity. The price for treatment is 250cr.'",
	background: "litf_bg_medcenter.png",

    r1: "paytreatment=1",
	c1: "I need the treatment, now",
	a1: "paytreatment:health|goNav:med0",

	c2: "Thanks, I've changed my mind",
	a2: "goNav:med0"
};

this.med1_1 = {
    text: "After a second the receptionist says: 'Our analysis confirms that you have no need for our treatment. You're already healthy enough! Please come back if your condition deteriorates. We hope to see you soon. Goodbye.'",
    background: "litf_bg_medcenter.png",
    c1: "I don't know if I want to see you soon...",
    a1: "goNav:med0"
};

this.med2 = {
	text0: "tech=lowtech|'Technology on this station allows us to heal only light sickness. Our price for treatment is 100cr.'",
	text1: "tech=avgtech|'Technology on this station allows us to heal serious sickness. The price for treatment is 150cr.''",
	text2: "tech=hitech|'We can heal sickness of every type and severity. Our price for treatment is 250cr.'",
	background: "litf_bg_medcenter.png",

    r1: "paytreatment=1",
	c1: "I need the treatment, now",
	a1: "paytreatment:sickness|goNav:med0",

	c2: "Thanks, I've changed my mind",
	a2: "goNav:med0"
};

this.med3 = {
	text: "'The treatment is free. Please enter the purging machine and stay still until the process is terminated.'\n\nYou enter the capsule and pass the worst three minutes of the day so far. But the results are worth the annoyance - you feel your mind clear and stabilise.",
	background: "litf_bg_medcenter.png",
	c1: "I really needed this",
	a1: "flag_getDrunk:0|chancesick:10|goNav:med0"
};

this.med3_1 = {
    text: "After a second the receptionist says: 'I'm sorry to inform you that this treatment isn't applicable to sober people. You should come back when you are sufficiently drunk to be allowed to endure the treatment. We hope to see you soon. Goodbye.'",
    c1: "I'll be back when I'll be drunk, then",
    a1: "goNav:med0"
};

this.med4 = {
    text: "'This treatment allows the body to recover from damage endured over time, following prolongated work or efforts of various nature. The price for treatment is 400cr. The process will last about two hours.'",
    background: "litf_bg_medcenter.png",
    r1: "credits>=400",
    c1: "Yes, you can proceed",
    a1: "maxStrength:250|time:7200|credits:-400|goNav:med0",
    c2: "I don't think this is the right time for this...",
    a2: "goNav:med0"
};

////

this.hotel0 = {
    text: "In the main hall you can see the robo-receptionist. Little three-wheeled droids pick and transport baggages to the guest rooms, crossing each other at high speed without crashing - it's almost a miracle.\n\nThe robo-receptionist says: 'Welcome, guest. I'm glad to announce that we have available rooms. You can spend 6 hours in a room for 60cr in advance. A modest price, in my opinion. Do you want to take a room?'",
    c1: "Yes, please, I want to get some rest",
    a1: "if:credits>=60?goNav:hotel2;goNav:hotel1",
    c2: "No, thanks",
// MslyLkd's mod- location token
//    a2: "goNav:area2_1"
    a2: "goNav:leave"
};

this.hotel1 = {
    text: "The robo-receptionist scans you. 'I'm sorry, but I have to cancel the booking process, as I see that you haven't the required money for the payment. Good day.' After this, it turns to another guest and continues working.",
    c1: "I guess they don't give credit",
    a1: "goNav:hotel0"
};

this.hotel2 = {
    text: "The robo-receptionist instructs a droid to take you to your room. The droid seems somewhat disappointed about your lack of baggages, but runs forward to the nearest elevator. After a brief walk, the droid stops at the door of the $ROOMNUM$, and emits a high-pitched sound before going away.\n\nYou enter the room. It's clean, of an average quality that doesn't impress you. But the bed is comfortable and the bathroom has hot water. A video terminal offers you a wide selection of movies or local transmissions.",
    c1: "These 6 hours won't be a problem",
    a1: "credits:-60|time:21600|goNav:hotel3"
};

this.hotel3 = {
    text: "You hear a buzzing sound. Your booking time is ended. You leave the room and return outside. You feel relieved and relaxed.",
    c1: "It has been a nice distraction",
// MslyLkd's mod- location token
//    a1: "goNav:area2_1"
    a1: "goNav:leave"
};

////

this.wwvt0 = {
    text: "The WWVT building resembles an amusement park, filled with neon signs and holo-videos of strange planets with extreme climates. There are pictures of big fanged predators, and plants and trees of different varieties and colours. A guide guarantees an authentic immersive experience, a unique virtual 4 hour safari. All of this for only 5cr.",
    c1: "Let's try this virtual experience",
    a1: "if:credits>=5?goNav:wwvt2;goNav:wwvt1",
    c2: "I'm not in the mood for simulated dangerous situations",
    a2: "goNav:area3_1"
};

this.wwvt1 = {
    text: "The ticket-droid can't give you the ticket - you haven't the 5cr, as required. No money, no entry.",
    c1: "Maybe another time",
    a1: "goNav:area3_1"
};

this.wwvt2 = {
    text: "You join a group of people, and the guide leads you into a great empty hall. 'Some of you have already seen or visited an holographic ambient, but I assure you this is something more. Stay ready, let's begin this voyage.'\nThe lights go out, and you notice shapes and colours gradually appearing out of thin air.",
    c1: "It's like another place is becoming real... with us in it",
    a1: "credits:-5|goNav:wwvt2_1,wwvt2_2,wwvt2_3,wwvt2_4"
};

this.wwvt2_1 = {
    text: "The tour brings you onto a glacial planet, covered with ice and wind-blown plains. You see enormous mountains and deep white abysses, a furious blizzard filled of spiky ice shards, and slow armored creatures that walk without pause on the white plains. Around them other little quick creatures jump and run, sometime digging holes in the ice. The big-armoured creature use a long and flexible tail to fish into the holes, and the little quick ones hide under it when the blizzard comes.",
    c1: "Really an unusual experience",
    a1: "time:14400|goNav:area3_1"
};

    text: "The tour brings you on a desert planet. Everything is still, there's no wind, no clouds in the sky, all you see is an endless sea of yellowish sand. Only after a while you notice little creatures running in the sand, almost perfectly concealed by their colors. You don't understand if they're fleeing from something, until a huge horned head surfaces from the sand with a loud roar. The little runners quickly change directions and run away from the creature, picking little straws of a purple plant in the process.",
    c1: "It was like I was really there",
    a1: "time:14400|goNav:area3_1"
};

this.wwvt2_3 = {
    text: "The tour brings you onto an oceanic planet. You're in the middle of an endless sea. In the waters you see a school of a thousand fish that form a rotating circle. Other fish, of various sizes, shape another smaller circle. This strange and hypnotic ritual gets interrupted by a couple of big predators that start hunting the fish.",
    c1: "Impressive...",
    a1: "time:14400|goNav:area3_1"
};

this.wwvt2_4 = {
    text: "The tour brings you onto a jungle planet. Everything is covered in grass, with huge plants and the tallest tree you have ever seen. There are hundreds of animal calls, a symphony that walks, jumps, crawls and climbs the trees. The light of two suns shines over life and death circling each other, a complex and complete ecosystem untouched for thousands of years.",
    c1: "It was an awesome experience, I have to admit it",
    a1: "time:14400|goNav:area3_1"
};

////

this.storage0 = {
    text0: "You walk towards the passage to the Storage section, where a group of workers is chatting. When they see you, they block the passage.\n",
    text1: "stance>-25|One of them takes a step forwards and talks directly to you: 'Hey, this area is for authorized personnel only. This means you can't walk there, at least until you get a permission, and we are the ones who can get you a one-time permission for 25cr.'",
    text2: "stance<=-25|One of them makes a step forward, but another worker stop $GENDEROBJ$, look at you and says: 'The boys told me this is a friend. This commander can pass.'",
    r1: "stance>-25",
    c1: "Pay and enter the Storage section",
    a1: "if:credits>=25?credits:-25§goNav:storage2;goNav:storage1",
    r2: "stance<=25",
    c2: "Visit the Storage section",
    a2: "goNav:storage2",
    c3: "Go back to the Cargo Area",
    a3: "goNav:area1_2"
};

this.storage1 = {
    text: "Where is the money? This isn't enough! Get lost before we lock you in a crate of trumbles!",
    c1: "Ok ok there's no need to be so angry",
    a1: "goNav:area1_2"
};

this.storage2 = {
    text: "You're in the Storage section.\n\nThe cargo from ships comes here once it is removed from containers. It's basically a huge warehouse filled with containers and crates of various shapes and size, that create walls, corridors and rooms between them.\n\nFrom here you can return to the Cargo Area.",
    background: "litf_bg_storagearea.png",
    c1: "Exit to the Cargo Area",
    a1: "goNav:area1_2"
};

////

this.plounge0 = {
// MslyLkd's mod- copyedit & location token
//    text: "In the lounge, dozens of persons are fiddling with terminals trying to get a passage out of the station. A number of monitors fixed to the walls display local and extra-system news. Other screens shows data about current departing and incoming passenger flights. You can use a terminal to see if there are available contracts.",
	text: "You are standing in a large passenger lounge.  There are dozens of people of various species here.  Many are seated and chatting or reading or resting.  Some are standing near wall monitors and watching transport information or news reports.  Others are fiddling with the public terminals- probably trying to book passage from the station.",
//    c1: "Unfortunately there are no suitable offers",
//    a1: "goNav:area2_1"
	c1: "Check a terminal", a1: "goNav:plounge0_1",
	c2: "Leave the lounge", a2: "goNav:leave",
};

// MslyLkd's mod-
this.plounge0_1 = {
	text: plounge0.text + "\n\nAfter looking through various bulletins and postings, you don't see any suitable offers.",
	c1: plounge0.c2, a1: "goNav:leave",
}

////

this.church0 = {
    text: "The hall has a strange configuration: you can't say for sure, but it seems that the walls change and slide modifying the shape of the building. On the walls you see pictures from several systems. The wall opposite to the entrance shows a hooded man in an embracing pose, surrounded by shining stars. In front of this sacred picture there's an altar, and a series of benches. A soothing melody plays in the background. Everything is silent.",
    c1: "This place is a little weird. Maybe I'll explore it another time",
// MslyLkd's mod- location token
    a1: "goNav:leave",		// all subsequent churches reference this property
// Cholmondely's mod-
	c2: "How relaxing! I'll stay a while and meditate", a2: "goNav:church0_1"
};

////

this.bookshop0 = {
    text: "You enter into an old-style shop built with some exotic type of wood. There are many shelves full of books, volumes, tomes of every size and colour: on the cover you read titles in various languages. You see piles of books on the ground and in the corner. It's impossible to estimate the exact size of the shop - this place is like a little maze.",
    c1: "There's too much dust here. I need a breath of fresh air",
// MslyLkd's mod- location token
//    a1: "goNav:area2_2",
    a1: "goNav:leave",
};

////

this.museum0 = {
    text: "A number of slightly fluorescent signs guide you along the suggested path, allowing you to view and examine the collection of ancient and alien artifacts kept inside safe glasses box. Everyone whispers, fearing to disturb the tranquillity of the halls.",
    c1: "Visit the museum",
    a1: "time:1800|goNav:museum1"
};

this.museum1 = {
    text: "At the end of your visit, you notice you felt impressed $MUSEUMPIECE$.\n\nYou reach the exit, where a stand ask the visitors to contribute to the museum maintenance. You can make an offer, if you want.",
    c1: "Give nothing",
    a1: "go:",

    r2: "credits>=1",
    c2: "Give 1cr",
    a2: "reputation:1|credits:-1|goNav:area3_1",

    r3: "credits>=10",
    c3: "Give 10cr",
    a3: "reputation:5|credits:-10|goNav:area3_1",

    r4: "credits>=100",
    c4: "Give 100cr",
    a4: "reputation:50|credits:-100|goNav:area3_1",

    r5: "credits>=1000",
    c5: "Give 1000cr",
    a5: "reputation:500|credits:-1000|goNav:area3_1",
};

////

/*
this.fit0 = {
    text: "You walk to the reception, where a droid informs you that an unspecified malfunction prevents the Universal Fitness Badge validation. The center is closed until the situation will be fixed.",
    c1: "That's a pity. I'll try again in the future",
    a1: "goNav:area3_2"
};
*/

this.fit0 = {
    text0: "You walk to the reception, where a droid greets you.\n",
    text1: "checkFitBadge=0|The droid tries to scan something and then says: 'I see you aren't in possession of an Universal Fitness Badge. You need one to spend time in Fit Centers like this. You get a monthly subscription with it, for 15cr.'",
    //text2: "checkFitBadge=1|'I see that your subscription is expired. Do you want to renew it for 10cr?'",
    text2: "checkFitBadge=1|The droid scans the badge and then says: 'Sorry, it seems the expiration date is passed. You need to renew your subscription to continue using the Fit Center machinery. It will cost you 10cr for another month.'",
    text3: "checkFitBadge=2|The droid scans the badge and then says: 'Your subscription is still valid. You can proceed to the Health Validation Room. Good day",

    r1: "checkFitBadge=0",
    c1: "Ok, I'll subscribe",
    a1: "goNav:fit1_1",

    r2: "checkFitBadge=1",
    c2: "Ok, I'll renew the subscription",
    a2: "goNav:fit1_2",

    r3: "checkFitBadge=2",
    c3: "Enter the Health Validation Room",
    a3: "goNav:fit2",

    c4: "Maybe another time",
    a4: "goNav:area3_2"
};

this.fit1_1 = {
    text0: "credits>=15|'Here is your new badge. You have free access to any Fit Center for an entire month. You can proceed to the Health Validation Room now. Good day.'",
    text1: "credits<15|'It seems that you don't own the required money for buying the Universal Fitness Badge. I suggest you return with the required sum. Good day.'",

    r1: "credits>=15",
    c1: "Enter the Health Validation Room",
    a1: "credits:-15|writeTime:fitBadge_2592000|goNav:fit2",

    c2: "Thanks for the badge. See you later",
    a2: "credits:-15|writeTime:fitBadge_2592000|goNav:area3_2"
};

this.fit1_2 = {
    text0: "credits>=10|'I have just renewed your subscription for another month. You can proceed to the Health Validation Room now. Good day.'",
    text1: "credits<10|'It seems that you don't have the required money for buying the Universal Fitness Badge. I suggest you return with the required sum. Good day.'",

    r1: "credits>=10",
    c1: "Enter the Health Validation Room",
    a1: "credits:-10|writeTime:fitBadge_2592000|goNav:fit2",

    c2: "Thanks for renewing my subscription. See you later",
    a2: "credits:-10|writeTime:fitBadge_2592000|goNav:area3_2"
};

this.fit2 = {
    text0: "A couple of robo-docs makes an examination of you while producing a series of bips in various tones. After a couple of minutes they give you their response:\n",
    text1: "health>0|'Negative: You're wounded. You can't access the gym in this condition.'\n",
    text2: "sickness>0|'Negative: You're sick. You can't access the gym in this condition.'\n",
    text3: "maxstrength<100|'Negative: Your body has endured too much damage.  You can't access the gym in this condition. We suggest you subsribe for a recuperational therapy from a Medical Center - this feature is available only on hi-tech systems.'",
    text4: "health=0,sickness=0,maxstrength>=100|'Positive: you can access the gym. Good day.'",

    r1: "health=0,sickness=0,maxstrength>=100",
    c1: "Enter the gym",
    a1: "goNav:fit3",

    c2: "I changed my mind. Goodbye",
    a2: "goNav:area3_2"
};

this.fit3 = {
    text: "This building is comprised of various floors, and is full of gym machinery for every type of exercise and every type of alien race.",
    c1: "Start exercising",
    a1: "if:fitDamageChance<=50?goNav:fit3_1;fit3_2",

    c2: "I have changed my mind. Maybe another time",
    a2: "goNav:area3_2"
};

this.fit3_1 = {
    text: "At the end of your training period you have a shower. You feel tired but somewhat relaxed, and your body feels a little more toned.",
    c1: "Exit the Fit Center",
    a1: "time:3600|strength:10,40|checkFitDamage:1|writeTime:lastFitSession_0|goNav:area3_2"
};

this.fit3_2 = {
    text: "While you're exercising, you feel an acute pain that makes you cringe and almost scream. Other people in the gym run to you, and call for help. Preliminary medical scans show that you hurt yourself: you can't continue exercising until you get healed.",
    c1: "Exit the Fit Center",
    a1: "time:1800|fitDamage:1|writeTime:lastFitSession_0|goNav:area3_2"
};

// Cholmondely's mod-
this.bkStrs = {		// dev, testing & demo
	text: "check bookshops",
	c1: "original", a1: "savCnctr:0|goNav:bookshop0",
	c2: "Boorders", a2: "savCnctr:0|goNav:bookshop1",
	c3: "coffee", a3: "savCnctr:0|goNav:bookshop2",
	c4: "boutique", a4: "savCnctr:0|goNav:bookshop3",
	c5: "historical", a5: "savCnctr:0|goNav:bookshop4",
	c6: "religion", a6: "savCnctr:0|goNav:bookshop5",
	c7: "Return", a7: "goNav:areaDev",
	background: "oolite-long-range-chart.png",
}
this.bookshop1 = {
	// ? multiple store names
    text: "You walk into a bright gleaming shop belonging to Boorders, one of those corporate world chains. There is only one copy of each book on display, and if you wish to buy, they will immediately print for you your very own brand-new copy in whichever size or language appeals. There is a small cafe at the back where you can sit and peruse one of their books.",
	c1: "Select a book and make your way to the cafe to look at it",
		a1: "goNav:bookshop1_2,bookshop1_3,bookshop1_4,bookshop1_5",
	c2: "I don't like these big corporate chains. I'm going somewhere more individual",
		a2: "goNav:leave"
}
this.bookshop1_2 = {
	// by Redspear from https://bb.oolite.space/viewtopic.php?p=287311#p287311
	text: "It was just another slow night in Dairyville, or at least that's what officer Jacobs kept telling himself. He'd been in the force long enough to know that things went a whole lot smoother if you saved your questions for the suspects. Sure, this town had it's share of homicides, bank jobs and hit and runs but it was the petty crime that got to you, that made the air taste bitter. Corruption that made the rain soak into your bones until you felt you couldn't get it out without drinking something that your doctor wouldn't recommend; and that made your liver inclined to agree with him. And so here he was, jaded but savvy and with a rookie in tow.\n\nRitz was a nice enough guy, Jacobs had chaperoned much worse than him before, but he was green, green like the grass you only see in a kid's colouring book. a few years ago Jacobs would have wondered which would break first: his world weary cynicism or the kid's naive charm. He'd since stopped wondering...",
	c1: "Return to browse the shelves", a1: "time:300|goNav:bookshop1"
}
this.bookshop1_3 = {
	// by cim from Ship's Library OXP
	text: "The major visible benefit of the Cooperative are the Coriolis stations (and more recently the Dodec and Ico designs) which orbit every known primary planet. These stations - around a cubic kilometre in size - provide a safe haven for the traveller, a stable gateway between inter-system traders (whose ships are rarely atmosphere-capable) and in-system shuttles, and a base for police patrols and operations. The interior is carefully designed to allow as many species as possible to coexist comfortably, with high ceilings for flying species, water-filled channels for aquatic species, and facilities at a range of sizes, temperatures and gravitational levels.\n\nThe central axis of the station is filled with the docks, capable of holding over three hundred ships (mostly small shuttles and transports) while they are refuelled, serviced, and have their cargo exchanged. At busy times, thirty ships an hour may be launching or landing.\n\nThe middle to outer sections contain offices, habitation, entertainment facilities, and viewing galleries. In addition to the large transient population of ship crews, most stations have around ten to twenty thousand permanent occupants, as well as many visitors from the planet's surface for whom this is the closest they wish to go to space.",
	c1: "Return to browse the shelves", a1: "time:300|goNav:bookshop1"
}
this.bookshop1_4 = {
	text: "Bicycling for Ladies, by Maria E. Ward\nCHAPTER VIII- The Art of Wheeling a Bicycle.\n\nThere are three very important methods of controlling the bicycle, namely, steering by the hands, guiding by foot-pressure on the pedals, and guiding by the swaying of the body; and these methods may be used separately or in combination.\n\nThe wheels are kept in motion either by pedaling, or simply by gravity in descending a grade. The use of the hands on the handle-bar is two-fold for the inexperienced - for steering and for correcting undue pressure on the pedals. The hand opposite the pedal that receives too much pressure corrects the tendency of the bicycle by an extra pull on the handle-bars. This is very good exercise, but it is a useless expenditure of force, and cannot be prolonged without great fatigue. It is the work of hill-climbing done on the level. The feet are on the pedals, and the natural tendency is to press equally at all times on both pedals and pull at the same time on both handles. One pedal must descend, and the other pedal must ascend; they are attached to the same axle, which is turned by either pedal or both pedals. As the pedals are always on opposite sides of a circle, one is always coming up, and its upward tendency is resisted by any pressure, however slight. The lifting of the foot, therefore, from the ascending pedal means easy wheeling. This is one of the hardest things to realize.",
	c1: "Return to browse the shelves", a1: "time:300|goNav:bookshop1"
}
this.bookshop1_5 = {
	text: "The Gods and Mr. Perrin, A Tragi-Comedy by Hugh Walpole\nChapter IX- The Battle of the Umbrella; With the Ladies I.\n\nISABEL told Mrs. Comber on that same afternoon at tea-time; but that good lady, owing to the interruption of the other good ladies and her own Mr. Comber, was unable to say anything really about it until just before going to bed. Mrs. Comber would not have been able to say very much about it in any case quite at first, because her breath was so entirely taken away by surprise, and then afterwards by delight and excitement. For herself this term had, so far, been rather a difficult affair: money had been hard, and Freddie had been even harder--and hard, as she complained, in such strange, tricky comers--never when you would expect him to be and always when you wouldn't. This Mrs. Comber considered terribly unfair, because if one knew what he was going to mind, one would look out for it and be especially careful; but when he let irritating things pass without a word and then 'flew out' when there was nothing for anyone to be distressed about, life became a hideous series of nightmares with the enemy behind every hedge.",
	c1: "Return to browse the shelves", a1: "time:300|goNav:bookshop1"
}
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
Cholmondely
Archivist
Archivist
Posts: 5345
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: [WIP] Life in the Frontier OXP

Post by Cholmondely »

Part 3 (end):

Code: Select all

this.bookshop2 = {
	text: "You wander inside a shop smelling of coffee - and are offered a cup as you walk in the door. There are a range of books - and they all seem to be about art: paintings, silhouettes, murals, sculpture, architecture, topiary, graffiti asteroids, etc.",
	c1: "You glance through a book while sipping your coffee",
		a1: "goNav:bookshop2_1,bookshop2_2,bookshop2_3,bookshop2_4",
	c2: "Finish your coffee and leave", a2: "goNav:leave"
}
this.bookshop2_1 = {
	text: "The History of Silhouettes, by E. Nevill Jackson\nChapter II. The Coming of the Silhouette and its Passing.\n\nThere is a simplicity in the silhouette picture which brings it nearer to the Japanese print in its effect upon the mind than any other expression in art. All our attention is concentrated on outline, and in consequence there is a directness and vigour in the likeness which are lacking in more complex studies. Some Japanese artists, recognising this peculiar quality in the black profile portrait, supplement a conventionally drawn coloured portrait with a silhouette.\n\nIn Europe, during the last decade of the eighteenth century, the time was ripe for some popular outlet for the newly awakened interest in the old Greek classical method, for the recently excavated wonders revealed at Pestum and Pompeii had appealed strongly to the popular taste, causing Greek purity of line and simplicity to dominate all ornament.",
	c1: "Return to browse the shelves", a1: "time:300|goNav:bookshop2"
}
this.bookshop2_2 = {
	text: "A Philosophical Inquiry into the Origin of Our Ideas of The Sublime and Beautiful with Several Other Additions, by Edmund Burke\nPart I., 11- Society and Solitude\n\nThe second branch of the social passions is that which administers to society in general. With regard to this, I observe, that society, merely as society, without any particular heightenings, gives us no positive pleasure in the enjoyment; but absolute and entire solitude, that is, the total and perpetual exclusion from all society, is as great a positive pain as can almost be conceived. Therefore in the balance between the pleasure of general society and the pain of absolute solitude, pain is the predominant idea. But the pleasure of any particular social enjoyment outweighs very considerably the uneasiness caused by the want of that particular enjoyment; so that the strongest sensations relative to the habitudes of particular society are sensations of pleasure. Good company, lively conversation, and the endearments of friendship, fill the mind with great pleasure; a temporary solitude, on the other hand, is itself agreeable. This may perhaps prove that we are creatures designed for contemplation as well as action; since solitude as well as society has its pleasures; as from the former observation we may discern, that an entire life of solitude contradicts the purposes of our being, since death itself is scarcely an idea of more terror.",
	c1: "Return to browse the shelves", a1: "time:300|goNav:bookshop2"
	// add link to origin location
}
this.bookshop2_3 = {
	text: "Placeholder page\n\nYou find tips about buying cut-price miniature trees from Bemaera (cut-price luxuries on next visit there)",
	c1: "Return to browse the shelves", a1: "time:300|goNav:bookshop2"
}
this.bookshop2_4 = {
	text: "Placeholder page\n\nYou find advice about selling sculptures in Tibecea (better prices for luxuries on next visit there)",
	c1: "Return to browse the shelves", a1: "time:300|goNav:bookshop2"
}
this.bookshop3 = {
	text: "You stroll into a boutique which is decorated in pastel pinks and blues. There is a large collection of books, which all seem to be about romance. Dashing heroes and heroines wandering off on adventures in space and performing acts of derring-do as they lose and find each other.",
	c1: "Great! Let's see what's here...", a1: "goNav:bookshop3_1,bookshop3_2",
	c2: "This is not my sort of thing. Maybe there is somewhere else more interesting",
		a2: "goNav:leave"
}
this.bookshop3_1 = {
	text: "Ralph 124C 41+, A Romance of the Year 2660, by Hugo Gernsback\n\n11- THE FLIGHT INTO SPACE\n\nHow long he was unconscious Ralph did not know, but when he came to his senses the moon had sunk low on the horizon. He felt unbearably weary and his limbs seemed too heavy to move. For a time he half lay in his seat looking stupidly down at the ocean, his mind a blank.\n\nAll at once it dawned upon him that the seat next to him was empty. 'Alice, Alice,' he muttered, trying to shake off his stupor, 'Alice, where are you?'\n\nThere was no reply. The driver, his hands on the steering disc, was slumped forward in his seat, his head sunk on his breast.\n\nWith a stupendous effort Ralph managed to open the glass window in front of him. Instantly the strong odor of chloroformal almost overpowered him, and a terrible sensation of nausea forced him to cling blindly to his seat. In a moment it passed and he was able to collect his senses somewhat. His first thought was for Alice. His dimmed sight had cleared sufficiently for him to see that she was not in the cab. He thought she must have fallen into the sea, and in his agony he cried aloud her name again and again.",
	c1: "Return to browse the shelves", a1: "time:300|goNav:bookshop3"
}
this.bookshop3_2 = {
	text: "The vortex blaster makes war, by E. E. Smith\n\nCHAPTER THREE- DeLameters and Space-Axe!\n\nCloud wasted no time in swearing; he could swear and act simultaneously. He flashed his cruiser up near the lifeboat, went inert, and began to match velocities even before the Uhalian's heat-beam expired. Since his intrinsic was not very far off, as such things go, it wouldn't take him very long, and he'd need all the time to get ready for what he had to do. He conferred briefly with the boat's Chickladorian pilot upon his visual, then thought intensely.\n\nHe would have to board the lifeboat--he didn't see any other way out of it. Even if he had anything to blast it with, he couldn't without killing innocent people. And he didn't have much offensive stuff; his cruiser was not a warship. She carried plenty of defense, but no heavy offensive beams at all.\n\nHe had two suits of armor, a G-P regulation and his vortex special, which was even stronger. He had his DeLameters. He had four semi-portables and two needle-beams, for excavating. He had thousands of duodec bombs, not one of which could be detonated by anything less violent than the furious heart of a loose atomic vortex.",
	c1: "Return to browse the shelves", a1: "time:300|goNav:bookshop3"
}
this.bookshop4 = {
	text: "You enter a shop with metal shelves of books, all neatly labelled and categorised. The books seem to be all historical and are divided by planet and by political ideology. The selection is quite bewildering.",
	c1: "Peruse the shelves", a1: "goNav:bookshop4_1",
		// ** stumble across a player benefit- needs code
	c2: "Oh my giddy aunt! boring or what? Let me out of here!", a2: "goNav:leave"
}
this.bookshop4_1 = {
	text: "Placeholder page\n\nYou come across a volume suggesting that trade in furs is illegal in Zarece (no game effect)\nYou find a book which gives details of a cut-price gold mine in Aronar (cut price gold on next visit there)",
	c1: "Return", a1: "goNav:bookshop4"
}
this.bookshop5 = {
	text: "You open the door and find the shop smells of incense. There is a vast array of books about religion and spirituality - the Church of Giles the Creator, the Zenarchy, the ....\n\nAn irritable looking lobster is perusing the books in the far corner.\n\nIt starts shouting and throws a book at you...",
	c1: "How dare it! I'm going to give the blighter what-for!", a1: "goNav:bookshop5_1",
	c2: "I'm not going to be intimidated by a dastardly decapod! 'Shopkeeper!'",
		a2: "goNav:bookshop5_1",
	c3: "Oops! I'd better run for it", a3: "goNav:leave"
}
this.bookshop5_1 = {
	text: "Placeholder page\n\nNeed to work out how BB handled events like this",
	c1: "Return", a1: "goNav:bookshop5"
}
// when adding a bookshop: update the area2_2."Visit the Bookshop" action & shipExitedWitchspace handler with the new total # of bookshops

this.churches = {		// dev, testing & demo
	text: "check churches",
	c1: "original", a1: "savCnctr:0|goNav:church0",
	c2: "St Giles (empty)", a2: "savCnctr:0|goNav:church1",
	c3: "St Giles (service)", a3: "savCnctr:0|goNav:church2",
	c4: "lobster (empty)", a4: "savCnctr:0|goNav:church3",
	c5: "lobster (not so empty)", a5: "savCnctr:0|goNav:church4",
	c6: "Return", a6: "goNav:areaDev",
	background: "oolite-long-range-chart.png",
}
this.churches2 = {		// dev, testing & demo
	text: "check churches",
	c1: "Randomius Factoria", a1: "savCnctr:0|goNav:church5",
	c2: "Happy Eye", a2: "savCnctr:0|goNav:church6",
	c3: "Zenarchy monks", a3: "savCnctr:0|goNav:church7",
	c4: "Black Monks", a4: "savCnctr:0|goNav:church8",
	c5: "Return", a5: "goNav:areaDev",
	background: "oolite-long-range-chart.png",
}
this.church0_1 = {
	text: church0.text + "\n\nPlaceholder",
	c1: "Leave this place", a1: "goNav:leave",
}
this.church1 = {
	text: "You enter an antechamber with an open doorway to the church behind it.\n\nPeering through the doorway you can see a dimly lit room with some sort of boat in the middle of it, sitting in a moat that runs across the room from left to right. On your side of the room are pews, plaques on the walls and a path through to the boat. On the other side is a landing and an altar with a large heavy book on it. There seem to be large golden mathematical symbols carved into the walls on the far side. To the far left is some sort of tower with what looks like three sets of wings or platforms poking out of the top half of it. There also seem to be a set of massive dice on the right side. Most peculiar.",
	c1: "A holy church of St Giles the Creator! I must say a short prayer.", a1: "goNav:church1_1",
	c2: "Interesting. Let me see what is on the other side of this trench!", a2: "goNav:church1_2",
	c3: "I don't know. I don't want to know. How should I know? Let me out of here!",
		a3: "goNav:leave",
}
this.church1_1 = {
	text: church1.text + "\n\nYou take a seat in the pews and offer a short prayer.  You silently ask for St. Giles guidance so that you are properly oriented and able to overcome any object in your path.",
	c1: "Make an offering", a1: "goNav:church1_1a",
	c2: church0_1.c1, a2: "goNav:leave",
}
this.church1_1a = {
	text: church1_1.text + "\n\nYou remember that you have a chunk of stilton in your pocket (which reminds you to pick up some wensleydale later).  On an impulse, you offer the stilton before the altar.  Afterwards, a calmness gradually descends upon you as you have a vision of stars, planets and nebulae.",
	c1: church0_1.c1, a1: "goNav:leave",
}
this.church1_2 = {
	text: "You walk on to the boat.  As you are about to take a step on the other side, an alarm suddenly rings and lights flash!",
	c1: "Oops! Better scarper", a1: "goNav:leave",
}
this.church2 = {
	text: "The antechamber is brightly lit and some people are milling around in it. They slowly filter through to the chapel and sit in the pews.",
	c1: "A service! Super! I want to pray", a1: "goNav:church2_1",
	c2: "Let me out of here! I'm not a religious nutter!", a2: "goNav:leave",
}
this.church2_1 = {
	text: "As people settle down, spiritual music wells out of the ceiling, and an impressive figure in golden robes swinging a gem-encrusted thurible makes his way from the antechamber doorway to the boat moored in the moat. The boat carries him over the moat and as the music reaches a crescendo he moves to the golden alter and opens the book. Holding it, he turns and faces the congregation.\n\nHe starts intoning a prayer - about the Occultation of St Giles & the Holy Jens and a plea for their return. Apparently they are needed to help cure the sourness of modern apples.\n\nThis is followed by a prayer for the poor of $CurSys$ and the need for all to help them.\n\nThere is then a collection.",
	r1: "credits>=50", c1: "Give " + formatCredits (50, false, true),
		a1: "reputation:50|credits:-50|goNav:church2_2",
	r2: "credits>=25", c2: "Give " + formatCredits (25, false, true),
		a2: "reputation:25|credits:-25|goNav:church2_2",
	r3: "credits>=10", c3: "Give " + formatCredits (10, false, true),
		a3: "reputation:10|credits:-10|goNav:church2_2",
	r4: "credits>=5", c4: "Give " + formatCredits (5, false, true),
		a4: "reputation:5|credits:-5|goNav:church2_2",
	c5: "Don't give anything", a5: "goNav:church2_2",
}
this.church2_2 = {
	text: "There is a final blessing, and the service is over. People wend their way home or back to work without talking.",
	c1: "Time to go! Where next?", a1: "goNav:leave",
}
this.church3 = {
	text: "You enter a circular room which stinks of raw meat & incense and seems to have slime tracks on the floor. Bizarre metallic adornments dangle from the ceiling and a large pool of water sits at the end of the room. A metal grille separates the water in this room from what lies beyond.",
	c1: "I make my way into room to investigate", a1: "goNav:church3_1",
	c2: "Scarper!", a2: "goNav:leave",
}
this.church3_1 = {
	text: church3.text + "\n\nThere is a scuttling sound from 'what lies beyond'",
	c1: "I try to peer through grille", a1: "goNav:church3_2",
	c2: church3.c2, a2: "goNav:leave",
}
this.church3_2 = {
	text: church3_1.text + "\n\nThere is nothing to see. What lies beyond is dark - and even more vile smells waft through the grille! But there are no more sounds.",
	c1: "Try to open grille", a1: "goNav:church3_3",
	c2: church3.c2, a2: "goNav:leave",
}
this.church3_3 = {
	text: church3_2.text + "\n\nThe grille does not open, being firmly wedged in place.",
	c1: "I leave this rather disgusting place", a1: "goNav:leave",
}
this.church4 = {
	text: "Entering the door, you find a circular room which smells rather vile and contains $Rnd3to6$ lobstoids. They are facing the far wall and intoning a chant.",
	c1: "I make my way into the room", a1: "goNav:church4_1",
	c2: church3.c2, a2: "goNav:leave",
}
this.church4_1 = {
	text: "One of the lobstoids notices you and lets out a cry! The others turn around and start moving towards you menacingly.",
	c1: "I stand my ground and say that I have come to worship the Holy Decapod",
		a1: "goNav:church4_2",
	c2: "I stand my ground and ignore them", a2: "health:1,3|goNav:church4_3",
	c3: church3.c2, a3: "goNav:leave",
}
this.church4_2 = {
	text: church4_1.text + "\n\nThey stop and make some clicking noises to one another.  After a bit, they return to facing the far wall and their chants.  You let out a breath and offer a quick prayer.  No need to push this any further.",
	c1: church3.c2, a1: "goNav:leave",
}
this.church4_3 = {
	text: church4_1.text + "\n\n<Crunch!>  That didn't work out well.  Probably best to make a speedy exit at this point.",
	c1: church3.c2, a1: "goNav:leave",
}
this.church5 = {			// Randomius Factoria
	text: "You find an empty small room with a wooden shrine at the far end. There is nobody here - and no sign that anybody ever was here! The shrine contains a carved image of an androgyne humanoid, with a small bowl in front of it containing rolled up message scrolls.",
	c1: "I open one of the scrolls", a1: "goNav:church5_1",
	c2: church0_1.c1, a2: "goNav:leave",
}
this.church5_1 = {
	text: church5.text + "\n\nPlaceholder- multiple random results",
	c1: church0_1.c1, a1: "goNav:leave",
}
this.church6 = {			// Happy Eye
	text: "You find a plain room with some yellow-clad people sitting in a circle and holding hands/claws/pincers etc. One of them looks up as you come in and makes her way over to you. She is a rather elegant-looking feline.",
	c1: "Goodness? What will I say?", a1: "goNav:church6_1",
	c2: "Speak to her: Hello! I'm curious about the Happy Eye! What can you tell me?",
		a2: "goNav:church6_1",
	c3: "No! No! Let me out of here!", a3: "goNav:leave",
}
this.church6_1 = {
	text: church6.text + "\n\nPlaceholder",
	c1: church0_1.c1, a1: "goNav:leave",
}
this.church7 = {			// Zenarchy monks
	text: "You enter a shrine with a dozen puce-clad monks and nuns sitting in the middle of the floor with their eyes closed and humming.",
	c1: "Gosh! How fascinating! I'll approach one of them and see if they'll talk!", a1: "goNav:church7_1",
	c2: "Super! I could do with some meditation! I'd better join them", a2: "goNav:church7_1",
	c3: "Bizarre! I'm out of here!", a3: "goNav:leave",
}
this.church7_1 = {
	text: church7.text + "\n\nPlaceholder",
	c1: church0_1.c1, a1: "goNav:leave",
}
this.church8 = {			// Black Monks of St Herod <only if OXP is loaded>
	text: "You find a dark room littered with credit signs. There is a solid gold altar against the back wall with two monks on either side. They are counting golden coins. They look up and ask if you would like a loan.",
	c1: "Yes, I would, rather", a1: "goNav:church8_1",
	c2: "No, thank you", a2: "goNav:church8_2",
	c3: "Cough distractedly and scarper", a3: "goNav:leave",
}
this.church8_1 = {
	text: church8.text + "\n\nGood, you need to make your way to a Monastery - they are located close to the Witchpoint",
	c1: church0_1.c1, a1: "goNav:leave",
}
this.church8_2 = {
	text: church8.text + "\n\nA pity. It is a holy thing to get into debt! You can't be tempted?",
	c1: church0_1.c1, a1: "goNav:leave",
}


// Demo: Rock Hermit layout
// location names must start with "area"/"deck" for $goPlace function
this.RH = {
	desc: "You're in a large cavern with various heavy machinery strewn about.  There are various doors around- some closed, some open into dimly lit corridors.  Signs indicate that you're in the ",
	desc2: "You are in a warehouse-sized room.  There are many containers with rocks and minerals.  Droids and workers are moving containers and working with the raw materials.  Signs indicate that you're in the ",
	r1: "1st ring", r2: "2nd ring", r3: "3rd ring", lp: "Loop",
	desc3: ".  Other signs point the way to other rings and locations.  ",
	twd: "Walk towards the ", to: "Walk to the ", hng: "hangars",
	pas: "\n\nThere is a passageway here to the ",
}
this.areaRHHngr2 = {
	text: "You're in another hangar with a few parked ships.  There are various doors around- some closed, some open into dimly lit corridors.",
	c1: "Return to your hangar", a1: "goNav:back",
}
this.areaRHHngr3 = {
	text: areaRHHngr2.text,
	c1: areaRHHngr2.c1, a1: areaRHHngr2.a1,
}
this.areaRH1 = {
	text0: RH.desc + RH.r1 + RH.desc3, text1: RH.pas + RH.hng, text2: "\n\nYou see a colorful " +
		"sign that reads: Come to the bar!  We're in the Loop (get to the Loop from either the 2nd or " +
		"3rd rings)",
	c1: RH.twd + RH.r2, a1: "goNav:areaRH2",
	c2: RH.twd + RH.r3, a2: "goNav:areaRH8",
	c3: RH.to + RH.hng, a3: "goNav:area1_nongalcop",
}
this.areaRH2 = {
	text: areaRH1.text0 + "\n\n$LOBBYSNIPPET$",
	c1: RH.twd + RH.r2, a1: "goNav:areaRH3",
	c2: RH.twd + RH.hng, a2: "goNav:areaRH1",
}
this.areaRH3 = {
	text: areaRH1.text0 + RH.pas + RH.r2,
	c1: RH.twd + RH.r3, a1: "goNav:areaRH4",
	c2: RH.twd + RH.hng, a2: "goNav:areaRH2",
	c3: RH.to + RH.r2, a3: "goNav:areaRH11",
}
this.areaRH4 = {
	text: RH.desc2 + RH.r1 + RH.desc3,
	c1: RH.twd + RH.r3, a1: "randomAndGo:areaRH5",
	c2: RH.twd + RH.r2, a2: "randomAndGo:areaRH3",
}
this.areaRH5 = {
	text: areaRH1.text0 + RH.pas + RH.r3,
	c1: RH.twd + RH.hng, a1: "goNav:areaRH6",
	c2: RH.twd + RH.r2, a2: "goNav:areaRH4",
	c3: RH.to + RH.r3, a3: "goNav:areaRH26",
}
this.areaRH6 = {
	text: areaRH1.text0 + "A medical clinic is located here.",
	c1: RH.twd + RH.hng, a1: "goNav:areaRH7",
	c2: "Enter the clinic", a2: "savCnctr:0|goNav:med0",
	c3: RH.twd + RH.r3, a3: "goNav:areaRH5",
}
this.areaRH7 = {
	text: areaRH1.text0 + "\n\nYou hear some faint conversation coming from one of the corridors.",
	c1: RH.twd + RH.hng, a1: "goNav:areaRH8",
	c2: RH.twd + RH.r3, a2: "goNav:areaRH6",
	c3: RH.to + "sounds of conversation", a3: "goNav:areaRH7_1",
}
this.areaRH7_1 = {
	text: "You are in a smaller surprisingly well-kept chamber.  It seems to be a lounge.  There are chairs and tables about.  Some people are chatting, others are reading or watching vids.  There are a few people eating and some are resting.",
	c1: "Leave the lounge", a1: "goNav:back",
}
this.areaRH8 = {
	text: areaRH1.text0,
	c1: RH.twd + RH.hng, a1: "goNav:areaRH1",
	c2: RH.twd + RH.r3, a2: "goNav:areaRH7",
}
this.areaRH11 = {
	text0: RH.desc + RH.r2 + RH.desc3, text1: RH.pas + RH.r1,
	c1: RH.twd + RH.lp, a1: "goNav:areaRH12",
	c2: RH.twd + RH.r3, a2: "goNav:areaRH18",
	c3: RH.to + RH.r1, a3: "goNav:areaRH3",
}
this.areaRH12 = {
	text: areaRH11.text0,
	c1: RH.twd + RH.lp, a1: "goNav:areaRH13",
	c2: RH.twd + RH.r1, a2: "goNav:areaRH11",
}
this.areaRH13 = {
	text: areaRH11.text0 + "\n\nYou hear some faint conversation coming from one of the corridors.",
	c1: RH.twd + RH.lp, a1: "goNav:areaRH14",
	c2: RH.twd + RH.r1, a2: "goNav:areaRH12",
	c3: areaRH7.c3, a3: "goNav:areaRH13_1",
}
this.areaRH13_1 = {
	text: areaRH7_1.text,
	c1: areaRH7_1.c1, a1: "goNav:back",
}
this.areaRH14 = {
	text: areaRH11.text0 + RH.pas + RH.lp,
	c1: RH.twd + RH.r3, a1: "goNav:areaRH15",
	c2: RH.twd + RH.r1, a2: "goNav:areaRH13",
	c3: RH.to + RH.lp, a3: "goNav:areaRH31",
}
this.areaRH15 = {
	text: areaRH11.text0 + RH.pas + RH.r3,
	c1: RH.twd + RH.r1, a1: "goNav:areaRH16",
	c2: RH.twd + RH.lp, a2: "goNav:areaRH14",
	c3: RH.to + RH.r3, a3: "goNav:areaRH21",
}
this.areaRH16 = {
	text: areaRH11.text0,
	c1: RH.twd + RH.r1, a1: "goNav:areaRH17",
	c2: RH.twd + RH.r3, a2: "goNav:areaRH15",
}
this.areaRH17 = {
	text: areaRH11.text0 + "\n\n$LOBBYSNIPPET$",
	c1: RH.twd + RH.r1, a1: "goNav:areaRH18",
	c2: RH.twd + RH.r3, a2: "goNav:areaRH16",
}
this.areaRH18 = {
	text: RH.desc2 + RH.r2 + RH.desc3 + "There appears to be an inn here.",
	c1: RH.twd + RH.r1, a1: "randomAndGo:areaRH11",
	c2: "Enter the inn", a2: "savCnctr:0|goNav:hotel0",
	c3: RH.twd + RH.r3, a3: "randomAndGo:areaRH17",
}
this.areaRH21 = {
	text0: RH.desc + RH.r3 + RH.desc3, text1: RH.pas + RH.r2,
	c1: RH.twd + RH.lp, a1: "goNav:areaRH22",
	c2: RH.twd + RH.r1, a2: "goNav:areaRH28",
	c3: RH.to + RH.r2, a3: "goNav:areaRH15",
}
this.areaRH22 = {
	text: areaRH21.text0 + "\n\nYou hear some faint conversation coming from one of the corridors.",
	c1: RH.twd + RH.lp, a1: "goNav:areaRH23",
	c2: RH.twd + RH.r2, a2: "goNav:areaRH21",
	c3: areaRH7.c3, a3: "goNav:areaRH22_1",
}
this.areaRH22_1 = {
	text: areaRH7_1.text,
	c1: areaRH7_1.c1, a1: "goNav:back",
}
this.areaRH23 = {
	text: areaRH21.text0 + RH.pas + RH.lp,
	c1: RH.twd + RH.r1, a1: "goNav:areaRH24",
	c2: RH.twd + RH.r2, a2: "goNav:areaRH22",
	c3: RH.to + RH.lp, a3: "goNav:areaRH35",
}
this.areaRH24 = {
	text: RH.desc2 + RH.r3 + RH.desc3 + "There is a colorful symbol for some sort of religious temple here.",
	c1: RH.twd + RH.r1, a1: "goNav:areaRH25",
	c2: "Enter the temple", a2: "savCnctr:0|goNav:church6",
	c3: RH.twd + RH.lp, a3: "goNav:areaRH23",
}
this.areaRH25 = {
	text: areaRH21.text0 + "\n\n$LOBBYSNIPPET$",
	c1: RH.twd + RH.r1, a1: "goNav:areaRH26",
	c2: RH.twd + RH.lp, a2: "goNav:areaRH24",
}
this.areaRH26 = {
	text: areaRH21.text0 + RH.pas + RH.r1,
	c1: RH.twd + RH.r2, a1: "goNav:areaRH27",
	c2: RH.twd + RH.lp, a2: "goNav:areaRH25",
	c3: RH.to + RH.r1, a3: "goNav:areaRH5",
}
this.areaRH27 = {
	text: areaRH21.text0,
	c1: RH.twd + RH.r2, a1: "randomAndGo:areaRH28",
	c2: RH.twd + RH.r1, a2: "randomAndGo:areaRH26",
}
this.areaRH28 = {
	text: areaRH21.text0,
	c1: RH.twd + RH.r2, a1: "goNav:areaRH21",
	c2: RH.twd + RH.r1, a2: "goNav:areaRH27",
}
this.areaRH31 = {
	text0: RH.desc + RH.lp + RH.desc3, text1: RH.pas + RH.r2,
	c1:RH.twd + "bar", a1: "goNav:areaRH32",
	c2: RH.to + RH.r2, a2: "goNav:areaRH14",
}
this.areaRH32 = {
	text: areaRH31.text0,
	c1: RH.twd + "bar", a1: "goNav:areaRH33",
	c2: RH.twd + RH.r2, a2: "goNav:areaRH31",
}
this.areaRH33 = {
	text: areaRH31.text0 + "  A big neon sign points to a nearby tavern.",
	c1: RH.twd + RH.r3, a1: "randomAndGo:areaRH34",
	c2: RH.twd + RH.r2, a2: "randomAndGo:areaRH32",
	c3: "Go for a drink or two or ten", a3: area3_1.a2,
}
this.areaRH34 = {
	text: areaRH31.text0,
	c1: RH.twd + "bar", a1: "goNav:areaRH33",
	c2: RH.twd + RH.r3, a2: "goNav:areaRH35",
}
this.areaRH35 = {
	text: areaRH31.text0 + RH.pas + RH.r3,
	c1: RH.twd + "bar", a1: "goNav:areaRH34",
	c2: RH.to + RH.r3, a2: "goNav:areaRH23",
}


// Demo: Dodo layout redux
/*	structure: 5 radials (length 4), 5 perimeter segments (length 5)
		sections: Alpha, Bravo, Charlie, Delta, Echo
	Dodo location naming convention
		Examples: deckD3, deckD14Ar2, deckD17Ep4
		location names must start with "area"/"deck" for $goPlace function
		D= Dodo layout; #= deck; A/B/C/D/E= section; r/p= radial/perimeter;
		last #= section of radial/perimeter
*/
this.Dodo = {
	core: "You are in the core of deck ",
	secA: "Alpha", secB: "Bravo", secC: "Charlie", secD: "Delta", secE: "Echo",
	radial: "You are in the radial of ", radial2: " section, deck 14.  ",
	peri: "You are in the perimeter of ",
	twd: "Walk towards ", tPer: "the perimeter", tCor: "the core",
	dirA: " section: Medical Center (rad), Church of St. Giles (per)\n  ",
	dirB: " section: Hotel (rad), Boorders Books (per)\n  ",
	dirC: " section: Precinct House (rad), Embassy (per)\n  ",
	dirD: " section: passenger lounge (rad), Coffee & Books (per)\n  ",
	dirE: " section: Star Citizen Cafe (coming soon!), local bar (per)\n",
}
this.deckD3 = {
	text: Dodo.core + "3.  There are entrances to five hangars here.  $PlyrShpNam$ is parked in hangar 5.\n\n$LOBBYSNIPPET$",
	c1: "Take the lift down", a1: "goNav:deckD14",
	c2: "Walk to hangar 1", a2: "goNav:deckD3hng1",
	c3: "Walk to hangar 2", a3: "goNav:deckD3hng2",
	c4: "Walk to hangar 3", a4: "goNav:deckD3hng3",
	c5: "Walk to hangar 4", a5: "goNav:deckD3hng4",
	c6: "Walk to hangar 5", a6: "goNav:area1",
}
this.deckD3hng1 = {
	text: "You are in a large hangar crammed with ships of all shapes and sizes.  It's very busy here.  People and droids are moving cargo and tending to the ships.  ",
	c1: "Return to the deck core", a1: "goNav:deckD3",
}
this.deckD3hng2 = {
	text: deckD3hng1.text + "There is a $Ship$ slowly moving into the hangar.  ",
	c1: deckD3hng1.c1, a1: deckD3hng1.a1,
}
this.deckD3hng3 = {
	text: deckD3hng1.text,
	c1: deckD3hng1.c1, a1: deckD3hng1.a1,
}
this.deckD3hng4 = {
	text: deckD3hng1.text + "A $Ship$ rises a couple of meters from the deck and begins to move out.  ",
	c1: deckD3hng1.c1, a1: deckD3hng1.a1,
}
this.deckD14 = {
	text: Dodo.core + "14.  The deck directory lists the following:\n  " + Dodo.secA + Dodo.dirA +
		Dodo.secB + Dodo.dirB + Dodo.secC + Dodo.dirC + Dodo.secD + Dodo.dirD +
		Dodo.secE + Dodo.dirE + "\n$LOBBYSNIPPET$",
	c1: "Walk to " + Dodo.secA + " section", a1: "goNav:deckD14Ar1",
	c2: "Walk to " + Dodo.secB + " section", a2: "goNav:deckD14Br1",
	c3: "Walk to " + Dodo.secC + " section", a3: "goNav:deckD14Cr1",
	c4: "Walk to " + Dodo.secD + " section", a4: "goNav:deckD14Dr1",
	c5: "Walk to " + Dodo.secE + " section", a5: "goNav:deckD14Er1",
	c6: "Take the lift up", a6: "goNav:deckD3",
}
this.deckD14Ar1 = {
	text: Dodo.radial + Dodo.secA + Dodo.radial2,
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Ar2",
	c2: Dodo.twd + Dodo.tCor, a2: "goNav:deckD14",
}
this.deckD14Ar2 = {
	text: Dodo.radial + Dodo.secA + Dodo.radial2 + "The medical center is located here.",
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Ar3",
	c2: "Enter the medical center", a2: "savCnctr:0|goNav:med0",
	c3: Dodo.twd + Dodo.tCor, a3: "goNav:deckD14Ar1",
}
this.deckD14Ar3 = {
	text: Dodo.radial + Dodo.secA + Dodo.radial2,
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Ar4",
	c2: Dodo.twd + Dodo.tCor, a2: "goNav:deckD14Ar2",
}
this.deckD14Ar4 = {
	text: Dodo.radial + Dodo.secA + Dodo.radial2 + "\n\n$LOBBYSNIPPET$",
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Ap3",
	c2: Dodo.twd + Dodo.tCor, a2: "goNav:deckD14Ar3",
}
this.deckD14Br1 = {
	text: Dodo.radial + Dodo.secB + Dodo.radial2 + "You see a hotel sign pointing to an entryway.",
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Br2",
	c2: "Enter the hotel", a2: "savCnctr:0|goNav:hotel0",
	c3: Dodo.twd + Dodo.tCor, a3: "goNav:deckD14",
}
this.deckD14Br2 = {
	text: Dodo.radial + Dodo.secB + Dodo.radial2 + "\n\n$LOBBYSNIPPET$",
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Br3",
	c2: Dodo.twd + Dodo.tCor, a2: "goNav:deckD14Br1",
}
this.deckD14Br3 = {
	text: Dodo.radial + Dodo.secB + Dodo.radial2 + "\n\n$LOBBYSNIPPET$",
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Br4",
	c2: Dodo.twd + Dodo.tCor, a2: "goNav:deckD14Br2",
}
this.deckD14Br4 = {
	text: Dodo.radial + Dodo.secB + Dodo.radial2,
	c1: Dodo.twd + Dodo.tPer, a1: "randomAndGo:deckD14Bp3",
	c2: Dodo.twd + Dodo.tCor, a2: "randomAndGo:deckD14Br3",
}
this.deckD14Cr1 = {
	text: Dodo.radial + Dodo.secC + Dodo.radial2 + "\n\n$LOBBYSNIPPET$",
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Cr2",
	c2: Dodo.twd + Dodo.tCor, a2: "goNav:deckD14",
}
this.deckD14Cr2 = {
	text: Dodo.radial + Dodo.secC + Dodo.radial2,
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Cr3",
	c2: Dodo.twd + Dodo.tCor, a2: "goNav:deckD14Cr1",
}
this.deckD14Cr3 = {
	text: Dodo.radial + Dodo.secC + Dodo.radial2 + "The GalCop Precinct House is located here.",
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Cr4",
	c2: "Enter the Precinct House", a2: "savCnctr:0|goNav:area4_1",
	c3: Dodo.twd + Dodo.tCor, a3: "goNav:deckD14Cr2",
}
this.deckD14Cr4 = {
	text: Dodo.radial + Dodo.secC + Dodo.radial2,
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Cp3",
	c2: Dodo.twd + Dodo.tCor, a2: "goNav:deckD14Cr3",
}
this.deckD14Dr1 = {
	text: Dodo.radial + Dodo.secD + Dodo.radial2,
	c1: Dodo.twd + Dodo.tPer, a1: "randomAndGo:deckD14Dr2",
	c2: Dodo.twd + Dodo.tCor, a2: "randomAndGo:deckD14",
}
this.deckD14Dr2 = {
	text: Dodo.radial + Dodo.secD + Dodo.radial2 + "\n\n$LOBBYSNIPPET$",
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Dr3",
	c2: Dodo.twd + Dodo.tCor, a2: "goNav:deckD14Dr1",
}
this.deckD14Dr3 = {
	text: Dodo.radial + Dodo.secD + Dodo.radial2 + "A passenger lounge is here.",
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Dr4",
	c2: "Enter the lounge", a2: "savCnctr:0|goNav:plounge0",
	c3: Dodo.twd + Dodo.tCor, a3: "goNav:deckD14Dr2",
}
this.deckD14Dr4 = {
	text: Dodo.radial + Dodo.secD + Dodo.radial2 + "\n\n$LOBBYSNIPPET$",
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Dp3",
	c2: Dodo.twd + Dodo.tCor, a2: "goNav:deckD14Dr3",
}
this.deckD14Er1 = {
	text: Dodo.radial + Dodo.secE + Dodo.radial2,
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Er2",
	c2: Dodo.twd + Dodo.tCor, a2: "goNav:deckD14",
}
this.deckD14Er2 = {
	text: Dodo.radial + Dodo.secE + Dodo.radial2,
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Er3",
	c2: Dodo.twd + Dodo.tCor, a2: "goNav:deckD14Er1",
}
this.deckD14Er3 = {
	text: Dodo.radial + Dodo.secE + Dodo.radial2 + "\n\n$LOBBYSNIPPET$",
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Er4",
	c2: Dodo.twd + Dodo.tCor, a2: "goNav:deckD14Er2",
}
this.deckD14Er4 = {
	text: Dodo.radial + Dodo.secE + Dodo.radial2,
	c1: Dodo.twd + Dodo.tPer, a1: "goNav:deckD14Ep3",
	c2: Dodo.twd + Dodo.tCor, a2: "goNav:deckD14Er3",
}
this.deckD14Ap1 = {
	text: Dodo.peri + Dodo.secA + Dodo.radial2 + "The directory lists:\n  " + Dodo.secA + Dodo.dirA,
	c1: Dodo.twd + Dodo.secB + " section", a1: "goNav:deckD14Ap2",
	c2: Dodo.twd + Dodo.secE + " section", a2: "goNav:deckD14Ep5",
}
this.deckD14Ap2 = {
	text: Dodo.peri + Dodo.secA + Dodo.radial2 + "\n\n$LOBBYSNIPPET$",
	c1: Dodo.twd + Dodo.secB + " section", a1: "randomAndGo:deckD14Ap3",
	c2: Dodo.twd + Dodo.secE + " section", a2: "randomAndGo:deckD14Ap1",
}
this.deckD14Ap3 = {
	text: Dodo.peri + Dodo.secA + Dodo.radial2,
	c1: Dodo.twd + Dodo.secB + " section", a1: "goNav:deckD14Ap4",
	c2: Dodo.twd + Dodo.secE + " section", a2: "goNav:deckD14Ap2",
	c3: Dodo.twd + Dodo.tCor, a3: "goNav:deckD14Ar4",
}
this.deckD14Ap4 = {
	text: Dodo.peri + Dodo.secA + Dodo.radial2 + "You see a sign for the Church of St. Giles.",
	c1: Dodo.twd + Dodo.secB + " section", a1: "goNav:deckD14Ap5",
	c2: "Enter the church", a2: "savCnctr:0|goNav:church1",
	c3: Dodo.twd + Dodo.secE + " section", a3: "goNav:deckD14Ap3",
}
this.deckD14Ap5 = {
	text: Dodo.peri + Dodo.secA + Dodo.radial2 + "The directory lists:\n  " +
		Dodo.secA + Dodo.dirA + "\n$LOBBYSNIPPET$",
	c1: Dodo.twd + Dodo.secB + " section", a1: "goNav:deckD14Bp1",
	c2: Dodo.twd + Dodo.secE + " section", a2: "goNav:deckD14Ap4",
}
this.deckD14Bp1 = {
	text: Dodo.peri + Dodo.secB + Dodo.radial2 + "The directory lists:\n  " + Dodo.secB + Dodo.dirB,
	c1: Dodo.twd + Dodo.secC + " section", a1: "goNav:deckD14Bp2",
	c2: Dodo.twd + Dodo.secA + " section", a2: "goNav:deckD14Ap5",
}
this.deckD14Bp2 = {
	text: Dodo.peri + Dodo.secB + Dodo.radial2 + "\n\n$LOBBYSNIPPET$",
	c1: Dodo.twd + Dodo.secC + " section", a1: "goNav:deckD14Bp3",
	c2: Dodo.twd + Dodo.secA + " section", a2: "goNav:deckD14Bp1",
}
this.deckD14Bp3 = {
	text: Dodo.peri + Dodo.secB + Dodo.radial2,
	c1: Dodo.twd + Dodo.secC + " section", a1: "goNav:deckD14Bp4",
	c2: Dodo.twd + Dodo.secA + " section", a2: "goNav:deckD14Bp2",
	c3: Dodo.twd + Dodo.tCor, a3: "goNav:deckD14Br4",
}
this.deckD14Bp4 = {
	text: Dodo.peri + Dodo.secB + Dodo.radial2 + "You see a Boorders Books here.",
	c1: Dodo.twd + Dodo.secC + " section", a1: "goNav:deckD14Bp5",
	c2: "Enter Boorders Books", a2: "savCnctr:0|goNav:bookshop1",
	c3: Dodo.twd + Dodo.secA + " section", a3: "goNav:deckD14Bp3",
}
this.deckD14Bp5 = {
	text: Dodo.peri + Dodo.secB + Dodo.radial2 + "The directory lists:\n  " + Dodo.secB + Dodo.dirB,
	c1: Dodo.twd + Dodo.secC + " section", a1: "goNav:deckD14Cp1",
	c2: Dodo.twd + Dodo.secA + " section", a2: "goNav:deckD14Bp4",
}
this.deckD14Cp1 = {
	text: Dodo.peri + Dodo.secC + Dodo.radial2 + "The directory lists:\n  " +
		Dodo.secC + Dodo.dirC + "\n$LOBBYSNIPPET$",
	c1: Dodo.twd + Dodo.secD + " section", a1: "goNav:deckD14Cp2",
	c2: Dodo.twd + Dodo.secB + " section", a2: "goNav:deckD14Bp5",
}
this.deckD14Cp2 = {
	text: Dodo.peri + Dodo.secC + Dodo.radial2,
	c1: Dodo.twd + Dodo.secD + " section", a1: "goNav:deckD14Cp3",
	c2: "Enter the embassy", a2: "savCnctr:0|goNav:embassy",
	c3: Dodo.twd + Dodo.secB + " section", a3: "goNav:deckD14Cp1",
}
this.deckD14Cp3 = {
	text: Dodo.peri + Dodo.secC + Dodo.radial2 + "\n\n$LOBBYSNIPPET$",
	c1: Dodo.twd + Dodo.secD + " section", a1: "goNav:deckD14Cp4",
	c2: Dodo.twd + Dodo.secB + " section", a2: "goNav:deckD14Cp2",
	c3: Dodo.twd + Dodo.tCor, a3: "goNav:deckD14Cr4",
}
this.deckD14Cp4 = {
	text: Dodo.peri + Dodo.secC + Dodo.radial2,
	c1: Dodo.twd + Dodo.secD + " section", a1: "randomAndGo:deckD14Cp5",
	c2: Dodo.twd + Dodo.secB + " section", a2: "randomAndGo:deckD14Cp3",
}
this.deckD14Cp5 = {
	text: Dodo.peri + Dodo.secC + Dodo.radial2 + "The directory lists:\n  " + Dodo.secC + Dodo.dirC,
	c1: Dodo.twd + Dodo.secD + " section", a1: "goNav:deckD14Dp1",
	c2: Dodo.twd + Dodo.secB + " section", a2: "goNav:deckD14Cp4",
}
this.deckD14Dp1 = {
	text: Dodo.peri + Dodo.secD + Dodo.radial2 + "The directory lists:\n  " +
		Dodo.secD + Dodo.dirD,
	c1: Dodo.twd + Dodo.secE + " section", a1: "goNav:deckD14Dp2",
	c2: Dodo.twd + Dodo.secC + " section", a2: "goNav:deckD14Cp5",
}
this.deckD14Dp2 = {
	text: Dodo.peri + Dodo.secD + Dodo.radial2 + "There is a Coffee & Books located here.",
	c1: Dodo.twd + Dodo.secE + " section", a1: "goNav:deckD14Dp3",
	c2: "Enter Coffee & Books", a2: "savCnctr:0|goNav:bookshop2",
	c3: Dodo.twd + Dodo.secC + " section", a3: "goNav:deckD14Dp1",
}
this.deckD14Dp3 = {
	text: Dodo.peri + Dodo.secD + Dodo.radial2 + "\n\n$LOBBYSNIPPET$",
	c1: Dodo.twd + Dodo.secE + " section", a1: "goNav:deckD14Dp4",
	c2: Dodo.twd + Dodo.secC + " section", a2: "goNav:deckD14Dp2",
	c3: Dodo.twd + Dodo.tCor, a3: "goNav:deckD14Dr4",
}
this.deckD14Dp4 = {
	text: Dodo.peri + Dodo.secD + Dodo.radial2,
	c1: Dodo.twd + Dodo.secE + " section", a1: "goNav:deckD14Dp5",
	c2: Dodo.twd + Dodo.secC + " section", a2: "goNav:deckD14Dp3",
}
this.deckD14Dp5 = {
	text: Dodo.peri + Dodo.secD + Dodo.radial2 + "The directory lists:\n  " +
		Dodo.secD + Dodo.dirD,
	c1: Dodo.twd + Dodo.secE + " section", a1: "goNav:deckD14Ep1",
	c2: Dodo.twd + Dodo.secC + " section", a2: "goNav:deckD14Dp4",
}
this.deckD14Ep1 = {
	text: Dodo.peri + Dodo.secE + Dodo.radial2 + "The directory lists:\n  " +
		Dodo.secE + Dodo.dirE + "\n$LOBBYSNIPPET$",
	c1: Dodo.twd + Dodo.secA + " section", a1: "goNav:deckD14Ep2",
	c2: Dodo.twd + Dodo.secD + " section", a2: "goNav:deckD14Dp5",
}
this.deckD14Ep2 = {
	text: Dodo.peri + Dodo.secE + Dodo.radial2 + "There's a local bar here.",
	c1: Dodo.twd + Dodo.secA + " section", a1: "goNav:deckD14Ep3",
	c2: "Enter the bar", a2: area3_1.a2,
	c3: Dodo.twd + Dodo.secD + " section", a3: "goNav:deckD14Ep1",
}
this.deckD14Ep3 = {
	text: Dodo.peri + Dodo.secE + Dodo.radial2,
	c1: Dodo.twd + Dodo.secA + " section", a1: "goNav:deckD14Ep4",
	c2: Dodo.twd + Dodo.secD + " section", a2: "goNav:deckD14Ep2",
	c3: Dodo.twd + Dodo.tCor, a3: "goNav:deckD14Er4",
}
this.deckD14Ep4 = {
	text: Dodo.peri + Dodo.secE + Dodo.radial2 + "\n\n$LOBBYSNIPPET$",
	c1: Dodo.twd + Dodo.secA + " section", a1: "goNav:deckD14Ep5",
	c2: Dodo.twd + Dodo.secD + " section", a2: "goNav:deckD14Ep3",
}
this.deckD14Ep5 = {
	text: Dodo.peri + Dodo.secE + Dodo.radial2 + "The directory lists:\n  " + Dodo.secE + Dodo.dirE,
	c1: Dodo.twd + Dodo.secA + " section", a1: "randomAndGo:deckD14Ap1",
	c2: Dodo.twd + Dodo.secD + " section", a2: "randomAndGo:deckD14Ep4",
}

// Demo: Ico layout redux
/*	structure: 3 radials (length 3), 3 perimeter segments (length 4)
		sections: Foxtrot, Golf, Hotel
	Ico location naming convention
		Examples: deckI2, deckI8Fr2, deckI9Hp4
		location names must start with "area"/"deck" for $goPlace function
		I= Ico layout; #= deck; F/G/H= section; r/p= radial/perimeter;
		last #= section of radial/perimeter
*/
this.Ico = {
	core: "You are in the core of deck ",
	secF: "Foxtrot", secG: "Golf", secH: "Hotel",
	radial: "You are in the radial of ", radial2: " section, deck 8.  ",
	peri: "You are in the perimeter of ",
	twd: "Walk towards ", tPer: "the perimeter", tCor: "the core",
	dirF: " section: Just Romance (rad), Medical Center (per)\n  ",
	dirG: " section: Precinct House (rad), Embassy (per), Church of St. Giles (per)\n  ",
	dirH: " section: passenger lounge (rad), hotel (rad), local bar (per)\n  ",
}
this.deckI2 = {
	text: Ico.core + "2.  There are entrances to three hangars here.  $PlyrShpNam$ is parked in hangar 3.\n\n$LOBBYSNIPPET$",
	c1: "Take the lift down", a1: "goNav:deckI8",
	c2: "Walk to hangar 1", a2: "goNav:deckI2hng1",
	c3: "Walk to hangar 2", a3: "goNav:deckI2hng2",
	c4: "Walk to hangar 3", a4: "goNav:area1",
}
this.deckI2hng1 = {
	text: "You are in a large hangar crammed with ships of all shapes and sizes.  It's very busy here.  People and droids are moving cargo and tending to the ships.  ",
	c1: "Return to the deck core", a1: "goNav:deckI2",
}
this.deckI2hng2 = {
	text: deckI2hng1.text + "A $Ship$ has just entered the hangar and settles down on a berth.  ",
	c1: deckI2hng1.c1, a1: deckI2hng1.a1,
}
this.deckI8 = {
	text: Ico.core + "8.  The deck directory lists the following:\n  " + Ico.secF + Ico.dirF + Ico.secG +
		Ico.dirG + Ico.secH + Ico.dirH + "\n$LOBBYSNIPPET$",
	c1: "Walk to " + Ico.secF + " section", a1: "goNav:deckI8Fr1",
	c2: "Walk to " + Ico.secG + " section", a2: "goNav:deckI8Gr1",
	c3: "Walk to " + Ico.secH + " section", a3: "goNav:deckI8Hr1",
	c4: "Take the lift up", a4: "goNav:deckI2",
}
this.deckI8Fr1 = {
	text: Ico.radial + Ico.secF + Ico.radial2,
	c1: Ico.twd + Ico.tPer, a1: "randomAndGo:deckI8Fr2",
	c2: Ico.twd + Ico.tCor, a2: "randomAndGo:deckI8",
}
this.deckI8Fr2 = {
	text: Ico.radial + Ico.secF + Ico.radial2,
	c1: Ico.twd + Ico.tPer, a1: "goNav:deckI8Fr3",
	c2: Ico.twd + Ico.tCor, a2: "goNav:deckI8Fr1",
}
this.deckI8Fr3 = {
	text: Ico.radial + Ico.secF + Ico.radial2 + "You see a bookshop decorated with hearts.",
	c1: Ico.twd + Ico.tPer, a1: "goNav:deckI8Fp2",
	c2: "Enter the bookshop", a2: "savCnctr:0|goNav:bookshop3",
	c3: Ico.twd + Ico.tCor, a3: "goNav:deckI8Fr2",
}
this.deckI8Gr1 = {
	text: Ico.radial + Ico.secG + Ico.radial2,
	c1: Ico.twd + Ico.tPer, a1: "goNav:deckI8Gr2",
	c2: Ico.twd + Ico.tCor, a2: "goNav:deckI8",
}
this.deckI8Gr2 = {
	text: Ico.radial + Ico.secG + Ico.radial2 + "The GalCop Precinct House is located here." +
		"\n\n$LOBBYSNIPPET$",
	c1: Ico.twd + Ico.tPer, a1: "goNav:deckI8Gr3",
	c2: "Enter the Precinct House", a2: "savCnctr:0|goNav:area4_1",
	c3: Ico.twd + Ico.tCor, a3: "goNav:deckI8Gr1",
}
this.deckI8Gr3 = {
	text: Ico.radial + Ico.secG + Ico.radial2,
	c1: Ico.twd + Ico.tPer, a1: "goNav:deckI8Gp2",
	c2: Ico.twd + Ico.tCor, a2: "goNav:deckI8Gr2",
}
this.deckI8Hr1 = {
	text: Ico.radial + Ico.secH + Ico.radial2 + "A passenger lounge is here.",
	c1: Ico.twd + Ico.tPer, a1: "goNav:deckI8Hr2",
	c2: "Enter the lounge", a2: "savCnctr:0|goNav:plounge0",
	c3: Ico.twd + Ico.tCor, a3: "goNav:deckI8",
}
this.deckI8Hr2 = {
	text: Ico.radial + Ico.secH + Ico.radial2 + "You conveniently find a hotel here.",
	c1: Ico.twd + Ico.tPer, a1: "randomAndGo:deckI8Hr3",
	c2: "Enter the hotel", a2: "savCnctr:0|goNav:hotel0",
	c3: Ico.twd + Ico.tCor, a3: "randomAndGo:deckI8Hr1",
}
this.deckI8Hr3 = {
	text: Ico.radial + Ico.secH + Ico.radial2,
	c1: Ico.twd + Ico.tPer, a1: "goNav:deckI8Hp2",
	c2: Ico.twd + Ico.tCor, a2: "goNav:deckI8Hr2",
}
this.deckI8Fp1 = {
	text: Ico.peri + Ico.secF + Ico.radial2 + "The directory lists:\n  " + Ico.secF + Ico.dirF,
	c1: Ico.twd + Ico.secG + " section", a1: "goNav:deckI8Fp2",
	c2: Ico.twd + Ico.secH + " section", a2: "goNav:deckI8Hp4",
}
this.deckI8Fp2 = {
	text: Ico.peri + Ico.secF + Ico.radial2+ "The medical center is located here.",
	c1: Ico.twd + Ico.secG + " section", a1: "goNav:deckI8Fp3",
	c2: Ico.twd + Ico.tCor, a2: "goNav:deckI8Fr3",
	c3: Ico.twd + Ico.secH + " section", a3: "goNav:deckI8Fp1",
	c4: "Enter the medical center", a4: "savCnctr:0|goNav:med0",
}
this.deckI8Fp3 = {
	text: Ico.peri + Ico.secF + Ico.radial2 + "\n\n$LOBBYSNIPPET$",
	c1: Ico.twd + Ico.secG + " section", a1: "goNav:deckI8Fp4",
	c2: Ico.twd + Ico.secH + " section", a2: "goNav:deckI8Fp2",
}
this.deckI8Fp4 = {
	text: Ico.peri + Ico.secF + Ico.radial2 + "The directory lists:\n  " + Ico.secF + Ico.dirF,
	c1: Ico.twd + Ico.secG + " section", a1: "goNav:deckI8Gp1",
	c2: Ico.twd + Ico.secH + " section", a2: "goNav:deckI8Fp3",
}
this.deckI8Gp1 = {
	text: Ico.peri + Ico.secG + Ico.radial2 + "The directory lists:\n  " + Ico.secG + Ico.dirG,
	c1: Ico.twd + Ico.secH + " section", a1: "randomAndGo:deckI8Gp2",
	c2: Ico.twd + Ico.secF + " section", a2: "randomAndGo:deckI8Fp4",
}
this.deckI8Gp2 = {
	text: Ico.peri + Ico.secG + Ico.radial2,
	c1: Ico.twd + Ico.secH + " section", a1: "goNav:deckI8Gp3",
	c2: Ico.twd + Ico.tCor, a2: "goNav:deckI8Gr3",
	c3: Ico.twd + Ico.secF + " section", a3: "goNav:deckI8Gp1",
}
this.deckI8Gp3 = {
	text: Ico.peri + Ico.secG + Ico.radial2,
	c1: Ico.twd + Ico.secH + " section", a1: "goNav:deckI8Gp4",
	c2: "Enter the embassy", a2: "savCnctr:0|goNav:embassy",
	c3: Ico.twd + Ico.secF + " section", a3: "goNav:deckI8Gp2",
}
this.deckI8Gp4 = {
	text: Ico.peri + Ico.secG + Ico.radial2 + "The directory lists:\n  " + Ico.secG + Ico.dirG,
	c1: Ico.twd + Ico.secH + " section", a1: "goNav:deckI8Hp1",
	c2: "Enter the church", a2: "savCnctr:0|goNav:church2",
	c3: Ico.twd + Ico.secF + " section", a3: "goNav:deckI8Gp3",
}
this.deckI8Hp1 = {
	text: Ico.peri + Ico.secH + Ico.radial2 + "The directory lists:\n  " + Ico.secH + Ico.dirH,
	c1: Ico.twd + Ico.secF + " section", a1: "goNav:deckI8Hp2",
	c2: Ico.twd + Ico.secG + " section", a2: "goNav:deckI8Gp4",
}
this.deckI8Hp2 = {
	text: Ico.peri + Ico.secH + Ico.radial2 + "\n\n$LOBBYSNIPPET$",
	c1: Ico.twd + Ico.secF + " section", a1: "goNav:deckI8Hp3",
	c2: Ico.twd + Ico.tCor, a2: "goNav:deckI8Hr3",
	c3: Ico.twd + Ico.secG + " section", a3: "goNav:deckI8Hp1",
}
this.deckI8Hp3 = {
	text: Ico.peri + Ico.secH + Ico.radial2 + "You see a bar here.",
	c1: Ico.twd + Ico.secF + " section", a1: "goNav:deckI8Hp4",
	c2: "It's a bit early, buy why not", a2: area3_1.a2,
	c3: Ico.twd + Ico.secG + " section", a3: "goNav:deckI8Hp2",
}
this.deckI8Hp4 = {
	text: Ico.peri + Ico.secH + Ico.radial2 + "The directory lists:\n  " + Ico.secH + Ico.dirH,
	c1: Ico.twd + Ico.secF + " section", a1: "goNav:deckI8Fp1",
	c2: Ico.twd + Ico.secG + " section", a2: "goNav:deckI8Hp3",
}
this.embassy = {
	text: "You step into a large lobby with a wide front desk.  Behind the desk is a large sign that reads: 'Welcome to the Embassy of CurSys to the Galactic Co-operative of Worlds'  There are many people here waiting for appointments or services.  A public monitor on the front desk displays the following: ",
	c1: "Leave the embassy", a1: "goNav:leave"
}
this.areaDev = {		// dev, testing & demo
	text0: "This location is for development, testing & demonstration.\n\n",
	c1: "bookshops", a1: "goNav:bkStrs",
	c2: "churches", a2: "goNav:churches",
	c3: "churches 2", a3: "goNav:churches2",
	c4: "Hints bar", a4: "hintsBar:0",
	c5: "dump 2 alloys", a5: "goods:aly,-2|goNav:areaDev",
	c6: "Return to hangar", a6: "goNav:$*hngr$",
	background: "oolite-long-range-chart.png"
}
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
Cholmondely
Archivist
Archivist
Posts: 5345
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: [WIP] Life in the Frontier OXP

Post by Cholmondely »

More on v.0.06:

1) Hints Bar

Tried the Hints Bar, but did not have Hints.oxp loaded and was dumped back onto the F4 screen.

When I loaded Hints.oxp, there were some nice new bar images - but for one of them, one of the lines of the yellow text was eaten up by the yellow lighting in the background. Change text colour? Move the text down the page? Or can these only be done before the "mission screen overlay" is chosen?

I wonder if it possible to see the actual planet rotating? The F7 page manages it... - but this (if possible) should be for LitF v.2.0, I feel.


2) Lobby

In the coriolis, in the Recreation Bridge, going to the "lobby" is one of the options in the text in the middle of the screen - but "going to the lobby" is not one of the options given underneath in the selection list.


3) Ship Names and the Definite Article

My current ship is named "Spirit of Digebiti" rather than "The Spirit of Digebiti". Alas, when named by LitF, one sees inelegant cicumlocutions such as "You're in the hanger where Spirit of Digebiti is parked" or a choice of "Go to the Docks" , Embark on Spirit of Digebiti, etc.

I suspect that there is no simple solution to this. Might putting the name of the ship in quotes ease matters slightly? "You're in the hanger where 'Spirit of Digebiti' is parked" or a choice of "Go to the Docks" , "Embark on 'Spirit of Digebiti'", etc.

Or am I being too pedantic? After all, I did not name my ship "The Spirit of Digebiti"!
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
Cholmondely
Archivist
Archivist
Posts: 5345
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of His Most Britannic Majesty (industrial? agricultural? mainly anything?)
Contact:

Re: [WIP] Life in the Frontier OXP

Post by Cholmondely »

Rock Hermits #2

Previous Detailed Post

this.areaRH7_1 = {
text: "You are in a smaller surprisingly well-kept chamber. It seems to be a lounge. There are chairs and tables about. Some people are chatting, others are reading or watching vids. There are a few people eating and some are resting.",
c1: "Leave the lounge", a1: "goNav:back",
}


HoloStims:

1) There are 2-12 people watching a holoStim about Science Fiction: A just qualified pilot called ‘Jameson’ is flying from Lave to Zaonce, leaving the Lave orbital, dodging the navigation buoy and then hyperspacing through witchspace to the Witchspace Buoy in the Zaonce System, and then making his way through the asteroid fields to the Zaonce Orbital Station. It all seems horribly familiar!

2) There are 2-12 people watching a holoStim about a Moray Medical Boat, the medics on board and the dramas of dealing with wounded patients from a punctured Rock Hermit. An incipient romance develops between one of the miners and a nurse.

3) There are 2-12 people watching a holoStim documentary about the four species of Edible Poet: the edible wood poet, the edible mountain poet, the edible savannah poet, and the edible swamp poet. Their habitat, mating rituals, family life, poetic compositions and recipes for their degustation.

4) There are 2-12 people watching a holoStim watching a holoStim expose of the Church of Giles the Creator. Apparently one of the Archimandrites has been siphoning off church funds into a private bank account at the Bank of Ensoreus.

5) There are 2-12 people watching a holoStim about the archaeological dig which unearthed the ancient church of Randomius Factorius on Lave. The dating of it, the ancillary discoveries of various artefacts and the issues arising from them. There is also a visit to an ancient set of Randomian catacombs on Tibecea, buried in the snow and ice beneath Mount Ahruman.

6) There are 2-12 people watching a holoStim documentary of the bob-sleighing down Mount Tironos on Qutiri. The feline teams who compete and their training regime.

7) There are 1-12 people watching a holoStim advertisement for a new mining laser

8) There are 1-12 people watching a holoStim tour of Cowell & MgRath's shipyards at Lave where they make the Cobra Mk.III

9) There are 1-12 people watching a holoStim programme by BlOomberg Markets on the expected increase in demand for minerals over the next few years.

10) 1-6 people are gazing at a documentary on the bizarre masks so beloved of the lizards of Tionisla

11) There are 1-12 people watching a history of the Tionisla Orbital Cemetary prepared by the Tionisla Chronicle

12) There are 1-12 people gathered in front of the holoStim display arguing about what to watch next



Other activities:

1) There are several people in the corner sitting around a wooden table with diagrammes and wooden dice and counters. They roll the dice and move their counters around the board. It does not seem very interesting.

2) Several people in the corner are sitting around a wooden table with diagrammes and wooden dice and counters. They roll the dice and move their counters around the board. They seem fascinated by it and are getting quite excited.

3) There are several people playing cards in the corner. They are getting very excited about it and much money is changing hands.

4) A small number of people are playing cards in the corner and looking very bored.

5) There are several people who are sitting in the corner and playing with dominoes. They look quite bored.

6) A few people are sitting in the corner playing dominoes and discussing the Extreme version so popular on Digebiti.

7) There are a number of people in the corner who are drinking tea and discussing whether to put the tea in first or the milk in first.

8) Two burly miners are playing chess in the corner, with several others watching. They all seem quite animated and are discussing the moves.

9) Several miners are discussing the various models of mining laser and concluding that none of them are much good.

10) A couple of hard-bitten miners are sitting in the corner downing a bottle of some evil-looking yellowish liquid and getting quite drunk

11) A miner is wrestling with food dispenser and muttering maledictions under his breath.

12) A miner is fiddling with the food dispenser and some fascinating aromas are issuing forth.


Possible add-on for v.2.0 - the excited miners might start brawling!
Comments wanted:
Missing OXPs? What do you think is missing?
Lore: The economics of ship building How many built for Aronar?
Lore: The Space Traders Flight Training Manual: Cowell & MgRath Do you agree with Redspear?
User avatar
Massively Locked
Dangerous
Dangerous
Posts: 84
Joined: Tue Nov 20, 2012 12:20 pm

Re: [WIP] Life in the Frontier OXP

Post by Massively Locked »

Cholmondely wrote: Sat Dec 17, 2022 7:32 pm
1) Should we change "Fit Center" to Fitness Center, or leave it as a futuristic jargon?
Done- I think that "fitness center" is better.
Cholmondely wrote: Sat Dec 17, 2022 7:32 pm
2) I'm not sure that the government offices should be called "embassies". The planetary governments pay something towards the orbital stations, and so have a say in what goes on insides them (Oolite lore, and uncontested as far as I've seen on the wiki/BB). That is also why their TL is identical to that of the planet. I much prefer your original term, "Government Offices" and BB's terms (People's Palace, etc.).
Not a prob- reverted. I do like the "People's Palace" and other government-specific names.
Cholmondely wrote: Sat Dec 17, 2022 7:32 pm
Parts 1, 2 & 3:
Done- pulled in all your copyedits.
Cholmondely wrote: Sun Dec 18, 2022 1:05 am
Tried the Hints Bar, but did not have Hints.oxp loaded and was dumped back onto the F4 screen.
Yep, I put it there as a demo. As such, I didn't bother to error trap whether the add-on is installed or not.
Cholmondely wrote: Sun Dec 18, 2022 1:05 am
When I loaded Hints.oxp, there were some nice new bar images - but for one of them, one of the lines of the yellow text was eaten up by the yellow lighting in the background. Change text colour? Move the text down the page? Or can these only be done before the "mission screen overlay" is chosen?
It's the classic problem of text and background colors being similar or even matching. I have a workaround which I'll make a demo of at some point.
Cholmondely wrote: Sun Dec 18, 2022 1:05 am
I wonder if it possible to see the actual planet rotating? The F7 page manages it... - but this (if possible) should be for LitF v.2.0, I feel.
That would be nice, but I haven't come across any scripting mechanism for it.
Cholmondely wrote: Sun Dec 18, 2022 1:05 am
In the coriolis, in the Recreation Bridge, going to the "lobby" is one of the options in the text in the middle of the screen - but "going to the lobby" is not one of the options given underneath in the selection list.
That was disabled in the original version (0.7.3) with no indication as to why. Anyway- I restored the text.
Cholmondely wrote: Sun Dec 18, 2022 1:05 am
3) Ship Names and the Definite Article

My current ship is named "Spirit of Digebiti" rather than "The Spirit of Digebiti". Alas, when named by LitF, one sees inelegant cicumlocutions such as "You're in the hanger where Spirit of Digebiti is parked" or a choice of "Go to the Docks" , Embark on Spirit of Digebiti, etc.

I suspect that there is no simple solution to this. Might putting the name of the ship in quotes ease matters slightly? "You're in the hanger where 'Spirit of Digebiti' is parked" or a choice of "Go to the Docks" , "Embark on 'Spirit of Digebiti'", etc.

Or am I being too pedantic? After all, I did not name my ship "The Spirit of Digebiti"!
I debated this when I first mashed the ship name into the code. I've yet to come up with a universal solution. Suppose we force the use of "The". What happens when we have a ship named, "A Sunrise Over Lave"? We wind up with: "You look over and see The A Sunrise Over Lave parked by the hangar door." Most of the time, it seems appropriate to address ships with "The". Working out when it's not will be a challenge. Something to continue mulling over.
Cholmondely wrote: Sun Dec 18, 2022 2:17 am
Rock Hermits #2

HoloStims:

Other activities:
Great stuff! Currently working them into the lounge.
Post Reply