Re: [WIP] Life in the Frontier OXP
Posted: Thu Dec 01, 2022 11:13 am
For information and discussion about Oolite.
https://bb.oolite.space/
Very good point!limbo wrote: ↑Thu Dec 01, 2022 11:41 amlol. 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.
I think the aforementioned Vacuum Bar is actually outside the station:Cholmondely wrote: ↑Sun Dec 04, 2022 11:31 pm... then a Vacuum Bar could well be sited inside in an inconspicuous corner.
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.
Digebitian occasional additions to the people wandering around the orbital station.
Edited LITF_Navigation.js (just BB's text for typos & grammar, but also your line 585 to what I hope now makes sense!)
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",
};
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"
}
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"
}
Done- I think that "fitness center" is better.Cholmondely wrote: ↑Sat Dec 17, 2022 7:32 pm1) Should we change "Fit Center" to Fitness Center, or leave it as a futuristic jargon?
Not a prob- reverted. I do like the "People's Palace" and other government-specific names.Cholmondely wrote: ↑Sat Dec 17, 2022 7:32 pm2) 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.).
Done- pulled in all your copyedits.
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 amTried the Hints Bar, but did not have Hints.oxp loaded and was dumped back onto the F4 screen.
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 amWhen 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?
That would be nice, but I haven't come across any scripting mechanism for it.Cholmondely wrote: ↑Sun Dec 18, 2022 1:05 amI 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 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 amIn 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.
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 1:05 am3) 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"!
Great stuff! Currently working them into the lounge.