Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- On Command:
- CS R[ESET] - Reset all queues and variables for the command chair
- CS SH[OCKWAVE] - Call for a shockwave
- CS V[ORTEX] - Call for a vortex
- CS PATH <d> <d> <d> - Specify a path for autopilot hunting
- CS AUTO ON/OFF - Turn autopilot hunting on (from vortex) or off
- CS T[ARGET] <tar> - Manually call a target
- CS C[LARITY] - Manually call non-emergency clarity
- CS D[UST] - Scoop up glaetherial dust
- CS AN[CHOR] - Call for the ship to drop anchor
- CS F[ORCEFIELD] - Turn on the ship's forcefield
- CS Q[UIET] - Start the ship silent running
- CS N[OISY] - Stop the ship silent running
- CS X[VERSE] - Transverse through a planar gate
- CS SP[IRAL] - Put the ship into a spiral
- CS HELP KEYS - Show help for piloting numpad
- Numpad Controls:
- +----------+----------+----------+----------+
- | Num | / | * | - |
- | Lock | Launch | Dock | Siphon |
- +----------+----------+----------+----------+
- | 7 | 8 | 9 | + |
- | NW | N ▲ | NE | Emerg. |
- +----------+----------+----------+ Clarity | 5 stops glide
- | 4 | 5 | 6 | | and also looks
- | W ◄ | Stop/Look| E ► | |
- +----------+----------+----------+----------+
- | 1 | 2 | 3 | Enter |
- | SW | S ▼ | SE | |
- +----------+----------+----------+ |
- | 0 | . | | . toggles between
- | | Glide | | moves and glides
- +---------------------+----------+----------+
- ALIAS: cs r
- set_variable("lCSAutoPath","");
- set_variable("pCSAutoHunt","off");
- set_variable("iCSAutoPosition","1");
- set_variable("pCSGlide","off");
- set_variable("pCSResiphon","0");
- set_variable("iCSShockwavesEndingSoon","0");
- set_variable("pCSShocked","0");
- display_notice("[CrystalShip] All command chair functions reset.","yellow");
- GROUP: Numpad
- KEYBIND: 111:"pilot launch"
- KEYBIND: 106:"pilot dock"
- KEYBIND: 109:"shipt Siphon"
- KEYBIND: 107:"shipt Emergency clarity"
- KEYBIND: 103: run_function("cs_pilot_direction","nw","CrystalShip");
- KEYBIND: 104: run_function("cs_pilot_direction","n","CrystalShip");
- KEYBIND: 105: run_function("cs_pilot_direction","ne","CrystalShip");
- KEYBIND: 100: run_function("cs_pilot_direction","w","CrystalShip");
- KEYBIND: 101:
- if (get_variable("pCSGlide") == "on") send_command("pilot glide stop");
- send_command("ship look");
- KEYBIND: 102: run_function("cs_pilot_direction","e","CrystalShip");
- KEYBIND: 97: run_function("cs_pilot_direction","sw","CrystalShip");
- KEYBIND: 98: run_function("cs_pilot_direction","s","CrystalShip");
- KEYBIND: 99: run_function("cs_pilot_direction","se","CrystalShip");
- KEYBIND: 110:
- var pCSGlide = get_variable("pCSGlide");
- if (pCSGlide == "off") pCSGlide = "on"; else pCSGlide = "off";
- set_variable("pCSGlide",pCSGlide);
- display_notice("[CrystalShip] Gliding is now " + pCSGlide + ".","yellow");
- TRIGGER: You are unable to leave as you are still locked into the command chair.
- gag line
- TRIGGER: There is no exit in that direction.
- gag line
- FUNCTION: cs_pilot_direction
- var pCSGlide = get_variable("pCSGlide");
- if (pCSGlide == "on") pCSGlide = "glide"; else pCSGlide = "steer";
- send_command("pilot " + pCSGlide + " " + args);
- var pCSHuntAutopilot = get_variable("pCSHuntAutopilot");
- if (pCSHuntAutopilot == "on") {
- set_variable("pCSHuntAutopilot","off");
- display_notice("[CrystalShip] Autopilot hunting disabled. Return to vortex and CS AUTO ON to resume","yellow");
- ALIAS: cs v
- shipt Vortex
- ALIAS: cs sh
- shipt Shockwave
- TRIGGER: A nearby turret blankets aetherspace with bolts of crackling energy, which ripple around this space in waves of coruscating power.
- if (get_variable("pCSAutoHunt") != "on") return;
- var seconds = new Date().getTime() / 1000;
- seconds += (57*60);
- set_variable("iCSShockwavesEndingSoon",seconds);
- ALIAS: cs path <d1> <d2> <d3>
- p0 = <d1>
- p1 = <d2>
- p2 = <d3>
- var lCSAutoDirections = get_variable("p0") + "|" + get_variable("p1") + "|" + get_variable("p2");
- set_variable("lCSAutoDirections",lCSAutoDirections);
- display_notice("[CrystalShip] Directions set for autopilot hunting. Go to the vortex and CS AUTO ON to begin.","yellow");
- ALIAS: cs auto on
- // verify a path is set
- var lCSAutoDirections = get_variable("lCSAutoDirections");
- if (lCSAutoDirections == "" || lCSAutoDirections.split("|").length < 3) {
- display_notice("[CrystalShip] You must set a path with CS PATH <d> <d> <d> first.","red");
- return;
- }
- set_variable("pCSAutoHunt","on");
- set_variable("iCSAutoPosition","1");
- set_variable("lCSAutoCreatures","");
- set_variable("pCSGlide","off");
- display_notice("[CrystalShip] Autopilot hunting on. Use numpad to move and interrupt it.","yellow");
- // kick the process off
- send_command("shipt Siphon");
- ALIAS: cs auto off
- if (get_variable("pCSAutoHunt") != "on") {
- display_notice("[CrystalShip] Autopilot hunting is already off.","red");
- return;
- }
- set_variable("pCSHuntAutopilot","off");
- display_notice("[CrystalShip] Autopilot hunting off. Return to vortex and CS AUTO ON to resume.","yellow");
- set_variable("iCSAutoPosition","1");
- set_variable("pCSResiphon","0");
- TRIGGER: (Ship): You say, "Siphon."
- if (get_variable("pCSAutoHunt") != "on") return;
- set_variable("pCSResiphon","1");
- setTimeout(function() {
- if (get_variable("pCSResiphon") == "1")
- send_command("shipt Siphon");
- }, 2000);
- FUNCTION: cs_creature_long_to_short
- var sCreature = "";
- if (args = "a tendril of kethuru") sCreature = "tendril";
- else {
- var words = args.split(" ");
- sCreature = words[words.length-1];
- }
- set_variable("p0",sCreature);
- TRIGGER: ^Drawn by the flux of energy\\, ([A-Za-z\\,\\'\\- ]+) suddenly wanders into the nearby area\\.$
- if (get_variable("pCSAutoHunt") != "on") return;
- var sCreature = "";
- var sDesc = args[1].toLowerCase();
- run_function("cs_creature_long_to_short",sDesc,"CrystalShip");
- sCreature = get_variable("p0");
- if (sCreature == "") {
- display_notice("[CrystalShip] Warning, creature not recognized: " + sDesc,"red");
- return;
- }
- run_function("cs_pilot_creature_arrived",sCreature,"CrystalShip");
- TRIGGER: The energy vortex flashes and a vortex karibidean flies out of it.
- if (get_variable("pCSAutoHunt") != "on") return;
- run_function("cs_pilot_creature_arrived","karibidean","CrystalShip");
- FUNCTION: cs_pilot_creature_arrived
- var sCreature = args;
- if (get_variable("pCSAutoHunt") != "on") {
- if (sCreature == "karibidean") {
- send_command("shipt Target karibidean");
- send_command("cs internal alarm","0");
- }
- return;
- }
- // prevent resiphon
- set_variable("pCSResiphon","0");
- // handle if there's already creatures in the queue
- var lCSAutoCreatures = get_variable("lCSAutoCreatures");
- if (lCSAutoCreatures != "") {
- lCSAutoCreatures += "|" + sCreature;
- set_variable("lCSAutoCreatures",lCSAutoCreatures);
- display_notice("[CrystalShip] Alert! " + String(lCSAutoCreatures.split("|").length) + " creatures in play!","red");
- send_command("cs internal alarm","0");
- // if karibidean call it anyway
- if (sCreature == "karibidean") send_command("shipt Target karibidean");
- return;
- }
- // create a queue
- set_variable("lCSAutoCreatures",sCreature);
- // call target
- if (sCreature == "karibidean") send_command("cs internal alarm","0");
- send_command("shipt Target " + sCreature);
- // move to position 2 (to get stuck on a shockwave)
- run_function("cs_pilot_move_to","2","CrystalShip");
- // warn the pilot if someone isn't firing within five seconds
- set_variable("lCSTurretsFiring","");
- setTimeout(function() {
- var lCSTurretsFiring = get_variable("lCSTurretsFiring");
- if (lCSTurretsFiring == "") {
- display_notice("[CrystalShip] Warning: no one is firing!","red");
- send_command("cs internal alarm",0);
- } else if (lCSTurretsFiring.split("|").length < 3) {
- display_notice("[CrystalShip] Warning: only these people are firing: " + lCSTurretsFiring.join(", "),"red");
- send_command("cs internal alarm",0);
- }
- }, 5000);
- TRIGGER: The floor shakes as <person> fires
- p0 = <person>
- if (get_variable("pCSAutoHunt") != "on") return;
- var sPerson = get_variable("p0");
- var lCSTurretsFiring = get_variable("lCSTurretsFiring");
- if (lCSTurretsFiring == "") {
- set_variable("lCSTurretsFiring",sPerson);
- return;
- }
- lCSTurretsFiring = lCSTurretsFiring.split("|");
- if (lCSTurretsFiring.indexOf(sPerson) != -1) return;
- lCSTurretsFiring.push(sPerson);
- set_variable("lCSTurretsFiring",lCSTurretsFiring.join("|"));
- TRIGGER: ^([A-Za-z\\,\\'\\- ]+) suddenly explodes\\.$
- if (get_variable("pCSAutoHunt") != "on") return;
- var sCreature = "";
- var sDesc = args[1].toLowerCase();
- run_function("cs_creature_long_to_short",sDesc,"CrystalShip");
- sCreature = get_variable("p0");
- if (sCreature == "") return;
- // remove from the queue
- var lCSAutoCreatures = get_variable("lCSAutoCreatures").split("|");
- var i = lCSAutoCreatures.indexof(sCreature);
- if (i != -1) {
- lCSAutoCreatures.splice(i,1);
- set_variable("lCSAutoCreatures",lCSAutoCreatures.join("|"));
- }
- // if anything else is in queue, call the first one
- if (lCSAutoCreatures.length > 0) {
- send_command("shipt Target " + lCSAutoCreatures[0]);
- return;
- }
- // if we're over the vortex, call for another siphon, unless shockwaves due to expire
- if (get_variable("iCSAutoPosition") == "1") {
- // are shockwaves expiring soon?
- var seconds = new Date().getTime() / 1000;
- var waves = Number(get_variable("iCSShockwavesEndingSoon"));
- if (waves != 0 && waves >= seconds) {
- send_command("shipt Shockwaves are expiring soon.");
- set_variable("iCSShockwavesEndingSoon","0");
- } else {
- send_command("shipt Siphon");
- }
- return;
- }
- // move back to the vortex; on arrival, we'll call for siphon again
- run_function("cs_pilot_move_to", "1", "CrystalShip");
- FUNCTION: cs_pilot_move_to
- var iCurPosition = get_variable("iCSAutoPosition");
- var iNewPosition = args;
- var lCSAutoPath = get_variable("lCSAutoPath");
- if (lCSAutoPath == "") return;
- lCSAutoPath = lCSAutoPath.split("|");
- var iDirIndex = 0;
- var pReverse = 0;
- if (iCurPosition == iNewPosition) return;
- if (iNewPosition == iCurPosition + 1 || (iNewPosition == 1 && iCurPosition == 3)) {
- iDirIndex = iCurPosition;
- pReverse = 0;
- } else {
- iDirIndex = iNewPosition;
- pReverse = 1;
- }
- var sDirection = lCSAutoPath[iDirIndex-1];
- if (pReverse == 1) {
- if (sDirection == "e") sDirection = "w";
- else if (sDirection == "w") sDirection = "e";
- else if (sDirection == "n") sDirection = "s";
- else if (sDirection == "s") sDirection = "n";
- else if (sDirection == "ne") sDirection = "sw";
- else if (sDirection == "nw") sDirection = "se";
- else if (sDirection == "se") sDirection = "nw";
- else if (sDirection == "sw") sDirection = "ne";
- }
- sDirection = "pilot steer" + sDirection;
- if (get_variable("pCSShocked") == "1") set_variable("sCSAfterShockCommand",sDirection);
- else send_command(sDirection);
- set_variable("iCSNextPosition",iNewPosition);
- TRIGGER: The command chair is unresponsive to your requests.
- set_variable("pCSShocked","1");
- TRIGGER: ^You are thrust forward as .+ shudders violently and comes to a complete stop\\.$
- set_variable("pCSShocked","1");
- TRIGGER: I am clearing the command chair of all impairments."
- run_function("cs_pilot_unshocked","","CrystalShip");
- TRIGGER: ^With a ripple, .* frees itself from its shockwave.$
- run_function("cs_pilot_unshocked","","CrystalShip");
- FUNCTION: cs_pilot_unshocked
- set_variable("pCSShocked","0");
- if (get_variable("pCSAutoHunt") != "on") return;
- var sCmd = get_variable("sCSAfterShockCommand");
- if (sCmd != "") {
- send_command(sCmd);
- set_variable("sCSAfterShockCommand","");
- }
- TRIGGER: ^You steer .+ to the \\w+\\.$
- if (get_variable("pCSAutoHunt") != "on") return;
- var iNewPosition = get_variable("iCSNextPosition");
- if (iNewPosition != "") {
- set_variable("iCSAutoPosition",iNewPosition);
- set_variable("iCSNextPosition","");
- }
- // after completing a move, we should either move again or siphon
- var iPosition = get_variable("iCSAutoPosition");
- if (get_variable("lCSAutoCreatures") == "") {
- // go to vortex, or if there, siphon
- if (iPosition == 1) send_command("shipt Siphon");
- else run_function("cs_pilot_move_to", "1", "CrystalShip");
- } else {
- // move between 2 and 3, or if at 1 go to 2 (should never happen)
- if (iPosition == 1) iPosition = 2; else iPosition = 5 - iPosition;
- run_function("cs_pilot_move_to", iPosition, "CrystalShip");
- }
- ALIAS: cs c
- shipt Clarity
- ALIAS cs t<stuff> <target>
- shipt Target @target
- ALIAS: cs t <target>
- shipt Target @target
- ALIAS: cs d
- pilot scoop
- ALIAS: cs an
- pilot anchor
- ALIAS: cs x
- pilot transverse
- ALIAS: cs f
- pilot forcefield
- ALIAS: cs q
- pilot silentrun start
- ALIAS: cs n
- pilot silentrun stop
- ALIAS: cs sp
- pilot spiral start
- ALIAS: cs internal alarm
- sound:alarm beep
- TRIGGER: Exhaustion clouds your mind and you fail to properly link to the command chair
- highlight
- run_function("announce_tiredness", "chair", "CrystalShip");
- FUNCTION: cs_command_chair_done
- if (get_variable("sNumpadGroup") == undefined) {
- var r = reflex_find_by_name("group", "NumpadDefaults", false, false, "CrystalShip");
- if (r != null) reflex_enable(r);
- } else {
- var sCurGroup = get_variable("sCSPrevNumpadGroup");
- var r = reflex_find_by_name("group", sCurGroup, false, false, "Numpad movement");
- if (r != null) reflex_enable(r);
- set_variable("sCSPrevNumpadGroup","");
- }
Advertisement
Add Comment
Please, Sign In to add comment