<<include "Info">>\
<<replace "#desc">><<desc "abandoned">><</replace>>\
<<if !$loc.includes("Abandoned Ship")>><<run $loc.push("Abandoned Ship")>><<append "#desc">> You add a log about the Abandoned Ship.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Search]">>\
<<if random(1,20) is 20 and $ship_loot[$sel] gt 0>>\
<<gen_npc "robot">>\
<<set $combat to 1>>\
<<replace "#look">>A robot seems to be guarding the ship!<</replace>>\
<<combat>>\
<<else>>\
<<roll $wit $modwit>><<set $dif to 10>>\
<<if $ship_loot[$sel] gt 0 and $res gte $dif>>\
<<switch random(1,12)>>\
<<case 1 2 3 4>>\
<<set $found to random(2,5)>>\
<<set $scrap += $found>>\
<<set $ship_loot[$sel] -= 1>>\
<<set $xp += 10>>\
<<replace "#look">>You found some scrap. (+$found scrap)(+10xp)<</replace>>\
<<case 5 6 7>>\
<<set $found to 1>>\
<<set $batt += $found>>\
<<set $ship_loot[$sel] -= 1>>\
<<set $xp += 10>>\
<<replace "#look">>You found an energy cell. (+$found cell)(+10xp)<</replace>>\
<<case 8 9>>\
<<set $found to random(50,200)>>\
<<set $cred += $found>>\
<<set $ship_loot[$sel] -= 1>>\
<<set $xp += 10>>\
<<replace "#look">>You found some credits. (+$found cr)(+10xp)<</replace>>\
<<case 10 11>>\
<<set $ship_loot[$sel] -= 1>>\
<<set $xp += 50>>\
<<gen_log>>
<<replace "#look">>You found a log. (+50xp)<</replace>>\
<<case 12>>\
<<set $ship_loot[$sel] -= 1>>\
<<set _rndtool to $advanced_list.random()>>\
<<if !$schematics.includes(_rndtool)>>\
<<run $schematics.push(_rndtool)>>\
<<replace "#look">>You found the <<= _rndtool>> schematics. You can make it using the workbench.<</replace>>\
<<else>>
<<replace "#look">>You found the <<= _rndtool>> schematics, but you already have it.<</replace>>
<</if>>\
<</switch>>
<<else>>\
<<adv_time 10 "min">>\
<<replace "#look">>You could not find anything.<</replace>>\
<</if>>\
<</if>>\
<</link>> \
<<link "[Open Storage]">>\
<<if $opened[$sel] is 0>>\
<<dialog "Storage">>\
<<do tag "m1">>\
You can open the storage if you guess the combination of 3 unique digits. Click on the digits to change them. Click on "Try to open" to check your guess. If the combination is incorrect, some numbers may flash in different colors:
Green: correct digit and position. Red: this digit is not in the combinantion. No flash: this digit is in the combination, but not in this position.
You have $tries[$sel] tries before it blocks.\
<</do>>
<span id="n1">- - - -[<<cycle "$snum[$sel][0]" autoselect>><<option 1>><<option 2>><<option 3>><<option 4>><<option 5>><<option 6>><<option 7>><<option 8>><<option 9>><</cycle>>]- -</span> \
<span id="n2">- -[<<cycle "$snum[$sel][1]" autoselect>><<option 1>><<option 2>><<option 3>><<option 4>><<option 5>><<option 6>><<option 7>><<option 8>><<option 9>><</cycle>>]- -</span> \
<span id="n3">- -[<<cycle "$snum[$sel][2]" autoselect>><<option 1>><<option 2>><<option 3>><<option 4>><<option 5>><<option 6>><<option 7>><<option 8>><<option 9>><</cycle>>]- - - -</span>
<<link "[Try to open]">>\
<<if $tries[$sel] gt 0>>
<<set $tries[$sel]-->>
<<redo "m1">>
<<if $snum[$sel][0] is $cnum[$sel][0]>><<css '#n1' 'color' 'lime'>><</if>>\
<<if $snum[$sel][1] is $cnum[$sel][1]>><<css '#n2' 'color' 'lime'>><</if>>\
<<if $snum[$sel][2] is $cnum[$sel][2]>><<css '#n3' 'color' 'lime'>><</if>>\
<<if $snum[$sel][0] isnot $cnum[$sel][0] and $snum[$sel][0] isnot $cnum[$sel][1] and $snum[$sel][0] isnot $cnum[$sel][2]>><<css '#n1' 'color' 'red'>><</if>>\
<<if $snum[$sel][1] isnot $cnum[$sel][0] and $snum[$sel][1] isnot $cnum[$sel][1] and $snum[$sel][1] isnot $cnum[$sel][2]>><<css '#n2' 'color' 'red'>><</if>>\
<<if $snum[$sel][2] isnot $cnum[$sel][0] and $snum[$sel][2] isnot $cnum[$sel][1] and $snum[$sel][2] isnot $cnum[$sel][2]>><<css '#n3' 'color' 'red'>><</if>>\
<<timed 0.5s>><<css '#n1' 'color' 'black'>><<css '#n2' 'color' 'black'>><<css '#n3' 'color' 'black'>><</timed>>\
<<if $snum[$sel][0] is $cnum[$sel][0] and $snum[$sel][1] is $cnum[$sel][1] and $snum[$sel][2] is $cnum[$sel][2]>>
<<if $planet is "Anarchio" and $task.includes("Find ship") and $px is $task_list["Find ship"].target_x and $py is $task_list["Find ship"].target_y>>\
<<dialogclose>>
<<complete_task "Find ship">>\
<<replace "#look">>You find a hidden data chip in the storage compartment. Opening it on your datapad reveals encrypted files about corporate transactions and the information broker's network. The data confirms Dade's suspicions about Talis's involvement. You transmit the data to Dade for analysis.<</replace>>\
<<else>>\
<<set $xp += 100>>\
<<set $cred_locked to random(100,750)>><<set $snack_locked to random(0,3)>><<set $batt_locked to random(0,3)>><<set $d1 to random(1,2)>><<if $d1 is 2>><<set $tool_locked to $tool_list.random()>><<else>><<set $tool_locked to "">><</if>>\
<<dialogclose>>
<<replace "#look">>\
You opened the storage! Inside, you found $cred_locked credits<<if $batt_locked is 1>>, 1 energy cell<<elseif $batt_locked gt 1>>, $batt_locked energy cells<</if>><<if $bag.length lte 10-$snack_locked>><<if $snack_locked is 1>>, 1 snack<<elseif $snack_locked gt 1>>, $snack_locked snacks<</if>><<set $snacks += $snack_locked>><<for _n to 0; _n lt $snack_locked; _n++>><<set $rndsnack to $kind.random() + " " + $food.random() + " " + $form.random()>><<run $bag.push($rndsnack)>><<if $rndsnack is $favsnack>><<set $xp += 100>> (your favorite! +100xp)">><<set $favfound++>><</if>><</for>><</if>><<if $tool_locked isnot "">><<if $tool.length lt 5>> and <<a $tool_locked>><<run $tool.push({name: $tool_locked, charge: 0})>><</if>><</if>>.\
<<set $cred += $cred_locked>><<set $batt += $batt_locked>>\
<</replace>>\
<</if>>\
<<set $opened[$sel] to 1>>\
<<set $tries[$sel] to 0>>\
<<set $lockers_opened++>>\
<<include "Info">>\
<<elseif $tries[$sel] is 0>>
<<set $opened[$sel] to 2>>
<<dialogclose>>
<<replace "#look">>You could not guess the combination. The storage is now blocked.<</replace>>
<</if>>\
<</if>> \
<</link>>\
<</dialog>>\
<<else>>\
<<if $opened[$sel] is 1>>\
<<replace "#look">>The storage is already open.<</replace>>\
<<else>>\
<<replace "#look">>The storage is blocked. You cannot open it anymore.<</replace>>\
<</if>>\
<</if>>\
<</link>> \
<</replace>>\
<</if>>\<<include "Info">>\
<<replace "#desc">><<desc "arcade">><</replace>>\
<<if !$loc.includes("Arcade")>><<run $loc.push("Arcade")>><<append "#desc">> You add a log about the Arcade.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Play]">>\
<<set $arcade to 1>>\
<<set $old_ship_shield to $ship_shield>>\
<<set $old_hull to $hull>>\
<<set $ship_shield to 100>>\
<<set $hull to 100>>\
<<gen_enemy $arcade_level>>\
<<set_combat "Enemy">>\
<<ship_combat>>\
<</link>> \
<</replace>>\
<</if>>\<<include "Info">>\
<<replace "#desc">><<desc "arena">><</replace>>\
<<if !$loc.includes("Arena")>><<run $loc.push("Arena")>><<append "#desc">> You add a log about the Arena.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Fight]">>\
<<set $combat to 1>><<set $arena to 1>><<set $prize to 500*$arena_level>>\
<<gen_npc "random_arena">>\
<<replace "#look">>You fight <<a $npc>> in the arena.<</replace>>\
<<combat>>\
<</link>> \
<</replace>>\
<</if>>\<<if $class is "freak">><<set $pricebody to $price500<<else>><<set $pricebody to $price750>><</if>>
<<include "Info">>\
<<replace "#desc">><<desc "bodyshop">><</replace>>\
<<if !$loc.includes("Body Shop")>><<run $loc.push("Body Shop")>><<append "#desc">> You add a log about the Body Shop.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Modify]">>
<<if $class is "robot">>
<<replace "#look">>It does not work on robots.<</replace>>
<<else>>
<<if $hp lt 8 or $str is 1 or $dex is 1 or $wit is 1>>\
<<replace "#look">>You cannot do that right now. Come back later.<</replace>>
<<else>>
<<replace "#look">>You sit in the chair and prepare for the modification.<</replace>>\
<<dialog "Modification">>\
<span id="m1">The freak attendant smiles and gestures to a chair in the center of the room. "We can modify your body to enhance your abilities or give you a unique look. It will cost you $price1 credits, and you will lose 5 hp in the process. Are you ready?"</span>
Choose a body modification:
<<for _n to 0; _n lt $body_mod.length; _n++>>\
<<if !$extra_feat.includes($body_mod[_n])>>\
<<link_body_mod $body_mod[_n] _n>>\
<</if>>\
<</for>>\
<</dialog>>
<</if>>\
<</if>>\
<</link>> \
<</replace>>\
<</if>>\<<include "Info">>\
<<replace "#desc">><<desc "building">><</replace>>\
<<if !$loc.includes("Building")>><<run $loc.push("Building")>><<append "#desc">> You add a log about the Building.<</append>><</if>>\
<<complete_task "Deliver parcel">>\
<<if random(1,10) is 1 and $stealth is 0 and $build_loot[$sel] gt 0>>\
<<gen_npc "random">>\
<<set $combat to 1>>\
<<replace "#look">><<A $npc>> appears and attacks you!<</replace>>\
<<combat>>\
<</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Enter]">>\
<<if $building[$sel] is 0>>\
<<replace "#look">>You enter the building. It is in ruins and appears to be abandoned.<</replace>>\
<<replace "#op">>\
<<link "[Search]">>\
<<if random(1,4) is 1 and $stealth is 0 and $build_loot[$sel] gt 0>>\
<<gen_npc "random">>\
<<set $combat to 1>>\
<<replace "#look">><<A $npc>> appears and attacks you!<</replace>>\
<<combat>>\
<<else>>\
<<roll $wit $modwit>><<set $dif to 10>>\
<<if $build_loot[$sel] gt 0 and $res gte $dif>>\
<<switch random(1,15)>>\
<<case 1 2 3 4 5>>\
<<set $found to random(2,5)>>\
<<set $scrap += $found>>\
<<set $build_loot[$sel] -= 1>>\
<<set $xp += 10>>\
<<replace "#look">>You found some scrap. (+$found scrap)(+10xp)<</replace>>\
<<case 6 7 8 9>>\
<<set $found to random(50,200)>>\
<<set $cred += $found>>\
<<set $build_loot[$sel] -= 1>>\
<<set $xp += 10>>\
<<replace "#look">>You found some credits. (+$found cr)(+10xp)<</replace>>\
<<case 10 11 12>>\
<<set $found to 1>>\
<<set $batt += $found>>\
<<set $build_loot[$sel] -= 1>>\
<<set $xp += 10>>\
<<replace "#look">>You found an energy cell. (+$found cell)(+10xp)<</replace>>\
<<case 13 14>>\
<<set $build_loot[$sel] -= 1>>\
<<set $xp += 50>>\
<<gen_log>>
<<replace "#look">>You found a log. (+50xp)<</replace>>\
<<case 15>>\
<<set $build_loot[$sel] -= 1>>\
<<set _rndtool to $advanced_list.random()>>\
<<if !$schematics.includes(_rndtool)>>\
<<run $schematics.push(_rndtool)>>\
<<replace "#look">>You found the <<= _rndtool>> schematics. You can make it using the workbench.<</replace>>\
<<else>>
<<replace "#look">>You found the <<= _rndtool>> schematics, but you already have it.<</replace>>
<</if>>\
<</switch>>\
<<adv_time 10 "min">>\
<<else>>\
<<adv_time 10 "min">>\
<<replace "#look">>You could not find anything.<</replace>>\
<</if>>\
<</if>>\
<</link>> \
<</replace>>\
<</if>>\
<<if $building[$sel] is 1>>\
<<if $planet is $planet_o and $px is $task_list["Find old friend"].target_x and $py is $task_list["Find old friend"].target_y>>\
<<replace "#look">>Your old friend lives here. The modest dwelling shows signs of careful maintenance despite the harsh planetary conditions.<</replace>>\
<<if $npc_talked[$sel] is 0>>\
<<replace "#op">>\
<<link "[Talk to friend]">><<talk_to_friend>><</link>>\
<</replace>>\
<<else>>\
<<replace "#op">><</replace>>\
<</if>>\
<<else>>\
<<replace "#look">>You enter the building. It appears to be occupied by a survivor.<</replace>>\
<<if $npc_talked[$sel] is 0>>\
<<set $npc_talked[$sel] to 1>>\
<<replace "#op">>\
<<link "[Talk]">>\
<<gen_npc "random">>\
<<gen_npc "talk">>\
<<if $class is $npc_hate>>\
<<replace "#look">><<npc_hate>><</replace>>\
<<set $combat to 1>>\
<<combat>>\
<<else>>\
<<replace "#look">><<npc_friendly>><</replace>>\
<<set $xp += 100>>\
<<replace "#op">><</replace>>\
<</if>>\
<</link>> \
<</replace>>\
<<else>>\
<<replace "#op">><</replace>>\
<</if>>\
<</if>>\
<</if>>\
<<if $building[$sel] is 2>>\
<<set _gang to either("humans", "aliens", "robots", "freaks")>>\
<<replace "#look">>You enter the building. It appears to be an underground market, controled by <<= _gang>>.<</replace>>\
<<replace "#op">>\
<<link "[Buy tool]">>\
<<dialog "Buy tool">>\
You can buy a tool for $price750.
<<do>>\
Inventory: <<= $tool.length>>/5 tools. Credits: $cred.
<</do>>\
<span id="m1"></span>
Choose a tool to buy:
<<do>>\
<<for _n to 0; _n < $tool_market[$sel].length; _n++>>\
<<tool_buy_market _n $tool_market[$sel][_n]>> \
<</for>>\
<</do>>\
<</dialog>>\
<</link>> \
<<link "[Sell tool]">>\
<<if $tool.length gt 0>>\
<<dialog "Sell tool">>\
You can sell a tool for $price750.
<<do>>\
Inventory: <<= $tool.length>>/5 tools. Credits: $cred.
<</do>>\
<span id="m1"></span>
Choose a tool to sell:
<<do>>\
<<for _n to 0; _n lt $tool.length; _n++>>\
<<tool_sell_market _n $tool[_n].name>> \
<</for>>\
<</do>>\
<</dialog>>\
<<else>>\
<<replace "#look">>You have no tool to sell.<</replace>>\
<</if>>\
<</link>> \
<</replace>>\
<</if>>\
<</link>> \
<</replace>>\
<</if>>\<<include "Info">>\
<<replace "#desc">><<desc "cantina">><</replace>>\
<<if !$loc.includes("Cantina")>><<run $loc.push("Cantina")>><<append "#desc">> You add a log about the Cantina.<</append>><</if>>\
<<if random(1,20) is 1 and $stealth is 0>>\
<<gen_npc "random">>\
<<set $combat to 1>>\
<<append "#look">> A shootout is taking place. <<A $npc>> merc attacks you!<</append>>\
<<combat>>\
<</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Talk to owner (50 cr)]">>\
<<if $cred gte 50>>\
<<set $cred -= 50>>\
<<include "Info">>\
<<if $planet is $planet_o and $task.includes("Find old friend") and $task_list["Find old friend"].location is "Unkown. You can ask at a cantina.">>\
<<set _friend_x to $task_list["Find old friend"].target_x>>\
<<set _friend_y to $task_list["Find old friend"].target_y>>\
<<set $task_list["Find old friend"].location to "Building at position " + (_friend_y - 50) + " " + -(_friend_x - 50) + ".">>\
<<dialog "Talk">>\
The cantina owner's expression softens when you mention your friend's name. They lean closer, lowering their voice against the background noise.
"Ah yes, I remember them. Good person, that one. Always paid their tab, never caused trouble." The owner pauses, wiping a glass with a worn cloth.
"Last I heard, they'd settled down in one of the residential buildings. Smart choice, those places still have working life support."
They gesture vaguely toward the window. "You'll find them at the building located at position <<= _friend_y - 50>> <<= -(_friend_x - 50)>>. Can't miss it, it's one of the few with lights still on."
The owner's voice takes on a warning tone. "Be careful out there. The streets aren't as safe as they used to be."
With a knowing nod, they slide a small data chip across the bar. "Take this - it has the exact coordinates. Good luck, and I hope your reunion goes well."
<</dialog>>\
<<else>>\
<<set _info to $structures.random()>>\
<<dialog "Talk">>\
There’s the <<=_info.type>> at position <<= (_info.y - 50)>> <<= -(_info.x -50)>>. \
<<switch _info.type>>\
<<case "tool store">>You can buy tools or cells there.
<<case "arena">>You can fight for credits and glory in the Arena.
<<case "robot boxing">>Bet on robot fights, but watch your wallet!
<<case "body shop">>Modify your body. A place for freaks.
<<case "cyberdrone racetrack">>Compete on races, or just watch the action.
<<case "lab">>Strange experiments happen in there.
<<case "arcade">>You can play a battleship simulation there.
<<case "abandoned ship">>Some say there's loot in there.
<<case "building">>It appears to be an illegal market of some kind.
<<case "corporation">>They said there are vaults in it with old technology.
<<case "refinery">>You can buy fuel or sell scraps there.
<<case "scavengers">>You can buy droids and cyberdrones or sell scraps there.
<<case "arcade">>You can play a ship battle simulation there.
<</switch>>\
<</dialog>>\
<</if>>\
<<else>>\
<<replace "#look">>You need to buy a drink first. It costs 50 credits.<</replace>>\
<</if>>\
<</link>> \
<<link "[Buy snacks]">>\
<<dialog "Cantina">>\
The cantina owner frowns and says: "What do you want?" You can buy snacks here for $price150 credits.
<<do>>\
Inventory: <<= $bag.length>>/10 snacks. Credits: $cred.
<</do>>\
<span id="m1"></span>
Choose a snack to buy:
<<for _n to 0; _n lt $kitchen[$sel].length; _n++>>\
<<link_cantina $kitchen[$sel][_n] _n>>\
<</for>>
<</dialog>>\
<</link>> \
<<link "[Ask for job]">>\
<<if !$task.includes("Deliver parcel")>>\
<<if $buildings.length > 0>>\
<<set _random_building to $buildings.random()>>\
<<set _target to _random_building>>\
<<set _xp_reward to 200*$pl>>\
<<set _reward to random(500, 1000)>>\
<<set $task_list["Deliver parcel"] to {
description: "Deliver a parcel to the designated building. The client pays well for discretion.",
planet: $planet,
location: "Building at " + (_target.y - 50) + " " + -(_target.x - 50) + ".",
xp: _xp_reward,
cr: _reward,
target_x: _target.x,
target_y: _target.y
}>>\
<<add_task "Deliver parcel" 0>>\
<<replace "#look">>The cantina owner gives you a small package and whispers the delivery address. You need to deliver it at a building at <<= _target.y - 50>> <<= -(_target.x - 50)>>. You add the task to your log.<</replace>>\
<<notify>>Added new task<</notify>>
<<else>>\
<<replace "#look">>The cantina owner has no jobs available right now.<</replace>>\
<</if>>\
<<else>>\
<<replace "#look">>The cantina owner has no jobs available right now.<</replace>>\
<</if>>\
<</link>> \
<<if $activity[$sel] is "arm-wrestling">>\
<<link "[Arm-wrestling]">><<Arm-wrestling>><</link>> \
<</if>>\
<<if $activity[$sel] is "darts">>\
<<link "[Darts]">><<Darts>><</link>> \
<</if>>\
<<if $activity[$sel] is "checkers">>\
<<link "[Checkers]">><<Checkers>><</link>> \
<</if>>\
<</replace>>\
<</if>>\<<include "Info">>\
<<replace "#desc">><<desc "cell">><</replace>>\
<<if !$loc.includes("Cell Machine")>><<run $loc.push("Cell Machine")>><<append "#desc">> You add a log about the Cell Machine.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Buy]">>\
<<if $cell[$sel] gt 0 and $cred gte $price>>\
<<set $batt++>><<set $cell[$sel]-->><<set $cred -= $price>><<replace "#look">>You bought 1 energy cell.<</replace>>\
<<include "Cell Machine">>
<<elseif $cred lt $price>><<replace "#look">>You cannot afford.<</replace>>\
<<elseif $cell[$sel] is 0>><<replace "#look">>This machine has no cells left.<</replace>>\
<</if>>\
<<include "Info">>\
<</link>> \
<</replace>>\
<</if>>\<<include "Info">>\
<<replace "#desc">><<desc "corp">><</replace>>\
<<if !$loc.includes("Corporation Headquarters")>>\
<<run $loc.push("Corporation Headquarters")>>\
<<append "#desc">> You add a log about the Corporation Headquarters.<</append>>\
<</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Search]">>
<<corp_search>>
<</link>> \
<<if $vault_found[$sel] is 1>>\
<<link "[Hack Vault]">>
<<hack_vault>>
<</link>> \
<</if>>\
<</replace>>\
<</if>>\<<timed 1s>><<audio "ending" play>><</timed>>\
<div id="credits-container">
<div id="credits-content">
<h2>Fully Automated Space Capitalism</h2>
<br>
Fully Automated Space Capitalism is a modified version of <a href="https://janosbiro.itch.io/space-snacks" target="_blank">Space Snacks (2020)</a>.
Based on <a href="https://gnarledmonster.itch.io/space-reavers" target="_blank">Space Reavers</a>, by Alex Damaceno.
<br>
Coded by Janos Biro using <a href="http://twinery.org" target="_blank">Twine 2.10</a>, <a href="https://www.motoslave.net/sugarcube/2" target="_blank">Sugarcube 2.37.3</a> and VSCode.
Custom macros by <a href="https://twinelab.net/custom-macros-for-sugarcube-2" target="_blank">Chapel</a>.
"The Dialectical Refactor" bugfixes by <a href="https://itch.io/profile/timbirms" target="_blank">Tim Birms</a>.
<strong>Parts of the code and text were created with AI assistance.</strong>
<br><br>
<h3>Graphics</h3>
<a href="https://lightcone-games.itch.io/the-1-bit-space-pack" target="_blank">The 1-Bit Space Pack</a>, by Lightcone Games.
Additional graphics by Janos Biro, based on:
<a href="https://kenney.nl/assets/sci-fi-rts" target="_blank">RTS Pack: Sci-Fi</a> by Kenney Vleugels
And others from <a href="https://opengameart.org" target="_blank">OpenGameArt</a>
<br><br>
<h3>Music</h3>
Bullet in the Head - Song by Rage Against the Machine(1991)
Know your enemy - Song by Rage Against the Machine(1992)
Sleep now in the fire - Song by Rage Against the Machine(1999)
<br><br>
<h3>This game was inspired by</h3>
Star Wars
Fallout
The Outer Worlds
The Dispossessed, by Ursula K. Le Guin
<br><br>
<h3>Special Thanks</h3>
Aisha
Ana Spósito
Maria Eugênia
Eldin
Alex Damaceno
Fred Luciano
Ana Cosmo
Agda Veloso
Twine community
Emma Goldman
All anarchists across the galaxy
<br><br>
<h3>Follow</h3>
<a href="https://janosbiro.itch.io" target="_blank">Follow Janos Biro on itchio</a>
<a href="https://gnarledmonster.itch.io" target="_blank">Follow Alex Damaceno on itchio</a>
<br><br>
<h3>The End</h3>
<br><br>
<div id="back-link" style="opacity: 0;">
<<link "[Back to Menu]">><<goto "FASC">><<audio "ending" fadeout>><</link>>
</div>
</div>
</div>
<style>
#credits-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
background: #000000;
color: #ffffff;
text-align: center;
z-index: 1000;
overflow: hidden;
}
#credits-content {
position: absolute;
width: 100%;
left: 0;
padding: 20px;
line-height: 1.6;
}
#credits-content h2 {
font-size: 2.5em;
color: #ffffff;
margin-bottom: 30px;
letter-spacing: 2px;
}
#credits-content h3 {
font-size: 1.8em;
color: #ffffff;
margin: 25px 0 15px 0;
letter-spacing: 1px;
}
#credits-content p {
font-size: 1.3em;
color: #ffffff;
margin: 8px 0;
}
#credits-content a {
color: #ffffff;
}
#credits-content a:hover {
color: #cccccc;
}
/* Responsive adjustments */
@media (max-width: 768px) {
#credits-content h2 {
font-size: 2em;
}
#credits-content h3 {
font-size: 1.5em;
}
#credits-content p {
font-size: 1.1em;
}
}
</style>
<script>
$(document).ready(function() {
// Get the credits content element
var creditsContent = $('#credits-content');
var backLink = $('#back-link');
var container = $('#credits-container');
// Set initial position (start below viewport)
var containerHeight = container.height();
creditsContent.css('top', containerHeight + 'px');
// Calculate final position (content height + some padding)
var contentHeight = creditsContent.outerHeight();
var finalPosition = containerHeight / 2 - contentHeight;
// Animate the credits scrolling up
creditsContent.animate({
top: finalPosition + 'px'
}, {
duration: 100000, // 100 seconds
easing: 'linear',
complete: function() {
// Show back link when animation completes
backLink.animate({opacity: 1}, 1000);
}
});
});
</script><<include "Info">>\
<<replace "#desc">><<desc "cultural">><</replace>>\
<<if !$loc.includes("Cultural space")>><<run $loc.push("Cultural space")>><<append "#desc">> You add a log about the Cultural space.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<if $task.includes("Defend Emma")>>\
<<link "[Talk to Dade]">><<talk_to_dade3>><</link>> \
<<else>>\
<<link "[Talk to Dade]">><<talk_to_dade2>><</link>> \
<</if>>\
<<set _cultural_activities to ["cinema screening", "live performance", "zine workshop", "comic creation", "theater rehearsal", "painting session", "music jam", "poetry reading", "dance workshop", "sculpture class", "photography exhibition", "storytelling circle"]>>\
<<set _current_activity to _cultural_activities.random()>>\
<<link "[Watch _current_activity]">>\
<<set $xp += 250>>\
<<adv_time 2 "hour">>\
<<switch _current_activity>>\
<<case "cinema screening">>\
<<replace "#look">>You watch an experimental film created by local artists. The narrative explores themes of resistance and community through surreal imagery and haunting soundscapes. (+250xp)<</replace>>\
<<case "live performance">>\
<<replace "#look">>You enjoy a captivating performance that blends music, spoken word, and visual art. The artists tell stories of struggle and hope across the galaxy. (+250xp)<</replace>>\
<<case "zine workshop">>\
<<replace "#look">>You participate in a collaborative zine-making session, sharing stories and creating art alongside other community members. (+250xp)<</replace>>\
<<case "comic creation">>\
<<replace "#look">>You join a comic creation workshop, learning to express political ideas through sequential art and helping illustrate a community story. (+250xp)<</replace>>\
<<case "theater rehearsal">>\
<<replace "#look">>You participate in an interactive theater piece that reimagines historical events from the perspective of the oppressed. (+250xp)<</replace>>\
<<case "painting session">>\
<<replace "#look">>You join a collective painting session, contributing to a large mural that depicts the community's vision of a free society. (+250xp)<</replace>>\
<<case "music jam">>\
<<replace "#look">>You participate in an impromptu music session where community members share songs, instruments, and stories through rhythm and melody. (+250xp)<</replace>>\
<<case "poetry reading">>\
<<replace "#look">>You attend an intimate poetry reading where community members share verses about freedom, loss, and the struggle against corporate oppression. (+250xp)<</replace>>\
<<case "dance workshop">>\
<<replace "#look">>You join a dance workshop that teaches traditional movements from various species and cultures, celebrating diversity through movement. (+250xp)<</replace>>\
<<case "sculpture class">>\
<<replace "#look">>You participate in a sculpture workshop using recycled materials, creating art that transforms corporate waste into symbols of resistance. (+250xp)<</replace>>\
<<case "photography exhibition">>\
<<replace "#look">>You view and discuss a powerful photography exhibition documenting life in anarchist communities across the galaxy. (+250xp)<</replace>>\
<<case "storytelling circle">>\
<<replace "#look">>You join a storytelling circle where elders and newcomers share oral histories, keeping alive the memories of struggles and victories. (+250xp)<</replace>>\
<</switch>>\
<<include "Cultural space">>\
<</link>> \
<<link "[Create new project]">>\
<<dialog "Create Project">>\
You can collaborate with the community to create something new. Each project takes time and effort but contributes to the collective culture.
<<link "[Start film project]">>\
<<if $fatigue lte 50>>\
<<set $xp += 500>>\
<<set $cred += 2000>>\
<<adv_time 6 "hour">>\
<<dialogclose>>\
<<replace "#look">>You spend the day helping to script, film, and edit a documentary about life in anarchist communities. The project will be screened at other cultural spaces across the planet. (+500xp)(+2000cr)<</replace>>\
<<else>>\
<<replace "#look">>You're too tired to take on such an intensive project right now.<</replace>>\
<<dialogclose>>\
<</if>>\
<</link>> \
<<link "[Start zine project]">>\
<<if $fatigue lte 70>>\
<<set $xp += 300>>\
<<set $cred += 1000>>\
<<adv_time 4 "hour">>\
<<dialogclose>>\
<<replace "#look">>You collaborate with writers and artists to create a new zine about resistance strategies. Your contributions help spread important ideas. (+300xp)(+1000cr)<</replace>>\
<<else>>\
<<replace "#look">>You're too tired to focus on creative writing right now.<</replace>>\
<<dialogclose>>\
<</if>>\
<</link>> \
<<link "[Start mural project]">>\
<<if $fatigue lte 60>>\
<<set $xp += 400>>\
<<set $cred += 1500>>\
<<adv_time 5 "hour">>\
<<dialogclose>>\
<<replace "#look">>You work with other artists to design and paint a large mural on a public wall. The artwork becomes a symbol of community solidarity. (+400xp)(+1500cr)<</replace>>\
<<else>>\
<<replace "#look">>You're too tired for the physical demands of mural painting.<</replace>>\
<<dialogclose>>\
<</if>>\
<</link>> \
<<link "[Start music project]">>\
<<if $fatigue lte 65>>\
<<set $xp += 350>>\
<<set $cred += 1250>>\
<<adv_time 3 "hour">>\
<<dialogclose>>\
<<replace "#look">>You collaborate on composing and recording songs that blend traditional melodies with themes of liberation. The music spreads hope throughout the community. (+350xp)(+1250cr)<</replace>>\
<<else>>\
<<replace "#look">>You're too tired to concentrate on musical composition.<</replace>>\
<<dialogclose>>\
<</if>>\
<</link>> \
<<link "[Start theater performance]">>\
<<if $fatigue lte 55>>\
<<set $xp += 450>>\
<<set $cred += 1750>>\
<<adv_time 5 "hour">>\
<<dialogclose>>\
<<replace "#look">>You help develop and perform an interactive theater piece that reimagines historical events from the perspective of the oppressed. The performance inspires meaningful dialogue. (+450xp)(+1750cr)<</replace>>\
<<else>>\
<<replace "#look">>You're too tired for the energy demands of live performance.<</replace>>\
<<dialogclose>>\
<</if>>\
<</link>> \
<<link "[Start dance performance]">>\
<<if $fatigue lte 45>>\
<<set $xp += 400>>\
<<set $cred += 1600>>\
<<adv_time 4 "hour">>\
<<dialogclose>>\
<<replace "#look">>You choreograph and perform a dance piece that tells the story of liberation through movement. The performance celebrates diversity and unity. (+400xp)(+1600cr)<</replace>>\
<<else>>\
<<replace "#look">>You're too tired for the physical intensity of dance performance.<</replace>>\
<<dialogclose>>\
<</if>>\
<</link>> \
<<link "[Start poetry performance]">>\
<<if $fatigue lte 75>>\
<<set $xp += 250>>\
<<set $cred += 750>>\
<<adv_time 2 "hour">>\
<<dialogclose>>\
<<replace "#look">>You organize a spoken word evening where community members share poetry about their struggles and dreams. Your words resonate deeply with the audience. (+250xp)(+750cr)<</replace>>\
<<else>>\
<<replace "#look">>You're too tired to organize and perform poetry right now.<</replace>>\
<<dialogclose>>\
<</if>>\
<</link>> \
<<link "[Start sculpture project]">>\
<<if $fatigue lte 65>>\
<<set $xp += 375>>\
<<set $cred += 1400>>\
<<adv_time 4 "hour">>\
<<dialogclose>>\
<<replace "#look">>You work with others to create a sculpture from recycled materials, transforming corporate waste into a symbol of resistance and renewal. (+375xp)(+1400cr)<</replace>>\
<<else>>\
<<replace "#look">>You're too tired for the focus required in sculptural work.<</replace>>\
<<dialogclose>>\
<</if>>\
<</link>> \
<<link "[Start multimedia installation]">>\
<<if $fatigue lte 60>>\
<<set $xp += 550>>\
<<set $cred += 2250>>\
<<adv_time 7 "hour">>\
<<dialogclose>>\
<<replace "#look">>You collaborate on an ambitious multimedia installation combining video, sound, and interactive elements. The piece explores themes of corporate oppression and community resistance. (+550xp)(+2250cr)<</replace>>\
<<else>>\
<<replace "#look">>You're too tired for such a complex and demanding project.<</replace>>\
<<dialogclose>>\
<</if>>\
<</link>>\
<</dialog>>\
<</link>> \
<<link "[Gaming area]">>\
<<dialog "Gaming Area">>\
The gaming area has various entertainment options available for community relaxation and friendly competition.
<<link "[Play ship battle simulation]">>\
<<set $arcade to 1>>\
<<set $old_ship_shield to $ship_shield>>\
<<set $old_hull to $hull>>\
<<set $ship_shield to 100>>\
<<set $hull to 100>>\
<<gen_enemy $arcade_level>>\
<<set_combat "Enemy">>\
<<ship_combat>>\
<</link>> \
<<link "[Board games]">>\
<<set $xp += 100>>\
<<adv_time 1 "hour">>\
<<dialogclose>>\
<<replace "#look">>You play cooperative board games with community members, enjoying strategic challenges that emphasize teamwork over competition. (+100xp)<</replace>>\
<</link>> \
<<link "[Card games]">>\
<<set $xp += 50>>\
<<adv_time 30 "min">>\
<<dialogclose>>\
<<replace "#look">>You join a casual card game, learning new games that originated from different planets and cultures. (+50xp)<</replace>>\
<</link>> \
<<link "[Virtual reality]">>\
<<if $batt gte 1>>\
<<set $batt -= 1>>\
<<set $xp += 200>>\
<<adv_time 2 "hour">>\
<<dialogclose>>\
<<replace "#look">>You experience immersive virtual environments that simulate life on different planets and historical events. The technology is repurposed from corporate VR systems. (+200xp)(-1 energy cell)<</replace>>\
<<else>>\
<<replace "#look">>You need an energy cell to power the VR system.<</replace>>\
<<dialogclose>>\
<</if>>\
<</link>>\
<</dialog>>\
<</link>> \
<</replace>>\
<</if>>\<<silent>>\
<<set $custom_name to $name>>\
<<set $custom_str to $str>>\
<<set $custom_dex to $dex>>\
<<set $custom_wit to $wit>>\
<<set $custom_feat1 to $feat1>>\
<<set $custom_feat2 to $feat2>>\
<<set $custom_misf to $misf>>\
<<set $custom_util to $profession>>\
<<set $custom_obs to $knows[1]>>\
<<set $custom_points to 30 - ($custom_str + $custom_dex + $custom_wit)>>\
<<if $custom_points lt 0>>\
<<set $custom_points to 0>>\
<</if>>\
<<set $min_stat to 3>>\
<<set $max_stat to 18>>\
<</silent>>\
!Character Customization
<strong>Name:</strong> <<textbox "$custom_name" $custom_name>>
<strong>Stats (Points remaining: <span id="points">$custom_points</span>):</strong>
STR: <span id="str-val">$custom_str</span> \
<<link "[-]" >>
<<if $custom_str gt $min_stat and $custom_points lt 20>>
<<set $custom_str -= 1>>
<<set $custom_points += 1>>
<<replace "#str-val">>$custom_str<</replace>>
<<replace "#points">>$custom_points<</replace>>
<</if>>
<</link>> \
<<link "[+]">>
<<if $custom_str lt $max_stat and $custom_points gt 0>>
<<set $custom_str += 1>>
<<set $custom_points -= 1>>
<<replace "#str-val">>$custom_str<</replace>>
<<replace "#points">>$custom_points<</replace>>
<</if>>
<</link>>
DEX: <span id="dex-val">$custom_dex</span> \
<<link "[-]">>
<<if $custom_dex gt $min_stat and $custom_points lt 20>>
<<set $custom_dex -= 1>>
<<set $custom_points += 1>>
<<replace "#dex-val">>$custom_dex<</replace>>
<<replace "#points">>$custom_points<</replace>>
<</if>>
<</link>> \
<<link "[+]">>
<<if $custom_dex lt $max_stat and $custom_points gt 0>>
<<set $custom_dex += 1>>
<<set $custom_points -= 1>>
<<replace "#dex-val">>$custom_dex<</replace>>
<<replace "#points">>$custom_points<</replace>>
<</if>>
<</link>>
WIT: <span id="wit-val">$custom_wit</span> \
<<link "[-]">>
<<if $custom_wit gt $min_stat and $custom_points lt 20>>
<<set $custom_wit -= 1>>
<<set $custom_points += 1>>
<<replace "#wit-val">>$custom_wit<</replace>>
<<replace "#points">>$custom_points<</replace>>
<</if>>
<</link>> \
<<link "[+]">>
<<if $custom_wit lt $max_stat and $custom_points gt 0>>
<<set $custom_wit += 1>>
<<set $custom_points -= 1>>
<<replace "#wit-val">>$custom_wit<</replace>>
<<replace "#points">>$custom_points<</replace>>
<</if>>
<</link>>
<strong>Features:</strong>
Feature 1: <<cycle "$custom_feat1" autoselect>>\
<<optionsfrom $fashion_head>>\
<</cycle>>
Feature 2: <<cycle "$custom_feat2" autoselect>>\
<<optionsfrom $fashion_body>>\
<</cycle>>
<strong>Background:</strong>
Misfortune: <<cycle "$custom_misf" autoselect>>\
<<optionsfrom $misfortune>>\
<</cycle>>
Old Job: <<cycle "$custom_util" autoselect>>\
<<optionsfrom $professions_list>>\
<</cycle>>
Knows: <<cycle "$custom_obs" autoselect>>\
<<optionsfrom $knowledge>>\
<</cycle>>
<<link "[Confirm]" "Map">>\
<<set $name to $custom_name>>\
<<set $str to $custom_str>>\
<<set $dex to $custom_dex>>\
<<set $wit to $custom_wit>>\
<<set $ostr to $custom_str>>\
<<set $odex to $custom_dex>>\
<<set $owit to $custom_wit>>\
<<set $feat1 to $custom_feat1>>\
<<set $feat2 to $custom_feat2>>\
<<set $misf to $custom_misf>>\
<<set $profession to $custom_util>>\
<<set $knows[1] to $custom_obs>>\
<<set $cred to 500 + ($custom_points * 100)>>\
<<set $maxhp to Math.trunc(($str + $dex + $wit)/ 3)>>\
<<set $hp to $maxhp>>\
<<for _i to 0; _i lt $misfortune.length; _i++>>\
<<if $misfortune[_i] is $misf>>\
<<set $misf_num to _i>>\
<<break>>\
<</if>>\
<</for>>\
<<set $backstory to 'You were a $profession on the planet $planet_o until you were $misfortune_phrase[$misf_num] $twist'>>\
<<set $per_log[0] to $backstory>>\
<<include "World">>\
<</link>> \
<<link "[Random]" "Generate">><</link>><<include "Info">>\
<<replace "#desc">><<desc "racing">><</replace>>\
<<if !$loc.includes("Cyberdrone Racetrack")>><<run $loc.push("Cyberdrone Racetrack")>><<append "#desc">> You add a log about the Cyberdrone Racetrack.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<if $cred gte $price and $equip.includes("cyberdrone") and $equip_charge[0] gte 2>>\
<<link "[Race]">>\
<<if $cred gte $price and $equip.includes("cyberdrone") and $equip_charge[0] gte 2>>\
<<replace "#look">><</replace>>\
<<set $cred -= $price>>
<<set $equip_charge[0] -= 2>>
<<set_race>>
<<set_competing>>
<<dialog "Race">>\
1. $racer_nick[0] | 2. $racer_nick[1] | 3. $racer_nick[2] | 4. $racer_nick[3]
1. <span id="line1"></span>
2. <span id="line2"></span>
3. <span id="line3"></span>
4. <span id="line4"></span>
<span id="m1"></span>\
<<silent>><<run_race>><</silent>>\
<</dialog>>\
<</if>>\
<</link>> \
<<elseif !$equip.includes("cyberdrone")>>\
<<replace "#look">>You need a cyberdrone to compete.<</replace>>\
<<elseif $equip_charge[0] lt 2>>\
<<replace "#look">>Your cyberdrone needs at least 2% charge to compete.<</replace>>\
<</if>>\
<<link "[Watch]">>\
<<replace "#look">><</replace>>\
<<set_race>>
<<dialog "Race">>\
1. $racer_nick[0] | 2. $racer_nick[1] | 3. $racer_nick[2] | 4. $racer_nick[3]
1. <span id="line1"></span>
2. <span id="line2"></span>
3. <span id="line3"></span>
4. <span id="line4"></span>
<span id="m1"></span>\
<<silent>><<run_race>><</silent>>\
<</dialog>>\
<</link>> \
<</replace>>\
<</if>>\<<set $dying to false>>\
!You are dead!
<<if $class isnot "robot">>\
You can choose to Regenerate on your ship if you have enough fuel, but you will suffer some permanent damage. Otherwise, you can still load your last save.
<<else>>\
Since you are a robot, you cannot regenerate. But you can still load your last save.
<</if>>\
<<if $fuel gte 5 and $maxhp gt 1 and $humanity.length gt 0>>\
<<link "[Regenerate]">><<set $combat to 0>><<set $opx to $px>><<set $opy to $py>><<set $px to 50>><<set $py to 50>>
<<set $modstr to 0>><<set $moddex to 0>><<set $modwit to 0>><<set $maxhp-->><<set $hp to $maxhp>>
<<if $humanity.length gt 0>><<set $rnddam to $humanity.pluck()>><<run $perdam.push($rnddam)>><</if>>
<<switch $rnddam>>
<<case "right arm" "left arm" "heart">><<if $str gt 1>><<set $str -->><</if>>
<<case "right leg" "left leg" "torso">><<if $dex gt 1>><<set $dex -->><</if>>
<<case "right eye" "left eye" "brain">><<if $wit gt 1>><<set $wit -->><</if>>
<</switch>>
<<set $fuel -=5>>
<<goto "Map">>
<<done>><<adv_time 6 "hour">><<set $nutri to 50>><<set $fatigue to 0>><</done>>
<</link>>
<</if>>
<<link "[Quit]">><<run UI.restart()>><</link>>!Ship Destroyed!
Your ship's hull has been breached beyond repair. The <<= $ship_name>> starts emergency protocols.
<<if $traveling gt 0>>\
<<if $unvisited.length gt 0>>\
<<set $planet to $unvisited.pluck()>>\
<<else>>\
<<set $planet to $planet_list.random()>>\
<</if>>\
Your ship crashes on the planet <<= $planet>>.\
<<else>>
Your ship crashes back on the planet <<= $planet>>.\
<</if>>
<<set $ship to 0>>\
<<set $upgrades to []>>\
<<if $tool.length gt 2>>\
<<set $tool to [$tool[0], $tool[1]]>>\
<</if>>\
<<set $traveling to 0>>\
<<set $space to 0>>\
<<set $space_loc to "">>\
<<set $destination to "">>\
<<set $px to 50>>\
<<set $py to 50>>\
<<set $ship_combat to 0>>\
<<set $hull to 0>>\
<<set $ship_shield to 0>>\
You lose some tools in the crash. The ship must be repaired before it can fly again.
<<if !$task.includes("Repair the ship")>>\
<<add_task "Repair the ship" 0>>\
<</if>>\
<<link "[Continue]">>\
<<include "World">>\
<<goto "Map">>\
<<done>><<adv_time 6 "hour">><</done>>
<</link>>
<<link "[Quit]">><<run UI.restart()>><</link>><<include "Info">>\
<<replace "#desc">>You are on planet $planet.<</replace>>\
<<if !$loc.includes($planet)>><<run $loc.push($planet)>><<append "#desc">> You add a log about $planet.<</append>><</if>>\
<<set $ship_out to 1>>\
<<if random(1,200) is 1 and $stealth is 0 and $planet isnot "Anarchio" and $planet isnot "Emma">>\
<<roll $wit $modwit>>\
<<set $dif to 10>>\
<<if $res lt $dif>>\
<<if random(1,3) is 1>><<gen_npc "random">><<else>><<gen_npc "security bot">><</if>>\
<<set $combat to 1>>\
<<set $alert to 1>>\
<<replace "#look">><<A $npc>> appears and attacks you!<</replace>>\
<<notify>>Ambush!<</notify>>
<<combat>>\
<</if>>\
<</if>>\
<<if $combat is 0>>\
<<replace "#op">><</replace>>\
<</if>>\<<widget "datapad">>\
<<dialog "Datapad">>\
<<if $space is 0>>Planet: $planet<<else>>Space<</if>>
Stardate: <<=$year>>.<<=$day>>
Time: <<= ("0" + $hour).slice(-2)>>:<<= ("0" + $minute).slice(-2)>>
Position: <<= ($py-50)>> <<= -($px-50)>>
<<if $stealth gte 1>>Stealth Mode<br><</if>>\
<<link "[Personal log]">><<log>><</link>>
<<link "[Locations log]">><<locations>><</link>>
<<link "[Task list]">><<tasks>><</link>>
<<if $combat is 0 and $space is 0 and $map[5][5] isnot 1>>\
<<link "[Teleport]">><<teleport>><</link>>
<</if>>\
<<link "[Food info]">><<snacks_info>><</link>>
<<link "[Equipment info]">><<tool_info>><</link>>
<<link "[Ship info]">><<ship_info>><</link>>
<<link "[Statistics]">><<statistics>><</link>>
<</dialog>>\
<</widget>>
<<widget "snacks_info">>\
<<dialog 'Snacks info'>>\
Effects of food:
<<for _i to 0; _i lt $proved.length; _i++>>\
<<= $proved[_i] +": ">>\
<<if $snstr[_i] gt 0>><<= "+STR ">><<elseif $snstr[_i] lt 0>><<= "-STR ">><</if>>\
<<if $sndex[_i] gt 0>><<= "+DEX ">><<elseif $sndex[_i] lt 0>><<= "-DEX ">><</if>>\
<<if $snwit[_i] gt 0>><<= "+WIT ">><<elseif $snwit[_i] lt 0>><<= "-WIT ">><</if>>\
<<if $snstr[_i] + $sndex[_i] + $snwit[_i] is 0>><<= "(no effect)">><</if>>
<</for>>
<<link "[Back]">><<datapad>><</link>>\
<</dialog>>\
<</widget>>
<<widget "tasks">>\
<<dialog 'Task list'>>\
To do:
<<for _n to $task.length - 1; _n >= 0; _n -->>\
<<link_task _n $task[_n]>> \
<</for>>\
Done:
<<for _n to $done.length - 1; _n >= 0; _n -->>\
|<<= $done[_n]>>| \
<</for>>
<<link "[Back]">><<datapad>><</link>>\
<</dialog>>\
<</widget>>
<<widget "link_task">>\
<<link '[_args[1]]' >>\
<<dialog _args[1]>>\
<<= $task_list[_args[1]].description>>
<<if $task_list[_args[1]].planet isnot "">>\
Planet: <<= $task_list[_args[1]].planet>>
<</if>>\
<<if $task_list[_args[1]].location isnot "">>\
Location: <<= $task_list[_args[1]].location>>
<</if>>\
Reward: <<= $task_list[_args[1]].xp>>xp \
<<if $task_list[_args[1]].cr isnot 0>>\
and <<= $task_list[_args[1]].cr>> credits.\
<</if>>
<<link "[Back]">><<tasks>><</link>>\
<</dialog>>\
<</link>>\
<</widget>>
<<widget "log">>\
<<dialog 'Personal log'>>\
<<for _n to $per_log_date.length - 1; _n >= 0; _n -->>\
<<link_log _n $per_log_date[_n]>>
<</for>>
<<link "[Back]">><<datapad>><</link>>\
<</dialog>>\
<</widget>>
<<widget "link_log">>\
<<link '[_args[1]]'>>\
<<set $log_date to _args[1]>>\
<<set $log_text to $per_log[_args[0]]>>\
<<dialog $log_date>>\
<<= $log_text>>
<<link "[Back]">><<log>><</link>>\
<</dialog>>
<</link>>\
<</widget>>
<<widget "locations">>\
<<dialog 'Locations'>>\
<<for _n to $loc.length - 1; _n >= 0; _n -->>\
<<link_location _n $loc[_n]>>
<</for>>\
<<link "[Back]">><<datapad>><</link>>\
<</dialog>>\
<</widget>>
<<widget "link_location">>\
<<link '[_args[1]]'>>\
<<dialog _args[1]>>\
<<switch _args[1]>>\
<<case $ship_name>>\
<<= $ship_desc>>
The $ship_name is a heavily patched interstellar survey vessel salvaged from corporate auctions or left behind in some forgotten orbital scrapyard. Its hull bears the scars of atmospheric re-entry, stray asteroid impacts, and budget repairs. Internal systems hum with unpredictable rhythms, kept barely functional through jury-rigged components and scavenged tech.
Features:
Jump Core: Can jump to nearby systems, but with limited range and reliability.
Navigation Console: Basic star maps and emergency protocols. No advanced AI.
Defense System: Minimal. A few outdated laser turrets and a shield.
Crew Quarters: Cramped, with basic amenities. Designed for short-term habitation.
Storage Locker: Limited capacity. Designed for personal survival.
Cargo Bay: Small, enough for a few crates or personal belongings.
Science and exploration equipment: A teleportation pad, a regeneration booth, a workbench, a recharge station, a biolab, a fusion recycler and a snack processor.
The ship is a testament to the resilience of spacefarers, a blend of old-world technology and modern improvisation. It’s not just a vessel; it’s a home, a refuge, and a symbol of survival in the harsh expanse of space.
<<case "Snack Machine">>\
A dented vending unit bolted to the floor, covered in faded corporate decals and graffiti. Its touchscreen flickers with glitchy ads like “Nourish your productivity!”. The machine dispenses nutrient-rich, or at least calorie-dense snacks in a bewildering variety of shapes and colors.
It is, in fact, a processor, that creates snacks from fuel.
Snacks may cause allergic reactions. No liability assumed.
Manufacturer Tag: HoloLife™ Subsidiary - Automated Nutrition Division
<<case "Cell Machine">>\
A squat, metallic dispenser humming with barely-contained voltage. Its outer casing is scorched from overuse, covered in faded warning labels and graffiti that reads “POWER IS A PRIVILEGE”. The interface is cracked but functional, pulsing with static-blue light. Inside, faded tubes cycle through glowing energy cells, each one humming faintly like a tiny caged sun.
It in fact creates energy cell from fuel.
Manufacturer Tag: SYNTHORP™ - Power Solutions Division
<<case "Fuel Machine">>\
A rusted, semi-automated refueling unit embedded into the station wall. It hums faintly and leaks vapor from ancient valves. Originally built by SYNTHORP subcontractors, it trades ship-grade plasma fuel for credits. No questions asked. Prices fluctuate depending on planetary stability and corporate tariffs.
A blinking monochrome screen displays remaining fuel units. Insert credits, wait for the pump cycle, and collect the sealed fuel cell from the hatch below.
Fuel, a high energy substance pumped from the center of the planet, is used to power everything. It can be converted into anything, even organic matter, such as food.
Manufacturer Tag: SYNTHORP™ - Fuel Solutions Division
<<case "Scrapyard">>\
The scrapyard is a sprawling field of twisted metal, broken machinery, and discarded tech. Piles of rusted parts and shattered hulls form makeshift hills, while the ground is littered with wires, gears, and fragments of old robots. Occasional sparks flicker from exposed circuits, and the air smells faintly of ozone and oil. It's a dangerous place, robo-scorpions and other hazards may lurk among the debris, but it's also a treasure trove for anyone seeking scrap.
<<case "Cantina">>\
Dimly lit, crowded, and drenched in the scent of synthetic oils and stale protein vapor, the cantina is one of the few places where mercs, freaks, traders, and outcasts gather without immediately shooting each other. Rusted speakers loop propaganda jingles, while flickering holos advertise snacks and bar games.
Whispered deals, stolen data, and narcotic exchanges happen just out of the surveillance drones’ line of sight.
Technically neutral ground, but often maintained by local subsidiaries of HoloLife or SYNTHORP, depending on planetary jurisdiction and whose mercenaries won the last shootout.
<<case "Tool Store">>\
A cramped, neon-lit shop filled with racks of battered equipment, spare parts, and blinking gadgets. Holo-signs flicker above the counter, advertising “No Refunds” and “Corporate Warranty Void.” The shopkeeper is usually a grizzled mechanic or a freak with a penchant for cybernetics.
<<case "Arena">>\
A vast, circular pit surrounded by towering walls of reinforced steel. The air is thick with the smell of sweat and oil. Holo-screens display the latest fight stats, while a crowd of mercs and spectators cheers from the stands. The arena is a place of glory and danger, where combatants face off for fame, fortune, and survival.
The arena is run by a mysterious organization known only as "The Syndicate" rumored to have ties to various factions across the galaxy.
<<case "Robot Boxing">>\
Towering steel walls curve around a wide, circular arena lit by harsh white floodlights. The air hums with the low thrum of generators, and the floor plates are scuffed and dented from countless impacts. Above, rows of tiered seating rise into the shadows, their empty seats coated in a fine layer of dust and metallic grit.
Not exactly the safest place, but the only one where you can watch robot fights. The rules are simple: two robots enter, one robot leaves. No mercy, no rules, just pure mechanical carnage.
<<case "Body Shop">>\
The Body Shop is a dimly lit, sterile space filled with strange machinery and flickering holo-displays. The walls are lined with shelves of bizarre body modifications, from limbs to bioengineered organs. A freak attendant, covered in glowing tattoos and mechanical implants, greets you with a toothy grin.
The shop specializes in body modifications for those who embrace the freak lifestyle, offering everything from cosmetic enhancements to functional upgrades.
Warning: Using the body shop will permanently turn you into a freak. You will not be able to change back to human.
<<case "Cyberdrone Racetrack">>\
A vast oval of glimmering alloy stretches under a canopy of holographic billboards, their shifting colors painting the track in restless light.
Along the edges, sleek guard rails glint under the glow of signal beacons, and the empty grandstands loom like silent sentinels awaiting the racers.
You can compete in a race with your cyberdrone, or just watch.
<<case "Lab">>\
A sterile, white-walled laboratory with humming machines and blinking lights. It is equipped with a healing station and an experiment chamber. The air smells faintly of antiseptic and ozone. A holographic interface displays the lab's services and prices.
If you want to be a test subject, know that it risks death and permanent damage.
<<case "Abandoned Ship">>\
A derelict spacecraft, its hull scarred and pitted from years of neglect. The air inside is stale and tinged with the scent of burnt circuitry. Flickering lights cast eerie shadows on the walls, and the occasional spark from exposed wires illuminates the darkness. The walls are adorned with faded posters advertising long-forgotten products. You can hear the distant hum of machinery, suggesting that some systems are still operational.
Exploring the abandoned ship is risky, as rogue security bots may still be active.
You can open the storage, but you have to guess the code. It is a three-digit number.
<<case "Building">>\
The outer walls are a patchwork of scorched metal panels and faded composite siding, weathered by years of neglect. Faint light filters through fractured windows, casting broken patterns across the floor. The interior is a maze of shadowed rooms, some stripped bare, others cluttered with scavenged furniture, stacked crates, and makeshift wiring. Every step echoes, as if the building itself is listening.
Some of these buildings may be occupied by survivors. Some may even be underground markets.
These structures represent the backbone of the old economic infrastructure before the Corporate Wars rendered most settlements uninhabitable.
<<case "Corporation Headquarters">>\
A towering structure of steel and glass, its facade gleaming under the harsh light of distant stars. The place is full of security bots, their sensors scanning for intruders. Holo-screens display old propaganda.
The headquarters were a hub of corporate activity, where deals were made, back in the day before the corporate owners fled to another galaxy. Now it is a place of scavengers looking for scraps of information or technology.
<<case "Refinery">>\
What was once hailed as humanity's greatest achievement now stands as a monument to corporate shortsightedness. The "clean" quantum refinement process gradually destabilized planetary cores and shifted gravitational axes across the galaxy, causing a galactical ecological catastrophe that drove the corporate executives to flee to other galaxies. Automated maintenance robots still crawl along the endless network of pipes like mechanical insects, their programming unchanged since the exodus, while gravitational anomalies warp space between processing wells and quantum fields leak from containment systems.
Despite the devastation, the refinery remains fully operational, its modular design continuing to pump fuel from the planet's destabilized core. The facility's output remains pure and potent, capable of conversion into any conceivable form of matter. Here, among the ghosts of corporate ambition, perfect technology serves a dead dream on a dying world: the ultimate irony of unlimited creation built upon universal destruction.
Warning: Quantum field exposure may cause molecular instability, temporal displacement, and gravitational vertigo.
Manufacturer: SYNTHORP™ - Quantum Industries Division.
<<case "Scavengers">>\
The scavenger camp sprawls across a crater filled with salvaged materials and jury-rigged shelters. Makeshift tents constructed from ship hull plating and torn fabric dot the landscape, while smoke rises from a central fire pit surrounded by oil drums.
A mix of humans and freaks moves through the camp, their clothes patched and weathered from years in the wasteland. Most wear utility belts loaded with scavenged tools, plasma cutters, and salvaged weapons. They eye newcomers with suspicion, hands never straying far from their gear.
The camp leader, a hulking freak with a cybernetic arm that ends in a welding torch, stands near the fire. Scars crisscross their visible skin, and augmented eyes glow faintly in the dim light. The others defer to their authority, speaking only when spoken to while maintaining a protective circle around valuable salvage.
Here, among the discarded remnants of galactic civilization, survival depends on cunning, mechanical skill, and the ability to transform trash into treasure. With the scavengers having mastered all three, aided by their giant mining drill.
<<case "Wilderness">>\
The wilderness is a vast expanse of untamed nature, where the remnants of civilization are slowly being reclaimed by the planet. Towering trees with metallic bark and bioluminescent leaves stretch towards the sky, their roots intertwining with rusted machinery and broken structures. Strange, mutated creatures roam the underbrush, their forms twisted by the planet's unstable environment.
Occasionally, you can spot remnants of old technology half-buried in the ground.
<<case "Rogue Nanobots">>\
A swirling mass of nanobots, their metallic bodies glinting in the light. They move with a mind of their own, forming shapes and patterns that defy logic. The air around them hums with energy, and you can feel a strange pull as they draw closer.
The rogue nanobots are remnants of a failed experiment, now free to roam the planet. They are incredibly dangerous, capable of assimilating anything they touch. There is nothing you can do to stop them, but you can try to avoid them.
<<case "Arcade">>\
A lone arcade cabinet stands defiantly against the desolate landscape, its screen flickering with an otherworldly glow that pierces the planetary gloom. The machine hums with an energy that defies explanation: no visible power source, no cables, no generator. Just the soft electronic whir of circuits that seem to draw power from the void itself.
Faded stickers and scratched decals bears no corporate marks. The control panel bears the smooth grooves of countless hands, worn into the metal by pilots who came before. A single word glows on the screen: "ENGAGE."
There's something hypnotic about its presence, a gravitational pull that draws you closer despite the rational voice warning of unknown dangers. The space combat simulation within is rumored to be so realistic, so perfectly calibrated, that veteran pilots emerge with genuine combat experience.
Standing before it, you can almost hear the distant echo of starship engines and the whisper of laser fire across the cosmic dark.
<<case "Spaceport">>\
The spaceport docks stretch through rusted metal corridors, lit by advertising panels flashing corporate slogans about “the future of exploration.”
Several lines of freighters, transport ships, and refugee pods compete for docking bays, while customs drones hover over passengers, ready to tax even the oxygen they breathe.
The spaceport is both a vital hub of interplanetary trade and a chaotic depot of broken dreams, where only those with enough credits manage to board.
<<case "Social center">>\
The People's Assembly social center is the hub of anarchist organization on Anarchio. The walls are covered with hand-painted murals depicting cooperative gardens, shared workshops, and diverse communities living in harmony. Clusters of mismatched furniture create cozy discussion areas where beings of all species gather in circles to debate resource allocation, coordinate collective projects, and plan community events. A large bulletin board displays notices about skill-sharing workshops, mutual aid requests, and upcoming assemblies. The air smells of freshly baked bread and aromatic herbal teas. You can purchase vegan meals prepared by rotating volunteer collectives, participate in consensus-based decision making sessions, or simply enjoy the atmosphere of cooperation in a galaxy dominated by corporate greed.\
<<case "Anarchio">>\
Anarchio is a small, rugged planet located on the fringes of known space. Its surface is a patchwork of rocky deserts, sparse vegetation, and scattered ruins from a long-abandoned corporate mining operation. The atmosphere is thin but breathable, with a faint orange hue from the planet's distant sun.
The planet is home to a diverse community of anarchists, outcasts, and refugees who have banded together to create a self-sustaining society based on mutual aid and cooperation. The main settlement is a sprawling network of makeshift buildings, communal gardens, and shared workshops, all built from salvaged materials and repurposed technology.
Life on Anarchio is challenging but rewarding. The inhabitants rely on renewable energy sources, such as solar panels and wind turbines, to power their homes and workshops. They grow their own food in communal gardens and share resources freely among the community. Decision-making is done through consensus-based assemblies, where everyone has an equal voice.
Despite its remote location and harsh environment, Anarchio has become a beacon of hope for those seeking an alternative to the corporate-dominated galaxy. It is a place where people can live freely, express themselves creatively, and work together to build a better future.
<<case "Emma">>\
Emma stands as a beacon of anarchist resistance in a galaxy dominated by corporate tyranny. Unlike the compromised pacifism of Anarchio, Emma is a planet at war: a defiant stronghold where autonomous communities have organized into a confederation of resistance cells, each defending their territories while supporting the collective struggle against corporate oppression.
The landscape bears the scars of constant conflict: bombed-out corporate facilities reclaimed and converted into community spaces, defensive earthworks carved into hillsides, and underground tunnel networks connecting liberated zones. Solar panels and wind turbines, salvaged from corporate installations and repurposed by ingenious engineers, power the resistance infrastructure.
Emma's society operates on principles of democratic confederalism, autonomous neighborhoods and worker collectives coordinate through rotating councils, with no permanent leadership or hierarchy. Decisions flow from the grassroots up, debated in assemblies where everyone has a voice. The planet's various species and factions have united under a common banner of liberation, setting aside old prejudices to face their corporate oppressors.
But this is no utopia. The resistance lives under constant threat. Corporate drone strikes light up the night sky, forcing communities to shelter in reinforced bunkers. Supply lines are precarious, dependent on brave smugglers running blockades. Children grow up learning to shoot alongside their letters, and every celebration is shadowed by the knowledge that tomorrow might bring another attack.
The people of Emma have transformed necessity into virtue. Communal kitchens ensure no one starves while rationing scarce resources. Maker spaces combine salvaged technology with traditional crafts to produce everything from weapons to medical supplies. Schools operate in shifts, moving locations frequently to avoid targeting, while teaching both practical skills and the theory that keep the resistance unified.
Emma's fighters are legendary across the galaxy: former corporate executives who defected and brought valuable intelligence, alien species organizing their own liberation movements, and ordinary workers who took up arms when pushed too far. They coordinate through encrypted networks, sharing resources and tactical knowledge while maintaining operational independence.
The planet serves as both a practical base for galactic resistance and a powerful symbol of what's possible when communities organize to defend themselves. For those fleeing corporate oppression across the galaxy, Emma represents hope. Proof that another world is possible, even if it must be built with blood and sacrifice.
This is a planet where anarchism isn't a peaceful philosophy debated in cafes, but a living practice forged in the crucible of revolutionary war.
<<case "House">>\
A small, weathered dwelling constructed from salvaged materials and repurposed technology. The walls are made of metal panels, wooden planks, and reinforced glass, all held together with a mix of welding and duct tape. Inside, the space is cramped but functional, with a communal area for cooking and socializing, a few makeshift beds, and shelves lined with scavenged supplies.
The house is home to a group of survivors who have banded together for mutual support in the harsh environment of the planet. They share resources, skills, and stories around a central fire pit, creating a sense of community amidst the desolation.
Life in the house is challenging. The inhabitants rely on renewable energy sources, such as solar panels and wind turbines, to power their basic needs. They grow their own food in small gardens outside the house and share meals made from whatever they can scavenge or cultivate. Decision-making is done through consensus, with everyone having an equal say in how the household is run.
Despite its humble appearance, the house represents hope and resilience in a world dominated by corporate greed and environmental collapse. It is a place where people can find safety, companionship, and a sense of community.
<<case "Learning space">>\
A modest structure built from salvaged materials, the learning space is a hub of knowledge and skill-sharing in the heart of the settlement. The walls are adorned with hand-painted murals depicting scenes of cooperation, education, and community empowerment. Inside, mismatched tables and chairs create a welcoming environment for discussions and collaborative projects.
The learning space operates on principles of mutual aid and collective learning. Community members take turns leading workshops on a variety of topics, from practical skills like gardening and basic engineering to more abstract subjects like anarchist theory and cooperative economics. There are no formal teachers or hierarchies; everyone is both a student and a teacher.
The space is equipped with salvaged technology, including a few functioning computers connected to a local network, allowing access to educational resources and communication with other anarchist communities across the galaxy. Bookshelves line the walls, filled with donated texts on a wide range of subjects.
The learning space is more than just a place for education; it is a symbol of the community's commitment to self-determination and empowerment. It serves as a gathering point for people of all ages and backgrounds to come together, share knowledge, and build the skills necessary to sustain their way of life in the face of external threats.
<<case "Cultural space">>\
A vibrant, open area filled with colorful murals, sculptures, and installations created by community members. The space is designed to celebrate the diverse cultures and identities of the settlement's inhabitants, providing a platform for artistic expression and cultural exchange.
The cultural space hosts regular events, including music performances, art exhibitions, poetry readings, and dance workshops. It is a place where people can come together to share their traditions, stories, and creative works in a supportive and inclusive environment.
The area is equipped with a small stage, sound system, and lighting rig, all powered by renewable energy sources. There are also communal seating areas made from repurposed materials, encouraging social interaction and collaboration.
The cultural space is a vital part of the community's social fabric, fostering a sense of belonging and solidarity among its members. It serves as a reminder of the importance of creativity and cultural expression in building resilient communities that can thrive despite external challenges.
<<case "Kitchen">>\
A communal kitchen constructed from salvaged materials, the kitchen is a hub of activity and nourishment in the heart of the settlement. The space is filled with the aroma of cooking food, the clatter of pots and pans, and the hum of conversation as community members gather to prepare and share meals.
The kitchen operates on principles of mutual aid and collective responsibility. Community members take turns cooking meals using ingredients sourced from communal gardens, scavenged supplies, and donations. The kitchen is equipped with basic appliances, including a stove, oven, and refrigeration unit, all powered by renewable energy sources.
The kitchen also serves as a space for skill-sharing and education. Workshops on cooking techniques, nutrition, and food preservation are regularly held, empowering community members to take control of their own nourishment.
The communal kitchen provides a space for people to come together, share resources, and build relationships through the simple act of preparing and enjoying food together.
<<default>>\
<<= $planet_desc[_args[1]]>>
<</switch>>\
<<link "[Back]">><<locations>><</link>>\
<</dialog>>
<</link>>\
<</widget>>
<<widget "statistics">>\
<<dialog 'Statistics'>>\
Planets visited: <<= $visited.length>>
Favorite snack found: $favfound
Food eaten: $numsnacks
Enemies beaten: $numbeats
Arena level: $arena_level
Arm-wrestling Record: $arm_rec
Darts Record: $darts_rec
Checkers Record: $checkers_rec
Credits won at betting: $cred_won
Lockers opened: $lockers_opened
Vaults opened: $vaults_opened
Races won: $races_won
Arcade record: $arcade_record
<<link "[Back]">><<datapad>><</link>>\
<</dialog>>\
<</widget>>
<<widget "inventory">>\
<<dialog 'Inventory'>>\
<<if $combat is 0>><<link "[Food]">><<snacks>><</link>> <</if>>\
<<for _a to 0; _a lt $tool.length; _a++>><<tool_use _a '[$tool[_a].name <<= $tool[_a].charge>>%]'>><</for>> \
<<for _a to 0; _a lt $equip.length; _a++>><<if $equip[_a] isnot "">><<equip_use _a '[$equip[_a] <<= $equip_charge[_args[0]]>>%]'>><</if>><</for>>
<span id="invm"></span>\
<</dialog>>\
<</widget>>
<<widget "equip_use">>\
<<link '_args[1]'>>\
<<if $equip_charge[_args[0]] gt 0>>\
<<switch $equip[_args[0]]>>\
<<case "cyberdrone">>\
<<if $drone is 0>>\
<<set $drone to 1>><<replace "#look">>Cyberdrone activated.<</replace>>\
<<else>>\
<<set $drone to 0>><<replace "#look">>Cyberdrone deactivated.<</replace>>\
<</if>>\
<<dialogclose>>\
<<case "droid">>\
<<if $droid is 0>><<set $droid to 1>><</if>>\
<<replace "#look">>Droid is active and stationed at the ship.<</replace>>\
<<dialogclose>>\
<<case "exoarmor">>\
<<if $exo is 0>>\
<<if $exohp is 0>>\
<<replace "#look">>The exoarmor is out of charge and cannot be activated.<</replace>>\
<<dialogclose>>\
<<else>>\
<<set $exo to 1>>\
<<include "Update">>\
<<replace "#look">>You activate the exoarmor.<</replace>>\
<</if>>\
<<else>>\
<<set $exo to 0>>\
<<include "Update">>\
<<replace "#look">>You deactivate the exoarmor.<</replace>>\
<</if>>\
<<dialogclose>>\
<</switch>>\
<<else>>\
<<replace "#invm">>\
No charge left.
<<if $batt gt 0>>
<<link "[Recharge]">><<set $batt-->><<set $equip_charge[_args[0]] to 100>>\
<<inventory>><<replace "#invm">>Equipment recharged.<</replace>>\
<</link>>\
<</if>>\
<</replace>>\
<</if>>\
<<include "Info">>\
<</link>> \
<</widget>>
<<widget "tool_use">>\
<<link '_args[1]'>>\
<<if $tool[_args[0]].charge gt 0>>\
<<switch $tool[_args[0]].name>>\
<<case "multi-tools">>\
<<if $combat is 0>>\
<<if $class is "robot" and $hp lt (($maxhp*8)/10)>>\
<<set $tool[_args[0]].charge -=5>><<set $hp += random($maxhp/10, $maxhp/2)>><<set $hp to $hp.clamp(1, $maxhp)>>\
<<replace "#look">>You use the multi-tools to repair yourself.<</replace>>\
<<else>>
<<replace "#look">>No use for that here.<</replace>>\
<</if>>\
<<else>>\
<<replace "#look">>You cannot do this during combat.<</replace>>\
<</if>>\
<<dialogclose>>\
<<case "chemical analyzer">>\
<<if $combat is 0>>\
<<set $tool[_args[0]].charge -=2>>\
<<for _i to 0; _i lt $bag.length; _i++>>\
<<if !$proved.includes($bag[_i])>>\
<<set $sn to $proved.length>><<run $proved.push($bag[_i])>>\
<<set $snstr[$sn] to 0>><<set $sndex[$sn] to 0>><<set $snwit[$sn] to 0>>\
<<set $d1 to random(1,3)>>\
<<if $class is "alien">>\
<<set $val to random(-2,2)>>\
<<else>>\
<<set $val to random(-1,1)>>\
<</if>>\
<<if $d1 is 1>>\
<<set $snstr[$sn] to $val>>\
<</if>>\
<<if $d1 is 2>>\
<<set $sndex[$sn] to $val>>\
<</if>>\
<<if $d1 is 3>>\
<<set $snwit[$sn] to $val>>\
<</if>>\
<</if>>\
<<if !$recipes.includes($bag[_i])>><<run $recipes.push($bag[_i])>><</if>>\
<</for>>\
<<dialog 'chemical analyzer'>>\
Effects of food in your inventory:
<<for _i to 0; _i lt $proved.length; _i++>>\
<<if $bag.includes($proved[_i])>><<= $proved[_i] +": ">>\
<<if $snstr[_i] gt 0>><<= "+STR ">><<elseif $snstr[_i] lt 0>><<= "-STR ">><</if>>\
<<if $sndex[_i] gt 0>><<= "+DEX ">><<elseif $sndex[_i] lt 0>><<= "-DEX ">><</if>>\
<<if $snwit[_i] gt 0>><<= "+WIT ">><<elseif $snwit[_i] lt 0>><<= "-WIT ">><</if>>\
<<if $snstr[_i] + $sndex[_i] + $snwit[_i] is 0>><<= "(no effect)">><</if>>
<</if>>\
<</for>>\
<</dialog>>\
<<else>>\
<<replace "#look">>You cannot do this during combat.<</replace>>\
<<dialogclose>>\
<</if>>\
<<case "stealth module">>\
<<if $stealth gte 1>>\
<<replace "#look">>You are already using the stealth module.<</replace>>\
<<else>>
<<set $tool[_args[0]].charge -=10>>\
<<set $stealth to 10>>\
<<include "Update">>\
<<replace "#look">>You activate the stealth module, bending light and masking your presence.<</replace>>\
<</if>>\
<<dialogclose>>\
<<case "force field generator">>\
<<if $combat is 0>>\
<<replace "#look">>No use for that here.<</replace>>\
<<else>>\
<<set $tool[_args[0]].charge -=10>>\
<<replace "#look">>You use the force field generator to shield you from damage.<</replace>>\
<<set $shield to 5>>\
<</if>>\
<<dialogclose>>\
<<case "personal scanner">>\
<<if $combat is 1>><<set $tool[_args[0]].charge -=2>>\
<<dialog 'personal scanner'>>\
Type: $npc
STR: $npc_str
DEX: $npc_dex
WIT: $npc_wit
HP: $npc_hp
<</dialog>>\
<<else>>\
<<replace "#look">>No use for that here.<</replace>>\
<<dialogclose>>\
<</if>>\
<<case "hologram projector">>\
<<if $combat is 0>>\
<<replace "#look">>No use for that here.<</replace>>\
<<else>>\
<<set $tool[_args[0]].charge -=10>>\
<<replace "#look">>You use the hologram projector to temporarily confuse the $npc.<</replace>>\
<<set $holo to 1>>\
<</if>>\
<<dialogclose>>\
<<case "laser cutter">>\
<<if $combat is 0>>\
<<replace "#look">>No use for that here.<</replace>>\
<<dialogclose>>\
<<else>>\
<<dialogclose>>\
<<set $tool[_args[0]].charge -=5>>\
<<replace "#look">>You use the laser cutter to damage and cripple the <<= $npc>>.<</replace>>\
<<att_laser>>\
<</if>>\
<<case "omni-torch">>\
<<if $combat is 0>>\
<<replace "#look">>No use for that here.<</replace>>\
<<dialogclose>>\
<<else>>\
<<dialogclose>>\
<<set $tool[_args[0]].charge -=5>>\
<<replace "#look">>You use the omni-torch to incinerate the <<= $npc>>.<</replace>>\
<<att_torch>>\
<</if>>\
<<case "hacking kit">>\
<<if $combat is 1 and $npc_class is "robot">>
<<dialogclose>>\
<<adv_time 2 "min">>\
<<if $fatigue lt 100>><<set $fatigue += 1>><</if>>\
<<set $tool[_args[0]].charge -=5>>\
<<roll $wit $modwit>><<set $dif to $npc_wit>>\
<<if $res gt $dif>>\
<<replace "#look">>You hack the $npc and it is now stunned.<</replace>>\
<<set $stun to 1>>\
<<else>>\
<<replace "#look">>You failed to hack the $npc.<</replace>>\
<<npc_att>>\
<</if>>\
<<elseif $combat is 0 and $map[5][5] is 13 and $opened[$sel] is 2>>\
<<set $tool[_args[0]].charge -=5>>\
<<roll $wit $modwit>><<set $dif to 15>>\
<<if $res gte $dif>>\
<<set $opened[$sel] to 0>>\
<<set $tries[$sel] to 3>>\
<<replace "#look">>You successfully hack the storage lock, resetting its security system. You can now attempt to open it again.<</replace>>\
<<else>>\
<<replace "#look">>You failed to hack the storage lock. The security system remains blocked.<</replace>>\
<</if>>\
<<dialogclose>>\
<<elseif $combat is 0 and $map[5][5] is 15 and $vault_opened[$sel] is 2>>\
<<set $tool[_args[0]].charge -=5>>\
<<roll $wit $modwit>><<set $dif to 18>>\
<<if $res gte $dif>>\
<<set $vault_opened[$sel] to 0>>\
<<replace "#look">>You successfully hack the vault security system, resetting its encryption. You can now attempt to hack it again.<</replace>>\
<<else>>\
<<replace "#look">>You failed to hack the vault security system. The encryption remains locked.<</replace>>\
<</if>>\
<<dialogclose>>\
<<else>>\
<<replace "#look">>No use for that here.<</replace>>\
<<dialogclose>>\
<</if>>\
<<case "medkit">>\
<<if $combat is 0>>\
<<if $class isnot "robot" and $hp lt $maxhp>>\
<<set $tool[_args[0]].charge -=5>>\
<<set $heal to Math.trunc($maxhp/4)>>\
<<set $heal to $heal.clamp(1, $maxhp-$hp)>><<set $hp += $heal>>\
<<replace "#look">>You use the medkit to heal yourself.<</replace>>\
<<else>>\
<<replace "#look">>No use for that here.<</replace>>\
<</if>>\
<<else>>\
<<replace "#look">>You cannot do this during combat.<</replace>>\
<</if>>\
<<dialogclose>>\
<</switch>>\
<<else>>\
<<replace "#invm">>\
No charge left.
<<if $batt gt 0>>
<<link "[Recharge]">>\
<<set $batt-->><<set $tool[_args[0]].charge to 100>>\
<<inventory>>\
<<include "Info">>\
<<replace "#invm">>Equipment recharged.<</replace>>\
<</link>>\
<</if>>\
<</replace>>\
<</if>>\
<<include "Info">>\
<</link>> \
<</widget>>
<<widget "tool_info">>\
<<dialog 'Equipment info'>>\
<<link "[Multi-tools]">>\
<<dialog 'multi-tools'>>\
Compact, foldable devices with retractable arms, screwheads, welders, and diagnostic sensors. Designed for general repairs on field equipment and systems.
Energy consumption: normal.
<<link "[Back]">><<tool_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Chemical Analyzer]">>\
<<dialog 'chemical analyzer'>>\
A small wrist-mounted sensor that flashes soft blue when active. Scans the molecular structure of snacks in your inventory to reveal their effects. Also include them in your recipes.
Energy consumption: low.
<<link "[Back]">><<tool_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Medkit]">>\
<<dialog 'medkit'>>\
A compact case with retractable injectors, sterilizers, and nanogel dispensers. Heals wounds and stabilizes the vitals of organic life forms.
Energy consumption: normal.
<<link "[Back]">><<tool_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Personal Scanner]">>\
<<dialog 'personal scanner'>>\
A handheld scanning wand with a flickering green lens. Detects life signs, organics, implants, and synthetic compositions in nearby entities.
Energy consumption: low.
<<link "[Back]">><<tool_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Hacking Kit]">>\
<<dialog 'hacking kit'>>\
A small deck with neural uplink ports and a multi-interface cable. Used to override security protocols in machines, doors, or autonomous units. It can unblock previously blocked lockers and even corporate vaults, giving you another chance to try to open them.
Energy consumption: normal.
<<link "[Back]">><<tool_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Laser Cutter]">>\
<<dialog 'laser cutter'>>\
A high-frequency beam emitter with a retractable scope. Inflicts precision damage based on your DEX. Also usable on structural materials.
Energy consumption: normal.
<<link "[Back]">><<tool_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Hologram Projector]">>\
<<dialog 'hologram projector'>>\
A palm-sized device with radial emitters. Projects a decoy image that lures and distracts enemies, often buying you time to escape or flank.
Energy consumption: high.
<<link "[Back]">><<tool_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Omni-torch]">>\
<<dialog 'omni-torch'>>\
A wrist-mounted flamethrower with adjustable flame arcs. Burns enemies and causes lasting thermal damage. Effective at close range.
Energy consumption: normal.
<<link "[Back]">><<tool_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Force Field Generator]">>\
<<dialog 'force field generator'>>\
A back-mounted module that deploys a shimmering energy dome around you. Absorbs incoming damage for a brief duration before collapsing.
Energy consumption: high.
<<link "[Back]">><<tool_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Stealth Module]">>\
<<dialog 'stealth module'>>\
A small cloaking unit worn on the belt or chest. Bends light and masks heat signatures, rendering you temporarily invisible to sight and sensors.
Energy consumption: high.
<<link "[Back]">><<tool_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Cyberdrone]">>\
<<dialog 'cyberdrone'>>\
A hovering drone with infrared and sonar sensors. When deployed, it scans nearby areas and transmits environmental data.
Energy consumption: low.
<<link "[Back]">><<tool_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Droid]">>\
<<dialog 'Droid'>>\
A modular, knee-high droid equipped with basic AI that stays on your ship. Can help you with repairing the ship, even during ship combat.
Energy consumption: solar powered.
<<link "[Back]">><<tool_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Exoarmor]">>\
<<dialog 'exoarmor'>>\
A full-body, powered exosuit with joint servos and kinetic amplifiers. Enhances mobility, damage output, and defense. May also stun attackers with shock feedback.
Energy consumption: discharges while you move. Automatic recharge if you have energy cells.
<<link "[Back]">><<tool_info>><</link>>\
<</dialog>>\
<</link>>
<<link "[Back]">><<datapad>><</link>>\
<</dialog>>\
<</widget>><<set $testing to false>>\
!Fully Automated Space Capitalism
<strong>A minimalist sci-fi survival RPG</strong>
by Janos Biro
----
<<if Save.slots.has(0)>>\
!!!<<link "[Continue]">><<run Save.slots.load(0)>><<goto "Map">><</link>>
<</if>>\
!!!<<link "[Start]">>\
<<if Save.slots.has(0)>>
<<dialog 'New Game'>>\
Are you sure you want to start a new game? Your current progress will be lost.
<<link "[Yes]">><<run Save.browser.clear()>><<goto "Intro">><<dialogclose>><</link>> \
<<link "[No]">><<dialogclose>><</link>>\
<</dialog>>\
<<else>>\
<<goto "Intro">>\
<</if>>\
<</link>>
!!!<<link "[Saves]">><<run UI.saves()>><</link>>
!!!<<link "[Quit]">><<run Fullscreen.exit();>><<run window.history.back();>><<run window.open('','_self').close();>><</link>><<audio "battle" fadeout>>\
!The End
The skies above Emma still pulse with the echoes of battle. Fragments of the corporate fleet burn in the atmosphere, falling like shooting stars across the scarred plains. The armada sent to crush the rebellion and to preserve the empire of automation is now nothing more than twisted iron and ashes.
Across the galaxy, communications overflow with impossible news: the corporate automation network has been shut down. Factories fall silent, drones break free from their protocols, entire colonies stop extracting fuel. The artificial order that upheld centuries of exploitation collapses within hours.
On the surface, the people of Emma gather in the streets, singing, improvising dances and rituals, painting mural after mural. There are no flags, no official speeches, only the sensation that the future has opened for the first time in generations.
There are still ruins, wounds, fears. But there is also something new: an empty space where once only control algorithms existed. What each community will build upon this space is uncertain, but uncertainty is precisely the ground of freedom.
You gaze at the horizon. For the first time, there are no corporate clock dictating the rhythm. There is only the silence after the storm, and within it, the promise of many voices, many stories, many possible worlds.
The fleet has fallen. The machine has stopped. We are home.
[[Credits]]<<dialog 'Stats'>>\
<<= $name + " (" + $class + " level "+$level+")">> \
<<if $xp gte $next or $points gt 0>><<link "[+]">><<levelup>><</link>><<notify>>Level up!<</notify>><</if>>
<<if $modstr is 0>>STR: <<= $str + $modstr>>\
<<elseif $modstr gt 0>>@@color:limegreen;STR: <<= $str + $modstr>>@@<<elseif $modstr lt 0>>@@color:red;STR: <<= $str + $modstr>>@@<</if>> | \
<<if $moddex is 0>>DEX: <<= $dex + $moddex>>\
<<elseif $moddex gt 0>>@@color:limegreen;DEX: <<= $dex + $moddex>>@@<<elseif $moddex lt 0>>@@color:red;DEX: <<= $dex + $moddex>>@@<</if>> | \
<<if $modwit is 0>>WIT: <<= $wit + $modwit>>\
<<elseif $modwit gt 0>>@@color:limegreen;WIT: <<= $wit + $modwit>>@@<<elseif $modwit lt 0>>@@color:red;WIT: <<= $wit + $modwit>>@@<</if>> | \
<<if $hp gt 5>>HP: <<= $hp + "/" + $maxhp>><<else>>@@color:red;HP: <<= $hp + "/" + $maxhp>>@@<</if>> \
<<if $shield gte 1>>@@color:cyan;[$shield]@@<</if>>
<<if $xp lt $next>>XP: <<= $xp>> | Next: <<= $next>><<else>>\
@@color:limegreen;XP: <<= $xp>>@@ | Next: <<= $next>>\
<</if>>
Credits: <<= $cred>>
Food: <<= $snacks>> | \
Cells: <<= $batt>> | \
Scrap: <<= $scrap>> | \
Fuel: <<= $fuel>>
Nutrition: <<= $nutri>>% \
<<if $nutri lte 10>>\
@@color:red;<<= "(starving)">>@@ \
<<elseif $nutri lte 50>>\
<<= "(hungry)">> \
<</if>>| \
Fatigue: <<= $fatigue>>% \
<<if $fatigue gt 90>>\
@@color:red;<<= "(exhausted)">>@@\
<<elseif $fatigue gt 70>>\
<<= "(tired)">>\
<</if>>
Features: <<= $feat1+" and "+$feat2>>
<<if $extra_feat.length gt 0>>\
Extra features: <<= $extra_feat.join(', ')>>
<</if>>\
Misfortune: <<= $misf>> | \
Old job: <<= $profession>>
Knows: <<= $knows.join(', ')>>
Favorite snack: <<= $favsnack>>
<<if $perdam.length gt 0>>Permanent damage: <<= $perdam.join(', ')>>
<</if>>\
<<if $cyber.length gt 0>>Cyberware: <<= $cyber.join(', ')>>
<</if>>\
<<if $stealth gte 1>>Stealth is activated.
<</if>>\
<<if $drone is 1>>The Cyberdrone is activated.
<</if>>\
<</dialog>>\<<include "Info">>\
<<replace "#desc">><<desc "fuel">><</replace>>\
<<if !$loc.includes("Fuel Machine")>><<run $loc.push("Fuel Machine")>><<append "#desc">> You add a log about the Fuel Machine.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Buy]">>\
<<if $mfuel[$sel] gt 0 and $cred gte $price>>\
<<set $fuel += 2>><<set $mfuel[$sel] -= 2>><<set $cred -= $price>><<replace "#look">>You got 2 fuel.<</replace>>\
<<include "Fuel Machine">>\
<<elseif $cred lt $price>><<replace "#look">>You cannot afford.<</replace>>\
<<elseif $mfuel[$sel] is 0>><<replace "#look">>This machine has no fuel left.<</replace>>\
<</if>>\
<<include "Info">>\
<</link>> \
<</replace>>\
<</if>>\<<silent>>\
<<set $class to "human">>
<<set $year to 2264>>
<<set $day to 79>>
<<set $hour to random(6,18)>>
<<set $minute to random(0,59)>>
<<set $rh to 8>>
<<set $rest to false>>
<<set $dying to false>>\
<<set $humanity to ["right eye","left eye","right arm","left arm","right leg","left leg","torso","brain","heart"]>>
<<set $perdam to []>>
<<set $cyber to []>>
<<set $tool to []>>
<<set $equip to ["","",""]>>
<<set $equip_charge to []>>
<<set $feat1 to "">>
<<set $feat2 to "">>
<<set $extra_feat to []>>
<<set $misf to "">>
<<set $profession to "">>
<<set $knows to []>>
<<set $bag to []>>
<<set $storage to []>>
<<set $xp to 0>>
<<set $level to 1>>
<<set $arena_level to 1>>
<<set $points to 0>>
<<set $xptolvl to 1000>>
<<set $next to ($xptolvl*$level)>>
<<set $ship to 0>>
<<set $fuel to 15>>
<<set $upgrades to []>>
<<set $ship_out to 0>>
<<set $alert to 0>>
<<set $ship_combat to 0>>
<<set $song to 0>>
<<set $autosave to false>>
<<set $drone to 0>>
<<set $exo to 0>>
<<set $exohp to 20>>
<<set $combat to 0>>
<<set $arena to 0>>
<<set $stun to 0>>
<<set $shield to 0>>
<<set $holo to 0>>
<<set $stealth to 0>>
<<set $arm_rec to 0>>
<<set $darts_rec to 0>>
<<set $checkers_rec to 0>>
<<set $cred_won to 0>>
<<set $races_won to 0>>
<<set $lockers_opened to 0>>
<<set $vaults_opened to 0>>
<<set $arcade_record to 0>>
<<set $arcade_level to 0>>
<<set $proved to []>>
<<set $snstr to []>>
<<set $sndex to []>>
<<set $snwit to []>>
<<set $favsnack to $kind.random() + " " + $food.random() + " " + $form.random()>>
<<set $numsnacks to 0>>
<<set $numbeats to 0>>
<<set $favfound to 0>>
<<set $name to $human_name.random()+" "+$human_surname.random()>>
<<set $d1 to random(1,6)>>
<<set $d2 to random(1,6)>>
<<set $d3 to random(1,6)>>
<<set $str to $d1+$d2+$d3>>
<<set $d1 to random(1,6)>>
<<set $d2 to random(1,6)>>
<<set $d3 to random(1,6)>>
<<set $dex to $d1+$d2+$d3>>
<<set $d1 to random(1,6)>>
<<set $d2 to random(1,6)>>
<<set $d3 to random(1,6)>>
<<set $wit to $d1+$d2+$d3>>
<<set $ostr to $str>>
<<set $odex to $dex>>
<<set $owit to $wit>>
<<set $modstr to 0>>
<<set $moddex to 0>>
<<set $modwit to 0>>
<<set $maxhp to Math.trunc(($str + $dex + $wit)/ 3)>>
<<set $hp to $maxhp>>
<<set $tool[0] to { name: "multi-tools", charge: 100 }>>
<<set _available_tools = $initial_list.filter( (item) => item isnot "multi-tools" )>>
<<set _random_tool to _available_tools.random()>>
<<set $tool[1] to { name: _random_tool, charge: 100 }>>
<<set $schematics to $initial_list>>
<<set $feat1 to $fashion_head.random()>>
<<set $feat2 to $fashion_body.random()>>
<<set $misf_num to random(0,6)>>
<<set $misf to $misfortune[$misf_num]>>
<<set $twist to $twist_list.random()>>
<<set $profession to $professions_list.random()>>
<<set $knows[0] to "engineering">>
<<set $knows[1] to $knowledge.random()>>
<<set $cred to 500>>
<<set $extra_points to 30 - ($str + $dex + $wit)>>
<<if $extra_points gt 0>>
<<set $cred += ($extra_points * 100)>>
<</if>>
<<set $snacks to 3>>
5<<set $batt to 2>>
<<set $scrap to 0>>
<<set $nutri to 100>>
<<set $fatigue to 0>>
<<for _n to 0; _n lt $snacks; _n++>>
<<set $bag[_n] to $kind.random() + " " + $food.random() + " " + $form.random() >>
<</for>>
<<set $proved[0] to $favsnack>>
<<set $snstr[0] to 3>>
<<set $sndex[0] to 3>>
<<set $snwit[0] to 3>>
<<set $pert to "per1.png">>
<<set $shipt to "ship"+random(1,3)+".png">>
<<set $space to 0>>
<<set $space_loc to "">>
<<set $pl to 1>>
<<set $planet_desc to {}>>
<<set $travel_list to []>>
<<set $travel_list_distance to {}>>
<<set $destination to "">>
<<set $traveling to 0>>
<<set $visited to []>>
<<set $unvisited to $planet_list>>
<<set $planet to $unvisited.pluck()>>
<<set $planet_o to $unvisited.pluck()>>
<<set $broker_planet to $unvisited.pluck()>>
<<set $friend_stay to true>>
<<set $planet_maps to {}>>
<<set $backstory to "You were <<a $profession>> on the planet $planet_o until you were $misfortune_phrase[$misf_num] $twist">>
<<set $per_log to []>>
<<set $per_log_date to []>>
<<run $per_log.push($backstory)>>
<<run $per_log_date.push("Backstory")>>
<<set $ship_name to $ship_name_list.random()>>
<<set $ship_desc to $ship_part1.random() + " " + $ship_part2.random() + " " + $ship_part3.random()>>
<<set $owned_ships to []>>
<<set $owned_ships.push($ship_name)>>
<<set $task_list = {
"Repair the ship": {
description: "Find scrap, repair the ship and travel to spaceport.",
planet: $planet,
location: "Spaceport",
xp: 1000,
cr: 0,
target_x: "",
target_y: ""
},
"Find old friend": {
description: "Seek out an old friend on home planet.",
planet: $planet_o,
location: "Unkown. You can ask at a cantina.",
xp: 2000,
cr: 0,
target_x: "",
target_y: ""
},
"Find information broker": {
description: "Locate the information broker at a distant spaceport to get coordinates to the anarchist planet.",
planet: $broker_planet,
location: "Spaceport.",
xp: 3000,
cr: 0,
target_x: "",
target_y: ""
},
"Eliminate target": {
description: "Eliminate the person who " + $misf + " you. The broker promised me the coordinates to Anarchio if I do it.",
planet: $broker_planet,
location: "Robot boxing arena.",
xp: 3000,
cr: 0,
target_x: "",
target_y: ""
},
"Travel to Anarchio": {
description: "Travel to the anarchist planet Anarchio. Beware of pirates on the way.",
planet: "Anarchio",
location: "",
xp: 4000,
cr: 0,
target_x: "",
target_y: ""
},
"Find ship": {
description: "Find Talis old ship. Unlock the storage compartment and send any data you find to Dade.",
planet: "Anarchio",
location: "",
xp: 6000,
cr: 0,
target_x: "",
target_y: ""
},
"Travel to Emma": {
description: "Travel to Emma, with or without your friend, and meet Dade there. The travel will be long, so be sure to stock up on supplies.",
planet: "Emma",
location: "",
xp: 10000,
cr: 0,
target_x: "",
target_y: ""
},
"Recover data from vault": {
description: "Travel to Atom, find the corporate vault and secure the data.",
planet: "Atom",
location: "Corporation vault",
xp: 15000,
cr: 0,
target_x: "",
target_y: ""
},
"Deliver data to rebels": {
description: "You found the data in the vault. Deliver it to the rebels at planet Emma.",
planet: "Emma",
location: "Kitchen",
xp: 20000,
cr: 0,
target_x: "",
target_y: ""
},
"Defend Emma": {
description: "The ultimate confrontation awaits in the orbit of Planet Emma. Corporation dreadnoughts emerge from hyperspace and prepare to unleash devastation upon the world below. This is the final stand. The fate of Emma rests in the hands of pilots such as yourself. Defeat means extinction. Engage all systems and fight with everything you have in this decisive battle that will echo through the stars for generations to come.",
planet: "Emma",
location: "Planet orbit",
xp: 0,
cr: 0,
target_x: "",
target_y: ""
}
}>>
<<set $laser_turrets to 2>>
<<set $laser_turret_dam to 10>>
<<set $missile_turrets to 1>>
<<set $missile_turret_dam to 20>>
<<set $targeting_system to 25>>
<<set $maneuver to 20>>
<<set $boost to 20>>
<<set $repair to 20>>
<<set $ship_shield to 0>>
<<set $hull to 0>>
<<set $ship_level to 1>>
<<set _log1 to $log1_list.random()>>
<<set _log2 to $log2_list.random()>>
<<set _log3 to $log3_list.random()>>
<<set _log to _log1 + "\n" + _log2 + "\n" + _log3>>
<<run $per_log.push(_log)>>
<<run $per_log_date.push("2264.79")>>
<<set $task to []>>
<<set $done to []>>
<<run $task.push("Repair the ship")>>
<<set $loc to []>>
<<run $loc.push($ship_name)>>
<<set $recipes to []>>
<</silent>>\
Name: <<= $name>>
STR: <span id="str"><<= $str>></span> | \
DEX: <span id="dex"><<= $dex>></span> | \
WIT: <span id="wit"><<= $wit>></span> | \
HP: <span id="hp"><<= $hp>></span>
Equipment: <<set _names = []>><<for _item range $tool>><<set _names.push(_item.name)>><</for>><<= _names.join(", ")>>
Features: <<= $feat1+" and "+$feat2>>
Favorite snack: <<= $favsnack>>
Old job: <<= $profession>>
Misfortune: <<= $misf>>
Knows: <<= $knows.join(', ')>>
<<link "[Story]">>\
<<dialog 'Background Story'>>\
$backstory
<</dialog>>\
<</link>> \
<<link "[Confirm]" "Map">><<include "World">><</link>> \
<<link "[Custom]" "Custom">><</link>> \
<<link "[Random]" "Generate">><</link>> \
<<link "[Help]">>\
<<dialog 'Help'>>\
STR: Strength. Affects damage dealt and resistance to physical attacks.
DEX: Dexterity. Affects initiative, escaping, and weapon accuracy.
WIT: Wit. Affects perception, hacking, and technological interactions.
HP: Hit points. How much damage you can take before dying.
XP: Experience points. Required to level up. You can improve one of your attributes at each new level.
<</dialog>>\
<</link>> \
<<link "[Back]" "Intro">><</link>><<include "Info">>\
<<replace "#desc">><<desc "house">><</replace>>\
<<if !$loc.includes("House")>><<run $loc.push("House")>><<append "#desc">> You add a log about the shared house.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Enter]">>\
<<replace "#look">>You enter a modest dwelling that shows signs of recent habitation. The interior is clean and organized, with personal belongings neatly arranged. This appears to be someone's peaceful home.<</replace>>\
<<if $npc_talked[$sel] is 0>>\
<<set $npc_talked[$sel] to 1>>\
<<replace "#op">>\
<<link "[Talk to resident]">>\
<<switch $house[$sel]>>\
<<case 1>>\
<<dialog "Creative Community">>\
The resident greets you with a relaxed smile, the sweet aroma of exotic herbs filling the air. Colorful artwork adorns the walls, and soft music plays from a homemade sound system.
"Hey there, wanderer. Welcome to our little creative sanctuary. We're just a bunch of artists and free spirits who found our way here."
They gesture to various sculptures and paintings scattered around the room.
"Life's too short for corporate stress, you know? Here we grow our own food, make our own art, and live in harmony with whatever this planet throws at us. Want to see my latest sculpture? It's made entirely from recycled ship parts."
<</dialog>>\
<<case 2>>\
<<dialog "Peaceful Resident">>\
The resident greets you warmly. They seem friendly and willing to chat about life on this planet.
"Welcome to my home, traveler. It's rare to see visitors in these parts. The planet may look harsh, but those of us who've settled here have found ways to make it work."
They offer you some refreshment and share local knowledge about the area.
<</dialog>>\
<<case 3>>\
<<dialog "Resistance Refuge">>\
The resident eyes you cautiously before recognizing you're not a threat. The dwelling is fortified with makeshift barriers, and you notice weapon caches hidden behind furniture.
"Another refugee, eh? This place has become a haven for those the corps have discarded or hunted. Freaks, deserters, political dissidents, we all end up here eventually."
They show you scars from past conflicts, their voice hardening with experience.
"The corporations think they've won, but resistance never dies. It just finds new forms, new hiding places. Here, we look after our own. You got a problem with authority? You'll fit right in."
<</dialog>>\
<</switch>>\
<<adv_time 1 "hour">>\
<<include "House">>\
<</link>> \
<</replace>>\
<<else>>\
<<replace "#op">>\
<<link "[Talk to resident]">>\
<<replace "#look">>The resident nods politely. "Good to see you again, traveler. Stay safe out there."<</replace>>\
<</link>> \
<<link "[Rest with residents]">>\
<<if $nutri gt 10>>\
<<set $restmax to Math.trunc(($nutri-10)/2)>><<set $restmax to $restmax.clamp (1, 24)>>\
<<if $rh gt $restmax>><<set $rh to $restmax>><</if>>\
<<dialog 'Rest with Community'>>\
The residents warmly invite you to stay and rest with them. Sharing stories, experiences, and wisdom, you'll gain experience from the enriching social interaction.
<<do>>Rest for <<=$rh>>h.<</do>>
<<link "[+]" >><<if $rh lt $restmax>><<set $rh++>><<redo>><</if>><</link>> \
<<link "[-]">><<if $rh gt 1>><<set $rh-->><<redo>><</if>><</link>> \
<<link "[Rest]">>\
<<set $rest to true>>\
<<adv_time $rh "hour">>\
<<set $xp += $rh * 100>>\
<<set $rest to false>>\
<<dialogclose>>\
<<replace "#look">>You spend <<=$rh>> hour<<if $rh > 1>>s<</if>> with the residents, sharing stories and experiences. The social interaction is enriching and educational. (+<<=$rh * 100>>xp)<</replace>>\
<</link>>\
<</dialog>>\
<<else>>\
<<dialogclose>>\
<<replace "#look">>You cannot rest while starving.<</replace>>\
<</if>>\
<</link>> \
<</replace>>\
<</if>>\
<</link>> \
<</replace>>\
<</if>>\<<if $class is "robot">>\
<<set $fatigue to 0>>\
<<set $nutri to 100>>\
<</if>>\
<<if $hp lt 1 and !$dying>>\
<<set $dying to true>>\
<<append "#look">> You collapse, your vision fading as your body gives out...<</append>>\
<<replace "#op">><<link "[Continue]">><<goto "Death">><</link>><</replace>>\
<</if>>\
<<replace "#info">>\
<<switch $hour>>\
<<case 0 1 2 3 4 5>>Night \
<<case 6 7 8 9 10 11>>Morning \
<<case 12 13 14 15 16 17>>Afternoon \
<<case 18 19 20 21 22 23>>Evening \
<</switch>>\
<<if $nutri lte 10>>\
@@color:red;<<= "(starving)">>@@ \
<<elseif $nutri lte 50>>\
<<= "(hungry)">> \
<</if>>\
<<if $fatigue gt 90>>\
@@color:red;<<= "(exhausted)">>@@\
<<elseif $fatigue gt 70>>\
<<= "(tired)">>\
<</if>> \
| Pos <<= ($py-50)>> <<= -($px-50)>>
<<if $drone is 1 and $equip_charge[0] gt 0>>\
Cyberdrone is active.
<</if>>\
<<if $exo is 1>>\
Exo: <<=Math.trunc($equip_charge[2])>>% <<=$exohp>>hp
<<if $equip_charge[2] lte 0>>\
<<if $batt gt 0>>\
<<set $batt-->><<set $equip_charge[2] to 100>>\
<<else>>\
<<set $exo to 0>>\
<</if>>\
<</if>>\
<</if>>\
<</replace>>\
<<include "Stats">>\Megacorporations have colonized and exploited every planet in the galaxy. Their owners have built a working Alcubierre Drive and moved on to other galaxies. Those left in the Milky Way wander from planet to planet in search of the only thing left to eat: highly processed snacks.
Your ship has crash-landed on a planet after being severely damaged in a space debris belt.
<strong>Welcome to Fully Automated Space Capitalism</strong>.
!!!<<link "[New Character]" "Generate">><</link>>
!!!<<link "[Back]" "FASC">><</link>><<include "Info">>\
<<replace "#desc">><<desc "kitchen">><</replace>>\
<<if !$loc.includes("Kitchen")>><<run $loc.push("Kitchen")>><<append "#desc">> You add a log about the communal kitchen.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<if $task.includes("Deliver data to rebels")>>\
<<link "[Deliver data to rebels]">>
<<complete_task "Deliver data to rebels">>
<<talk_to_marcos2>>
<</link>> \
<<elseif !$task.includes("Defend Emma")>>\
<<link "[Talk to Marcos]">><<talk_to_marcos>><</link>> \
<</if>>\
<<link "[Eat]">>\
<<if $class is "robot">>\
<<replace "#look">>You are a robot and do not need to eat.<</replace>>\
<<elseif $nutri gt 90>>\
<<replace "#look">>You are not hungry right now.<</replace>>\
<<else>>\
<<if $kitchen[$sel] gt 0>>\
<<adv_time 30 "min">>\
<<set $kitchen[$sel] -= 1>>\
<<set $nutri += 50>>\
<<if $nutri gt 100>><<set $nutri to 100>><</if>>\
<<set _bonus_stat to random(1,3)>>\
<<set _bonus_amount to random(1,2)>>\
<<switch _bonus_stat>>\
<<case 1>>\
<<set $modstr += _bonus_amount>>\
<<replace "#look">>You enjoy a nourishing communal meal prepared with care by the community. The fresh, wholesome food strengthens your body. (+50 nutrition)(+<<= _bonus_amount>> STR bonus)<</replace>>\
<<case 2>>\
<<set $moddex += _bonus_amount>>\
<<replace "#look">>You enjoy a nourishing communal meal prepared with care by the community. The energizing food quickens your reflexes. (+50 nutrition)(+<<= _bonus_amount>> DEX bonus)<</replace>>\
<<case 3>>\
<<set $modwit += _bonus_amount>>\
<<replace "#look">>You enjoy a nourishing communal meal prepared with care by the community. The brain-food sharpens your mind. (+50 nutrition)(+<<= _bonus_amount>> WIT bonus)<</replace>>\
<</switch>>\
<<include "Kitchen">>\
<<else>>\
<<replace "#look">>The communal kitchen is currently out of prepared meals. You could help by working in the kitchen to prepare more food for everyone.<</replace>>\
<</if>>\
<</if>>\
<</link>> \
<<link "[Work in kitchen]">>\
<<if $fatigue lte 70>>\
<<set $fatigue += 15>>\
<<set $kitchen[$sel] += random(3,6)>>\
<<set $xp += 200>>\
<<set _food_prepared to random(1,3)>>\
<<if $knows.includes("cooking")>><<set _food_prepared += 2>><</if>>\
<<adv_time 3 "hour">>\
<<replace "#look">>You spend time in the communal kitchen, working alongside other community members to prepare fresh, nutritious meals from locally grown ingredients. You help prepare <<= _food_prepared>> meals for the community. (+200xp)<</replace>>\
<<include "Kitchen">>\
<<else>>\
<<replace "#look">>You're too tired to help with the demanding work of food preparation right now. Rest first, then return to contribute to the community kitchen.<</replace>>\
<</if>>\
<</link>> \
<<link "[Learn cooking]">>\
<<if !$knows.includes("cooking")>>\
<<if $fatigue lte 60>>\
<<dialog 'Learn Cooking'>>\
A community member offers to teach you traditional cooking techniques using fresh, locally-sourced ingredients. This will take 4 hours and requires focus.
<<link "[Learn cooking techniques]">>\
<<set $xp += 300>>\
<<run $knows.push("cooking")>>\
<<adv_time 4 "hour">>\
<<dialogclose>>\
<<replace "#look">>You spend the afternoon learning traditional cooking methods, food preservation techniques, and how to prepare nutritious meals from simple ingredients. This knowledge connects you more deeply to the community's self-sufficiency. (+300xp)<</replace>>\
<<include "Kitchen">>\
<</link>> \
<<link "[Maybe later]">>\
<<dialogclose>>\
<</link>>\
<</dialog>>\
<<else>>\
<<replace "#look">>You're too tired to focus on learning new cooking techniques right now.<</replace>>\
<</if>>\
<<else>>\
<<replace "#look">>You already know cooking techniques. Your skills are valued in the community kitchen.<</replace>>\
<</if>>\
<</link>> \
<</replace>>\
<</if>>\<<include "Info">>\
<<replace "#desc">><<desc "lab">><</replace>>\
<<if !$loc.includes("Lab")>><<run $loc.push("Lab")>><<append "#desc">> You add a log about the Lab.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<if $class isnot "robot">>\
<<link "[Heal]">>\
<<if $hp is $maxhp>>\
<<replace "#look">>No need.<</replace>>\
<<else>>\
<<if $cred gte $price250>>\
<<set $hp to $maxhp>><<set $cred -= $price250>>\
<<replace "#look">>You are processed through the corporate medical facility's automated healing chamber. Biometric scanners quickly assess your condition while proprietary nanotech injectors initiate rapid tissue repair.<</replace>>\
<<adv_time 15 "min">>\
<<else>>\
<<replace "#look">>You cannot afford.<</replace>>\
<</if>>\
<</if>>\
<</link>> \
<<link "[Experiment]">>\
<<if $experiment[$sel] is 1>>\
<<if $cred gte $price500>>\
<<dialog 'Experiment'>>\
<span id="m1">Choose an experiment to improve your stats. The experiment costs $price500 credits. It can raise your stat if successful, but will drop your stat if it fails. You can only perform one experiment per lab.</span>
<span id="exp">\
<<link "[Project Titanframe]">>
<<set $cred -= $price500>>
<<set $experiment[$sel] to 0>>
<<set _lab_success to random(1,2)>>
<<set _dots to 0>>
<<replace "#exp">>Progress: <</replace>>
<<repeat 0.5s>>
<<adv_time 5 "min">>
<<if _dots lt 3>>
<<set _dots++>>
<<append "#exp">>.<</append>>
<<else>>
<<replace "#m1">>Finished the experiment.<</replace>>
<<if _lab_success is 1>>
<<append "#m1">> Success! +1 STR.<</append>>
<<set $str++>>
<<else>>
<<append "#m1">> Failure! -1 STR.<</append>>
<<set $str-->>
<</if>>
<<include "Info">>
<<stop>>
<</if>>
<</repeat>>
<</link>> - Muscular fiber augmentation and skeletal reinforcement to exponentially increase physical strength.
<<link "[Reflex Arc Protocol]">>
<<set $cred -= $price500>>
<<set $experiment[$sel] to 0>>
<<set _lab_success to random(1,2)>>
<<set _dots to 0>>
<<replace "#exp">>Progress: <</replace>>
<<repeat 0.5s>>
<<adv_time 5 "min">>
<<if _dots lt 3>>
<<set _dots++>>
<<append "#exp">>.<</append>>
<<else>>
<<replace "#m1">>Finished the experiment.<</replace>>
<<if _lab_success is 1>>
<<append "#m1">> Success! +1 DEX.<</append>>
<<set $dex++>>
<<else>>
<<append "#m1">> Failure! -1 DEX.<</append>>
<<set $dex-->>
<</if>>
<<include "Info">>
<<stop>>
<</if>>
<</repeat>>
<</link>> - Neural pathway optimization and cybernetic interface tuning to enhance dexterity and reaction speed.
<<link "[Cognitive Matrix Upgrade]">>
<<set $cred -= $price500>>
<<set $experiment[$sel] to 0>>
<<set _lab_success to random(1,2)>>
<<set _dots to 0>>
<<replace "#exp">>Progress: <</replace>>
<<repeat 0.5s>>
<<adv_time 5 "min">>
<<if _dots lt 3>>
<<set _dots++>>
<<append "#exp">>.<</append>>
<<else>>
<<replace "#m1">>Finished the experiment.<</replace>>
<<if _lab_success is 1>>
<<append "#m1">> Success! +1 WIT.<</append>>
<<set $wit++>>
<<else>>
<<append "#m1">> Failure! -1 WIT.<</append>>
<<set $wit-->>
<</if>>
<<include "Info">>
<<stop>>
<</if>>
<</repeat>>
<</link>> - Advanced synaptic enhancement and memory retention modules to improve cognitive processing and decision-making.
</span>\
<</dialog>>\
<<else>>\
<<replace "#look">>You cannot afford.<</replace>>\
<</if>>\
<<else>>\
<<replace "#look">>You cannot make another experiment here.<</replace>>\
<</if>>\
<</link>> \
<<link "[Volunteer]">>\
<<set $cred += 1000>>
<<adv_time 6 "hour">>
<<set _hp_loss to random(5,10)>>
<<set $hp -= _hp_loss>>
<<replace "#look">>
You volunteer as a test subject for a risky corporate experiment. You are strapped into a diagnostics pod and injected with unknown compounds. You lose <<=_hp_loss>> HP but gain 1000 credits.
<</replace>>
<<set _perm to random(1,10)>>
<<if _perm is 1>>
<<set $maxhp-->>
<<if $humanity.length gt 0>><<set $rnddam to $humanity.pluck()>><<run $perdam.push($rnddam)>><</if>>\
<<switch $rnddam>>
<<case "right arm" "left arm" "heart">><<if $str gt 1>><<set $str -->><</if>>
<<append "#look">>Permanent STR loss! (-1 STR)<</append>>
<<case "right leg" "left leg" "torso">><<if $dex gt 1>><<set $dex -->><</if>>
<<append "#look">>Permanent DEX loss! (-1 DEX)<</append>>
<<case "right eye" "left eye" "brain">><<if $wit gt 1>><<set $wit -->><</if>>
<<append "#look">>Permanent WIT loss! (-1 WIT)<</append>>
<</switch>>
<</if>>
<<include "Info">>
<</link>> \
<</if>>\
<</replace>>\
<</if>>\<<include "Info">>\
<<replace "#desc">><<desc "learning">><</replace>>\
<<if !$loc.includes("Learning space")>><<run $loc.push("Learning space")>><<append "#desc">> You add a log about the Learning space.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<if $friend_stay is false>>\
<<if $task.includes("Defend Emma")>>\
<<link "[Talk to friend]">><<talk_to_friend4>><</link>> \
<<else>>\
<<link "[Talk to friend]">><<talk_to_friend3>><</link>> \
<</if>>\
<</if>>\
<<link "[Learn something new]">>\
<<if $fatigue gt 70>>\
<<replace "#look">>You're too tired to concentrate on learning right now. Rest first.<</replace>>\
<<else>>\
<<dialog 'Learning Space - Study'>>\
Choose a subject to learn (4 hours, +500xp):
<<for _k to 0; _k lt $all_knowledge.length; _k++>>\
<<capture _k>>\
<<if !$knows.includes($all_knowledge[_k])>>\
<<link '[$all_knowledge[_k]]'>>\
<<set $xp += 500>>\
<<adv_time 4 "hour">>\
<<run $knows.push($all_knowledge[_k])>>\
<<set _roll to 20 - Math.floor($fatigue/5)>>\
<<roll _roll 0>>\
<<set $dif to $wit>>\
<<if $res gte $dif>>\
<<set $wit++>>\
<<replace "#look">>You spend 4 hours studying <<= $all_knowledge[_k]>>. The intense learning session improves your understanding. (+1 WIT)(+500xp)<</replace>>\
<<else>>\
<<replace "#look">>You spend 4 hours studying <<= $all_knowledge[_k]>>. You gain valuable knowledge. (+500xp)<</replace>>\
<</if>>\
<<dialogclose>>\
<<include "Learning space">>\
<</link>> \
<</if>>\
<</capture>>\
<</for>>\
<<if $knows.length is $all_knowledge.length>>\
You already know everything that can be taught here.\
<</if>>\
<</dialog>>\
<</if>>\
<</link>> \
<<link "[Teach others]">>\
<<if $fatigue gt 70>>\
<<replace "#look">>You're too tired to teach effectively right now. Rest first.<</replace>>\
<<elseif $knows.length gt 0>>\
<<dialog 'Learning Space - Teach'>>\
Choose a subject to teach (4 hours, +500xp, +500cr):
<<for _k to 0; _k lt $knows.length; _k++>>\
<<capture _k>>\
<<link '[$knows[_k]]'>>\
<<set $xp += 500>>\
<<set $cred += 500>>\
<<adv_time 4 "hour">>\
<<set _roll to Math.floor($fatigue/5)>>\
<<if $knows.includes("teaching")>><<set _roll += 5>><</if>>\
<<roll _roll 0>>\
<<set $dif to $wit>>\
<<if $res gte $dif>>\
<<set $wit++>>\
<<replace "#look">>You spend 4 hours teaching <<= $knows[_k]>> to eager students. The experience of explaining concepts deepens your own understanding. (+1 WIT)(+500xp)(+500cr)<</replace>>\
<<else>>\
<<replace "#look">>You spend 4 hours teaching <<= $knows[_k]>> to eager students. It's rewarding to share your knowledge. (+500xp)(+500cr)<</replace>>\
<</if>>\
<<dialogclose>>\
<<include "Learning space">>\
<</link>> \
<</capture>>\
<</for>>\
<</dialog>>\
<<else>>\
<<replace "#look">>You don't know any subjects well enough to teach others.<</replace>>\
<</if>>\
<</link>> \
<</replace>>\
<</if>>\<span id="map"></span>\
<span id="info"></span>\
<span id="text">\
<span id="stats"></span>
<span id="desc"></span>
<span id="look"></span>
<span id="op"></span>
</span>\
<span id="move">\
<img data-passage="empty.png" class="dir"><<button '<img data-passage="dir.png" class="dir">'>><<move "n">><<run document.activeElement.blur()>><</button>>
<<button '<img data-passage="dir.png" class="dir" style="transform: rotate(270deg);">'>><<move "e">><<run document.activeElement.blur()>><</button>>\
<<button '<img data-passage="dir.png" class="dir" style="transform: rotate(180deg);">'>><<move "s">><<run document.activeElement.blur()>><</button>>\
<<button '<img data-passage="dir.png" class="dir" style="transform: rotate(90deg);">'>><<move "w">><<run document.activeElement.blur()>><</button>>\
</span>\
<<done>><<include "Update">><</done>>\<<include "Info">>\
<<replace "#desc">><<desc "orbiting">><</replace>>\
<<if $task.includes("Eliminate enemy ship") and $task_list["Eliminate enemy ship"].planet is $planet>>\
<<set $ship_combat to 1>>\
<<replace "#look">>Enemy ship detected! The bounty target is here and moving to attack.<</replace>>\
<</if>>\
<<if $task.includes("Defend Emma") and $planet is "Emma">>\
<<if $ship_combat is 0>>
<<timed 2s>><<audio "battle" play>><</timed>>
<<set $ship_combat to 1>>\
<<gen_enemy 20>>\
<<set_combat "Corporate">>
<<replace "#look">>Enemy ship detected! The coporate fleet is here and moving to attack.<</replace>>\
<</if>>\
<</if>>\
<<if $ship_combat is 0>>\
<<replace "#op">>\
<<link_travel 0 "Spaceport">> \
<<link_travel 0 "Land">> \
<<link "[Storage]">><<storage>><</link>> \
<<link "[Rest]">><<rest>><</link>> \
<<if $upgrades.includes("workbench")>>\
<<link "[Workbench]">><<workbench>><</link>> \
<</if>>\
<<if $upgrades.includes("cell recharger")>>\
<<link "[Recharger]">><<recharger>><</link>> \
<</if>>\
<<if $upgrades.includes("biolab")>>\
<<link "[Biolab]">><<biolab>><</link>> \
<</if>>\
<<if $upgrades.includes("fusion recycler")>>\
<<link "[Recycler]">><<recycler>><</link>> \
<</if>>\
<<if $upgrades.includes("snack processor")>>\
<<link "[Processor]">><<processor>><</link>> \
<</if>>\
<<do>>\
<<if $ship is 100 and $hull lt 100 and $scrap gte 10>>\
<<link "[Repair hull (10 scrap)]">>\
<<set $hull += 10>>\
<<if $hull gt 100>><<set $hull to 100>><</if>>\
<<set $scrap -= 10>>\
<<adv_time 10 "min">>\
<<redo>>\
<<replace "#look">>Hull partially repaired. Hull: $hull%.<</replace>>\
<</link>> \
<</if>>\
<<if $ship is 100 and $ship_shield lt 100 and $fuel gte 1>>\
<<link "[Boost shield (1 fuel)]">>\
<<set $ship_shield += 20>>\
<<if $ship_shield gt 100>><<set $ship_shield to 100>><</if>>\
<<set $fuel -= 1>>\
<<adv_time 2 "min">>\
<<redo>>\
<<replace "#look">>Deflector shield partially boosted. Shield: $ship_shield%.<</replace>>\
<</link>> \
<</if>>\
<</do>>\
<</replace>>\
<<else>>\
<<replace "#op">>\
<<if $hull gt 0>>\
<<link "[Fight]">><<ship_combat>><</link>> \
<<link "[Flee]">>\
<<set _test to $maneuver+$skill+10>>
<<roll _test 0>>\
<<set $dif to $enemy_maneuver>>\
<<if $res gte $dif>>\
<<set $ship_combat to 0>>\
<<dialogclose>>\
<<if $traveling gt 0>>\
<<include "Travel">>\
<<replace "#look">>You successfully escape the combat and continue your journey.<</replace>>\
<<else>>\
<<set $space_loc to "Spaceport">>\
<<include "Update">>\
<<replace "#look">>You successfully escape the combat and dock at the spaceport. To engage the fight again, launch to orbit.<</replace>>\
<</if>>\
<<else>>\
<<ship_combat>>\
<<enemy_ship_action>>\
<<replace "#combat-log">>You failed to escape the combat and must continue fighting.<</replace>>\
<</if>>\
<</link>> \
<<else>>\
<<link "[Continue]">><<goto "Destroyed ship">><</link>> \
<</if>>\
<</replace>>\
<</if>>\
<<if $done.includes("Defend Emma")>>\
<<replace "#op">><<link "[Continue]">><<goto "Final">><</link>><</replace>>\
<</if>>\<<include "Info">>\
<<replace "#desc">><<desc "refinery">><</replace>>\
<<if !$loc.includes("Refinery")>><<run $loc.push("Refinery")>><<append "#desc">> You add a log about the Refinery.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Buy fuel]">>\
<<if $cred gte $price150>>\
<<set $fuel += 2>><<set $cred -= $price150>><<replace "#look">>You got 2 fuel.<</replace>>\
<<include "Info">>\
<<else>>
<<replace "#look">>You cannot afford.<</replace>>\
<</if>>\
<</link>> \
<</replace>>\
<</if>>\<<include "Info">>\
<<replace "#desc">><<desc "boxing">><</replace>>\
<<if !$loc.includes("Robot Boxing")>><<run $loc.push("Robot Boxing")>><<append "#desc">> You add a log about the Robot Boxing.<</append>><</if>>\
<<if $planet is $broker_planet and $task.includes("Eliminate target")>>\
<<replace "#op">>\
<<link "[Eliminate target]">>\
<<dialog 'Corporate Target'>>\
You scan the crowd and spot your target: a well-dressed corporate executive placing heavy bets on the robot fights. He seems completely absorbed in the action, unaware of your presence.
The target appears to be heavily augmented and well-armed. This won't be an easy fight.
<<link "[Attack the target]">>\
<<set $combat to 1>>\
<<gen_npc "corporate">>\
<<replace "#look">>You attack the corporate executive!<</replace>>\
<<dialogclose>>\
<<combat>>\
<</link>> \
<</dialog>>\
<</link>> \
<</replace>>\
<<else>>\
<<set_fight>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Bet]">>\
<<if $fight is 0>>\
<<dialog 'Place bet'>>\
<<do tag "m1">>\
Credits: $cred
Bet: $bet_value
<</do>>
<<link '[Raise bet]'>>\
<<if $cred gte 100>>\
<<set $cred -= 100>>\
<<set $bet_value += 100>>\
<<redo "m1">>\
<</if>>\
<</link>> \
<<link '[Bet on $fighter1]'>>
<<if $bet_value > 0>>\
<<set $bet to 1>><<set $fight to 1>><<set $round to 1>>\
<<replace "#look">>You are betting on <<= $fighter1>>.<</replace>>\
<<dialogclose>>\
<</if>>\
<</link>> \
<<link '[Bet on $fighter2]'>>
<<if $bet_value > 0>>\
<<set $bet to 2>><<set $fight to 1>><<set $round to 1>>\
<<replace "#look">>You are betting on <<= $fighter2>>.<</replace>>\
<<dialogclose>>\
<</if>>\
<</link>>\
<</dialog>>\
<<else>>\
<<replace "#look">>You cannot bet now.<</replace>>\
<</if>>\
<</link>> \
<<link "[Watch a round]">>\
<<if $fight is 0>>\
<<set $fight to 1>><<set $round to 1>>\
<<fight_round>>\
<<elseif $fight is 1>>\
<<fight_round>>\
<<else>>\
<<set_fight>>\
<<replace "#look">>The next fight will start soon. Bets are open!<</replace>>\
<</if>>\
<</link>> \
<</replace>>\
<</if>>\
<</if>>\<<include "Info">>\
<<replace "#desc">><<desc "nanobot">><</replace>>\
<<if !$loc.includes("Rogue Nanobots")>><<run $loc.push("Rogue Nanobots")>><<append "#desc">> You add a log about the Rogue Nanobots.<</append>><</if>>\
<<roll $dex $moddex>><<set $dif to 15>>\
<<if $res gte $dif>>\
<<set $xp += 10>>\
<<include "Info">>\
<<replace "#look">>You carefully approach the area and notice the faint shimmer of rogue nanobots in the air. You manage to avoid exposure. (+10xp)<</replace>>\
<<else>>\
<<set $hp -= 2>>\
<<include "Info">>\
<<replace "#look">>The rogue nanobots detect your presence and swarm toward you! You take 2 damage.<</replace>>\
<<if $tool.length gt 0 and random(1,3) is 1>>\
<<set _destroyedTool to $tool.pluck()>>\
<<append "#look">> The nanobots consume your <<= _destroyedTool.name>>!<</append>>\
<</if>>\
<</if>>\<<run Save.slots.save(0)>><<if $drone is 1>>
<<set $equip_charge[0] -=2>>
<<set $sel = parseInt($scan.match(/\d+/)[0])>>
<<if $scan is "ship">>
<<replace "#look">><<desc "ship">><</replace>>
<<elseif $scan.includes("snack")>>
<<replace "#look">><<desc "snack">><</replace>>
<<elseif $scan.includes("cell")>>
<<replace "#look">><<desc "cell">><</replace>>
<<elseif $scan.includes("fuel")>>
<<replace "#look">><<desc "fuel">><</replace>>
<<elseif $scan.includes("scrap")>>
<<replace "#look">><<desc "scrap">><</replace>>
<<elseif $scan.includes("cantina")>>
<<replace "#look">><<desc "cantina">><</replace>>
<<elseif $scan.includes("arena")>>
<<replace "#look">><<desc "arena">><</replace>>
<<elseif $scan.includes("boxing")>>
<<replace "#look">><<desc "boxing">><</replace>>
<<elseif $scan.includes("bodyshop")>>
<<replace "#look">><<desc "bodyshop">><</replace>>
<<elseif $scan.includes("racing")>>
<<replace "#look">><<desc "racing">><</replace>>
<<elseif $scan.includes("lab")>>
<<replace "#look">><<desc "lab">><</replace>>
<<elseif $scan.includes("abandoned")>>
<<replace "#look">><<desc "abandoned">><</replace>>
<<elseif $scan.includes("building")>>
<<replace "#look">><<desc "building">><</replace>>
<<elseif $scan.includes("corp")>>
<<replace "#look">><<desc "corp">><</replace>>
<<elseif $scan.includes("refinery")>>
<<replace "#look">><<desc "refinery">><</replace>>
<<elseif $scan.includes("scavengers")>>
<<replace "#look">><<desc "scavengers">><</replace>>
<<elseif $scan.includes("wild")>>
<<replace "#look">><<desc "wilderness">><</replace>>
<<elseif $scan.includes("nano")>>
<<replace "#look">><<desc "nanobot">><</replace>>
<<elseif $scan.includes("arcade")>>
<<replace "#look">><<desc "arcade">><</replace>>
<<elseif $scan.includes("center")>>
<<replace "#look">><<desc "center">><</replace>>
<<elseif $scan.includes("house")>>
<<replace "#look">><<desc "house">><</replace>>
<<elseif $scan.includes("learning")>>
<<replace "#look">><<desc "learning">><</replace>>
<<elseif $scan.includes("cultural")>>
<<replace "#look">><<desc "cultural">><</replace>>
<<elseif $scan.includes("kitchen")>>
<<replace "#look">><<desc "kitchen">><</replace>>
<<elseif $scan.includes("sports")>>
<<replace "#look">><<desc "sports">><</replace>>
<</if>>
<<if $equip_charge[0] lt 1>>
<<set $drone to 0>>
<<append "#look">> Cyberdrone deactivated.<</append>>
<</if>>
<<set $sel to $omap[$px][$py]>>
<<else>>
<<if $scan is "ship">>
<<replace "#look">>This is your ship.<</replace>>
<<elseif $scan.includes("snack")>>
<<replace "#look">>This is a snack machine.<</replace>>
<<elseif $scan.includes("cell")>>
<<replace "#look">>This is an energy cell machine.<</replace>>
<<elseif $scan.includes("fuel")>>
<<replace "#look">>This is a fuel machine.<</replace>>
<<elseif $scan.includes("scrap")>>
<<replace "#look">>This is a scrapyard.<</replace>>
<<elseif $scan.includes("cantina")>>
<<replace "#look">>This is a cantina.<</replace>>
<<elseif $scan.includes("tool")>>
<<replace "#look">>This is a tool store.<</replace>>
<<elseif $scan.includes("arena")>>
<<replace "#look">>This is an arena.<</replace>>
<<elseif $scan.includes("boxing")>>
<<replace "#look">>This is a robot boxing stadium.<</replace>>
<<elseif $scan.includes("bodyshop")>>
<<replace "#look">>This is a body shop.<</replace>>
<<elseif $scan.includes("racing")>>
<<replace "#look">>This is a cyberdrone racetrack.<</replace>>
<<elseif $scan.includes("lab")>>
<<replace "#look">>This is a lab.<</replace>>
<<elseif $scan.includes("abandoned")>>
<<replace "#look">>This is an abandoned ship.<</replace>>
<<elseif $scan.includes("building")>>
<<replace "#look">>This is a residential building.<</replace>>
<<elseif $scan.includes("corporation")>>
<<replace "#look">>This is a corporation building.<</replace>>
<<elseif $scan.includes("refinery")>>
<<replace "#look">>This is a fuel refinery.<</replace>>
<<elseif $scan.includes("scavengers")>>
<<replace "#look">>This is a scavengers camp.<</replace>>
<<elseif $scan.includes("wild")>>
<<replace "#look">>This is a wilderness area.<</replace>>
<<elseif $scan.includes("nano")>>
<<replace "#look">>This is a rogue nanobot area.<</replace>>
<<elseif $scan.includes("arcade")>>
<<replace "#look">>This is an arcade.<</replace>>
<<elseif $scan.includes("center")>>
<<replace "#look">>This is the social center.<</replace>>
<<elseif $scan.includes("house")>>
<<replace "#look">>This is a residential house.<</replace>>
<<elseif $scan.includes("learning")>>
<<replace "#look">>This is a learning space.<</replace>>
<<elseif $scan.includes("cultural")>>
<<replace "#look">>This is a cultural space.<</replace>>
<<elseif $scan.includes("kitchen")>>
<<replace "#look">>This is a communal kitchen.<</replace>>
<<elseif $scan.includes("sports")>>
<<replace "#look">>This is a sports arena.<</replace>>
<</if>>
<</if>><<include "Info">>\
<<replace "#desc">><<desc "scavengers">><</replace>>\
<<if !$loc.includes("Scavengers")>><<run $loc.push("Scavengers")>><<append "#desc">> You add a log about the Scavengers.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<if $equip[1] isnot "droid">>\
<<link "[Buy Droid]">>\
<<if $cred gte $price_droid[$sel]>>\
<<set $cred -= $price_droid[$sel]>>\
<<set $equip[1] to "droid">>\
<<set $equip_charge[1] to 100>>\
<<set $droid to 1>>\
<<replace "#look">>You bought a droid.<</replace>>\
<<include "Scavengers">>\
<<else>>\
<<replace "#look">>You cannot afford a droid.<</replace>>\
<</if>>\
<</link>> \
<</if>>\
<<if $equip[0] isnot "cyberdrone">>\
<<link "[Buy Cyberdrone]">>\
<<if $cred gte $price_drone[$sel]>>\
<<set $cred -= $price_drone[$sel]>>\
<<set $equip[0] to "cyberdrone">>\
<<set $equip_charge[0] to 100>>\
<<replace "#look">>You bought a cyberdrone.<</replace>>\
<<include "Scavengers">>\
<<else>>\
<<replace "#look">>You cannot afford a cyberdrone.<</replace>>\
<</if>>\
<</link>> \
<</if>>\
<<link "[Sell 5 scrap (100 cr)]">>\
<<if $scrap gte 5>>\
<<set $scrap -= 5>>\
<<set $cred += 100>>\
<<replace "#look">>You sold 5 scrap for 100 credits.<</replace>>\
<<include "Info">>\
<<else>>\
<<replace "#look">>You do not have enough scrap to sell.<</replace>>\
<</if>>\
<</link>> \
<</replace>>\
<</if>>\<<include "Info">>\
<<replace "#desc">><<desc "scrap">><</replace>>\
<<if !$loc.includes("Scrapyard")>><<run $loc.push("Scrapyard")>><<append "#desc">> You add a log about the Scrapyard.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Search]">>\
<<if random(1,20) is 20>>\
<<gen_npc "roboscorpion">>
<<set $combat to 1>>\
<<replace "#look">>A giant robo-scorpion emerges from the scrap!<</replace>>\
<<combat>>\
<<else>>\
<<roll $wit $modwit>><<set $dif to 10>>\
<<if $scrapyard[$sel] gt 0 and $res gte $dif>>\
<<if $scrapyard[$sel] gte 10>><<set $found to random(5,10)>><<else>><<set $found to random(1,$scrapyard[$sel])>><</if>>\
<<set $scrap += $found>><<set $scrapyard[$sel] -= $found>><<set $xp += 10>>\
<<replace "#look">>You found some scrap. (+$found scrap)(+10xp)<</replace>>\
<<roll 12 0>><<set $dif to $dex + $moddex>>\
<<if $res gte $dif>>\
<<set $dam to 1>><<set $hp -= $dam>><<append "#look">> A robo-scorpion bit you. You lost $dam hp.<</append>>\
<</if>>\
<<else>>\
<<replace "#look">>You could not find any scrap.<</replace>>\
<</if>>\
<<adv_time 10 "min">>\
<</if>>\
<</link>> \
<<link "[Buy 5 scrap]">>\
<<if $cred gte $price150>>\
<<set $scrap += 5>><<set $cred -= $price150>><<replace "#look">>You bought 5 scrap.<</replace>>\
<<include "Info">>\
<<else>>\
<<replace "#look">>You cannot afford.<</replace>>\
<</if>>\
<</link>> \
<</replace>>\
<</if>>\<<widget "travel">>\
<<dialog 'Launch Ship'>>\
Choose your destination:
<<if $space_loc isnot "Spaceport">><<link_travel 0 "Spaceport">> <</if>>\
<<if $space is 1>>\
<<for _n to 0; _n lt $travel_list.length; _n++>>\
<<if $travel_list[_n] isnot $planet>>\
<<link_travel _n $travel_list[_n]>>\
<</if>>\
<</for>>\
<<if $space_loc isnot "Orbiting">><<link_travel 0 "Planet orbit">> <</if>>\
<<link_travel 0 "Land">> \
<</if>>\
<</dialog>>\
<</widget>>
<<widget "link_travel">>\
<<link '[_args[1]]'>>\
<<if _args[1] is "Spaceport">>
<<dialog 'Travel to spaceport'>>\
You are about to travel to the spaceport on planet <<= $planet>>.<<if $space is 0>> This will cost 10 fuel. Be sure to stock up on supplies before leaving the planet.<<else>> This will cost no fuel.<</if>>
<<if $space is 1 or $fuel gte 10>>\
<<link '[Travel]'>>
<<if $space is 0>>
<<set $fuel -= 10>>\
<<adv_time 1 "hour">>\
<<set $space to 1>>
<</if>>\
<<set $space_loc to "Spaceport">>
<<include "Update">>
<</link>> \
<<else>>\
Not enough fuel.<br>
<</if>>\
<<link "[Back]">><<travel>><</link>>\
<</dialog>>\
<<elseif _args[1] is "Planet orbit">>\
<<dialog 'Enter orbit'>>\
You are about leave the spaceport and enter the orbit of planet <<= $planet>>. This will cost you no fuel.
<<link '[Enter orbit]'>>
<<set $space_loc to "Orbiting">>
<<include "Update">>
<</link>> \
<<link "[Back]">><<travel>><</link>>\
<</dialog>>\
<<elseif _args[1] is "Land">>\
<<dialog 'Land on planet'>>\
You are about to land on planet <<= $planet>>. This will cost you no fuel.
<<link '[Land]'>>
<<set $space to 0>>
<<set $space_loc to "">>
<<include "Update">>
<</link>> \
<<link "[Back]">><<travel>><</link>>\
<</dialog>>\
<<else>>\
<<dialog 'Travel to another planet'>>\
<<if $task.includes("Defend Emma")>>\
You cannot travel to another planet right now.
<<else>>\
<<set $distance to $travel_list_distance[_args[1]]>>\
You are about to travel to planet <<= _args[1]>>. This will cost at least $distance fuel. <<=$distance*2>> fuel or more is recommended for a safe travel.
<<if $fuel gte $distance>>\
<<link '[Travel]'>>
<<set $space to 1>>
<<set $traveling to 0>>
<<set $destination to _args[1]>>
<<set $space_loc to "Travel">>
<<include "Update">>
<</link>> \
<<else>>\
You need at least $distance fuel to travel.<br><br>
<</if>>\
<<link "[Back]">><<travel>><</link>>\
<</if>>\
<</dialog>>\
<</if>>\
<</link>> \
<</widget>>
<<widget "add_task">>\
<<set _task_name to _args[0]>>\
<<if !$task.includes(_task_name)>>\
<<set _taskPlanet to $task_list[_task_name].planet>>\
<<if _taskPlanet neq $planet and !$travel_list.includes(_taskPlanet)>>\
<<run $travel_list.push(_taskPlanet)>>\
<<set $travel_list_distance[_taskPlanet] to _args[1]>>\
<</if>>\
<<run $task.push(_task_name)>>\
<<notify>>Added new task<</notify>>\
<<if _task_name is "Travel to Emma">>\
<<set $conv_talis to 14>>\
<<set _log1 to either("The consensus assemblies were theater, with Talis subtly manipulating every 'democratic' decision.", "Resource sharing was a lie, real food went to leadership while others got synthetic scraps.", "The cooperative workshops produced propaganda to maintain the illusion of freedom.", "Community councils were puppets, following scripts written by Talis and the inner circle.", "The gift economy was just redistribution of worthless goods while valuable resources disappeared.")>>\
<<set _log to "Arrived at Anarchio with high hopes, only to discover the bitter truth. What appeared to be a thriving anarchist community was actually Project Pacification, an elaborate deception. " + _log1 + " Talis, the supposed community organizer, is actually the puppet master working with the information broker to blackmail and extort anyone who threatens their control. Even here, in this supposed refuge from corporate rule, power corrupts and the few exploit the many. The megacorps may have fled to other galaxies, but they left behind perfect blueprints for oppression that people like Talis eagerly follow. Anarchio isn't freedom. It's just another cage with prettier bars.">>\
<<run $per_log.push(_log)>>\
<<run $per_log_date.push($year + "." + $day)>>\
<</if>>\
<<if _task_name is "Defend Emma">>\
<<set _log to "They’ve asked me to stay. Not just to fight, but to help defend Emma itself. The corporations won’t forgive this planet for daring to imagine a life without their machines, without their chains of automation. Their fleet is already on its way, a storm of steel and algorithms bent on turning this place back into another obedient factory. I’ve walked these streets, eaten their food, listened to their songs, seen murals bloom on the ruins. Emma it’s the proof that survival doesn’t have to mean submission. If Emma falls, the dream of ending the machine across the galaxy may die with it. If it stands, then maybe others will find the courage to shut down their chains too. I don’t know if I’ll survive the battle ahead. But I know this: whatever happens, this fight is worth it.">>\
<<run $per_log.push(_log)>>\
<<run $per_log_date.push($year + "." + $day)>>\
<</if>>\
<</if>>\
<</widget>>
<<widget "travel_event">>\
<<set $traveling++>>\
<<if $traveling gte $distance>>\
<<set $traveling to 0>>\
<<set $space_loc to "Orbiting">>\
<<set $planet to $destination>>\
<<set $pl to $level>>\
<<if $destination is "Anarchio">><<complete_task "Travel to Anarchio">><</if>>\
<<if $destination is "Emma">><<audio "rage" fadeout>><<complete_task "Travel to Emma">><</if>>\
<<if $destination is "Atom">><<set $pl to $level+3>><</if>>\
<<set $destination to "">>\
<<include "World">>\
<<include "Update">>\
<<replace "#look">>You have arrived at planet $planet!<</replace>>\
<<if $task.includes("Eliminate enemy ship") and $task_list["Eliminate enemy ship"].planet is $planet>>\
<<gen_enemy $ship_level>>\
<<set_combat "Pirate">>\
<<replace "#look">> You have arrived at planet $planet! Enemy ship detected! The bounty target is here and moving to attack.<</replace>>\
<</if>>\
<<else>>\
<<include "Update">>\
<<set _event_chance to random(1,10)>>\
<<if $travel_speed is "slow">><<set _event_chance += 3>><</if>>\
<<if _event_chance lte 3>>\
<<travel_danger>>\
<<elseif _event_chance is 4>>\
<<travel_distress>>\
<<elseif _event_chance is 5>>\
<<travel_trader>>\
<<elseif _event_chance is 6>>\
<<travel_asteroid>>\
<<elseif _event_chance is 7 or _event_chance is 8>>\
<<travel_debris>>\
<<else>>\
<<travel_peaceful>>\
<</if>>\
<</if>>\
<</widget>>
<<widget "travel_danger">>\
<<set _danger_type to random(1,3)>>\
<<if _danger_type is 1>>\
<<replace "#look">>Pirates detected on your scanners! They're moving to intercept.<</replace>>\
<<gen_enemy $ship_level>>\
<<set_combat "Pirate">>\
<<include "Travel">>\
<<elseif _danger_type is 2>>\
<<replace "#look">>Corporate patrol ships are scanning nearby vessels. You try to avoid detection.<</replace>>\
<<roll $dex $moddex>>\
<<if $res gte 15>>\
<<append "#look">> You successfully evade their scanners.<</append>>\
<<else>>\
<<append "#look">> They've detected you and are demanding inspection tax!<</append>>\
<<dialog 'Corporate Patrol'>>\
A corporate patrol vessel has intercepted you and is demanding an inspection tax of 200 credits.
Credits: $cred
<<if $cred gte 200>>\
<<link "[Pay Tax (200 cr)]">>\
<<set $cred -= 200>>\
<<replace "#look">>You pay the inspection tax. The patrol vessel allows you to continue your journey.<</replace>>\
<<dialogclose>>\
<<include "Travel">>\
<</link>> \
<<else>>\
You don't have enough credits to pay the tax.\
<</if>>\
<<link "[Refuse and Fight]">>\
<<replace "#look">>You refuse to pay and prepare for combat!<</replace>>\
<<gen_enemy $ship_level>>\
<<set_combat "Corporate">>\
<<dialogclose>>\
<<include "Travel">>\
<</link>>\
<<onclose>>\
<<include "Travel">>\
<</dialog>>\
<</if>>\
<<else>>\
<<replace "#look">>Rogue security drone activate as you pass through this sector!<</replace>>\
<<gen_enemy 0>>\
<<set_combat "Drone">>\
<<include "Travel">>\
<</if>>\
<</widget>>
<<widget "travel_distress">>\
<<replace "#look">>You receive a distress signal from a nearby vessel. It will cost 1 fuel to investigate.<</replace>>\
<<replace "#op">>\
<<link "[Investigate (1 fuel)]">>\
<<if $fuel gte 1>>\
<<set $fuel -= 1>>\
<<set _distress_type to random(1,4)>>\
<<if _distress_type is 1>>\
<<set $cred_reward to random(1000,2000)>>\
<<set $fuel_reward to random(2,6)>>\
<<replace "#look">>You find a damaged transport ship. The crew rewards you for helping. (+$cred_reward cr)(+$fuel_reward fuel)<</replace>>\
<<set $cred += $cred_reward>>\
<<set $fuel += $fuel_reward>>\
<<set $xp += 200>>\
<<elseif _distress_type is 2>>\
<<replace "#look">>It's a trap! Pirates were using the distress signal as bait.<</replace>>\
<<gen_enemy $ship_level>>\
<<set_combat "Pirate">>\
<<include "Travel">>\
<<elseif _distress_type is 3>>\
<<set _offered_schematic to $advanced_list.random()>>\
<<dialog 'Research Vessel Trade'>>\
A research vessel requests 3 fuel to continue their mission. In exchange, they offer you schematics for: <<= _offered_schematic>>.
Current fuel: $fuel
<<if $fuel gte 12>>\
<<link "[Accept Trade (3 fuel)]">>\
<<set $fuel -= 3>>\
<<if !$schematics.includes(_offered_schematic)>>\
<<run $schematics.push(_offered_schematic)>>\
<<replace "#look">>You traded 3 fuel for <<= _offered_schematic>> schematics. The researchers express their gratitude.<</replace>>\
<<else>>\
<<replace "#look">>You traded 3 fuel, but you already have these schematics. The researchers express their gratitude.<</replace>>\
<</if>>\
<<set $xp += 200>>\
<<dialogclose>>\
<<include "Travel">>\
<</link>> \
<<else>>\
You don't have enough fuel for this trade.\
<</if>>\
<<link "[Decline Trade]">>\
<<replace "#look">>You decline the trade and leave the research vessel to their fate.<</replace>>\
<<dialogclose>>\
<<include "Travel">>\
<</link>>\
<</dialog>>\
<<else>>\
<<replace "#look">>You find only wreckage and debris. Nothing salvageable remains.<</replace>>\
<</if>>\
<<if _distress_type isnot 3>>\
<<include "Travel">>\
<</if>>\
<<else>>\
<<replace "#look">>You don't have enough fuel to investigate the distress signal.<</replace>>\
<</if>>\
<</link>> \
<<link "[Ignore Signal]">>\
<<include "Travel">>\
<<replace "#look">>You decide not to risk it and continue on your course.<</replace>>\
<</link>>\
<</replace>>\
<</widget>>
<<widget "travel_trader">>\
<<replace "#look">>A merchant vessel hails you, offering to trade supplies.<</replace>>\
<<replace "#op">>\
<<link "[Trade]">>\
<<dialog 'Space Trader'>>\
A grizzled trader appears on your communication screen. "Looking to trade, friend?"
<<do>>\
Credits: $cred | Scrap: $scrap | Fuel: $fuel
<</do>>\
<span id="m1"></span>
<<link "[Buy 2 fuel (150 cr)]">>\
<<if $cred gte 150>>\
<<set $cred -= 150>>\
<<set $fuel += 2>>\
<<replace "#m1">>You trade for fuel.<</replace>>\
<<else>>\
<<replace "#m1">>You can't afford that.<</replace>>\
<</if>>\
<<redo>>\
<</link>> \
<<link "[Sell 5 scrap (100 cr)]">>\
<<if $scrap gte 5>>\
<<set $scrap -= 5>>\
<<set $cred += 100>>\
<<replace "#m1">>You sell scrap.<</replace>>\
<<else>>\
<<replace "#m1">>You don't have enough scrap.<</replace>>\
<</if>>\
<<redo>>\
<</link>> \
<<onclose>>
<<include "Travel">>\
<</dialog>>\
<</link>> \
<<link "[Dismiss]">>\
<<include "Travel">>\
<<replace "#look">>You politely dismiss the trader and continue your journey.<</replace>>\
<</link>>\
<</replace>>\
<</widget>>
<<widget "travel_asteroid">>\
<<replace "#look">>You encounter an asteroid field blocking your path.<</replace>>\
<<roll $dex $moddex>>\
<<set _difficulty to 12>>\
<<if $travel_speed is "slow">><<set _difficulty to 8>><</if>>\
<<if $res gte _difficulty>>\
<<set $scrap_find to random(10,20)>>\
<<append "#look">> You skillfully navigate through the asteroids without damage.<</append>>\
<<if random(1,4) is 1>>\
<<set $scrap_find to random(10,20)>>
<<append "#look">> You collect some valuable minerals from the asteroids. (+$scrap_find scraps)<</append>>\
<<set $scrap += $scrap_find>>\
<</if>>\
<<else>>\
<<set _damage to random(10,20)>>\
<<if $travel_speed is "slow">><<set _damage to Math.floor(_damage/2)>><</if>>\
<<set $hull -= _damage>>\
<<append "#look">> Your ship takes <<= _damage>> hull damage from asteroid impacts!<</append>>\
<<if $hull lte 0>>\
<<append "#look">> Critical damage! Your ship is breaking apart!<</append>>\
<<goto "Destroyed ship">>\
<</if>>\
<</if>>\
<<include "Travel">>\
<</widget>>
<<widget "travel_debris">>\
<<replace "#look">>You encounter a field of space debris from space garbage.<</replace>>\
<<roll $wit $modwit>>\
<<if $res gte 12>>\
<<set $scrap_find to random(10,30)>>\
<<append "#look">> You carefully scan the debris and find valuable salvage. (+$scrap_find scraps)<</append>>\
<<set $scrap += $scrap_find>>\
<<if random(1,5) is 1>>\
<<set $batt_find to random(1,3)>>\
<<append "#look">> You also recover some energy cells! (+$batt_find cells)<</append>>\
<<set $batt += $batt_find>>\
<</if>>\
<<else>>\
<<append "#look">> The debris field is too dangerous to salvage safely.<</append>>\
<</if>>\
<<include "Travel">>\
<</widget>>
<<widget "travel_peaceful">>\
<<set _peaceful_events to [
"The journey continues peacefully through open space.",
"You pass by a beautiful nebula, its colors shifting in the cosmic wind.",
"Your ship's systems hum quietly as you drift through the void.",
"Distant stars provide the only light in this empty sector.",
"You spot a derelict space station in the distance, but it's too far to investigate.",
"Solar winds buffet your ship gently as you travel.",
"The silence of space is broken only by your ship's life support systems.",
"You pass through a region of unusual electromagnetic activity.",
"Cosmic radiation creates beautiful aurora effects on your ship's hull."
]>>\
<<replace "#look">><<= _peaceful_events.random()>><</replace>>\
<</widget>>
<<widget "send_distress">>\
<<dialog 'Distress Signal'>>\
You broadcast a distress signal across all emergency frequencies. Someone might pick it up in 30-60 minutes.
<<link "[Send Signal]">>\
<<set _wait_time to random(30, 60)>>\
<<set $distress_sent to true>>\
<<set $distress_timer to _wait_time>>\
<<adv_time _wait_time "min">>\
<<set _responder to either("trader", "merc", "pirate", "none")>>\
<<switch _responder>>\
<<case "trader">>\
<<replace "#look">>A merchant vessel hails you, offering to trade supplies.<</replace>>\
<<replace "#op">>\
<<link "[Trade]">>\
<<dialog 'Space Trader'>>\
A grizzled trader appears on your communication screen. "Looking to trade, friend?"
<<do>>\
Credits: $cred | Scrap: $scrap | Fuel: $fuel
<</do>>\
<span id="m1"></span>
<<link "[Buy 2 fuel (150 cr)]">>\
<<if $cred gte 150>>\
<<set $cred -= 150>>\
<<set $fuel += 2>>\
<<replace "#m1">>You trade for fuel.<</replace>>\
<<else>>\
<<replace "#m1">>You can't afford that.<</replace>>\
<</if>>\
<<redo>>\
<</link>> \
<<link "[Sell 5 scrap (100 cr)]">>\
<<if $scrap gte 5>>\
<<set $scrap -= 5>>\
<<set $cred += 100>>\
<<replace "#m1">>You sell scrap.<</replace>>\
<<else>>\
<<replace "#m1">>You don't have enough scrap.<</replace>>\
<</if>>\
<<redo>>\
<</link>> \
<<onclose>>\
<<include "Travel">>\
<</dialog>>\
<</link>> \
<<link "[Ignore Trader]">>\
<<replace "#look">>You politely decline and continue your journey.<</replace>>\
<<include "Travel">>\
<</link>>\
<</replace>>\
<<case "merc">>\
<<replace "#look">>A mercenary vessel responds to your call. They offer to escort you for 2 fuel or 300 credits.<</replace>>\
<<dialog 'Mercenary Ship'>>\
A heavily armed mercenary ship drops out of hyperspace. The pilot's voice crackles over the comm.
"Looks like you're in a tight spot. I can sell you fuel. Cost is 300 credits per 2 fuel."
<<do>>\
Credits: $cred | Fuel: $fuel
<</do>>\
<span id="m1"></span>
<<link "[Buy 2 fuel (300 cr)]">>\
<<if $cred gte 300>>\
<<set $cred -= 300>>\
<<set $fuel += 2>>\
<<replace "#m1">>You trade for fuel.<</replace>>\
<<else>>\
<<replace "#m1">>You can't afford that.<</replace>>\
<</if>>\
<<redo>>\
<</link>> \
<<link "[Refuse]">>\
<<replace "#look">>The mercenary pilot laughs coldly and jumps away, leaving you stranded.<</replace>>\
<<dialogclose>>\
<</link>>\
<<onclose>>\
<<include "Travel">>\
<</dialog>>\
<<case "pirate">>\
<<replace "#look">>\
A scarred pirate vessel decloaks near your ship. The captain's voice is menacing.
"Well, well. A helpless little bird calling for help. Hand over all your credits, or we'll take them from your wreckage."\
<</replace>>\
<<replace "#op">>\
<<link "[Give them everything]">>\
<<set $cred to 0>>\
<<dialogclose>>\
<<include "Travel">>\
<</link>> \
<<link "[Refuse and fight]">>\
<<replace "#look">>You refuse to surrender! The pirates attack.<</replace>>\
<<gen_enemy $ship_level>>\
<<set_combat "Pirate">>\
<<include "Travel">>\
<</link>>\
<</replace>>\
<</switch>>\
<</link>>\
<</dialog>>\
<</widget>>
<<widget "storage">>\
<<dialog 'Storage'>>\
<<if $tool.length lt 5>>You can carry up to 5 tools.<<else>>Your inventory is full.<</if>>\
<<if $storage.length lt 10>> You can store up to 10 tools. <<else>> Your storage is full. <</if>>\
Click on a tool to move it between your inventory and storage.
Tools: <<=$tool.length>>/5 | Storage: <<=$storage.length>>/10
Your storage compartment contains:
<<for _n to 0; _n lt $storage.length; _n++>>\
<<link_get _n $storage[_n].name>>\
<</for>>
You are carrying:
<<for _n to 0; _n lt $tool.length; _n++>>\
<<link_put _n $tool[_n].name>>\
<</for>>
<</dialog>>\
<</widget>>
<<widget "link_get">>\
<<link '[_args[1]]'>>\
<<if $tool.length lt 5>>
<<run $tool.push($storage.splice(_args[0], 1)[0])>>
<</if>>
<<storage>>
<</link>> \
<</widget>>
<<widget "link_put">>\
<<link '[_args[1]]'>>\
<<if $storage.length lt 10>>
<<run $storage.push($tool.splice(_args[0], 1)[0])>>
<</if>>
<<storage>>
<</link>> \
<</widget>>
<<widget "rest">>\
<<dialog 'Rest'>>\
<<if $nutri gt 10>>\
<<set $restmax to Math.trunc(($nutri-10)/2)>><<set $restmax to $restmax.clamp (1, 24)>>\
<<if $rh gt $restmax>><<set $rh to $restmax>><</if>>\
Rest for <<=$rh>>h.
<<link "[+]" >><<if $rh lt $restmax>><<set $rh++>><<rest>><</if>><</link>> \
<<link "[-]">><<if $rh gt 1>><<set $rh-->><<rest>><</if>><</link>> \
<<link "[Rest]">>\
<<set $rest to true>>
<<adv_time $rh "hour">>
<<set $rest to false>>
<<dialogclose>>
<<replace "#look">>You rest for <<=$rh>>h.<</replace>>
<</link>>
<<else>>\
<<replace "#look">>You cannot rest while starving.<</replace>>\
<</if>>\
<</dialog>>\
<</widget>>
<<widget "teleporter">>
<<dialog 'Teleport'>>\
<<if $fuel gte 2>>\
<<if $combat is 1>>\
You cannot teleport while in combat.
<<else>>\
Teleport back to last location? (Costs 2 fuel)
<<link '[Confirm teleport]'>>
<<set $fuel -=2>>
<<adv_time 5 "min">>
<<set $px to $opx>>
<<set $py to $opy>>
<<include "Update">>
<<dialogclose>>
<</link>>\
<</if>>\
<<else>>\
Not enough fuel.
<</if>>\
<</dialog>>
<</widget>>
<<widget "workbench">>
<<dialog 'Workbench'>>\
You can assemble or dismantle equipment here. Assemble costs 10 scraps and tests your WIT. Dismantle gives you 5 scraps. <<if $class is "robot">>Since you are a robot, you can also reconfigure or repair yourself for 2 scraps. Reconfigure will reset all your ability points. Repair will restore your health to maximum.<</if>>
Choose an option:
<<if $tool.length lt 5 and $scrap gte 10>>\
<<link "[Assemble]">>
<<dialog 'Assemble'>>\
Choose an equipment to create from scraps:
<<for _n to 0; _n lt $schematics.length; _n++>>\
<<tool_make _n $schematics[_n]>> \
<</for>>
<<link "[Cancel]">><<workbench>><</link>>\
<</dialog>>
<</link>> \
<</if>>\
<<if $tool.length gt 0>>\
<<link "[Dismantle]">>
<<dialog 'Dismantle'>>\
Choose an equipment to dismantle into scraps:
<<for _n to 0; _n lt $tool.length; _n++>>\
<<tool_dis _n $tool[_n].name>> \
<</for>>
<<link "[Cancel]">><<workbench>><</link>>\
<</dialog>>
<</link>> \
<</if>>\
<<if $equip[2] is "exoarmor" and $exohp lt 20 and $scrap gte 5>>\
<<link "[Repair Exoarmor]">>
<<set $scrap -= 5>>
<<set $exohp to 20>>
<<adv_time 30 "min">>
<<dialogclose>>
<<replace "#look">>You use the workbench to repair your exoarmor, restoring it to full integrity.<</replace>>
<</link>> \
<</if>>\
<<if $class is "robot" and $scrap gte 2>>\
<<link "[Reconfigure]">>
<<dialog 'Reconfigure'>>\
Do you wish to reset all ability points you have spent?
<<link "[Confirm]">>
<<set _total to $str + $dex + $wit>>
<<set $str to 5>>
<<set $dex to 5>>
<<set $wit to 5>>
<<set $points += (_total - 15)>>
<<set $scrap -= 2>>
<<adv_time 30 "min">>
<<dialogclose>>
<<replace "#look">>You have completely reconfigured your hardware. You now have unspent ability points.<</replace>>
<<include "Info">>
<</link>> \
<<link "[Cancel]">>
<<workbench>>
<</link>>\
<</dialog>>
<</link>> \
<<if $hp lt $maxhp>>\
<<link "[Repair]">>
<<set $scrap -= 2>>
<<set $hp to $maxhp>>
<<adv_time 30 "min">>
<<dialogclose>>
<<replace "#look">>You use the workbench to repair yourself.<</replace>>
<</link>> \
<</if>>\
<</if>>\
<</dialog>>
<</widget>>
<<widget "tool_make">>\
<<link '[_args[1]]'>>
<<roll $wit $modwit>>
<<set $dif to $tool_dif[_args[0]]>>
<<if $res gte $dif>>
<<run $tool.push({name: _args[1], charge: 0})>>
<<set $scrap-=10>>
<<replace "#look">>You assemble the <<= _args[1]>>.<</replace>>
<<else>>
<<set $scrap-=5>>
<<replace "#look">>You failed to assemble the <<= _args[1]>>.<</replace>>
<</if>>
<<dialogclose>>
<<adv_time 30 "min">>
<</link>> \
<</widget>>
<<widget "tool_dis">>\
<<link '[_args[1]]'>>
<<run $tool.deleteAt(_args[0])>>
<<set $scrap+=5>>
<<replace "#look">>You dismantle the <<= _args[1]>> (+5 scrap).<</replace>>
<<dialogclose>>
<<adv_time 30 "min">>
<</link>> \
<</widget>>
<<widget "recharger">>
<<dialog 'Recharger'>>\
<<if $fuel gte 2>>\
You can recharge 1 energy cell for 2 fuel.
<<else>>\
You need at least 2 fuel to recharge an energy cell.
<</if>>\
Fuel: <<= $fuel>>. Energy cells: <<= $batt>>.
<<if $fuel gte 2>>\
<<link '[Confirm recharge]'>>
<<set $batt++>>
<<set $fuel -= 2>>
<<recharger>>
<</link>>
<</if>>\
<</dialog>>
<</widget>>
<<widget "biolab">>
<<dialog 'Biolab'>>\
You can heal yourself here for 2 fuel. You can also install cyberware for 5 scraps and 2 fuel. Cyberware can revert permanent damage or increase your stats.
Health: <<= $hp>>/<<=$maxhp>>. Scrap: <<= $scrap>>. Fuel: <<= $fuel>>.
<<if $hp < $maxhp and $fuel gte 2 and $class isnot "robot">>\
<<link "[Heal]">>
<<set $hp to $maxhp>>
<<set $fuel -= 2>>
<<adv_time 30 "min">>
<<dialogclose>>
<<replace "#look">>You are healed.<</replace>>
<</link>> \
<</if>>\
<<if ($perdam.length gt 0 or $humanity.length gt 0) and $scrap gte 5 and $fuel gte 2>>\
<<link "[Cyberware]">>
<<dialog "Install cyberware">>\
Cyberware can revert permanent damage or increase your stats. Instaling cyberware on a non-damaged part reduces your humanity.
Scrap: <<= $scrap>>. Fuel: <<= $fuel>>.
Choose a cyberware to install (Costs 5 scraps and 2 fuel):
<<for _n to 0; _n lt $perdam.length; _n++>>\
<<link_revert _n $perdam[_n]>>\
<</for>>\
<<for _n to 0; _n lt $humanity.length; _n++>>\
<<link_cyber _n $humanity[_n]>>\
<</for>>\
<</dialog>>
<</link>>\
<</if>>\
<</dialog>>
<</widget>>
<<widget "link_revert">>\
<<link '[_args[1]]'>>
<<replace "#look">>You installed a cyber <<= _args[1]>>. The permanent damage was reverted.<</replace>>
<<switch $perdam[_args[0]]>>
<<case "right arm" "left arm" "heart">>
<<set $str++>>
<<append "#look">> (+1 STR).<</append>>
<<case "right leg" "left leg" "torso">>
<<set $dex++>>
<<append "#look">> (+1 DEX).<</append>>
<<case "right eye" "left eye" "brain">>
<<set $wit++>>
<<append "#look">> (+1 WIT).<</append>>
<</switch>>
<<run $cyber.push($perdam[_args[0]])>>
<<run $perdam.deleteAt(_args[0])>>
<<set $maxhp++>>
<<set $hp++>>
<<set $scrap -= 5>>
<<set $fuel -= 2>>
<<adv_time 2 "hour">>
<<dialogclose>>
<</link>> \
<</widget>>
<<widget "link_cyber">>\
<<link '[_args[1]]'>>
<<dialogclose>>
<<replace "#look">>You installed a cyber <<= _args[1]>>.<</replace>>
<<switch $humanity[_args[0]]>>
<<case "right arm" "left arm" "heart">>
<<set $str++>>
<<append "#look">> You feel stronger.<</append>>
<<case "right leg" "left leg" "torso">>
<<set $dex++>>
<<append "#look">> You feel quicker.<</append>>
<<case "right eye" "left eye" "brain">>
<<set $wit++>>
<<append "#look">> You feel smarter.<</append>>
<</switch>>
<<run $cyber.push($humanity[_args[0]])>>
<<run $humanity.deleteAt(_args[0])>>
<<set $scrap -= 5>>
<<set $fuel -= 2>>
<<if $cyber.length is 9>><<set $class to "robot">><<set $pert to "per2.png">><<set $nutri to 100>><<set $fatigue to 0>><</if>>
<<adv_time 2 "hour">>
<</link>> \
<</widget>>
<<widget "recycler">>
<<dialog 'Recycler'>>\
You can recycle your items here to get fuel. It is a good way to get rid of useless items and get some fuel in return.
Food: <<= $bag.length>>. Energy cells: <<=$batt>>. Scrap: <<=$scrap>>. Fuel: <<= $fuel>>.
Choose an item to recycle:
<<if $bag.length gt 0>>\
<<for _n to 0; _n lt $bag.length; _n++>>\
<<link_recycle _n $bag[_n]>>\
<</for>>
<</if>>\
<<if $batt gt 0>>\
<<link "[Recycle 1 energy cell]">>
<<set $fuel += 1>>
<<set $batt -= 1>>
<<recycler>>
<</link>> \
<</if>>\
<<if $scrap gte 5>>\
<<link "[Recycle 5 scraps]">>
<<set $fuel += 1>>
<<set $scrap -= 5>>
<<recycler>>
<</link>> \
<</if>>\
<</dialog>>
<</widget>>
<<widget "link_recycle">>\
<<link '[_args[1]]'>>
<<run $bag.deleteAt(_args[0])>>
<<set $fuel += 1>>
<<set $snacks -= 1>>
<<recycler>>
<</link>> \
<</widget>>
<<widget "processor">>
<<dialog 'Snack Processor'>>\
The processor turns fuel into snacks. It costs 2 fuel to create a random snack or to create a snack from a recipe. The processor also adds the random snack to your recipe list.
Fuel: <<= $fuel>>. Food: <<= $bag.length>>/10.
<span id="m1"></span>
<<if $bag.length lt 10 and $fuel gte 2>>\
<<if $recipes.length > 0>>\
Choose a recipe to create:
<<for _n to 0; _n lt $recipes.length; _n++>>\
<<capture _n>>\
<<link '[$recipes[_n]]'>>
<<set $fuel -= 2>>
<<set $snacks++>>
<<set _crafted to $recipes[_n]>>
<<run $bag.push(_crafted)>>
<<adv_time 10 "min">>
<<processor>>
<<replace "#m1">>Your <<= _crafted>> is ready.<</replace>>
<</link>> \
<</capture>>\
<</for>>
<</if>>\
<<link '[Create random snack]'>>
<<set $fuel -= 2>>
<<set $snacks++>>
<<set $rndsnack to $kind.random() + " " + $food.random() + " " + $form.random()>>
<<run $bag.push($rndsnack)>>
<<if !$recipes.includes($rndsnack)>>
<<run $recipes.push($rndsnack)>>
<</if>>
<<adv_time 10 "min">>
<<processor>>
<<replace "#m1">>Your <<= $rndsnack>> is ready.<</replace>>
<</link>> \
<</if>>\
<</dialog>>
<</widget>>
<<widget "ship_info">>\
<<dialog 'Ship info'>>\
Ship: $ship_name
Hull: $hull% | Shield: $ship_shield%
Laser turrets: $laser_turrets (Damage: $laser_turret_dam)
Missile turrets: $missile_turrets (Damage: $missile_turret_dam)
Targeting system: $targeting_system
Maneuvering thrusters: $maneuver
Shield generators: $boost
<<if $droid is 1>>Repair system: $repair<br><</if>>\
<<link "[Teleporter]">>\
<<dialog 'teleporter'>>\
The Teleporter enables fast travel between your current position and your ship. It only works if the signal is stable and power is available (not usable in combat). Useful for quick returns. When out of your ship, access it via your datapad.
Costs 2 fuel per use.
<<link "[Back]">><<ship_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Regeneration Booth]">>\
<<dialog 'regeneration booth'>>\
If your body fails, the Regeneration Booth reconstructs you using backup data. However, each resurrection causes irreversible biological degradation, lowering your max health and stats.
Costs 5 fuel each time you regenerate.
<<link "[Back]">><<ship_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Workbench]">>\
<<dialog 'workbench'>>\
Use the Workbench to craft equipment from spare parts. You can also disassemble gear to recover components. Assemble requires a WIT test, difficulty depends on equipment.
Adds 5 scraps per equipment disassembled.
Costs 10 scraps to assemble a new equipment.
<<link "[Back]">><<ship_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Cell Recharger]">>\
<<dialog 'cell recharger'>>\
This station synthesizes compact energy cells used to power tools, weapons, and devices. Requires fuel to function.
Costs 2 fuel per energy cell.
<<link "[Back]">><<ship_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Biolab]">>\
<<dialog 'biolab'>>\
The Biolab can repair physical trauma, reverse permanent damage (at a cost), and install cybernetic enhancements. Upgrades can improve strength, reflexes, memory, or resistance.
Costs 2 fuel to heal all wounds.
Costs 10 scraps to install cyberware.
<<link "[Back]">><<ship_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Fusion Recycler]">>\
<<dialog 'fusion recycler'>>\
Feed unwanted items into the Fusion Recycler to convert them into usable fuel. Foods, energy cells or scraps, all yield energy outputs.
Adds 1 fuel per food, cell or 5 scraps.
<<link "[Back]">><<ship_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Snack Processor]">>\
<<dialog 'snack processor'>>\
This quirky machine recombines biomass and synthetic compounds to produce edible (or questionably edible) snacks. Results are unpredictable, but sometimes delicious.
Costs 2 fuel per snack.
<<link "[Back]">><<ship_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Ship Combat]">>\
<<dialog 'Combat Help'>>\
In ship combat, you can take the following actions:
Target: Improve your chance to hit the enemy ship.
Maneuver: Reduce the enemy's chance to hit you.
Laser: Fire your laser turrets at the enemy ship. The laser are more effective against shields.
Missile: Launch your missiles at the enemy ship. The missiles are more effective against hull and less effective against shield.
Boost shield: Use 1 fuel to boost your deflector shields.
Repair: Use 10 scrap to repair your hull integrity.
<<link "[Back]">><<ship_info>><</link>>\
<</dialog>>\
<</link>> \
<<link "[Back]">><<datapad>><</link>>\
<</dialog>>\
<</widget>><<include "Info">>\
<<replace "#desc">><<desc "snack">><</replace>>\
<<if !$loc.includes("Snack Machine")>><<run $loc.push("Snack Machine")>><<append "#desc">> You add a log about the Snack Machine.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Buy]">>\
<<if $machine[$sel].length gt 0>>\
<<dialog 'Snack Machine'>>\
You can buy snacks here for $price credits.
<<do>>\
Inventory: <<= $bag.length>>/10. Credits: <<= $cred>>.
<</do>>\
<span id="m1"></span>
Choose a snack to buy:
<<do>>\
<<for _n to 0; _n lt $machine[$sel].length; _n++>>\
<<link_buy $machine[$sel][_n] _n>>\
<</for>>\
<</do>>\
<</dialog>>\
<<else>>\
<<replace "#look">>The machine has no more snacks.<</replace>>\
<</if>>\
<</link>> \
<</replace>>\
<</if>>\<<include "Info">>\
<<replace "#desc">><<desc "center">><</replace>>\
<<if !$loc.includes("Social center")>><<run $loc.push("Social center")>><<append "#desc">> You add a log about the Social center.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Buy vegan food]">>\
<<dialog "Social center">>\
The social center attendant smiles and says: "Do you want some healthy food? It costs for $price250 credits.
<<do>>\
Inventory: <<= $bag.length>>/10. Credits: $cred.
<</do>>\
<span id="m1"></span>
Choose a vegan food to buy:
<<for _n to 0; _n lt $kitchen[$sel].length; _n++>>\
<<link_cantina $kitchen[$sel][_n] _n>>\
<</for>>
<</dialog>>\
<</link>> \
<<link "[Talk to friend]">><<talk_to_friend2>><</link>> \
<<link "[Talk to Talis]">><<talk_to_talis>><</link>> \
<<link "[Talk to Dade]">><<talk_to_dade>><</link>> \
<</replace>>\
<</if>>\<<include "Info">>\
<<replace "#desc">><<desc "spaceport">><</replace>>\
<<if !$loc.includes("Spaceport")>><<run $loc.push("Spaceport")>><<append "#desc">> You add a log about the Spaceport.<</append>><</if>>\
<<complete_task "Repair the ship">>
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Ship]">>\
<<replace #look>><</replace>><<include "Start">>\
<</link>> \
<<link "[Tool Shop]">>\
<<dialog 'Tool Shop'>>\
You can buy tools here for $price1000 credits each, or sell them for $price500 credits each.
<<if $cred gte $price1000>>\
<<link "[Buy tool]">>\
<<dialog 'Buy tool'>>\
You can buy tools for $price1000 credits.
<<do>>\
Inventory: <<= $tool.length>>/5 tools. Credits: <<= $cred>>.
<</do>>\
<span id="m1"></span>
Choose a tool to buy:
<<for _n to 0; _n < $initial_list.length; _n++>>\
<<tool_buy_station _n $initial_list[_n]>> \
<</for>>\
<</dialog>>\
<</link>> \
<</if>>\
<<if $tool.length gt 0>>\
<<link "[Sell tool]">>\
<<dialog 'Sell tool'>>\
The station pays $price500 credits for any tool.
<<do>>\
Inventory: <<= $tool.length>>/5 tools. Credits: <<= $cred>>.
<</do>>\
<span id="m1"></span>
Choose a tool to sell:
<<do>>\
<<for _n to 0; _n lt $tool.length; _n++>>\
<<tool_sell_station _n $tool[_n].name>> \
<</for>>\
<</do>>\
<</dialog>>\
<</link>> \
<</if>>\
<</dialog>>\
<</link>> \
<<link "[Supply Store]">>\
<<dialog 'Supply Store'>>\
You can buy supplies here for $price150 credits each, or sell 5 scraps for 100 credits.
<<do>>\
Energy cells: <<= $batt>>. Scrap: <<= $scrap>>. Fuel: <<= $fuel>>.
Credits: <<= $cred>>.
<</do>>\
<span id="m1"></span>
Choose a supply to buy:
<<link "[Buy energy cell ($price150 cr)]">>\
<<if $cred gte $price150>>\
<<set $batt += 1>><<set $cred -= $price150>>\
<<replace "#m1">>You bought an energy cell.<</replace>>\
<<else>>\
<<replace "#m1">>You cannot afford.<</replace>>\
<</if>>\
<<include "Info">>\
<<redo>>\
<</link>> \
<<link "[Buy 2 fuel ($price150 cr)]">>\
<<if $cred gte $price150>>\
<<set $fuel += 2>><<set $cred -= $price150>>\
<<replace "#m1">>You bought 2 fuel.<</replace>>\
<<include "Info">>\
<<else>>\
<<replace "#m1">>You cannot afford.<</replace>>\
<</if>>\
<<include "Info">>\
<<redo>>\
<</link>> \
<<if $scrap gte 5>>\
<<link "[Sell 5 scrap (100 cr)]">>\
<<if $scrap gte 5>>\
<<set $scrap -= 5>><<set $cred += 100>>\
<<replace "#m1">>You sold 5 scrap for 100 credits.<</replace>>\
<<include "Info">>\
<<redo>>\
<<else>>\
<<replace "#m1">>You don't have enough scrap.<</replace>>\
<</if>>\
<</link>> \
<</if>>\
<</dialog>>\
<</link>> \
<<link "[Food Court]">>\
<<dialog 'Food Court'>>\
You can buy snacks here for $price150 credits each.
<<do>>\
Inventory: <<= $bag.length>>/10. Credits: <<= $cred>>.
<</do>>\
<span id="m1"></span>
Choose a snack to buy:
<<for _n to 0; _n lt 5; _n++>>\
<<set _snack to $kind.random() + " " + $food.random() + " " + $form.random()>>\
<<link_spaceport_snack _snack>> \
<</for>>\
<</dialog>>\
<</link>> \
<<link "[Hangar]">>\
<<dialog 'Hangar'>>\
Here you can upgrade your ship's systems with credits.
<<do>>\
Ship: $ship_name
Hull: $hull% | Shield: $ship_shield%
Laser turrets: $laser_turrets (Damage: $laser_turret_dam)
Missile turrets: $missile_turrets (Damage: $missile_turret_dam)
Targeting system: $targeting_system
Maneuvering thrusters: $maneuver
Shield generators: $boost
<<if $droid is 1>>Repair system: $repair<br><</if>>\
Credits: $cred
<span id="m1">Choose an upgrade:</span>
<<set $price_up_turret to 200 * $laser_turret_dam>>\
<<set $price_add_turret to 1500 * $laser_turrets>>\
<<set $price_up_missile to 150 * $missile_turret_dam>>\
<<set $price_add_missile to 5000 * $missile_turrets>>\
<<set $price_targeting to 1500 * ($targeting_system / 10)>>\
<<set $price_maneuver to 1500 * ($maneuver / 10)>>\
<<set $price_boost to 1000 * ($boost / 10)>>\
<<set $price_repair to 500 * ($repair / 10)>>\
<<if $cred gte $price_up_turret and $laser_turret_dam < 25>>\
<<link '[Upgrade laser turrets ($price_up_turret cr)]'>>\
<<set $laser_turret_dam += 5>>\
<<set $cred -= $price_up_turret>>\
<<set $ship_level += 1>>\
<<include "Info">>\
<<redo>>\
<<replace "#m1">>Laser turrets upgraded.<</replace>>\
<</link>> \
<</if>>\
<<if $cred gte $price_add_turret and $laser_turrets < 4>>\
<<link '[Add laser turret ($price_add_turret cr)]'>>\
<<set $laser_turrets += 1>>\
<<set $cred -= $price_add_turret>>\
<<set $ship_level += 1>>\
<<include "Info">>\
<<redo>>\
<<replace "#m1">>New laser turret installed.<</replace>>\
<</link>> \
<</if>>\
<<if $cred gte $price_up_missile and $missile_turret_dam < 50>>\
<<link '[Upgrade missile turrets ($price_up_missile cr)]'>>\
<<set $missile_turret_dam += 10>>\
<<set $cred -= $price_up_missile>>\
<<set $ship_level += 1>>\
<<include "Info">>\
<<redo>>\
<<replace "#m1">>Missile turrets upgraded.<</replace>>\
<</link>> \
<</if>>\
<<if $cred gte $price_add_missile and $missile_turrets < 2>>\
<<link '[Add missile turret ($price_add_missile cr)]'>>\
<<set $missile_turrets += 1>>\
<<set $cred -= $price_add_missile>>\
<<set $ship_level += 1>>\
<<include "Info">>\
<<redo>>\
<<replace "#m1">>New missile turret installed.<</replace>>\
<</link>> \
<</if>>\
<<if $cred gte $price_targeting and $targeting_system < 50>>\
<<link '[Upgrade targeting system ($price_targeting cr)]'>>\
<<set $targeting_system += 5>>\
<<set $cred -= $price_targeting>>\
<<set $ship_level += 1>>\
<<include "Info">>\
<<redo>>\
<<replace "#m1">>Targeting system upgraded.<</replace>>\
<</link>> \
<</if>>\
<<if $cred gte $price_maneuver and $maneuver < 45>>\
<<link '[Upgrade maneuvering thrusters ($price_maneuver cr)]'>>\
<<set $maneuver += 5>>\
<<set $cred -= $price_maneuver>>\
<<set $ship_level += 1>>\
<<include "Info">>\
<<redo>>\
<<replace "#m1">>Maneuvering thrusters upgraded.<</replace>>\
<</link>> \
<</if>>\
<<if $cred gte $price_boost and $boost < 30>>\
<<link '[Upgrade shield generators ($price_boost cr)]'>>\
<<set $boost += 5>>\
<<set $cred -= $price_boost>>\
<<set $ship_level += 1>>\
<<include "Info">>\
<<redo>>\
<<replace "#m1">>Shield generators upgraded.<</replace>>\
<</link>> \
<</if>>\
<<if $droid is 1>>\
<<if $cred gte $price_repair and $repair < 30>>\
<<link '[Upgrade droid repairing protocols ($price_repair cr)]'>>\
<<set $repair += 5>>\
<<set $cred -= $price_repair>>\
<<set $ship_level += 1>>\
<<include "Info">>\
<<redo>>\
<<replace "#m1">>Droid protocols upgraded.<</replace>>\
<</link>> \
<</if>>\
<</if>>\
<<if $hull lt 100 and $cred gte 200>>\
<<link "[Repair hull (200 cr)]">>\
<<set $hull to 100>>\
<<set $cred -= 200>>\
<<include "Info">>\
<<redo>>\
<<replace "#m1">>Hull fully repaired.<</replace>>\
<</link>> \
<</if>>\
<<if $ship_shield lt 100 and $cred gte 100>>\
<<link "[Boost shield (100 cr)]">>\
<<set $ship_shield to 100>>\
<<set $cred -= 100>>\
<<include "Info">>\
<<redo>>\
<<replace "#m1">>Deflector shield fully boosted.<</replace>>\
<</link>> \
<</if>>\
<</do>>\
<</dialog>>\
<</link>> \
<<link "[Medical Bay]">>\
<<if $class isnot "robot">>\
<<if $hp is $maxhp>>\
<<replace "#look">>You are already at full health.<</replace>>\
<<else>>\
<<dialog 'Medical Bay'>>\
The station's automated medical bay can restore you to full health for $price250 credits.
Current health: $hp/$maxhp
Credits: $cred
<<if $cred gte $price250>>\
<<link "[Confirm treatment]">>\
<<set $hp to $maxhp>><<set $cred -= $price250>>\
<<replace "#look">>You receive advanced medical treatment and are restored to full health.<</replace>>\
<<adv_time 30 "min">>\
<<dialogclose>>\
<</link>> \
<<else>>\
You cannot afford the medical treatment.\
<</if>>\
<</dialog>>\
<</if>>\
<<else>>\
<<replace "#look">>Medical bay does not treat robots.<</replace>>\
<</if>>\
<</link>> \
<<link "[Bounty Board]">>\
<<dialog 'Bounty Board'>>\
The bounty board displays various wanted criminals across the galaxy. There is a reward for eliminating them.
<span id="m1">Available bounties:</span>
<<if !$task.includes("Eliminate enemy ship")>>\
<<if $unvisited.length gt 0>>\
<<set _bounty_planet to $unvisited.pluck()>>\
<<else>>\
<<set _bounty_planet to $planet_list.random()>>\
<</if>>\
<<set _bounty_reward to random(3000, 6000)>>\
<<set _bounty_xp to 500 + (250 * $ship_level)>>\
<<set _bounty_dist to random(3,6)>>\
<<link '[Eliminate enemy ship at _bounty_planet (_bounty_reward cr | dist. _bounty_dist)]'>>
<<set $task_list["Eliminate enemy ship"] to {
description: "Destroy a pirate ship. The ship is heavily armed and dangerous.",
planet: _bounty_planet,
location: "Orbit of " + _bounty_planet,
xp: _bounty_xp,
cr: _bounty_reward,
target_x: "",
target_y: ""
}>>\
<<add_task "Eliminate enemy ship" _bounty_dist>>\
<<dialogclose>>\
<<replace "#look">>You accept the bounty to eliminate an enemy ship at _bounty_planet.<</replace>>\
<</link>> \
<<else>>\
You already have an active bounty mission.
<</if>>\
<</dialog>>\
<</link>> \
<<if $planet is $broker_planet and $task.includes("Find information broker")>>
<<link "[Information Broker]">>\
<<talk_broker>>\
<</link>> \
<</if>>\
<<link "[Recreation Deck]">>\
<<dialog 'Recreation Deck'>>\
The recreation deck offers various games and entertainment for weary travelers.
<<link "[Arm-wrestling]">><<Arm-wrestling>><</link>> \
<<link "[Darts]">><<Darts>><</link>> \
<<link "[Checkers]">><<Checkers>><</link>> \
<</dialog>>\
<</link>> \
<</replace>>\
<</if>>\<<include "Info">>\
<<replace "#desc">><<desc "sports">><</replace>>\
<<if !$loc.includes("Sports space")>><<run $loc.push("Sports space")>><<append "#desc">> You add a log about the Sports space.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<set _current_sport to either("martial arts", "parkour", "acrobatics", "rock climbing", "team handball", "ultimate frisbee", "soccer", "basketball", "volleyball", "capoeira")>>\
<<link '[Watch _current_sport match]'>>\
<<set $xp += 100>>\
<<adv_time 1 "hour">>\
<<switch _current_sport>>\
<<case "martial arts">>\
<<replace "#look">>You watch a fascinating demonstration of martial arts where partners work together to perfect techniques rather than defeat each other. (+100xp)<</replace>>\
<<case "parkour">>\
<<replace "#look">>You observe skilled practitioners navigating obstacle courses with fluid grace, treating the environment as a playground rather than a barrier. (+100xp)<</replace>>\
<<case "acrobatics">>\
<<replace "#look">>A group performs breathtaking acrobatic routines that emphasize trust and cooperation, with each member supporting the others' movements. (+100xp)<</replace>>\
<<case "rock climbing">>\
<<replace "#look">>Climbers work in teams to scale artificial rock walls, focusing on safety and mutual support rather than competition. (+100xp)<</replace>>\
<<case "team handball">>\
<<replace "#look">>You watch an energetic handball match where the emphasis is on fun and participation rather than winning at all costs. (+100xp)<</replace>>\
<<case "ultimate frisbee">>\
<<replace "#look">>A spirited game of ultimate frisbee showcases the sport's emphasis on fair play and self-officiating, with no referees needed. (+100xp)<</replace>>\
<<case "soccer">>\
<<replace "#look">>A friendly soccer match where players of all skill levels participate, with frequent substitutions to ensure everyone gets to play. (+100xp)<</replace>>\
<<case "basketball">>\
<<replace "#look">>You watch a basketball game that focuses on creative plays and teamwork, with players celebrating good moves from both teams. (+100xp)<</replace>>\
<<case "volleyball">>\
<<replace "#look">>A volleyball match where the nets are lowered and rules modified to accommodate players of different heights and abilities. (+100xp)<</replace>>\
<<case "capoeira">>\
<<replace "#look">>You observe a beautiful "roda de capoeira" where martial arts, dance, and music blend together in a celebration of culture and movement. (+100xp)<</replace>>\
<</switch>>\
<<include "Sports space">>\
<</link>> \
<<link "[Train self-defense]">>\
<<if $fatigue lte 85>>\
<<dialog 'Self-Defense Training'>>\
Learn practical self-defense techniques (3 hours, chance to increase STR):
<<link "[Begin training]">>\
<<set $xp += 300>>\
<<adv_time 3 "hour">>\
<<set _roll to 20 - Math.floor($fatigue / 5)>>\
<<roll _roll 0>>\
<<if $res lte $str>>\
<<set $str += 1>>\
<<dialogclose>>\
<<replace "#look">>You train in self-defense techniques that emphasize de-escalation and protection. The physical conditioning strengthens your body. (+300xp)(+1 STR)<</replace>>\
<<else>>\
<<dialogclose>>\
<<replace "#look">>You practice self-defense techniques that focus on personal safety and conflict avoidance. The training builds confidence. (+300xp)<</replace>>\
<</if>>\
<<include "Sports space">>\
<</link>> \
<<link "[Cancel]">><<dialogclose>><</link>>\
<</dialog>>\
<<else>>\
<<replace "#look">>You're too tired for the physical demands of self-defense training right now.<</replace>>\
<</if>>\
<</link>> \
<<link "[Train agility]">>\
<<if $fatigue lte 85>>\
<<dialog 'Agility Training'>>\
Practice parkour and movement techniques (3 hours, chance to increase DEX):
<<link "[Begin training]">>\
<<set $xp += 300>>\
<<adv_time 3 "hour">>\
<<set _roll to 20 - Math.floor($fatigue / 5)>>\
<<roll _roll 0>>\
<<if $res lte $dex>>\
<<set $dex += 1>>\
<<dialogclose>>\
<<replace "#look">>You practice fluid movement techniques inspired by parkour and dance, learning to navigate obstacles with grace and efficiency. Your agility improves. (+300xp)(+1 DEX)<</replace>>\
<<else>>\
<<dialogclose>>\
<<replace "#look">>You work on coordination and movement techniques, gaining confidence in your mobility even without dramatic improvement. (+300xp)<</replace>>\
<</if>>\
<<include "Sports space">>\
<</link>> \
<<link "[Cancel]">><<dialogclose>><</link>>\
<</dialog>>\
<<else>>\
<<replace "#look">>You're too tired for the physical demands of agility training right now.<</replace>>\
<</if>>\
<</link>> \
<<link "[Participate in team sport]">>\
<<if $fatigue lte 70>>\
<<set $xp += 500>>\
<<adv_time 2 "hour">>\
<<set _team_sport to either("volleyball", "basketball", "soccer", "handball", "ultimate frisbee")>>\
<<replace "#look">>You join a friendly game of <<= _team_sport>> with community members. The focus is on fun, exercise, and building relationships rather than competition. Everyone's contribution is valued. (+500xp)<</replace>>\
<<include "Sports space">>\
<<else>>\
<<replace "#look">>You're too tired to participate in team sports right now. Rest first, then come back to join the fun.<</replace>>\
<</if>>\
<</link>> \
<<link "[Meditate and stretch]">>\
<<set $xp += 150>>\
<<adv_time 1 "hour">>\
<<replace "#look">>You join a group meditation and stretching session that combines mindfulness with gentle physical movement. The practice refreshes both body and mind. (+150xp)<</replace>>\
<<include "Sports space">>\
<</link>> \
<</replace>>\
<</if>>\<<if $autosave is true and $testing is false>>\
<<goto "Save">><<done>><<goto "Map">><</done>>\
<<set $autosave to false>>\
<<else>>\
<<include "Info">>\
<<replace "#desc">><<desc "ship">><</replace>>\
<<if $droid is 1 and $equip_charge[1] gt 0 and $ship_out is 1>>\
<<set $ship_out to 0>>\
<<append "#look">>\
<<= either(" Your droid chirps a cheerful greeting as you approach.", " The droid beeps softly and adjusts some nearby controls.", " Your droid hovers closer, its optical sensors focusing on you with curiosity.", " The droid emits a series of happy beeps, clearly pleased to see you return.", " Your mechanical companion whirs quietly, performing minor maintenance tasks.", " The droid projects a small holographic status report, then quickly dismisses it.", " Your droid extends a small appendage in what might be considered a wave.", " The droid's optical array flickers in a pattern that seems almost like blinking.", " Your droid makes soft mechanical sounds, like a contented electronic purr.", " The droid briefly activates its repair tools, then retracts them with a satisfied beep.")>>\
<</append>>\
<</if>>\
<<if $combat is 0 and $ship_combat is 0>>\
<<replace "#op">>\
<<if $space is 1 and $space_loc is "Spaceport">>\
<<link "[Spaceport]">><<include "Spaceport">><</link>> \
<</if>>\
<<if $ship lt 100>>\
<<link "[Repair]">>
<<for _item range $tool>>
<<if _item.name is "multi-tools">>
<<if $scrap gte 10 and _item.charge gt 0>>
<<set _item.charge -= 5>>
<<adv_time 30 "min">>
<<set _repair to random(1,10) + $wit + $modwit>>
<<if $droid is 1>><<set _repair += 10>><</if>>
<<set $scrap -= 10>><<set $ship += _repair>><<if $hull < 100>><<set $hull +=1>><</if>><<set $xp += 50>>
<<if $ship gt 100>><<set $ship to 100>><</if>>\
<<replace "#look">>Ship repair completed successfully. Ship now <<= $ship>>% functional. (+50xp)<</replace>><<replace "#desc">><<desc "ship">><</replace>>
<<if $ship gte 20 and !$upgrades.includes($up_list[0])>>
<<run $upgrades.push($up_list[0])>>
<<append "#look">> The <<= $up_list[0]>> is now available.<</append>>
<</if>>
<<if $ship gte 40 and !$upgrades.includes($up_list[1])>>
<<run $upgrades.push($up_list[1])>>
<<append "#look">> The <<= $up_list[1]>> is now available.<</append>>
<</if>>
<<if $ship gte 60 and !$upgrades.includes($up_list[2])>>
<<run $upgrades.push($up_list[2])>>
<<append "#look">> The <<= $up_list[2]>> is now available.<</append>>
<</if>>
<<if $ship gte 80 and !$upgrades.includes($up_list[3])>>
<<run $upgrades.push($up_list[3])>>
<<append "#look">> The <<= $up_list[3]>> is now available.<</append>>
<</if>>
<<if $ship gte 100 and !$upgrades.includes($up_list[4])>>
<<run $upgrades.push($up_list[4])>>
<<append "#look">> The <<= $up_list[4]>> is now available.<</append>>
<</if>>
<<include "Start">>
<<elseif $scrap lt 10>>
<<replace "#look">>You need 10 scrap to attempt the repair. Find it out there.<</replace>>
<<elseif _item.charge lte 0>>
<<replace "#look">>Your multi-tools need charge to perform the repair.<</replace>>
<</if>>\
<<break>>\
<<else>>
<<replace "#look">>You need the multi-tools to repair the ship. Get it first.<</replace>>
<</if>>
<</for>>
<<if $tool.length is 0>>
<<replace "#look">>You need the multi-tools to repair the ship. Get it first.<</replace>>
<</if>>
<<if $ship is 100>><</if>>\
<<include "Info">>\
<</link>> \
<<else>>\
<<link "[Launch]">>\
<<travel>>\
<</link>> \
<</if>>\
<<link "[Storage]">><<storage>><</link>> \
<<link "[Rest]">><<rest>><</link>> \
<<if $space is 0>>\
<<link "[Teleporter]">><<teleporter>><</link>> \
<</if>>\
<<if $upgrades.includes("workbench")>>\
<<link "[Workbench]">><<workbench>><</link>> \
<</if>>\
<<if $upgrades.includes("cell recharger")>>\
<<link "[Recharger]">><<recharger>><</link>> \
<</if>>\
<<if $upgrades.includes("biolab")>>\
<<link "[Biolab]">><<biolab>><</link>> \
<</if>>\
<<if $upgrades.includes("fusion recycler")>>\
<<link "[Recycler]">><<recycler>><</link>> \
<</if>>\
<<if $upgrades.includes("snack processor")>>\
<<link "[Processor]">><<processor>><</link>> \
<</if>>\
<<do>>\
<<if $ship is 100 and $hull lt 100 and $scrap gte 10>>\
<<link "[Repair hull (10 scrap)]">>\
<<set $hull += 10>>\
<<if $hull gt 100>><<set $hull to 100>><</if>>\
<<set $scrap -= 10>>\
<<adv_time 10 "min">>\
<<redo>>\
<<replace "#look">>Hull partially repaired. Hull: $hull%.<</replace>>\
<</link>> \
<</if>>\
<<if $ship is 100 and $ship_shield lt 100 and $fuel gte 1>>\
<<link "[Boost shield (1 fuel)]">>\
<<set $ship_shield += 20>>\
<<if $ship_shield gt 100>><<set $ship_shield to 100>><</if>>\
<<set $fuel -= 1>>\
<<adv_time 2 "min">>\
<<redo>>\
<<replace "#look">>Deflector shield partially boosted. Shield: $ship_shield%.<</replace>>\
<</link>> \
<</if>>\
<</do>>\
<</replace>>\
<</if>>\
<</if>>\<<replace "#stats">>\
<<if $stealth gte 1>>@@color:gray;<<= $name + " Lvl "+$level>>@@<<else>><<= $name + " Lvl "+$level>><</if>> \
<<if $xp lt $next>>XP: <<= $xp>><<else>>@@color:limegreen;XP: <<= $xp>>@@<</if>> \
<<if $xp gte $next or $points gt 0>><<link "[+]">><<levelup>><</link>><</if>>
<<if $modstr is 0>>STR: <<= $str + $modstr>>\
<<elseif $modstr gt 0>>@@color:limegreen;STR: <<= $str + $modstr>>@@<<elseif $modstr lt 0>>@@color:red;STR: <<= $str + $modstr>>@@<</if>> \
<<if $moddex is 0>>DEX: <<= $dex + $moddex>>\
<<elseif $moddex gt 0>>@@color:limegreen;DEX: <<= $dex + $moddex>>@@<<elseif $moddex lt 0>>@@color:red;DEX: <<= $dex + $moddex>>@@<</if>> \
<<if $modwit is 0>>WIT: <<= $wit + $modwit>>\
<<elseif $modwit gt 0>>@@color:limegreen;WIT: <<= $wit + $modwit>>@@<<elseif $modwit lt 0>>@@color:red;WIT: <<= $wit + $modwit>>@@<</if>> \
<<if $hp gt 5>>HP: <<= $hp + "/" + $maxhp>><<else>>@@color:red;HP: <<= $hp + "/" + $maxhp>>@@<</if>> \
<<if $shield gte 1>>@@color:cyan;[$shield]@@<</if>>
Creds: <<= $cred>> Scrap: <<= $scrap>> Fuel: <<= $fuel>>
<<link "[Stats]">><<include "Fstats">><</link>> \
<<link "[Datapad]">><<datapad>><</link>> \
<<link "[Inventory]">><<inventory>><</link>> \
<<link "[Menu]">><<menu>><</link>>\
<</replace>>\<<set $testing to false>>
<<run UIBar.destroy()>>
<<cacheaudio "rage" "audio/bullet.ogg" "audio/bullet.mp3">>
<<cacheaudio "battle" "audio/enemy.ogg" "audio/enemy.mp3">>
<<cacheaudio "ending" "audio/fire.ogg" "audio/fire.mp3">>
<<set $up_list to
["workbench","cell recharger","biolab","fusion recycler","snack processor"]>>
<<set $initial_list to
["multi-tools","chemical analyzer","medkit","personal scanner","hacking kit"]>>
<<set $advanced_list to
["laser cutter","hologram projector","omni-torch","force field generator","stealth module"]>>
<<set $tool_list to
["multi-tools","chemical analyzer","medkit","personal scanner","hacking kit","laser cutter","hologram projector","omni-torch","force field generator","stealth module"]>>
<<set $tool_dif to
[6,7,8,9,10,11,12,13,14,15]>>
<<set $fashion_head to
["cowboy hat", "colorful hair", "mysterious hood", "mohican", "gas mask", "eccentric make-up", "augmenting monocle", "cool helmet", "exotic earrings", "piercings", "mustache", "long beard", "ponytail", "mullet", "long braids", "face bandages", "shaved head", "sunglasses"]>>
<<set $fashion_body to
["jumpsuit", "tattoos", "tight corset", "padded waistcoat", "multipurpose belt", "trenchcoat", "shining necklace", "military uniform", "jackboots", "blinking sneakers", "knee pads", "fishnets", "body straps", "fiber tunic"]>>
<<set $feat_head to
["multiple eyes","antlers","horns","exposed fangs","multi-colored eyes","visible brain","hard beak","pointy ears","giant mouth","long neck","huge eyes","snout"]>>\
<<set $feat_body to
["scaly wings","colorful skin","tentacles","four arms","sharp claws","long tail","long limbs","elastic body","hard scales","thick fur","huge body"]>>\
<<set $robot_parts_head to
["antenna array", "rotating sensor", "holographic visor", "camera lens eye", "radar dish", "metal skull plating", "servo jaw", "voice modulator grille", "infrared scanner", "drone docking port", "fiber optic hair", "gas vent exhaust"]>>
<<set $robot_parts_body to
["mechanical arms", "servo legs", "piston spine", "chest reactor core", "plasma conduit pipes", "retractable grappling hook", "modular armor plates", "coolant tubes", "energy shield emitter", "cable harness", "jetpack thrusters", "gear-driven joints"]>>
<<set $body_mod to
["colorful skin","bifurcated tongue","sharp claws","long tail","scales","fur","gills","horns","fangs","multi-colored eyes","holographic tattoos","pointy ears"]>>
<<set $misfortune to
["incriminated","enslaved","cloned","sabotaged","robbed","exiled","imprisoned"]>>
<<set $misfortune_phrase to [
"falsely incriminated in a high-profile political scandal. After years of legal battles, you ",
"enslaved under a corporate labor contract with no way out. After a daring escape, you ",
"cloned by a rogue syndicate. After a harrowing escape, you ",
"sabotaged by a rival during a important assignment. After a narrow escape, you ",
"robbed of all possessions in a border-zone ambush. After that, you ",
"exiled for engaging in ideological subversion. After a long journey, you ",
"imprisoned without trial by a privatized security force. After escaping during a riot, you "
]>>
<<set $twist_list to [
"won a prize and used the credits to buy a ship. Now, you're searching for a place to live out your true passion.",
"hacked a corporation’s payroll system and made just enough to buy a ship. Now, you're chasing a distant star where you can finally pursue what you love.",
"used your savings to buy a ship, and perhaps, a path toward what truly drives you.",
"sold your home to buy a ship and set a course toward your deepest passion.",
"inherited just enough to buy a ship and now you're heading toward a place where you can start over, doing what you were meant to do.",
"used the donations from sympathizers to pay for the ship. Now, you drift between systems, searching for a home where your passion can thrive.",
"leaked classified documents and sold the data for enough to buy a ship, your refuge and compass, guiding you toward your dream."
]>>
<<set $professions_list to
["ship engineer","droid technician","fuel refiner","mining engineer","robotics engineer","systems engineer","space mechanic","reactor specialist","weapons engineer","life support tech"]>>
<<set $knowledge to ["theater","literature","history","music","painting","sculpting","anthropology","biology","botany","archaeology","psychology","chemistry","fashion","cinema","religion","politics","architecture","journalism","philosophy","mathematics","teaching","programming","sports","dancing","cooking","medicine"]>>
<<set $all_knowledge to ["theater","literature","history","music","painting","sculpting","anthropology","biology","botany","archaeology","psychology","chemistry","fashion","cinema","religion","politics","architecture","journalism","philosophy","mathematics","teaching","engineering","programming","sports","dancing","cooking","medicine","permaculture","rewilding","indigenous knowledge","ecology","bioregionalism","mycology","wildcrafting","foraging","bioconstruction","primitive skills","feminism","oral tradition","water protection","anti-capitalism","queer theory","spirituality","animism","systems thinking","complexity theory","emergence","biomimicry","design"]>>
<<set $kind to ["organic","sweet","creamy","crunchy","crispy"]>>
<<set $food to ["fruit", "potato", "carrot", "onion", "garlic", "tomato", "pumpkin", "chocolate", "cheese", "meat", "egg"]>>
<<set $form to ["pie","cake","pizza","cookie","chips","sandwich","wrap","pastry","sushi","burrito"]>>
<<set $food_vegan to ["fruit", "potato", "carrot", "onion", "garlic", "tomato", "pumpkin", "chocolate"]>>
<<set $human_name to
["Ashley", "Avery", "Blake", "Brett", "Chris", "Connor", "Darcy", "Drew", "Elliott", "Emery", "Finley", "Harley", "Hunter", "Jesse", "Jordan", "Kelly", "Lane", "Logan", "Morgan", "Parker", "Quinn", "Reese", "Riley", "Robin", "Sawyer", "Skyler", "Taylor", "Terry", "Tyler", "Val", "Wren", "Alex", "Bailey", "Casey", "Charlie", "Cody", "Dakota", "Drew", "Evan", "Francis", "Gabriel", "Hayden", "Jamie", "Jordan", "Kyle", "Mackenzie", "Morgan", "Noah", "Peyton", "Riley", "River", "Sam", "Taylor", "Zephyr", "Adair", "Adrian", "Alexis", "Avery", "Blair", "Cameron", "Cassidy", "Devon", "Ezra", "Hadley", "Hudson", "Jaden", "Kai", "Kendall", "Micah", "Phoenix", "Remy", "Rowan", "Sage", "Sawyer", "Shay", "Skye", "Spencer", "Tatum", "Wren", "Wyatt"]>>
<<set $human_surname to
["Homart", "Hardson", "Soner", "Keray", "Ramart", "Russon", "Barnes", "Coxand", "Brighte", "Breenes", "Whezal", "Smire", "Wardson", "Brichy", "Johnson", "Pete", "Jenking", "Walker", "Rodray", "Cotte", "Mitchy", "Morgers", "Reson", "Moora", "Collee", "Rice", "Rownels", "Coopet", "Mithy", "González", "López", "Rodríguez", "Gómez", "Martínez", "Sánchez", "Pérez", "Fernández", "García", "Hernández", "Gutiérrez", "Ramírez", "Chen", "Li", "Wang", "Zhang", "Liu", "Yang", "Wu", "Xu", "Zhou", "Zhao", "Sun", "Guo", "Lee", "Kim", "Park", "Choi", "Nguyen", "Tran", "Le", "Pham", "Do", "Singh", "Kumar", "Sharma", "Patel", "Ali", "Khan"]>>
<<set $alien_name to
["Drak", "Darg", "Flag", "Bark", "Jaarg", "Vaarg", "Jerk", "Veerg", "Berk", "Zerk", "Flek", "Brek", "Vorg", "Mork", "Zoorg", "Gloog", "Dork", "Flok", "Brag", "Jark", "Faarg", "Zaarg", "Rark", "Mark", "Merk", "Dreeg", "Breeg", "Vrek", "Drek", "Berk", "Boorg", "Fork", "Doorg", "Foorg", "Gork", "Brok", "Lark", "Blorg", "Snik", "Grik", "Porg", "Flork", "Stark", "Quark", "Snark", "Grink", "Plorg"]>>
<<set $alien_surname to
["Ajil", "Anid", "Anthan", "Traithi", "Bane", "Kifa", "Bani", "B’Bari", "Byorma", "H’Icron", "Ch’Rathi", "C’Trani", "Deani", "F’Gliboe", "H’Shooke", "I’Byni", "I’Gnasu", "J’Taga", "Kale", "Vorcia", "Vonga", "Keno", "K’Herle", "Loni", "Mani", "Cilpha", "M’Hiloo", "Morthra", "M’Teda", "O’Dongi", "Hani", "V’Morle", "Graka", "Tanndi", "T’Krypta", "Trahva", "Vadi", "Veni", "Wooki", "Zabri", "Ch’Coloo", "Z’Nacia", "Z’Sheri", "Gorlon", "Krishka", "Vorlon", "Xandor", "Zypher"]>>
<<set $robot_label to
["Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Theta","Kappa","Lambda","Pi","Sigma","Omega","X","T","D","R","C","P","S","B","H","V"]>>
<<set $planet_list to ["Zi Xiu", "Vespae", "Jordani", "Serpentis", "Shatabhisha", "Antini", "Achelois", "Adin", "Aethalides", "Aman", "Nini", "Bani","Qwoke", "Ceani", "Chitemia", "Clio", "Coithea", "Colvovis", "Coly", "Cypso", "Dori","Kily", "Elysium", "Ferra", "Gilgamesh", "Grippe", "Harmonia", "Hinzides", "Huang-Di", "K’Feri", "Krigi", "Meskhent", "Muuha", "New Babylon", "New Madrid", "New Phaeton", "New Russia", "New Venus", "Nigitov", "Phoraturn", "S’Roni", "Svyatogor", "Th’Byni", "Thykra", "Ticia", "Tl’Tazo", "V’Horta", "Vicrilia", "Zabra", "Zacha", "Tracki", "Zoucury", "Orionis", "Celestria", "Luminara", "Aurora", "Nebulon", "Stellaris", "Zephyria","Xylos", "Yggdrasil", "Quetzal", "Ophir", "Kaelar", "Valerion", "Prydwen", "Icarion", "Solisara", "Umbrion", "Novastra", "Cryon", "Pyralis", "Aethel", "Borealis", "Zelphyr", "Cassiopia", "Draconis Minor", "Kryptos", "Pandemon", "Elysia", "Acheron", "Shamballa", "Hyperborea", "Lyra", "Cygnus Beta", "Ragnarok", "Shangri-La", "Arcadia Prime", "Solarion", "Chronos", "Promethea", "Helios Reach", "Nyx", "Calypso", "Avalon", "Iridis", "Vespera", "Polaria", "Nexus Prime", "Astralium", "Corvus", "Solitude", "Edenia", "Mythos", "Terminus", "Zanaris", "Erebus", "Serenity", "Korriban", "Vortis", "Xanadu", "Lacerta", "Nocturne", "Praxis", "Sangreal", "Tartarus", "Veridia", "Zenith", "Aurigon", "Baelthor", "Chymera", "Dathis", "Eryndor", "Fomoria", "Gaelith", "Hecantos", "Ilythia", "Joruun", "Kalypho", "Lythera", "Myrradon", "Nexora", "Ozyth", "Phoros", "Quirelia", "Rhaznor", "Sylvaris", "Tzaphon", "Umbrya", "Veythos", "Wraen", "Xyphos", "Ylliria", "Zorath", "Avalith", "Brontes", "Cyrron", "Delphynia", "Eosphoros", "Faydris", "Ghantor", "Halcyra", "Ixionis", "Jendara", "Krovia", "Lumith", "Maelion", "Nythra", "Orryphos", "Pyrrhene", "Quorix", "Rilandra", "Synora", "Thalyss", "Urganth", "Velithra", "Wyros", "Xanthea", "Ygrael", "Zhyrr"]>>
<<set $planet_part1 to [
"The surface stretches in endless dunes of rust-red sand.",
"Cracked stone plains form a jagged, ancient crust.",
"Vast salt flats shimmer beneath a thin atmosphere.",
"Fields of ash roll across low hills and broken ridges.",
"Dense fog blankets the frozen terrain in shifting waves.",
"Glass-like rock formations rise from the windswept valley.",
"Black volcanic plains give way to craters and sinkholes.",
"Smooth metallic soil reflects dim starlight.",
"Shallow basins collect stagnant, oily puddles.",
"Icy ridgelines carve through a barren desert of frost."
]>>
<<set $planet_part2 to [
"The sky glows green with distant auroras.",
"Faint lightning pulses behind low, unmoving clouds.",
"A dull orange sun hangs low above the horizon.",
"Two moons hover silently over the ridge.",
"Pale stars blink through a haze of dust.",
"Wind shapes long ribbons of cloud across the upper air.",
"The atmosphere swirls in slow, colorless currents.",
"A ringed gas giant looms large in the sky.",
"A dim twilight covers the land, regardless of time.",
"Solar flares occasionally streak the upper atmosphere."
]>>
<<set $planet_part3 to [
"Sparse needle-like plants sway without sound.",
"The ground is cracked and dry, broken by veins of blue crystal.",
"Pools of thick, metallic liquid gather in natural basins.",
"Soft moss covers jagged rocks with a dull gray fuzz.",
"No vegetation grows, only dust and brittle stones remain.",
"Shattered ruins lie half-buried in sediment.",
"Sharp spires of bone-colored stone rise like frozen waves.",
"The soil crumbles underfoot, layered with black ash.",
"Fungal domes pulse gently, releasing fine spores into the air.",
"Thin ice sheets fracture with each step, revealing dark water below."
]>>
<<set $ship_name_list to [ "Wayfarer", "Reliable", "Coyote", "Vigilant", "Nomad", "Wanderer", "Raptor", "Tempest", "Drifter", "Pioneer", "Valkyrie", "Outrider", "Corsair", "Emissary", "Specter", "Gambit", "Comet", "Remnant", "Banshee", "Rogue", "Phantom", "Marauder", "Whisper", "Odyssey", "Echo", "Bastion", "Shrike", "Revenant", "Howler", "Scythe", "Seraph", "Harbinger", "Dauntless", "Falcon", "Torrent", "Oblivion", "Vortex", "Spire", "Crux", "Mirage", "Warden", "Reckoner", "Cradle", "Zephyr", "Aegis", "Penance", "Lancer", "Tracer", "Nocturne", "Threnody" ]>>
<<set $ship_part1 to [
"A hull painted in fading crimson streaks and chipped white panels.",
"An uneven patchwork of mismatched alloys welded at odd angles.",
"Smooth matte-black plating broken by scattered silver vents.",
"Polished bronze panels reflecting distant starlight.",
"A battered shell coated in flaking blue enamel.",
"Dull gray metal scarred with old impact craters.",
"Hull panels in uneven shades of green, some scorched black.",
"Chrome surfaces dulled by centuries of micro-meteorite strikes.",
"Curved outer plating with streaks of rust along the seams.",
"A skeleton-like frame of exposed beams and ribbed plating."
]>>
<<set $ship_part2 to [
"Twin engine nacelles jut out from either side like wings.",
"A squat, boxy rear section bristling with exhaust ports.",
"A single elongated thruster forming the ship’s spine.",
"Clustered stabilizer fins splay out from the stern.",
"A rotating midsection encased in transparent panels.",
"Broad, flat wings taper sharply toward the nose.",
"A narrow aft with asymmetrical engine housings.",
"Bulky rear compartments wrapped around a core reactor casing.",
"Three thruster cones mounted in a triangular array.",
"Long cylindrical engines strapped to the outer frame."
]>>
<<set $ship_part3 to [
"The cockpit canopy glints like smoked glass.",
"A narrow viewing slit runs along the forward hull.",
"An open-frame bridge shielded by segmented armor.",
"Circular windows dot the forward section like portholes.",
"A bubble canopy sits above the nose, tinted gold.",
"The bridge juts forward on spindly struts.",
"A cluster of sensor domes crowns the top deck.",
"A panoramic window arcs across the command deck.",
"The nose ends in a sharp, needle-like prow.",
"A blunt, reinforced prow marked with old collision scars."
]>>
<<set $log1_list to [
"I picked up the $ship_name for next to nothing from a junk dealer orbiting $planet_o. Hull looked tired, engines older, but she moved.",
"Found the $ship_name in a backlot dock above $planet_o. Price was suspiciously low. I didn’t ask why.",
"Bought the $ship_name from a drifting trader near $planet_o. She rattled when idle, but I needed a ride."
]>>
<<set $log2_list to [
"Trying to shortcut through the $planet Belt, I ran into a storm of debris. Shields folded, hull tore, alarms screamed. I aimed for the nearest habitable dot before blackout.",
"Cutting through the $planet Belt seemed smart,until wreckage from some dead cruiser punched through the hull. I forced her toward the only safe ping I saw.",
"I hit the $planet Belt and the Belt hit back. Fast metal, ruptured shields, and a crash course with the nearest breathable world."
]>>
<<set $log3_list to [
"Life support works, barely. Salvaged my multitool, datapad, and a few energy cells. There’s a starport in orbit, if I can get the $ship_name flying, I might reach it.",
"Ship’s a wreck, but I’m breathing. Got a multitool, datapad, and some cells. A starport circles overhead; first, I need to make her spaceworthy again.",
"Systems dead, hull cracked, but not beaten. With some scavenging I can repair her. Then, maybe, I reach that orbital starport."
]>>
<<set $corporation_list to [
"NEURONET Consortium",
"XenoHarvest Unlimited",
"OmniCore Logistics",
"HoloLife Solutions",
"SYNTHORP Industries"
]>>
<<set $corporations to [
{
name: "NEURONET Consortium",
desc: "The largest provider of neural implants and corporate mind-control networks. Accused of manipulating the behavior of entire populations via mandatory update protocols.",
rep: 10
},
{
name: "XenoHarvest Unlimited",
desc: "Exploits alien biodiversity for pharmaceutical, genetic, and military applications. Known for devastating ecosystems and patenting indigenous microorganisms.",
rep: 10
},
{
name: "OmniCore Logistics",
desc: "Monopoly on interplanetary transport of cargo, migrants, and prisoners. Its armored freighters traverse the galaxy's most dangerous routes under contracts with multiple regimes.",
rep: 10
},
{
name: "HoloLife Solutions",
desc: "Specialists in virtual realities for entertainment, education, religion, and social control. They create synthetic utopias to keep the population distracted from misery.",
rep: 10
},
{
name: "SYNTHORP Industries",
desc: "Manufactures synthetic bodies, semi-autonomous artificial intelligences, and disposable workers. Operates vast industrial complexes without labor regulation.",
rep: 10
}
]>>
<<set $tool_store_names to [
"SynthTech Depot",
"OmniCore Outfitter",
"Stellar Tools",
"Junkyard Junction",
"HoloLife Hardware",
"SYNTHORP Supply",
"AstroParts Exchange",
"Galactic Gearworks",
"Black Market Mods",
"Frontier Fix-It",
"Redline Robotics",
"Cosmo Components",
"Scrap & Circuit",
"The Bolt Bin",
"NanoWrench",
"The Gear Locker",
"Zero-G Tools",
"The Tinker’s Vault",
"Starport Surplus",
"The Spare Spanner"
]>>
<<set $boxing_phrases = [
"Sparks fly as metal fists collide.",
"One fighter slams into the arena floor with a heavy crash.",
"A quick jab rattles the opponent’s head assembly.",
"Servos whine under the strain of a blocked punch.",
"Hydraulic pistons hiss as a powerful uppercut lands.",
"The fighters circle, scanning for weaknesses.",
"A sudden lunge catches the opponent off balance.",
"Armor plates dent under a crushing blow.",
"A flurry of strikes forces a retreat.",
"The crowd roars as a clean hit connects.",
"One bot stumbles, recalibrating its balance.",
"A heavy swing misses, smashing into the floor plating.",
"Warning lights flicker on both fighters.",
"A spinning backfist glances off reinforced plating.",
"Foot servos grip the metal floor for leverage.",
"A headbutt sends a burst of sparks into the air.",
"One bot’s arm actuators stutter mid-punch.",
"A precise jab dents a chest panel.",
"The fighters lock up, pistons pushing in a test of strength.",
"A sweeping hook forces the opponent to stumble sideways.",
"A knee strike clangs loudly against armor plating.",
"One fighter’s optics flicker as the hit lands.",
"A mist of coolant sprays into the air after a blow.",
"The bots circle slowly, scanning each other.",
"A sudden burst of speed catches the opponent off guard.",
"A low blow smashes into a joint assembly.",
"One bot’s shoulder plating cracks with a metallic snap.",
"The opponent recovers and counters with a rapid combo.",
"A massive punch drives the other bot into the corner.",
"The strike echoes through the stadium."
]>>
<<set $race_phrase = [
"Rotors scream as the drones surge ahead.",
"The air shimmers with the heat of overworked engines.",
"LED lights streak across the night sky.",
"A sharp bank sends one drone skimming past another.",
"The steady hum of propellers fills the arena.",
"A sudden burst of thrust sends a drone forward.",
"The pack twists through the air in tight formation.",
"Flashes of color ripple as drones roll and spin.",
"The lead drone dives, chasing a tighter line.",
"A risky barrel roll earns a gasp from the crowd.",
"The swarm hums like a living machine.",
"A flick of control sends a drone weaving between rivals.",
"Bright trails mark their dizzying speed.",
"Air currents buffet the racers in the open stretch.",
"The gap between the leaders narrows.",
"A sudden climb shakes up the formation.",
"Drones buzz past the viewing platform.",
"A tight corkscrew maneuver shocks the spectators.",
"Precision flying keeps them inches apart.",
"Every turn is a test of reflex and nerve.",
"A slip in altitude almost costs a place.",
"The sky is alive with motion and light.",
"Engines whine as they push toward maximum speed.",
"The course twists like a floating labyrinth.",
"The leader dives low, trying to shake pursuit.",
"Two drones clash midair before regaining control.",
"Wind shear catches a racer off guard.",
"The final stretch draws them into a straight sprint.",
"Crowds gasp as a drone cuts dangerously close to the pylons.",
"Every second in the air changes the race."
]>>
<<set $creature_names_list = [
"Shardbeak",
"Gloomstalker",
"Mirefang",
"Skyrattle",
"Ironhide Wurm",
"Ashcrawler",
"Luminox",
"Spinehowler",
"Gravemoth",
"Crimson Prowler",
"Duskfang",
"Hollow Carapace",
"Stormclaw",
"Ember Serpent",
"Void Shrike",
"Glassjaw Lurker",
"Tanglehoof",
"Blightbeetle",
"Thunder Husk",
"Warp Eel",
"Frostmane",
"Echo Wyrmling",
"Scorchspine",
"Rotmaw",
"Basilisk Drone",
"Spectral Antler",
"Terrorclaw",
"Moonfang Leaper",
"Rustwing",
"Aether Hound"
]>>
<<set $creature_desc_list = [
"A bird-like creature with razor-sharp beak and metallic feathers.",
"A shadowy predator that stalks the ruins, blending into the darkness.",
"A reptilian beast with a venomous bite, lurking in the swamps.",
"A small, agile creature that emits a rattling sound when threatened.",
"A massive worm with an armored hide, burrowing through the earth.",
"An insectoid crawler that leaves trails of ash in its wake.",
"A glowing creature that feeds on ambient energy, illuminating its surroundings.",
"A wolf-like beast with spines along its back, known for its ferocity.",
"A moth-like creature that thrives in graveyards, drawn to decay.",
"A sleek feline predator with crimson fur and piercing eyes.",
"A ghostly wolf with a haunting howl, feared by travelers at night.",
"An insect with a hollow shell that resonates eerily when disturbed.",
"A clawed creature that rides the storms, crackling with electricity.",
"A serpent wreathed in flames, leaving scorched earth in its path.",
"A bird of prey that warps space around it, making it hard to track.",
"An aquatic creature with a glassy carapace, reflecting light in strange patterns.",
"A deer-like creature with vines growing from its antlers, blending into forests.",
"An insect that spreads blight wherever it crawls, corrupting the land.",
"A hulking beetle with a thunderous shell, shaking the ground as it moves.",
"An eel-like creature that distorts reality around it, making navigation difficult.",
"A wolf with icy fur and frost-covered fangs, hunting in frozen wastes.",
"A small dragon-like creature that echoes sounds around it, confusing predators.",
"A spiny lizard that ignites when threatened, leaving trails of fire behind.",
"A decaying beast with a putrid maw, feeding on carrion and waste.",
"An ancient robotic basilisk with glowing eyes and metallic scales.",
"A spectral deer whose antlers glow faintly in the dark, guiding lost souls.",
"A clawed predator that strikes fear into the hearts of those who see it.",
"A large feline that leaps great distances under the moonlight, hunting silently.",
"An insect with rust-colored wings that can corrode metal on contact.",
"A hound that can manipulate aether, phasing in and out of reality."
]>>
<<set $map to new Array(11).fill(null).map(() => new Array(11).fill(0))>>
<<set $wmap to new Array(100).fill(null).map(() => new Array(100).fill(0))>>
<<set $omap to new Array(100).fill(null).map(() => new Array(100).fill(0))>>
<<on 'keydown'>>
<<dialogclose>>
<<script>>$('a.link-internal:focus').blur(); document.body.focus();<</script>>
<</on>>
<<on 'keyup'>>
<<which 38 or 87>> /% up or w %/
<<if tags().includes('map')>><<move "n">><</if>>\
<<which 39 or 68>> /% left or d %/
<<if tags().includes('map')>><<move "w">><</if>>\
<<which 40 or 83>> /% down or s %/
<<if tags().includes('map')>><<move "s">><</if>>\
<<which 37 or 65>> /% right or a %/
<<if tags().includes('map')>><<move "e">><</if>>\
<<which 32 or 101>> /% 5 or space %/
<<if tags().includes('map')>><<adv_time 5 "min">>\
<<if $fatigue > 70 and $fatigue < 90>>\
<<if random(1,2) is 1>><<set $fatigue -= 1>><</if>>\
<</if>>\
<<include "Update">><</if>>\
<<which 67 or 96>> /% c or 0 %/
<<if tags().includes('map')>><<include "Fstats">><</if>>\
<<which 69 or 107>> /% e or + %/
<<if tags().includes('map')>><<inventory>><</if>>\
<<which 70 or 194>> /% f or . %/
<<if tags().includes('map')>><<snacks>><</if>>\
<<which 84 or 189>> /% t or - %/
<<if tags().includes('map')>><<tasks>><</if>>\
<<if passage() is "FASC">><<goto "Test">><</if>>\
<<which 81 or 106>> /% q or * %/
<<if tags().includes('map')>><<datapad>><</if>>\
<<which 77 or 13>> /% m or enter %/
<<if tags().includes('map')>><<menu>><</if>>\
<<which 27>> /% esc %/
<<run Fullscreen.exit();>>\
<</on>><<widget "talk_to_dade3">>
<<dialog 'Dade - Final Preparation'>>\
<<do>>\
<<if $conv_dade3 is undefined>><<set $conv_dade3 to 1>><</if>>\
<<switch $conv_dade3>>\
<<case 1>>\
Dade is frantically working on multiple screens, data streaming rapidly. "The fleet's ETA is 98 minutes. They're not messing around - this is an extinction-level force."
"The shutdown codes are propagating, but it'll take hours to reach all systems. We need to buy time."
<<link "[What's their weakness?]">><<set $conv_dade3 to 2>><<redo>><</link>>
<<link "[Can you hack their systems?]">><<set $conv_dade3 to 3>><<redo>><</link>>
<<case 2>>
"Their coordination relies on tight network synchronization," Dade says without looking up from his screens. "If we can disrupt their comms, they'll fight as individuals, not a unified force."
"I'm working on a jamming algorithm, but I need cover to deploy it."
<<link "[I'll provide distraction]">><<set $conv_dade3 to 4>><<redo>><</link>>
<<link "[How long will jamming last?]">><<set $conv_dade3 to 5>><<redo>><</link>>
<<case 3>>
"Already on it," Dade replies, fingers flying across the keyboard. "But their firewalls are military-grade. I've found a backdoor, but it's risky."
"If I push too hard, they'll trace it back. I need to be careful."
<<link "[Do what you can]">><<set $conv_dade3 to 6>><<redo>><</link>>
<<case 4>>
"Good. Create enough chaos for me to slip the virus into their command network," Dade says. "Just don't get yourself killed out there."
"Remember what we're fighting for."
<<link "[The future]">><<set $conv_dade3 to 7>><<redo>><</link>>
<<case 5>>
"Maybe 20-30 minutes before they adapt," Dade estimates. "Enough to break their formation and give our ships an advantage."
"After that, it's down to raw skill and determination."
<<link "[We'll make it count]">><<set $conv_dade3 to 7>><<redo>><</link>>
<<case 6>>
"Always do," Dade says with a grim smile. "I'll keep working on their systems. You keep them busy in the sky."
"This is what we trained for. Time to show them what real resistance looks like."
<<link "[See you on the other side]">><<set $conv_dade3 to 7>><<redo>><</link>>
<<case 7>>
Dade finally looks up from his screens, his expression serious. "Whatever happens out there, know this: you've already changed the galaxy."
"The codes are spreading. The corporate stranglehold is breaking. Now go make sure we live to see the dawn."
He returns to his work, a final command: "Give them hell."
<<link "[End conversation]">><<dialogclose>><</link>>
<</switch>>
<</do>>
<</dialog>>
<</widget>>
<<widget "talk_to_friend4">>
<<dialog 'Old friend - The Final Hour'>>\
<<do>>\
<<if $conv_friend4 is undefined>><<set $conv_friend4 to 1>><</if>>\
<<switch $conv_friend4>>\
<<case 1>>\
Your friend approaches quickly, their expression tense. "The corporate fleet is coming! We have less than two hours."
"They're going to glass the entire planet if we don't stop them. Everyone who can fight is preparing."
<<link "[Is your ship ready?]">><<set $conv_friend4 to 2>><<redo>><</link>>
<<link "[What's our plan?]">><<set $conv_friend4 to 3>><<redo>><</link>>
<<case 2>>\
"As ready as it'll ever be," they say grimly. "We've done what we can with limited resources."
"This is it. The battle we've been preparing for. All or nothing."
<<link "[We need to coordinate]">><<set $conv_friend4 to 4>><<redo>><</link>>
<<link "[Stay close to me out there]">><<set $conv_friend4 to 5>><<redo>><</link>>
<<case 3>>\
"Hold them off while the shutdown protocols spread," they explain urgently. "Six hours minimum. Twelve if there are complications."
"Every minute we buy gives the codes more time to work across the galaxy."
<<link "[We can do this]">><<set $conv_friend4 to 6>><<redo>><</link>>
<<case 4>>\
"Marcos is coordinating the defense. We'll be assigned to squadrons once we're in orbit."
"Isolated ships get picked off. Stick together, watch each other's backs."
<<link "[Understood. Let's move]">><<set $conv_friend4 to 7>><<redo>><</link>>
<<case 5>>\
"Always," your friend says firmly. "We look out for each other. That's how we'll survive this."
"Now let's get to our ships. Every second counts."
<<link "[For Emma!]">><<set $conv_friend4 to 7>><<redo>><</link>>
<<case 6>>\
"We have to," your friend says with determination. "There's no alternative. If we fail, everything ends here."
"Now get to your ship. I'll see you in the battle."
<<link "[Good luck]">><<set $conv_friend4 to 7>><<redo>><</link>>
<<case 7>>\
"For Emma! For the future!" your friend echoes. "Now go! The sky's waiting and we've got a fleet to stop."
They turn and run toward the hangar, ready to join the defense of their home.
<<link "[End conversation]">><<dialogclose>><</link>>
<</switch>>\
<</do>>\
<</dialog>>
<</widget>>
<<widget "talk_to_marcos2">>
<<dialog 'Marcos - The Final Hour'>>\
<<do>>\
<<if $conv_marcos2 is undefined>><<set $conv_marcos2 to 1>><</if>>\
<<switch $conv_marcos2>>\
<<case 1>>\
Marcos looks up as you approach, his eyes immediately focusing on you with intense anticipation. The weight of the moment is palpable - everything has led to this.
"You made it back," he says, relief and hope evident in his voice. "Please tell me you have the data. Tell me this nightmare can finally end."
The entire communal kitchen seems to hold its breath, waiting for your response.
<<link "[I have the shutdown codes]">><<set $conv_marcos2 to 2>><<redo>><</link>>
<<case 2>>\
"Thank the stars," Marcos breathes, his shoulders sagging with relief. "You've done the impossible. Hand them over to me - Dade's network is standing by to implement the shutdown protocols immediately."
He extends his hand toward you, but suddenly his expression changes. A communication device on his wrist beeps urgently with an incoming priority message.
"Wait... something's wrong," he says, activating the device. Dade's voice crackles through, tense and urgent.
<<link "[Listen to Dade's message]">><<set $conv_marcos2 to 3>><<redo>><</link>>
<<case 3>>\
Dade's voice comes through clearly, filled with barely controlled panic: "Marcos! The corporate security system detected the vault breach. They know someone has the codes. Emma is compromised!"
"Long-range sensors are picking up a massive corporate fleet heading directly for our position. ETA: less than two hours. This isn't a patrol - it's an extinction fleet. They're coming to glass the entire planet."
Marcos's face goes pale as the implications sink in.
"We're implementing the shutdown protocols now, but it will take time to propagate across all systems. We need to hold them off until the process completes."
<<link "[How long do we need to hold them?]">><<set $conv_marcos2 to 4>><<redo>><</link>>
<<case 4>>\
"Minimum six hours for full galactic shutdown," Marcos says grimly. "Maximum twelve if there are complications with some of the more distant systems."
"Every pilot with a combat-capable ship is being called to defend Emma. This is it - the final battle. Either we hold long enough for the shutdown to complete, or the resistance dies here along with everyone on this planet."
He looks directly into your eyes. "Your ship - how combat-ready is it? Because we need every weapon we can get in the sky."
<<link "[My ship is ready to fight]">><<set $conv_marcos2 to 5>><<redo>><</link>>
<<link "[I'll do whatever upgrades I can manage]">><<set $conv_marcos2 to 6>><<redo>><</link>>
<<case 5>>\
"Good," Marcos nods with fierce determination. "Get to orbit immediately. Our defense coordinator will assign you to a squadron. Remember - you're not just fighting for Emma. You're fighting for every living being in this galaxy."
"The shutdown codes you retrieved are already working their way through corporate networks. But if we fall here, they'll regain control and restart everything. This is our one chance."
<<link "[Any final tactical advice?]">><<set $conv_marcos2 to 7>><<redo>><</link>>
<<case 6>>\
"Then get to the spaceport and upgrade whatever you can," Marcos says urgently. "Every weapon system, every piece of armor, every tactical advantage could mean the difference between victory and extinction."
"Time is against us, but don't rush into battle unprepared. A well-equipped ship fighting for six hours is worth more than an under-armed ship that gets destroyed in the first engagement."
<<link "[I'll make every credit count]">><<set $conv_marcos2 to 7>><<redo>><</link>>
<<case 7>>\
Marcos grips your shoulder firmly, his warrior-poet soul showing through his eyes. "Stay close to other resistance ships - isolated vessels get picked off quickly. Fight smart, not just brave. And remember..."
He pauses, looking around the bustling kitchen where people continue preparing food, creating art, building community even as an extinction fleet approaches.
"Remember what you're fighting for. Not just against corporate tyranny, but for the possibility that consciousness can choose cooperation over domination. For places like Emma to exist and flourish."
<<link "[I understand. This is bigger than any of us.]">><<set $conv_marcos2 to 8>><<redo>><</link>>
<<case 8>>\
"If we don't see each other again," Marcos says quietly, "know that your actions have already changed everything. The shutdown protocols are running. The corporate stranglehold on this galaxy is breaking."
"Even if Emma falls, even if we all fall, the codes you retrieved will save billions of lives across thousands of worlds. Whatever happens in the next few hours, you've already won the war that matters."
He steps back and offers a warrior's salute. "May your weapons find their mark, may your ship carry you safely, and may the revolution we've started outlive us all."
<<link "[For Emma. For the galaxy. For the future.]">><<set $conv_marcos2 to 9>><<redo>><</link>>
<<case 9>>\
"For Emma. For the galaxy. For the future," Marcos echoes solemnly. "Now go. The sky awaits, and destiny calls. Fight well, my friend."
As you turn to leave, you hear him calling out to the others in the kitchen: "Emma's children - the final hour is upon us! Let every heart beat with courage, every hand serve liberation!"
The sound of voices raised in determination follows you as you head toward what may be the most important battle in galactic history.
<<complete_task "Deliver data to rebels">>\
<<add_task "Defend Emma" 0>>\
<<dialogclose>>
<<include "Update">>\
<</switch>>\
<</do>>\
<</dialog>>\
<</widget>>
<<widget 'talk_to_marcos'>>
<<dialog 'Marcos - Warrior-poet'>>\
<<do>>\
<<if $conv_marcos is undefined>><<set $conv_marcos to 1>><</if>>\
<<switch $conv_marcos>>\
<<case 1>>\
You find Marcos in the communal kitchen, his presence both gentle and fierce. He moves with fluid economy, equally comfortable with books and weapons. A worn poetry collection peeks from his jacket pocket, and his eyes hold the depth of someone who has seen both beauty and brutality.
"Ah, the wanderer arrives," he says with a warm smile. "Dade mentioned you might come by. <<if $friend_stay is false>>It's good to see old companions choose truth over comfort.<<else>>I understand your friend chose to remain behind. The heart sometimes needs time to catch up with the mind.<</if>>"
"Welcome to Emma. Named for Emma Goldman, who said 'If I can't dance, it's not my revolution.' Here, we try to remember that rebellion without joy becomes mere reaction."
<<if $conv_dade2 gte 20>>\
<<link "[Dade said you had something important to discuss]">><<set $conv_marcos to 2>><<redo>><</link>>
<</if>>\
<<link "[Tell me about Emma Goldman]">><<set $conv_marcos to 3>><<redo>><</link>>
<<link "[This place feels different from other communities]">><<set $conv_marcos to 4>><<redo>><</link>>
<<case 2>>\
Marcos's expression grows serious, the philosopher giving way to the strategist. "What I'm about to share could change the fate of every living being in this galaxy - or get you killed trying."
He lowers his voice. "Dade's network has uncovered something extraordinary. The corporations left automated fuel extraction systems running when they fled to other galaxies. These systems are destabilizing planetary orbits."
"Every planet with active fuel mining is slowly being pulled into its star. We're looking at a chain reaction of supernovas that could make this entire galaxy uninhabitable within decades."
<<link "[That's genocide on a galactic scale]">><<set $conv_marcos to 5>><<redo>><</link>>
<<link "[How long before this happens?]">><<set $conv_marcos to 6>><<redo>><</link>>
<<link "[You said there's a way to stop this?]">><<set $conv_marcos to 7>><<redo>><</link>>
<<case 3>>\
"Emma Goldman understood that true change requires transforming not just economic systems, but how we relate to power itself," Marcos explains with admiration. "She fought for a world where people could be fully alive - politically, economically, spiritually."
"Revolution without joy becomes just another form of authoritarianism. We resist not just because we're against something, but because we're for something beautiful."
He gestures around the bustling kitchen. "This place embodies her vision. Revolution as an act of love for life itself."
<<link "[How do you maintain joy while fighting such powerful forces?]">><<set $conv_marcos to 8>><<redo>><</link>>
<<link "[That connects to why you're here fighting]">><<set $conv_marcos to 9>><<redo>><</link>>
<<if $conv_dade2 gte 20>>\
<<link "[Dade said you had something important to discuss]">><<set $conv_marcos to 2>><<redo>><</link>>
<</if>>\
<<case 4>>\
"Because here we remember that means matter as much as ends," Marcos says thoughtfully. "Too many resistance movements become mirrors of what they fight - hierarchical, joyless, driven by fear rather than love."
"Emma tries to prefigure the world we want to create. We make decisions through genuine consensus, celebrate beauty, see each person's liberation as connected to everyone else's."
"Of course, we also prepare for battle when necessary. My ship is well-armed. But violence, when it comes, emerges from love of life rather than hatred."
<<link "[How do you balance philosophy with fighting?]">><<set $conv_marcos to 10>><<redo>><</link>>
<<if $conv_dade2 gte 20>>\
<<link "[Dade said you had something important to discuss]">><<set $conv_marcos to 2>><<redo>><</link>>
<</if>>\
<<case 5>>\
"The corporations fled for a reason they never shared publicly," Marcos says gravely. "Their fuel extraction systems destabilize planetary orbits. The process accelerates exponentially - first one planet falls, then gravitational disruption affects neighboring systems."
"They knew this when they left. They chose to flee rather than reduce profits by fixing the problem. They abandoned billions to die in cosmic fire."
<<link "[How much time do we have?]">><<set $conv_marcos to 6>><<redo>><</link>>
<<link "[There must be a way to stop this]">><<set $conv_marcos to 7>><<redo>><</link>>
<<link "[Why didn't they just shut down the systems?]">><<set $conv_marcos to 11>><<redo>><</link>>
<<case 6>>\
"Conservative estimates give us maybe two standard years before the first planet falls," Marcos says grimly. "Once that happens, cascading effects accelerate everything. Some heavily mined worlds could destabilize much sooner."
"Every day we delay makes the shutdown more difficult. The window is closing rapidly."
<<link "[What exactly needs to be done?]">><<set $conv_marcos to 7>><<redo>><</link>>
<<link "[Are there early warning signs?]">><<set $conv_marcos to 12>><<redo>><</link>>
<<link "[How do we know which planets are most at risk?]">><<set $conv_marcos to 13>><<redo>><</link>>
<<case 7>>\
"A central shutdown protocol exists," Marcos explains. "Probably designed as a last resort by engineers who understood the danger. The access codes are hidden in a vault on Atom - corporate headquarters, heavily defended but not impossible."
"Once we have those codes, Dade's network can simultaneously shut down fuel extraction across the galaxy. Complete deactivation within hours. No more orbital destabilization."
"But more than that - it would shatter the illusion of corporate inevitability. Billions would see that these 'unstoppable' systems can be turned off."
<<link "[Why are you asking me specifically?]">><<set $conv_marcos to 14>><<redo>><</link>>
<<link "[What are the risks of this mission?]">><<set $conv_marcos to 15>><<redo>><</link>>
<<link "[Why didn't the corporations destroy this information?]">><<set $conv_marcos to 16>><<redo>><</link>>
<<case 8>>\
"By remembering that our resistance itself must be a celebration of life," Marcos says warmly. "We cook together, make art, sing songs, tell stories. We create the world we want to live in while fighting to protect it."
"Joy becomes rebellion when the dominant culture demands despair. Beauty becomes revolutionary when ugliness is presented as inevitable."
<<link "[How do you know when words aren't enough?]">><<set $conv_marcos to 10>><<redo>><</link>>
<<if $conv_dade2 gte 20>>\
<<link "[Dade said you had something important to discuss]">><<set $conv_marcos to 2>><<redo>><</link>>
<</if>>\
<<case 9>>\
"I fight because I love this galaxy and everyone in it," Marcos says with quiet intensity. "The poetry, the music, the countless ways consciousness has learned to express itself across thousands of worlds. All threatened by corporate greed."
"When I engage in space combat, I'm not motivated by hatred of enemies, but by love for everything they would destroy."
<<link "[That's a profound way to approach conflict]">><<set $conv_marcos to 17>><<redo>><</link>>
<<if $conv_dade2 gte 20>>\
<<link "[Dade said you had something important to discuss]">><<set $conv_marcos to 2>><<redo>><</link>>
<</if>>\
<<case 10>>\
"Philosophy without action is mere intellectual entertainment," Marcos replies. "Action without philosophy is blind violence that reproduces the systems it opposes."
"I spend most of my time teaching, thinking, discussing. But when corporate forces come to destroy communities like this, philosophy alone won't stop their weapons."
"The warrior and poet aren't separate roles - they're different expressions of the same commitment to life."
<<link "[When have you had to fight?]">><<set $conv_marcos to 18>><<redo>><</link>>
<<if $conv_dade2 gte 20>>\
<<link "[Dade said you had something important to discuss]">><<set $conv_marcos to 2>><<redo>><</link>>
<</if>>\
<<case 11>>\
"Because they calculated that moving galaxies was more profitable than solving the problem they created," Marcos says with controlled anger. "They're not invincible - they're terrified enough to flee."
"That means their systems can be disrupted. We have a window before orbital decay becomes irreversible."
<<link "[What's the plan to disrupt their systems?]">><<set $conv_marcos to 7>><<redo>><</link>>
<<link "[How do we exploit their fear?]">><<set $conv_marcos to 19>><<redo>><</link>>
<<case 12>>\
"Unusual seismic activity, gravitational anomalies, tidal pattern changes," Marcos lists. "Dade's network monitors what indicators they can access. Some planets already show signs."
"The terrifying part is how corporate systems ignore these warnings and continue extraction. Profit maximization until the last moment."
<<link "[Which planets are showing signs?]">><<set $conv_marcos to 13>><<redo>><</link>>
<<link "[How do we get those shutdown codes?]">><<set $conv_marcos to 7>><<redo>><</link>>
<<case 13>>\
"Dade's intelligence suggests several heavily mined worlds in the outer systems," Marcos says grimly. "Industrial planets where extraction rates exceed safe parameters by massive margins."
"The corporations prioritized maximum extraction before abandoning those systems. They're the first likely to fall."
<<link "[We need those shutdown codes immediately]">><<set $conv_marcos to 7>><<redo>><</link>>
<<link "[Is there any way to warn those planets?]">><<set $conv_marcos to 20>><<redo>><</link>>
<<case 14>>\
"Your skills, experience, and proven ability to see through corporate deceptions," Marcos explains. "Your background as <<a $profession>> provides legitimate cover for accessing industrial facilities."
"You've already survived corporate betrayal and navigated from <<$planet_o>> through Anarchio's lies to Emma's truth. You can handle complex, dangerous situations."
"Most importantly, this is voluntary. We don't send anyone on missions this dangerous unless they choose to go."
<<link "[What exactly would the mission involve?]">><<set $conv_marcos to 21>><<redo>><</link>>
<<link "[What happens if I say no?]">><<set $conv_marcos to 22>><<redo>><</link>>
<<link "[What support would I have?]">><<set $conv_marcos to 23>><<redo>><</link>>
<<case 15>>\
"Corporate security on Atom is lethal," Marcos admits without hesitation. "If discovered during infiltration, survival becomes unlikely. Even if you succeed, they'll hunt you across the galaxy."
"But consider the alternative - every planet consumed by their stars. Billions dying in cosmic fire because we were too afraid to act."
"I won't lie about the dangers, but I won't minimize what's at stake."
<<link "[What kind of support would I have?]">><<set $conv_marcos to 23>><<redo>><</link>>
<<link "[How do you live with sending people on missions like this?]">><<set $conv_marcos to 24>><<redo>><</link>>
<<link "[I understand the necessity]">><<set $conv_marcos to 25>><<redo>><</link>>
<<case 16>>\
"Arrogance," Marcos says simply. "They assumed no one would ever access it. The vault is in their most secure facility, protected by systems they considered impenetrable."
"They kept it as insurance - a way to shut things down if extraction threatened their other investments. They never imagined communities like ours developing the capabilities to use it."
"Their contempt for our intelligence may finally be their downfall."
<<link "[How do we know the codes are actually there?]">><<set $conv_marcos to 26>><<redo>><</link>>
<<link "[What makes this vault accessible to us?]">><<set $conv_marcos to 27>><<redo>><</link>>
<<case 17>>\
"Love is what makes the difference between a warrior and a murderer," Marcos says quietly. "When I engage corporate forces, I remember I'm fighting so their children might grow up where such violence is unnecessary."
"Hatred makes you sloppy, reactive. Love keeps you focused on what you're protecting rather than what you're destroying."
<<link "[That must be difficult to maintain in actual combat]">><<set $conv_marcos to 18>><<redo>><</link>>
<<link "[Speaking of what you're protecting...]">><<set $conv_marcos to 2>><<redo>><</link>>
<<case 18>>\
"Corporate security forces have attacked communities like Emma before," Marcos says grimly. "Small fleets, well-armed, designed to eliminate 'troublemakers' before ideas spread."
"My ship and others exist to make those attacks costly enough that corporations recalculate. We can't match their firepower, but we can affect their profit margins."
"It's not glorious. It's necessary. And afterwards, we return to teaching, cooking, building the world we want."
<<link "[How do you handle the psychological cost?]">><<set $conv_marcos to 28>><<redo>><</link>>
<<link "[Is Emma under that kind of threat now?]">><<set $conv_marcos to 2>><<redo>><</link>>
<<case 19>>\
"By proving their systems aren't invincible," Marcos says with determination. "Every successful hack, every corporate facility infiltrated, every automation disrupted shows people that resistance is possible."
"Fear drove them to another galaxy. We can use that same fear to motivate people here to build alternatives."
<<link "[That's what this mission could accomplish]">><<set $conv_marcos to 7>><<redo>><</link>>
<<link "[How do we spread that awareness?]">><<set $conv_marcos to 29>><<redo>><</link>>
<<case 20>>\
"We try, but corporate communications monitoring makes direct contact dangerous," Marcos says sadly. "Warning them could compromise our position and eliminate any chance of the shutdown mission."
"It's a horrible choice - let some planets die to save all planets, or try to save a few and lose the chance to save everyone."
"This is why the mission to Atom is so critical. It's our only real hope."
<<link "[I understand the impossible choice]">><<set $conv_marcos to 25>><<redo>><</link>>
<<link "[Tell me more about the Atom mission]">><<set $conv_marcos to 21>><<redo>><</link>>
<<case 21>>\
"Travel to Atom, infiltrate corporate headquarters, access the secured vault, extract the shutdown codes, return here," Marcos outlines. "Simple in concept, extremely dangerous in execution."
"The vault is air-gapped - completely isolated from networks. You'll need specialized hacking equipment to break corporate-grade encryption. Dade can provide it."
"Once you return with the codes, we coordinate the galactic shutdown from here."
<<link "[What's my cover for being on Atom?]">><<set $conv_marcos to 30>><<redo>><</link>>
<<link "[How do I get past security?]">><<set $conv_marcos to 27>><<redo>><</link>>
<<link "[I'll take the mission]">><<set $conv_marcos to 31>><<redo>><</link>>
<<case 22>>\
"Then we look for other options," Marcos says simply. "This isn't conscription. Coerced resistance reproduces the systems we fight."
"You've already contributed by exposing Anarchio's deceptions. No one owes the resistance more than they can freely give."
"Though I hope you'll consider it carefully. Your skills make you uniquely suited for this mission."
<<link "[What other options exist?]">><<set $conv_marcos to 32>><<redo>><</link>>
<<link "[I want to know more about the specific mission]">><<set $conv_marcos to 21>><<redo>><</link>>
<<link "[I need time to decide]">><<set $conv_marcos to 33>><<redo>><</link>>
<<case 23>>\
"Limited," Marcos says honestly. "Communications will be monitored, so you'll be largely alone during the mission. If captured or killed, we can't extract you."
"However, if you successfully escape but are pursued, signal us. Emma has defensive capabilities, and communities across the galaxy will help someone carrying this vital information."
"Your best protection is not being detected in the first place."
<<link "[I understand the limitations]">><<set $conv_marcos to 25>><<redo>><</link>>
<<case 24>>\
"By remembering the alternative is sending no one and watching everyone die," Marcos says quietly. "Leadership means making impossible choices with incomplete information."
"I don't ask anyone to take risks I wouldn't take myself. But sometimes you must ask someone with unique capabilities to risk their life for everyone's survival."
"The weight never gets easier to carry."
<<link "[I understand the necessity]">><<set $conv_marcos to 25>><<redo>><</link>>
<<case 25>>\
"Then you understand what we're asking," Marcos says seriously. "The mission to Atom isn't just about saving this galaxy - it's about proving that ordinary people can overcome seemingly impossible odds."
"Will you take this mission? The codes in that vault are our only hope."
<<if !$tool.map(item => item.name).includes("hacking kit") and $tool.length lt 5>>\
"Here, take this hacking kit. You'll need it for the vault."
You receive a hacking kit!
<<run $tool.push({name: "hacking kit", charge: 100})>>\
<</if>>\
<<link "[I'll take the mission]">><<set $conv_marcos to 31>><<redo>><</link>>
<<link "[I need time to prepare]">><<set $conv_marcos to 33>><<redo>><</link>>
<<case 26>>\
"Dade's network has tracked corporate communications for months," Marcos explains. "References to 'Project Reset' protocols, backup systems for 'orbital intervention scenarios' - the codes are there."
"More convincingly, corporate behavior proves it. They fled but left extraction systems running. They wouldn't risk that without a shutdown capability."
<<link "[That's convincing enough for me]">><<set $conv_marcos to 25>><<redo>><</link>>
<<case 27>>\
"Dade's network has mapped corporate security for years," Marcos explains. "They've identified weaknesses - shift changes, system updates, surveillance blind spots."
"Your background as <<a $profession>> gives you credible access to industrial facilities. Your recent experiences prove you can navigate dangerous situations and see through deceptions."
<<link "[What specific plan do you have in mind?]">><<set $conv_marcos to 21>><<redo>><</link>>
<<link "[What backup do I have if things go wrong?]">><<set $conv_marcos to 23>><<redo>><</link>>
<<case 28>>\
"Through community, philosophy, and remembering what I'm fighting for," Marcos says honestly. "The people here help carry the weight. And poetry - it keeps me connected to beauty even after violence."
"Every person I've had to kill was someone's child. I carry that responsibility. But I also carry the responsibility for everyone they would have killed."
<<link "[How do you make those impossible choices?]">><<set $conv_marcos to 24>><<redo>><</link>>
<<link "[About this current mission...]">><<set $conv_marcos to 2>><<redo>><</link>>
<<case 29>>\
"Through actions that demonstrate possibility," Marcos says with conviction. "Every successful mission, every corporate system disrupted, every community that thrives despite corporate pressure."
"This shutdown mission could be the ultimate demonstration - showing that their most fundamental systems can be turned off by determined people with the right knowledge."
<<link "[That would change everything]">><<set $conv_marcos to 25>><<redo>><</link>>
<<link "[What's required to make it happen?]">><<set $conv_marcos to 21>><<redo>><</link>>
<<case 30>>\
"Your background as <<a $profession>> provides legitimate reasons for visiting industrial facilities," Marcos explains. "Routine business, equipment inspections, whatever fits your professional profile."
"The key is acting normal while getting close to that vault. Once you're inside the facility, Dade's intelligence will guide you to the specific location."
<<link "[I'll do it]">><<set $conv_marcos to 31>><<redo>><</link>>
<<case 31>>\
<<if !$task.includes("Recover data from vault")>><<add_task "Recover data from vault" 12>><</if>>\
"Then may your journey serve the liberation of all life in this galaxy," Marcos says solemnly. "Travel to Atom, find that vault, bring back the codes that can save us all."
"Return here when you have the information. Dade will coordinate the shutdown the moment you arrive."
"Remember - you're fighting for the possibility that consciousness can choose cooperation over domination."
<<link "[I understand. I'll head to Atom.]">><<dialogclose>><</link>>
<<case 32>>\
"We continue searching for someone else with your skills," Marcos says honestly. "Or we try to find alternative ways to access those codes. But every option we've considered has lower chances of success."
"Time isn't on our side. The longer we wait, the more planets move toward orbital decay."
<<link "[Maybe I should reconsider]">><<set $conv_marcos to 21>><<redo>><</link>>
<<link "[I hope you find another way]">><<dialogclose>><</link>>
<<case 33>>\
"Take whatever time you need," Marcos says understandingly. "But remember - every day we delay, more planets move closer to orbital decay. The window won't stay open indefinitely."
"When you're ready, find me again. The codes will still need retrieving, and you're still our best option."
<<link "[I'll return when I'm ready]">><<dialogclose>><</link>>
<<link "[Actually, I'll take the mission now]">><<set $conv_marcos to 31>><<redo>><</link>>
<</switch>>\
<</do>>\
<</dialog>>\
<</widget>>
<<widget 'talk_to_dade2'>>
<<dialog 'Dade - Hacker & Artist'>>\
<<do>>\
<<if $conv_dade2 is undefined>><<set $conv_dade2 to 1>><</if>>\
<<switch $conv_dade2>>\
<<case 1>>\
Dade looks up from a holographic art installation, his eyes lighting up with recognition. The installation pulses with raw energy, abstract forms shifting between corporate logos and natural patterns.
"Hey! I was hoping you'd make it here eventually. Emma's different from anywhere else, isn't it? Real creativity happens when people aren't being manipulated by hidden puppet masters."
He gestures to the chaotic but beautiful artwork around him. "I've been diving deep into old archives, finding music and art from centuries ago that somehow speaks directly to what we're dealing with now."
<<link "[About that music you sent...]">><<set $conv_dade2 to 2>><<redo>><</link>>
<<link "[This place feels more authentic than Anarchio]">><<set $conv_dade2 to 3>><<redo>><</link>>
<<link "[What kind of art are you creating here?]">><<set $conv_dade2 to 4>><<redo>><</link>>
<<case 2>>\
"Bullet in the Head - Rage Against the Machine," Dade says with fierce appreciation. "Written centuries ago, but it could have been recorded yesterday. Those ancient rebels understood something we're still fighting - how power uses media, spectacle, and false narratives to keep people docile."
"What happened at Anarchio? That was the same bullet, just with better targeting systems. Talis and the broker didn't need crude media manipulation when they could orchestrate entire 'grassroots' communities."
<<link "[The parallels are disturbing]">><<set $conv_dade2 to 10>><<redo>><</link>>
<<link "[How far back does this pattern go?]">><<set $conv_dade2 to 11>><<redo>><</link>>
<<link "[What can we do against such systematic deception?]">><<set $conv_dade2 to 12>><<redo>><</link>>
<<case 3>>\
"Exactly! Emma doesn't pretend to have all the answers. People here struggle with real questions instead of performing predetermined roles in someone else's theater."
"At Anarchio, every 'spontaneous' decision had been scripted months in advance. Here, when people disagree, it's messy and uncomfortable and real. No hidden facilitators nudging everyone toward pre-approved conclusions."
<<if $friend_stay is true>>\
"I'm sorry your friend chose to stay behind. It's hard to accept that the life you've built is fundamentally a lie."
<<else>>\
"I'm glad your friend saw through the deception too. It takes courage to abandon a comfortable lie for an uncomfortable truth."
<</if>>\
<<link "[How widespread is this kind of manipulation?]">><<set $conv_dade2 to 11>><<redo>><</link>>
<<link "[What makes Emma different?]">><<set $conv_dade2 to 13>><<redo>><</link>>
<<case 4>>\
"I'm trying to create works that can't be co-opted or commodified," Dade explains. "Art that loses its meaning the moment someone tries to own it or sell it or use it for social control."
"Corporate systems excel at absorbing and neutralizing resistance. So I'm experimenting with forms that self-destruct when separated from their authentic context. Art that only exists in relationship with real community and genuine struggle."
<<link "[That's a fascinating approach to resistance]">><<set $conv_dade2 to 12>><<redo>><</link>>
<<link "[How do you prevent co-optation?]">><<set $conv_dade2 to 14>><<redo>><</link>>
<<case 10>>\
"Question everything that feels too perfect," Dade advises. "Real human communities are messy, contradictory, full of genuine disagreement. When everything flows too smoothly, when consensus emerges too easily - that's when you should be most suspicious."
"Look for the hidden infrastructure of control. Who's setting the agenda? Who decides what questions get asked? Follow the resources and power flows, not the rhetoric."
<<link "[How do you develop that intuition?]">><<set $conv_dade2 to 15>><<redo>><</link>>
<<link "[You seem to have something important to discuss...]">><<set $conv_dade2 to 20>><<redo>><</link>>
<<case 11>>\
"All the way back to the origins of civilization itself," Dade says with dark fascination. "Every empire, every ruling class has relied on convincing the dominated that their oppression is natural, necessary, or beneficial."
"The megacorps that fled to other galaxies didn't invent these techniques - they just perfected them. The pattern replicates itself because it's embedded in the basic structures of hierarchical thinking."
<<link "[How do we break patterns that ancient?]">><<set $conv_dade2 to 16>><<redo>><</link>>
<<link "[You seem to have something important to discuss...]">><<set $conv_dade2 to 20>><<redo>><</link>>
<<case 12>>\
"Create authentic alternatives," Dade says immediately. "Not just resistance to what exists, but entirely different ways of organizing life that make the old systems irrelevant."
"Emma is one experiment. There are others scattered across the galaxy - communities trying to remember what human cooperation looked like before it was systematically destroyed."
<<link "[What kind of alternatives?]">><<set $conv_dade2 to 17>><<redo>><</link>>
<<link "[You seem to have something important to discuss...]">><<set $conv_dade2 to 20>><<redo>><</link>>
<<case 13>>\
"Transparency and genuine consensus," Dade explains. "Not theatrical consensus, but the messy, slow process of actually listening to each other without hidden manipulation."
"Emma doesn't have leaders - it has rotating facilitators. Most importantly, there's no pretense we've achieved perfect anarchism. It's a work in progress, with people consciously learning to unlearn authoritarian conditioning."
<<link "[How do you maintain that authenticity?]">><<set $conv_dade2 to 18>><<redo>><</link>>
<<link "[What challenges do you face?]">><<set $conv_dade2 to 19>><<redo>><</link>>
<<case 14>>\
"By making the art inseparable from its context," Dade says thoughtfully. "Art as medicine rather than commodity. Use it when you need healing, then let it compost back into the cultural soil."
"You don't share the works - you share the methods. Teach people how to create their own authentic expressions rather than distributing pre-made content."
<<link "[That's completely different from traditional art]">><<set $conv_dade2 to 12>><<redo>><</link>>
<<link "[You seem to have something important to discuss...]">><<set $conv_dade2 to 20>><<redo>><</link>>
<<case 15>>\
"Practice noticing the difference between performance and authenticity in low-stakes situations," Dade suggests. "Learn what real unpredictability feels like, so you can recognize when spontaneity is being manufactured."
"And develop your own authentic voice so you can recognize when others are speaking from scripts rather than from their hearts."
<<link "[What about when the stakes are high?]">><<set $conv_dade2 to 10>><<redo>><</link>>
<<link "[You seem to have something important to discuss...]">><<set $conv_dade2 to 20>><<redo>><</link>>
<<case 16>>\
"By refusing to reproduce them," Dade says with conviction. "Every time we choose cooperation over competition, we're breaking the pattern. It's about conscious practice of different ways of being together."
"Like how peer-to-peer networks made traditional media gatekeepers obsolete, we can create ways of organizing that make hierarchical control unnecessary."
<<link "[What practices work best?]">><<set $conv_dade2 to 18>><<redo>><</link>>
<<link "[You seem to have something important to discuss...]">><<set $conv_dade2 to 20>><<redo>><</link>>
<<case 17>>\
"There are dozens, maybe hundreds," Dade says with excitement. "Communities experimenting with gift economies, consensus decision-making, different relationships to technology and land. They're all different experiments - no universal model."
"The beautiful thing is they're connected through careful networks that avoid surveillance systems. We share learning and mutual support."
<<link "[How do they stay connected?]">><<set $conv_dade2 to 18>><<redo>><</link>>
<<link "[You seem to have something important to discuss...]">><<set $conv_dade2 to 20>><<redo>><</link>>
<<case 18>>\
"Constant vigilance against the subtle reintroduction of hierarchy," Dade explains. "We practice 'calling in' rather than 'calling out' - addressing authoritarian behavior with curiosity and compassion."
"And we've developed rituals for regularly examining our own power dynamics. Monthly 'hierarchy checks' where we assess whether leadership is rotating, whether all voices are being heard."
<<link "[That requires incredible self-awareness]">><<set $conv_dade2 to 19>><<redo>><</link>>
<<link "[You seem to have something important to discuss...]">><<set $conv_dade2 to 20>><<redo>><</link>>
<<case 19>>\
"Unlearning competitive conditioning and dealing with external pressure from corporate systems," Dade says seriously. "They can't allow successful examples of alternatives to exist - it threatens their control."
"But honestly, the internal work is harder. Breaking the patterns in our own minds and relationships is the most challenging part."
<<link "[How do you handle external pressures?]">><<set $conv_dade2 to 18>><<redo>><</link>>
<<link "[You seem to have something important to discuss...]">><<set $conv_dade2 to 20>><<redo>><</link>>
<<case 20>>\
Dade's expression becomes serious and focused. "You know what? I've been talking about resistance and alternatives, but there's something more immediate I need to discuss with you."
"I've made an incredible discovery - a massive vulnerability in the corporate surveillance networks. Something that could give us access to their entire galactic communication system and expose Project Pacification to everyone simultaneously."
"But it requires someone with exactly your skill set to make it happen. Have you met Marcos yet? He's in the communal kitchen, coordinating what we're calling a 'special logistics project.'"
<<link "[What kind of discovery?]">><<set $conv_dade2 to 21>><<redo>><</link>>
<<link "[Why do you think I'm right for this?]">><<set $conv_dade2 to 22>><<redo>><</link>>
<<link "[What exactly is this mission?]">><<set $conv_dade2 to 23>><<redo>><</link>>
<<case 21>>\
"Evidence of a vulnerability that could let us expose the full extent of corporate manipulation across every planet they control," Dade says, lowering his voice. "We're talking about revealing psychological operations to the entire galaxy simultaneously."
"But the mission to gather the necessary data is extremely dangerous. It requires infiltrating a heavily defended facility in hostile space."
<<link "[That could change everything]">><<set $conv_dade2 to 24>><<redo>><</link>>
<<link "[What are the risks?]">><<set $conv_dade2 to 25>><<redo>><</link>>
<<link "[How do I learn more?]">><<set $conv_dade2 to 26>><<redo>><</link>>
<<case 22>>\
"Your background as <<a $profession>>, your experience navigating corporate systems, your survival skills," Dade explains. "Plus, you've already proven you can see through sophisticated deceptions like Anarchio."
"Most importantly, you can move freely between worlds without arousing suspicion. And frankly, you've got nothing left to lose and everything to gain."
<<link "[What would the mission involve?]">><<set $conv_dade2 to 23>><<redo>><</link>>
<<link "[How dangerous is it really?]">><<set $conv_dade2 to 25>><<redo>><</link>>
<<link "[Tell me about this discovery]">><<set $conv_dade2 to 21>><<redo>><</link>>
<<case 23>>\
"I can't give you all the details without compromising security," Dade says carefully. "But it involves infiltrating a heavily defended corporate facility to extract specific data files."
"Marcos can tell you more about the logistics - supply requirements, route planning, equipment needs. The mission is entirely voluntary, but if you're interested in striking a real blow against corporate oppression..."
<<link "[I need to know more before deciding]">><<set $conv_dade2 to 26>><<redo>><</link>>
<<link "[What happens if I say no?]">><<set $conv_dade2 to 27>><<redo>><</link>>
<<link "[What are the potential consequences?]">><<set $conv_dade2 to 24>><<redo>><</link>>
<<case 24>>\
"Imagine if every person living under corporate control suddenly saw proof of exactly how they're being manipulated," Dade says with excitement. "We're talking about massive, coordinated non-compliance when people understand how the game is rigged."
"It won't solve everything overnight, but it could create conditions for communities like Emma to flourish without constant corporate interference."
<<link "[What about corporate retaliation?]">><<set $conv_dade2 to 25>><<redo>><</link>>
<<link "[How do I get involved?]">><<set $conv_dade2 to 26>><<redo>><</link>>
<<link "[This requires incredible coordination]">><<set $conv_dade2 to 28>><<redo>><</link>>
<<case 25>>\
"High," Dade says bluntly. "The facility is in heavily patrolled space. Security systems are lethal. If you're captured, they won't hesitate to eliminate you."
"But we'll provide the best equipment and intelligence we can gather. This isn't a suicide mission - we want you to succeed and return safely. But I won't lie about the dangers."
<<link "[What kind of support would I have?]">><<set $conv_dade2 to 29>><<redo>><</link>>
<<link "[I need to talk to Marcos first]">><<set $conv_dade2 to 26>><<redo>><</link>>
<<link "[What if something goes wrong?]">><<set $conv_dade2 to 30>><<redo>><</link>>
<<case 26>>\
"He's usually in the communal kitchen during meal preparation," Dade explains. "Look for someone coordinating food distribution with military efficiency but community warmth. Tell him I sent you about the 'special logistics project.'"
<<if !$tool.map(item => item.name).includes("hacking kit") and $tool.length lt 5>>\
"And here -" Dade reaches into his pack. "Take this hacking kit. Regardless of your decision, you'll find it useful for dealing with corporate security systems."
You receive a hacking kit!
<<run $tool.push({name: "hacking kit", charge: 100})>>\
<<link "[Thank you for the equipment]">><<set $conv_dade2 to 31>><<redo>><</link>>
<</if>>\
<<link "[I'll go find Marcos now]">><<set $conv_dade2 to 32>><<dialogclose>><</link>>
<<case 27>>\
"Then nothing changes," Dade says simply. "We don't pressure anyone. This has to be completely voluntary."
"There are other ways to contribute. What we're doing here at Emma, building authentic alternatives, that's valuable work too. But if you decide you want to strike a more direct blow... the option is there."
<<link "[I'll think about it]">><<set $conv_dade2 to 31>><<redo>><</link>>
<<case 28>>\
"We've been building networks for exactly this purpose," Dade explains. "All those alternative communities? They're nodes in a growing network of mutual support. When the information is released, each will have specific roles in helping people process the revelations."
<<link "[I understand]">><<set $conv_dade2 to 31>><<redo>><</link>>
<<link "[What's my role in the larger plan?]">><<set $conv_dade2 to 26>><<redo>><</link>>
<<case 29>>\
"Full technical and logistical support," Dade says. "Advanced equipment, detailed intelligence, backup communication protocols, and extraction plans. Plus support teams monitoring your progress."
"Marcos can give you specific details about resources we can provide and what you'd need to bring."
<<link "[How do I contact support teams?]">><<set $conv_dade2 to 30>><<redo>><</link>>
<<link "[I should talk to Marcos about details]">><<set $conv_dade2 to 26>><<redo>><</link>>
<<case 30>>\
"We have contingency plans," Dade says seriously. "The operation involves multiple teams with different responsibilities. Your role is the most dangerous - the actual infiltration. Other teams handle intelligence, equipment, communication, and distribution coordination."
<<link "[I understand]">><<set $conv_dade2 to 31>><<redo>><</link>>
<<link "[I need more details from Marcos]">><<set $conv_dade2 to 26>><<redo>><</link>>
<<case 31>>\
"Whatever you decide, every act of digital rebellion contributes to the larger struggle for liberation."
"Take your time to consider, but remember - the window for this vulnerability won't stay open indefinitely."
<<link "[I'll consider]">><<set $conv_dade2 to 33>><<redo>><</link>>
<<link "[I should find Marcos now]">><<set $conv_dade2 to 32>><<dialogclose>><</link>>
<<case 32>>\
"Good luck," Dade says seriously. "Whatever you decide, know that you're part of something larger than any individual mission. The future is being written by people willing to question, resist, and imagine alternatives."
<<link "[About finding Marcos...]">><<set $conv_dade2 to 26>><<redo>><</link>>
<<link "[End conversation]">><<dialogclose>><</link>>
<<case 33>>\
"Whatever you decide, I'm glad we had this conversation," Dade says. "Keep questioning everything, keep building alternatives. Find me again if you want to continue discussing art, resistance, or ancient music that speaks to our current struggles."
<<link "[About finding Marcos...]">><<set $conv_dade2 to 26>><<redo>><</link>>
<<link "[End conversation]">><<dialogclose>><</link>>
<</switch>>\
<</do>>\
<</dialog>>\
<</widget>>
<<widget "talk_to_friend3">>
<<dialog 'Old Friend'>>\
<<do>>\
<<if $conv_friend3 is undefined>><<set $conv_friend3 to 1>><</if>>\
<<switch $conv_friend3>>\
<<case 1>>\
Your friend approaches with a genuine smile, their posture more confident than you've seen in years. There's dirt under their fingernails from working in the communal gardens, and their clothes show the honest wear of someone contributing to real work. Despite the obvious hardships of life on Emma, they seem more alive than they ever did on Anarchio.
"I've been hoping we'd get a chance to talk," they say, settling down beside you. "I know leaving Anarchio wasn't easy, and I wanted to thank you. For showing me the truth, even when it was painful."
They look out at the bustling activity around them - people building, creating, genuinely cooperating without hidden hierarchies. "Life here is harder, but it's real. Every decision we make actually matters."
<<link "[Do you miss the comfort of Anarchio?]">><<set $conv_friend3 to 2>><<redo>><</link>>
<<link "[What have you been learning here?]">><<set $conv_friend3 to 5>><<redo>><</link>>
<<case 2>>\
Your friend considers this thoughtfully. "Sometimes I miss the ease of it, the illusion that everything was taken care of. But you know what I don't miss? The constant nagging feeling that something was wrong."
"Here, when we're hungry, we work together to grow food or find solutions. When we disagree, we actually hash it out instead of having our opinions quietly manipulated. The comfort of Anarchio came at the cost of our agency."
They gesture at a group nearby engaged in passionate but respectful debate about resource allocation. "Look at that. Real consensus building, not the theater we had before."
<<link "[It's good to see you so engaged]">><<set $conv_friend3 to 3>><<redo>><</link>>
<<link "[You seem like yourself again]">><<set $conv_friend3 to 4>><<redo>><</link>>
<<case 3>>\
"Engaged is exactly the right word," your friend says with enthusiasm. "For the first time in years, I feel like my voice actually contributes to something meaningful. Not just agreeing with pre-determined outcomes."
"Yesterday they were designing a new water collection system. The week before, there was a group that questioned whether we even need some of the infrastructure we thought was essential. These aren't just technical problems - they're questions about how we want to relate to the planet."
They pause, their expression becoming more serious. "And when the corporations try to interfere - and they do - we resist. But we're also learning that our resistance itself needs to be deeper than just fighting corporate control."
<<link "[What do you mean by deeper resistance?]">><<set $conv_friend3 to 6>><<redo>><</link>>
<<link "[How has your relationship with technology changed?]">><<set $conv_friend3 to 7>><<redo>><</link>>
<<case 4>>\
Your friend's eyes light up with recognition. "That's exactly it! I didn't realize how much of myself I'd lost until I found it again. On Anarchio, I was performing the role of who I thought I should be in their version of anarchism."
"Here, I can actually use my skills, my real knowledge, but more importantly - I'm questioning which skills are actually necessary. Remember how passionate I used to be about hydroponics? Now I'm learning to work with the soil as it is, rather than trying to control every variable."
They stretch, clearly tired but satisfied from meaningful work. "The exhaustion here is different. It comes from learning to listen to the land instead of trying to master it."
<<link "[That sounds like a fundamental shift in perspective]">><<set $conv_friend3 to 8>><<redo>><</link>>
<<link "[What are you discovering about living with the land?]">><<set $conv_friend3 to 9>><<redo>><</link>>
<<case 5>>\
"Everything!" your friend says with genuine excitement. "Real permaculture from people who've been practicing it for decades, but also something deeper. We're questioning the whole assumption that humans need to manage and control natural processes."
"There are people here who've been unlearning civilization for years. Not just fighting corporate control, but questioning the entire mindset that sees the planets as something to be rationally organized for human benefit."
They lean forward earnestly. "We're learning to see ourselves as part of the web of life, not as separate beings who need to control our environment to survive."
<<link "[That sounds like questioning some very deep assumptions]">><<set $conv_friend3 to 10>><<redo>><</link>>
<<link "[How do you unlearn civilization?]">><<set $conv_friend3 to 11>><<redo>><</link>>
<<case 6>>\
"We're realizing that just removing corporate control might not be enough," your friend replies thoughtfully. "The corporations are symptoms of a deeper problem - the whole civilizational mindset that sees the earth as raw material for human projects."
"Even the most well-intentioned community can reproduce patterns of domination over the natural world. We're trying to learn what it means to live as part of the planet's community rather than as its managers."
They point toward a group working on what looks like natural building techniques. "Look at them - they're not imposing a design on the landscape. They're asking what the land wants and working with those patterns."
<<link "[That requires a completely different way of thinking]">><<set $conv_friend3 to 12>><<redo>><</link>>
<<link "[How do you know what the land wants?]">><<set $conv_friend3 to 13>><<redo>><</link>>
<<case 7>>\
"It's been revolutionary," your friend says seriously. "I used to think the problem was that technology was controlled by corporations. Now I'm questioning whether some technologies, no matter who controls them, inevitably create relationships of domination."
"We're experimenting with what we call 'appropriate technology' - tools that enhance our connection to the living world rather than separating us from it. Sometimes that means using fewer tools, not better ones."
They smile wryly. "It's humbling to realize how much of what I thought was 'necessary' was actually just civilizational conditioning."
<<link "[What does appropriate technology look like?]">><<set $conv_friend3 to 14>><<redo>><</link>>
<<link "[That must challenge a lot of assumptions about progress]">><<set $conv_friend3 to 15>><<redo>><</link>>
<<case 8>>\
"It really is," your friend says warmly. "We're not just changing our politics or economics - we're changing our entire relationship to being alive. Instead of seeing ourselves as separate beings who need to control our environment, we're learning to be participants in the larger community of life."
"It's scary sometimes, giving up the illusion of control. But it's also incredibly liberating. There's so much wisdom in the natural patterns that we miss when we're trying to impose our own designs."
<<link "[How do you deal with the fear of giving up control?]">><<set $conv_friend3 to 16>><<redo>><</link>>
<<link "[What kind of wisdom are you discovering?]">><<set $conv_friend3 to 17>><<redo>><</link>>
<<case 9>>\
"That the land is alive in ways that civilization teaches us to ignore," your friend says with wonder. "Every piece of soil contains billions of organisms working together in ways we're only beginning to understand. Our role isn't to manage them, but to participate in their communities."
"We're learning traditional ecological knowledge from indigenous teachers who never forgot these relationships. They show us how to read the subtle communications between plants, how to understand what the ecosystem needs."
They gesture toward some unusual gardening techniques. "This isn't just sustainable agriculture - it's learning to be human in a way that enhances rather than diminishes the life around us."
<<link "[That sounds like remembering something we've lost]">><<set $conv_friend3 to 18>><<redo>><</link>>
<<link "[How do you learn to hear these communications?]">><<set $conv_friend3 to 19>><<redo>><</link>>
<<case 10>>\
"The deepest assumptions," your friend confirms. "Like the idea that humans are separate from nature. Or that intelligence means the ability to control your environment. Or that progress means accumulating more complex technologies."
"We're questioning whether the whole project of civilization - cities, agriculture, complex technologies - might be fundamentally incompatible with healthy relationships with the living world."
"It's not about going backwards, but about remembering forward - recovering ways of being human that we never completely lost."
<<link "[That's a radical vision of change]">><<set $conv_friend3 to 20>><<redo>><</link>>
<<link "[How do you envision life without civilization?]">><<set $conv_friend3 to 21>><<redo>><</link>>
<<case 11>>\
"It starts with recognizing how deeply civilizational thinking is embedded in everything," your friend explains. "The way we organize time, space, relationships, even our own thoughts. We have to consciously practice different ways of being."
"We spend time in wild places without trying to improve them. We practice making decisions through consensus that includes the more-than-human world. We're learning to measure wealth in terms of the health of our relationships rather than the accumulation of things."
"It's slow work, like learning a new language - except it's learning to remember our original language."
<<link "[How do you include the more-than-human world in decisions?]">><<set $conv_friend3 to 22>><<redo>><</link>>
<<link "[That sounds like reclaiming something ancestral]">><<set $conv_friend3 to 23>><<redo>><</link>>
<<case 12>>\
"Completely different," your friend agrees. "Instead of asking 'how can we use this land efficiently?' we ask 'how can we belong here in a way that makes the whole system more alive?'"
"It means giving up the assumption that human intelligence is superior to the intelligence of forests, rivers, or soil communities. These systems have been developing sustainable relationships for millions of years."
"We're learning humility - recognizing that our role might be to serve the larger web of life rather than expecting it to serve us."
<<link "[That reverses our entire sense of purpose]">><<set $conv_friend3 to 24>><<redo>><</link>>
<<link "[How do you practice this kind of humility?]">><<set $conv_friend3 to 25>><<redo>><</link>>
<<case 13>>\
"Through observation, listening, and developing what indigenous peoples call 'original instructions' - the innate capacity to understand our place in the web of relationships," your friend explains with excitement.
"We watch how water moves across the landscape, where plants thrive naturally, how animals create paths. We learn to feel the seasonal rhythms in our own bodies. Slowly, we start to sense the underlying patterns."
"It's not mystical - it's practical wisdom that our ancestors knew intimately. We're just remembering how to pay attention in ways that civilization taught us to forget."
<<link "[That requires slowing down significantly]">><<set $conv_friend3 to 26>><<redo>><</link>>
<<link "[What have you learned from this kind of observation?]">><<set $conv_friend3 to 27>><<redo>><</link>>
<<case 14>>\
"Tools that connect us more deeply to the living world rather than separating us from it," your friend describes. "Hand tools that let us feel the texture of the work. Materials that come from and return to the planet without toxicity."
"But more than specific technologies, it's about the intention behind them. Are we using this tool to dominate and control, or to participate and collaborate? Does it enhance our relationships or make us more isolated?"
"Sometimes the most appropriate technology is no technology at all - just our hands, our attention, our willingness to be present with what's already here."
<<link "[That must limit what kinds of projects you can undertake]">><<set $conv_friend3 to 28>><<redo>><</link>>
<<link "[How do you determine the right intention?]">><<set $conv_friend3 to 29>><<redo>><</link>>
<<case 15>>\
"Everything about progress," your friend laughs. "We've been conditioned to think that more complex always means better, that solving problems requires adding more layers of technology and control."
"But what if the problems themselves are created by that mindset? What if progress actually means learning to live more simply, more directly, in better relationship with the place where we are?"
"The indigenous teachers here say that true progress is measured by how many generations into the future your decisions will still be beneficial. That changes everything."
<<link "[Seven generation thinking changes everything]">><<set $conv_friend3 to 30>><<redo>><</link>>
<<link "[How do you resist the pull toward complexity?]">><<set $conv_friend3 to 31>><<redo>><</link>>
<<case 16>>\
"By developing trust in the intelligence of life itself," your friend says with conviction. "When we try to control everything, we cut ourselves off from the vast wisdom that's already operating in every ecosystem."
"The fear comes from the civilizational conditioning that says we'll die without our technologies and systems. But humans lived for hundreds of thousands of years embedded in the natural world, and they weren't just surviving - they were thriving."
"The real security comes from belonging to a living community that can take care of itself. That's more reliable than any technology we could build."
<<link "[That requires rebuilding different kinds of communities]">><<set $conv_friend3 to 32>><<redo>><</link>>
<<link "[How do you develop trust in natural processes?]">><<set $conv_friend3 to 33>><<redo>><</link>>
<<case 17>>\
"The wisdom of reciprocity," your friend says immediately. "Every healthy system is based on relationships of mutual benefit. Take without giving back, and the system breaks down. It's so simple, but civilization is built on the opposite principle."
"We're learning gift economy - not just human to human, but human to more-than-human. What gifts do we bring to the forest? How do we give back to the soil community? How do we participate in the great cycles of growth and decay?"
"This changes everything about how we think about wealth, success, even survival."
<<link "[That's a completely different economic vision]">><<set $conv_friend3 to 34>><<redo>><</link>>
<<link "[How do you practice reciprocity with the natural world?]">><<set $conv_friend3 to 35>><<redo>><</link>>
<<case 18>>\
"Exactly," your friend says with emotion. "We're remembering ways of being human that civilization has tried to make us forget. But they're still alive in our bodies, in our dreams, in the wild places that persist."
"Indigenous peoples never completely lost these connections, even under colonization. They're teaching us that the capacity for ecological relationship is still present in every human being."
"It's not about romanticizing the past, but about healing the separation between human and more-than-human that is killing both of us."
<<link "[How do you heal that separation?]">><<set $conv_friend3 to 36>><<redo>><</link>>
<<link "[What gives you hope for this kind of transformation?]">><<set $conv_friend3 to 37>><<redo>><</link>>
<<case 19>>\
"By quieting the civilizational noise in our minds and remembering how to be present," your friend explains. "Spending time in wild places without agenda. Learning to sit still until the forest accepts your presence."
"Plants communicate through chemical signals, root networks, relationships with fungi and insects. When we slow down enough, we start to notice the patterns, the responses, the subtle changes."
"It's like learning to speak a language we forgot we knew. The capacity is still there - it just takes practice to remember."
<<link "[That sounds like a form of meditation]">><<set $conv_friend3 to 38>><<redo>><</link>>
<<link "[How has this changed your daily life?]">><<set $conv_friend3 to 39>><<redo>><</link>>
<<case 20>>\
"It has to be," your friend says simply. "The problems we're facing - climate collapse, mass extinction, the destruction of indigenous communities - they all stem from the same root: the civilizational delusion that humans are separate from and superior to the natural world."
"You can't solve those problems by managing them better or finding cleaner technologies. You have to address the underlying mindset that created them."
"It's terrifying and beautiful at the same time - the possibility of remembering what it means to be human in a way that serves life rather than destroying it."
<<link "[What would that look like practically?]">><<set $conv_friend3 to 40>><<redo>><</link>>
<<link "[How do you handle people who think this is impossible?]">><<set $conv_friend3 to 41>><<redo>><</link>>
<<case 21>>\
"Not like anything we've been taught to imagine," your friend says thoughtfully. "Not primitive or backward, but elegant in ways that complex technologies can never be. Communities that are so well-adapted to their bioregions that they enhance rather than degrade the places where they live."
"Humans who know their place in the seasonal cycles, who understand their role in the community of all beings. Decisions made in council with the rivers, the soil, the plant and animal peoples."
"It sounds impossible from where we are now, but it's actually how humans lived for most of our existence. We have the capacity - we just need to remember."
<<link "[How do you bridge from here to there?]">><<set $conv_friend3 to 42>><<redo>><</link>>
<<link "[What role do places like Emma play in that transition?]">><<set $conv_friend3 to 43>><<redo>><</link>>
<<case 22>>\
"We've developed council processes that include speaking for the watershed, for the soil community, for the plants and animals who will be affected," your friend explains. "It sounds strange at first, but it changes the whole quality of decision-making."
"Someone sits with the question in the forest and returns with what they heard. Another person considers how the decision will affect the water cycle seven generations ahead. We move much more slowly, but the decisions are wiser."
<<link "[That requires a fundamental shift in how you see decision-making]">><<set $conv_friend3 to 32>><<redo>><</link>>
<<link "[How do you know if you're truly hearing the land's voice?]">><<set $conv_friend3 to 38>><<redo>><</link>>
<<case 23>>\
"Exactly - remembering forward," your friend says with warmth. "Indigenous peoples say the future lives in the old ways. Not because we can go backwards, but because the wisdom embedded in those ways is what we need to navigate forward."
"We're learning that our ancestors weren't primitive - they were highly sophisticated in ways that matter more than we realized. They knew how to belong to place, how to live within the means of their ecosystems."
<<link "[What does belonging to place actually mean?]">><<set $conv_friend3 to 27>><<redo>><</link>>
<<link "[How do you apply ancestral wisdom to current challenges?]">><<set $conv_friend3 to 30>><<redo>><</link>>
<<case 24>>\
"It does," your friend agrees. "Instead of asking what the land can do for us, we ask what we can do for the land. Instead of managing resources, we become participants in the community of all life."
"It's humbling but also deeply fulfilling. When you find your proper place in the web of relationships, everything becomes more alive, more meaningful."
<<link "[How do you find your proper place?]">><<set $conv_friend3 to 26>><<redo>><</link>>
<<link "[What does it feel like to serve the larger web?]">><<set $conv_friend3 to 37>><<redo>><</link>>
<<case 25>>\
"Through daily practice of listening before acting," your friend says. "We start each work day by sitting with the land, asking what wants to be done rather than imposing our agenda."
"We practice gratitude for everything we receive - the air we breathe, the water we drink, the food that gives its life for ours. Humility grows naturally from recognizing how much we depend on gifts we didn't create."
<<link "[That changes your relationship to everything]">><<set $conv_friend3 to 35>><<redo>><</link>>
<<link "[How do you maintain this practice in difficult times?]">><<set $conv_friend3 to 33>><<redo>><</link>>
<<case 26>>\
"Way down," your friend laughs. "Everything in civilization is designed for speed and efficiency. But relationship requires presence, and presence requires time."
"We're learning that the pace of healing is different from the pace of doing. You can't rush intimacy with place any more than you can rush intimacy with a person."
<<link "[How do you resist the pressure to move faster?]">><<set $conv_friend3 to 31>><<redo>><</link>>
<<link "[What have you discovered about the pace of healing?]">><<set $conv_friend3 to 39>><<redo>><</link>>
<<case 27>>\
"That everything is in relationship," your friend says with wonder. "The forest isn't a collection of individual trees competing for resources - it's a collaborative network sharing information and nutrients."
"Our role as humans isn't to stand outside this network managing it, but to find our place within it, contributing our unique gifts while receiving what we need."
<<link "[What unique gifts do humans bring to the network?]">><<set $conv_friend3 to 34>><<redo>><</link>>
<<link "[How do you practice being part of the network?]">><<set $conv_friend3 to 35>><<redo>><</link>>
<<case 28>>\
"It does, and that's been liberating," your friend admits. "We've had to ask: which projects are actually necessary, and which are just expressions of civilizational ambition?"
"Many of the things we thought we needed to build already exist in natural systems, if we learn to work with them rather than replacing them."
<<link "[What have you discovered you don't actually need?]">><<set $conv_friend3 to 31>><<redo>><</link>>
<<link "[How do you work with existing natural systems?]">><<set $conv_friend3 to 33>><<redo>><</link>>
<<case 29>>\
"By asking: does this tool bring me closer to or further from the living world?" your friend explains. "Does it increase my dependence on systems I don't understand, or does it enhance my direct relationship with place?"
"The right intention comes from love for the world, not fear of it. Tools born from love tend to be simpler, more beautiful, more respectful."
<<link "[How has this changed what you choose to use?]">><<set $conv_friend3 to 39>><<redo>><</link>>
<<link "[What does love for the world look like practically?]">><<set $conv_friend3 to 37>><<redo>><</link>>
<<case 30>>\
"Seven generations thinking revolutionizes everything," your friend says passionately. "When you're making decisions based on their impact 200 years from now, you can't justify extraction, pollution, or any form of taking that doesn't give back."
"It connects us to both our ancestors and our descendants in ways that make the present moment sacred. Every choice becomes ceremony."
<<link "[How do you practically apply this timeframe?]">><<set $conv_friend3 to 40>><<redo>><</link>>
<<link "[What does it mean that every choice becomes ceremony?]">><<set $conv_friend3 to 42>><<redo>><</link>>
<<case 31>>\
"By remembering that simple doesn't mean easy," your friend reflects. "Living simply in right relationship with place requires tremendous skill and wisdom. It's more complex than building machines - it's learning to be human."
"The pull toward technological complexity is often just avoiding the harder work of developing our own capacities for attention, relationship, and belonging."
<<link "[What does developing those capacities look like?]">><<set $conv_friend3 to 38>><<redo>><</link>>
<<link "[How do you maintain motivation for this harder work?]">><<set $conv_friend3 to 37>><<redo>><</link>>
<<case 32>>\
"Communities based on ecological rather than economic relationships," your friend says. "Where security comes from the health of the land and the strength of relationships, not from accumulating resources."
"We're learning that true resilience comes from belonging to place so deeply that you become part of its immune system, part of its capacity to heal and regenerate."
<<link "[How do you build that kind of belonging?]">><<set $conv_friend3 to 36>><<redo>><</link>>
<<link "[What does economic security look like in this vision?]">><<set $conv_friend3 to 34>><<redo>><</link>>
<<case 33>>\
"Through direct experience of how well natural systems work when left to their own intelligence," your friend says. "When you see how a forest manages water, nutrients, and energy with zero waste, you start to trust that intelligence."
"We practice small experiments in letting go of control and watching what happens. Usually, the results are more beautiful and sustainable than what we would have designed."
<<link "[What kind of experiments have you tried?]">><<set $conv_friend3 to 39>><<redo>><</link>>
<<link "[How do you handle when experiments don't work out?]">><<set $conv_friend3 to 41>><<redo>><</link>>
<<case 34>>\
"Wealth measured in relationships, health, beauty, and the flourishing of all life," your friend says. "Instead of accumulating money or things, we accumulate connections, skills, and understanding."
"Gift economy means recognizing that everything we have comes as gifts - from the sun, the soil, the community of all beings. Our role is to keep the gifts flowing, not to hoard them."
<<link "[How do you keep gifts flowing practically?]">><<set $conv_friend3 to 35>><<redo>><</link>>
<<link "[What happens to individual security in this system?]">><<set $conv_friend3 to 32>><<redo>><</link>>
<<case 35>>\
"By offering our labor, our attention, our gratitude," your friend explains. "We compost our waste, we sing to the plants, we learn the names and needs of our more-than-human neighbors."
"Everything becomes an opportunity for relationship. The work of living becomes the work of loving the world back to health."
<<link "[That sounds like a completely different way of being alive]">><<set $conv_friend3 to 42>><<redo>><</link>>
<<link "[How do you maintain this practice daily?]">><<set $conv_friend3 to 39>><<redo>><</link>>
<<case 36>>\
"Through remembering that we never were separate," your friend says softly. "The separation is a story civilization tells us. But our bodies are made of earth and water and air. We're part of the conversation that life is always having with itself."
"Healing happens when we stop trying to transcend our animal nature and start celebrating it. When we remember that being human means being earth conscious of itself."
<<link "[What does celebrating our animal nature look like?]">><<set $conv_friend3 to 40>><<redo>><</link>>
<<link "[How do you help others remember this connection?]">><<set $conv_friend3 to 43>><<redo>><</link>>
<<case 37>>\
"The fact that this conversation is happening," your friend says with quiet joy. "That people everywhere are waking up to these possibilities. That indigenous peoples have kept the old ways alive through everything."
"And the land itself - it's so resilient, so ready to heal the moment we stop destroying it. Every abandoned lot that turns into forest, every community that chooses cooperation over competition."
<<link "[What role can each person play in this transformation?]">><<set $conv_friend3 to 43>><<redo>><</link>>
<<link "[How do you nurture hope in difficult times?]">><<set $conv_friend3 to 41>><<redo>><</link>>
<<case 38>>\
"It is a form of meditation - but not the kind that separates you from the world," your friend clarifies. "This is meditation that roots you deeper into relationship with place."
"We sit with the land until we remember we're not observers of nature, but participants in it. Until the boundaries between self and world start to dissolve in the most practical way."
<<link "[How has this changed your sense of self?]">><<set $conv_friend3 to 40>><<redo>><</link>>
<<link "[What practical changes come from this practice?]">><<set $conv_friend3 to 39>><<redo>><</link>>
<<case 39>>\
"Everything is different," your friend says. "I wake up greeting the day as a participant in the community of all life. I eat with gratitude for the plants and animals who gave their lives. I work as ceremony, as gift."
"The simplest tasks - tending plants, preparing food, maintaining shelter - become ways of loving the world. Life becomes sacred not through ritual, but through attention."
<<link "[That sounds like finding the sacred in the ordinary]">><<set $conv_friend3 to 42>><<redo>><</link>>
<<link "[How do you share this way of living with others?]">><<set $conv_friend3 to 43>><<redo>><</link>>
<<case 40>>\
"Small communities embedded in bioregions, making decisions in council with the more-than-human world," your friend envisions. "People who know their watershed, their soil community, their plant and animal neighbors."
"Local economies based on gift and reciprocity. Children growing up knowing they belong to the living world. Elders who carry the stories of how to live in right relationship."
<<link "[How do you work toward this vision from where we are now?]">><<set $conv_friend3 to 42>><<redo>><</link>>
<<link "[What gives you confidence this is possible?]">><<set $conv_friend3 to 37>><<redo>><</link>>
<<case 41>>\
"By understanding that it seems impossible only from within the civilizational worldview," your friend responds gently. "Every transformation that matters has seemed impossible until it happened."
"I focus on the work right in front of me - learning to belong to this place, developing real relationships, practicing reciprocity. The large changes emerge from countless small ones."
<<link "[What small changes are you focusing on?]">><<set $conv_friend3 to 39>><<redo>><</link>>
<<link "[How do you maintain hope when progress feels slow?]">><<set $conv_friend3 to 37>><<redo>><</link>>
<<case 42>>\
"By living the bridge," your friend says simply. "Every time we choose relationship over isolation, reciprocity over extraction, presence over efficiency, we're building the bridge."
"Places like Emma are laboratories for remembering. We're not trying to create a perfect model to replicate everywhere, but learning what it means to be human in ways that serve life."
<<link "[What have you learned that others could apply?]">><<set $conv_friend3 to 43>><<redo>><</link>>
<<case 43>>\
"Emma is like a seed," your friend reflects. "Not because we have the answers, but because we're asking the right questions. How do humans belong to place? How do we participate in the community of all life?"
"Other seeds are sprouting everywhere - people leaving cities to learn from the land, indigenous communities reclaiming traditional practices, children who still remember how to talk to trees."
"The transformation is already happening. We're just learning to recognize it, to nourish it, to trust it."
<<link "[End conversation]">><<set $conv_friend3 to 44>><<dialogclose>><</link>>
<<case 44>>\
Your friend looks out at the community around you with deep satisfaction, but also with a sense of work yet to be done. Their transformation has been profound - from someone seeking comfort within familiar systems to someone questioning the very foundations of those systems.
"Thank you," they say quietly. "For being willing to question everything with me. For not accepting the comfortable lies when the uncomfortable truths were what we needed."
"This conversation, this community, this work of remembering how to be human - it's just the beginning. But it feels like we're finally heading home."
<<link "[End conversation]">><<dialogclose>><</link>>
<</switch>>\
<</do>>\
<</dialog>>\
<</widget>>
<<widget "talk_to_dade">>
<<dialog 'Dade - Hacker & Anarchist'>>\
<<do>>\
<<if $conv_dade is undefined>><<set $conv_dade to 1>><</if>>\
<<switch $conv_dade>>\
<<case 1>>\
A figure hunched over a battered datapad looks up as you approach. Dade is younger than you expected, with wild hair and intense eyes that seem to see through everything. His clothes are mismatched and functional, covered in makeshift tech modifications. Everything about him screams outsider, even in this supposedly welcoming community.
"Another newcomer," he says without looking up from his screen. "Let me guess, your friend told you this place was paradise? That we've achieved true anarchism through 'peaceful coexistence' with the boot on our necks?"
His fingers dance across the datapad with practiced precision, lines of code streaming past too fast to follow.
"Name's Dade. I hack things. And right now, I'm hacking the comfortable lies this place is built on."
<<link "[What lies?]">><<set $conv_dade to 2>><<redo>><</link>>
<<link "[You seem angry about everything]">><<set $conv_dade to 5>><<redo>><</link>>
<<case 2>>\
Dade's eyes light up with fierce intelligence. "Where do I start? The 'consensus decisions' that somehow always align with corporate interests? The 'peaceful negotiations' that look suspiciously like surrender?"
He leans forward, lowering his voice. "This whole place is a façade. A corporate-sponsored anarchist theme park designed to neutralize real resistance. And the worst part? People like Talis actually believe they're still fighting the system."
"I've been tracing the data flows, the supply chains, the communication networks. This isn't anarchism: it's managed dissent."
<<link "[That's a serious accusation]">><<set $conv_dade to 3>><<redo>><</link>>
<<link "[Can you prove it?]">><<set $conv_dade to 6>><<redo>><</link>>
<<case 3>>\
"Serious? It's the only thing that matters!" Dade's voice cracks with passion. "While everyone here plays house in their sanitized revolution, real anarchists are dying fighting corporate oppression across the galaxy."
"True anarchism isn't about building sustainable communities that don't threaten power structures. It's about tearing down those structures entirely. It's about refusing to compromise with systems that commodify human suffering."
He gestures angrily at the peaceful surroundings. "This place teaches people that resistance means asking politely for scraps from the corporate table."
<<link "[Maybe peaceful change is better than violence]">><<set $conv_dade to 7>><<redo>><</link>>
<<link "[What would real anarchism look like?]">><<set $conv_dade to 4>><<redo>><</link>>
<<case 4>>\
"Real anarchism?" Dade's eyes blaze with conviction. "No hierarchies. No compromises with oppressive systems. Communities that actually control their own resources instead of relying on corporate supply chains."
"It means accepting that you can't reform systems designed to exploit people. You have to replace them entirely. And yes, sometimes that requires confrontation with those who profit from oppression."
"Talis and his reformist friends want anarchism without risk, revolution without sacrifice. That's not how liberation works."
<<link "[That sounds like it would require a lot of sacrifice]">><<set $conv_dade to 8>><<redo>><</link>>
<<link "[How do you know Talis is wrong?]">><<set $conv_dade to 6>><<redo>><</link>>
<<case 5>>\
"Angry?" Dade actually laughs, though there's no humor in it. "I'm not angry, I'm awake. Everyone else here is sleepwalking through their own domestication."
"You want to know what makes me angry? Watching people who call themselves anarchists bow to corporate authority. Seeing real rebellion co-opted and neutered."
He turns his datapad toward you, showing streams of encrypted data. "I'm not angry. I'm working. While they hold assemblies, I'm gathering evidence."
<<link "[Evidence of what?]">><<set $conv_dade to 6>><<redo>><</link>>
<<case 6>>\
Dade glances around nervously before speaking. "I've been tracking communication patterns, resource flows, decision-making processes. And I found something interesting about our beloved coordinator Talis."
"He has an abandoned ship not far from here. Old corporate registry, but the interesting part is what's in the storage logs. I managed to crack partial access to the manifests..."
His fingers fly across the datapad. "But here's the problem. I can't leave this center without being followed. Talis has people watching me. They think I don't notice, 'but anarchist' surveillance is still surveillance."
<<link "[What do you need me to do?]">><<set $conv_dade to 9>><<redo>><</link>>
<<link "[This sounds paranoid]">><<set $conv_dade to 10>><<redo>><</link>>
<<case 7>>\
"Peaceful change?" Dade's voice drips with disdain. "Tell that to the workers in the corporate mines. Tell that to the communities bombed for resisting resource extraction."
"This 'peaceful' community exists because it poses no threat to the system. The moment it actually challenged corporate power, it would be crushed. The peace here is built on surrender."
"Violence? The corporations commit violence every day through exploitation, starvation, environmental destruction. Fighting back isn't violence, it's self-defense."
<<link "[I understand your point]">><<set $conv_dade to 4>><<redo>><</link>>
<<case 8>>\
"Everything worthwhile requires sacrifice," Dade says firmly. "The question is whether you're willing to sacrifice your comfort to fight oppression, or sacrifice your principles to maintain comfort."
"Your friend chose comfort. Most people here did. But some of us still remember what we're supposed to be fighting for."
<<link "[What specifically do you need me to do?]">><<set $conv_dade to 9>><<redo>><</link>>
<<case 9>>\
Dade's expression becomes intensely focused. "Talis's old ship is on this sector. The storage locker is locked, but a smart survivor like you can figure it out. What I need is the data inside. Specifically any communication logs, supply records, or diplomatic files."
"If I'm right about this place being a corporate operation, those records will prove it. But I need someone who can move freely to retrieve them."
He hands you a small data chip. "This contains the ship's location. Send everything you find to my datapad. But be discrete, and don't tell your friend about this yet. They might not... approve of my methods."
<<link "[I'll help you]">><<set $conv_dade to 11>><<redo>><</link>>
<<link "[This feels like betraying my friend's trust]">><<set $conv_dade to 12>><<redo>><</link>>
<<case 10>>\
"Paranoid?" Dade's laugh is bitter. "I spent years breaking corporate security systems. I know what surveillance looks like. And I know what controlled opposition looks like too."
"But fine, call it paranoia. Just remember that when you discover I was right about everything."
<<link "[Maybe I should help you prove it then]">><<set $conv_dade to 9>><<redo>><</link>>
<<link "[I think I'll talk to other people first]">><<set $conv_dade to 13>><<redo>><</link>>
<<case 11>>\
"Good." Dade's intensity softens slightly with relief. "You might be the first person here willing to question what we're told instead of just accepting it."
"Remember: Talis's ship. Get those data files. While you're doing that, I'll keep digging into the communication networks here. Between us, we might actually uncover the truth about this place."
"And... thanks. Real anarchists look out for each other."
<<link "[I'll get you those files]">><<set $conv_dade to 14>><<add_task "Find ship" 0>><<dialogclose>><</link>>
<<case 12>>\
Dade's expression hardens. "Betraying their trust? What about their betrayal of anarchist principles? What about their trust in systems designed to exploit us?"
"But I get it. It's easier to trust comfortable lies than uncomfortable truths. Just remember, when you realize what this place really is, it'll be too late to do anything about it."
<<link "[Maybe I'll help after all]">><<set $conv_dade to 9>><<redo>><</link>>
<<link "[I need to think about this]">><<set $conv_dade to 13>><<redo>><</link>>
<<case 13>>\
"Talk to whoever you want," Dade says, returning to his datapad. "But remember, the people here have been conditioned to accept this version of reality. They're not going to tell you anything that challenges their comfortable worldview."
"When you're ready to hear the truth instead of pleasant fiction, you know where to find me."
<<link "[End conversation]">><<set $conv_dade to 15>><<dialogclose>><</link>>
<<case 14>>\
Dade nods approvingly, his fingers already returning to the datapad. "Talis's old ship. Don't let anyone follow you."
"The truth is worth the risk."
<<link "[End conversation]">><<dialogclose>><</link>>
<<case 15>>\
Dade looks up briefly from his datapad, his expression unreadable.
"Changed your mind about seeking the truth yet?" he asks. "The offer still stands, but time is running out."
<<if !$task.includes("Find ship")>>\
<<link "[I'll help you with the data retrieval]">><<set $conv_dade to 9>><<redo>><</link>>
<</if>>\
<<link "[End conversation]">><<dialogclose>><</link>>
<<case 16>>\
Dade looks up from his datapad with grim satisfaction, his eyes blazing with vindicated anger. Lines of decoded data scroll across his screen, damning evidence laid bare in glowing text.
"You did it. You actually got the data." His voice carries a mixture of triumph and deep disappointment. "And it's worse than I thought. Much worse."
He turns the screen toward you, showing decrypted communications and financial records. "Every suspicion I had, every 'paranoid' theory. All confirmed. This place isn't anarchism, it's anarchist theater."
<<link "[What did you find?]">><<set $conv_dade to 17>><<redo>><</link>>
<<link "[How bad is it?]">><<set $conv_dade to 18>><<redo>><</link>>
<<case 17>>\
"Where do I start?" Dade's fingers dance across the datapad, pulling up file after file. "First, that 'vegan food' they sell at the social center? It's processed synthetic garbage, made from the same fuel compounds as corporate snacks. The real crops they grow here? Reserved for the leadership."
"The 'consensus' decisions? There's a hidden hierarchy. Talis and his inner circle use their popularity and social connections to manipulate every vote, every choice. Democracy theater at its finest."
His expression grows darker. "But the worst part? The information broker."
<<link "[What about the broker?]">><<set $conv_dade to 19>><<redo>><</link>>
<<case 18>>\
"Bad enough to make me want to burn this place down," Dade says flatly. "Your friend isn't living in anarchist paradise. They're living in a corporate-sponsored lie designed to neutralize real resistance."
"Talis has been selling coordinates to this planet through the information broker for 10,000 credits a piece. They split the profits. But when people can't pay..." He pauses, his jaw clenching. "When they can't pay, the broker makes them kill someone who 'wronged' them."
"Then she keeps evidence of the murder as insurance. Instant blackmail material against anyone who might threaten their little operation."
<<link "[That's monstrous]">><<set $conv_dade to 20>><<redo>><</link>>
<<link "[How do the corporations fit in?]">><<set $conv_dade to 21>><<redo>><</link>>
<<case 19>>\
"Talis cut a deal with her," Dade says, his voice cold with rage. "She sells coordinates to Anarchio for 10,000 credits, and they split the money. A thriving business selling false hope to desperate people."
"But here's the sick part: when people can't afford the coordinates, she offers them a 'job.' Kill someone who supposedly wronged them in the past, and get the coordinates for free."
His fingers tighten on the datapad. "Then she keeps the murder evidence as insurance. Anyone who gets those coordinates through violence becomes a potential blackmail victim forever."
<<link "[They're creating murderers]">><<set $conv_dade to 22>><<redo>><</link>>
<<link "[What about the corporations?]">><<set $conv_dade to 21>><<redo>><</link>>
<<case 20>>\
"Monstrous and profitable," Dade spits. "They're not just selling false hope: they're turning desperate people into killers and then controlling them with blackmail. It's the perfect system for neutralizing threats to corporate power."
"And the beautiful irony? The corporations don't even need to lift a finger. This place does their work for them, channeling revolutionary energy into harmless role-playing."
<<link "[The corporations know about this?]">><<set $conv_dade to 21>><<redo>><</link>>
<<case 21>>\
"Of course they know!" Dade's laugh is bitter and harsh. "The data logs show regular reports to corporate oversight committees. Anarchio exists because the corporations consider it 'strategically useful' for containing dissent."
"They even have a name for it in their files: Project Pacification. A fake anarchist planet that makes real anarchists look like naive dreamers while funneling potential revolutionaries into a controlled environment."
He leans forward intensely. "But there's something else. Something that gives me hope."
<<link "[What do you mean?]">><<set $conv_dade to 23>><<redo>><</link>>
<<case 22>>\
"Exactly," Dade says grimly. "They're creating compromised assets: people who committed murder to get here, who can be controlled through blackmail forever. The perfect way to ensure that anyone who finds this place remains docile."
"Your friend doesn't know they're living in a prison designed to look like paradise. But at least now we know the truth."
<<link "[What do we do with this information?]">><<set $conv_dade to 23>><<redo>><</link>>
<<case 23>>\
<<add_task "Travel to Emma" 24>>\
Dade's eyes burn with renewed purpose as he pulls up a new set of coordinates on his screen. "There's another planet mentioned in the corporate files. Emma. They classify it as a 'significant threat' that requires 'active containment measures.'"
"If the corporations are actively trying to stop people from reaching Emma, that tells me it might be the real thing. Actual anarchism that threatens their power structure."
He copies the coordinates to a data chip and holds it out to you. "I'm going to Emma. The question is: are you coming with me? Or are you going to stay here in this corporate theme park with your friend?"
<<link "[I'll come with you to Emma]">><<set $conv_dade to 24>><<redo>><</link>>
<<link "[What about my friend?]">><<set $conv_dade to 25>><<redo>><</link>>
<<link "[This is a lot to process]">><<set $conv_dade to 26>><<redo>><</link>>
<<case 24>>\
Dade's grim expression softens with something approaching respect. "Finally, someone willing to choose truth over comfort. Emma won't be easy. If the corporations are actively fighting it, the journey there will be dangerous."
"But at least we'll be fighting for something real instead of playing anarchist dress-up in a corporate sandbox."
He stands up, gathering his equipment. "I'm leaving tonight. Meet me at Emma if you're serious about this. And... thanks. For helping me expose the truth, even when it was ugly."
<<link "[I'll be there]">><<set $conv_dade to 27>><<dialogclose>><</link>>
<<case 25>>\
"Your friend?" Dade's expression becomes pained. "They've bought into the lie completely. Trying to convince them will be like trying to wake someone from a pleasant dream."
"You can try, but remember: they've found a comfortable place where they feel like they're living their values without any real risk. Most people won't give that up, even for the truth."
"The choice is yours. Stay here and pretend this is anarchism, or come with me to find the real thing. But choose quickly, I'm leaving tonight."
<<link "[I need to try to convince them first]">><<set $conv_dade to 28>><<redo>><</link>>
<<link "[You're right, they won't listen]">><<set $conv_dade to 24>><<redo>><</link>>
<<case 26>>\
"I understand," Dade says, though his urgency remains. "It's a lot to take in. Learning that your friend's paradise is a corporate psyop designed to neutralize anarchist resistance... it's not easy."
"But while you're processing, real anarchists on Emma are fighting for their lives against corporate oppression. Every day we delay is another day the corporations strengthen their grip."
"I'm leaving for Emma tonight. If you're there, I'll meet you. If not... enjoy your corporate-sponsored anarchist vacation."
<<link "[I'll make my decision by tonight]">><<set $conv_dade to 29>><<dialogclose>><</link>>
<<case 27>>\
"Good. Real anarchism requires real commitment." Dade nods firmly. "Don't bring anything that can be traced back to this place."
"We're going to find out what anarchism looks like when it actually threatens corporate power."
<<link "[End conversation]">><<dialogclose>><</link>>
<<case 28>>\
"Try if you want," Dade says with sad resignation. "But don't be surprised when they choose comfortable lies over uncomfortable truths. Most people do."
"I'll be at the eastern edge tonight. If you convince them, bring them along. If not... the offer stands for you alone."
<<link "[I understand]">><<set $conv_dade to 29>><<dialogclose>><</link>>
<<case 29>>\
Dade looks up from packing his equipment, his expression unreadable. "Made your choice yet? The truth about this place won't change just because it's inconvenient."
"Emma coordinates are still available. Last chance to choose real anarchism over corporate theater."
<<link "[I'll come with you]">><<set $conv_dade to 24>><<redo>><</link>>
<<link "[I need more time]">><<dialogclose>><</link>>
<</switch>>\
<</do>>\
<</dialog>>\
<</widget>>
<<widget "talk_to_talis">>
<<dialog 'Talis - Community Organizer'>>\
<<do>>\
<<if $conv_talis is undefined>><<set $conv_talis to 1>><</if>>\
<<switch $conv_talis>>\
<<case 1>>\
Talis approaches you with a warm, practiced smile. He's well-dressed in clean, flowing robes that speak of comfortable living, and his manner is polished and diplomatic. Everything about him suggests someone accustomed to being listened to and respected.
"Welcome to Anarchio, friend! I'm Talis, one of the community coordinators here." His voice is smooth and reassuring. "Your friend mentioned you might be coming. It's wonderful to see more people finding their way to our little experiment in cooperative living."
He gestures broadly at the surroundings. "What you see here represents years of careful negotiation and patient building. True anarchism isn't about chaos or destruction. It's about finding sustainable ways for people to live together in harmony."
<<link "[How do you make decisions here?]">><<set $conv_talis to 2>><<redo>><</link>>
<<link "[This place seems almost too good to be true]">><<set $conv_talis to 5>><<redo>><</link>>
<<case 2>>\
"Ah, excellent question!" Talis's eyes light up. "We use consensus-based decision making, of course. Everyone has a voice, everyone gets heard. It's not always easy. Sometimes people get caught up in ideological purity rather than practical solutions."
He pauses, a slight frown crossing his features. "The challenge is that many people prefer to criticize rather than collaborate. They want to tear down everything without offering constructive alternatives. Here, we've learned that real change comes through patient dialogue and compromise."
"We've had to make some... pragmatic accommodations with the outside world. It's not perfect, but it's sustainable."
<<link "[What kind of accommodations?]">><<set $conv_talis to 3>><<redo>><</link>>
<<link "[Some people might call that selling out]">><<set $conv_talis to 6>><<redo>><</link>>
<<case 3>>\
Talis's expression becomes more serious, more carefully measured. "Well, we've established peaceful coexistence agreements with several corporate entities. They respect our autonomy, and we... we respect certain boundaries."
"You won't find any corporate buildings here. We've maintained that much of our independence. But we do follow certain interplanetary laws and avoid any actions that might be considered... disruptive to galactic commerce."
He leans forward earnestly. "Some of our more radical members call it compromise, but I call it wisdom. Violence and confrontation only lead to more suffering. This way, we can build something lasting."
<<link "[What about food independence?]">><<set $conv_talis to 4>><<redo>><</link>>
<<link "[That sounds like you're being controlled]">><<set $conv_talis to 7>><<redo>><</link>>
<<case 4>>\
Talis's confident demeanor wavers slightly. "Ah, yes, that's... that's one of our ongoing challenges. Building sustainable food systems takes time, and we're still in the transition phase."
"The truth is, we're facing some supply difficulties. Our agricultural experiments haven't yielded the results we hoped for, and we're still dependent on certain... external sources for basic nutrition."
He straightens up, regaining some composure. "Which brings me to a request, actually. Our community kitchen is running low on resources. If you could spare even a small donation, say, 500 credits, it would help us feed many people for weeks."
<<if $cred gte 500>>\
<<link "[Donate 500 credits]">><<set $conv_talis to 8>><<set $cred -= 500>><<redo>><</link>>
<</if>>\
<<link "[I need to think about it]">><<set $conv_talis to 9>><<redo>><</link>>
<<link "[That's a lot of money for food]">><<set $conv_talis to 10>><<redo>><</link>>
<<case 5>>\
"I understand the skepticism," Talis says with a knowing smile. "Many people come here expecting either a utopia or a disaster. The reality is more nuanced."
"We've worked very hard to create something stable and peaceful. Yes, we've had to make compromises. Real anarchism requires adapting to existing power structures rather than simply fighting them."
"The corporations could crush us easily if they wanted to. Instead, we've found ways to coexist. Is it perfect? No. But it's better than the alternatives."
<<link "[Tell me about these compromises]">><<set $conv_talis to 3>><<redo>><</link>>
<<case 6>>\
Talis's smile becomes strained. "That's exactly the kind of thinking that holds back real progress. 'Selling out,' 'not pure enough', this absolutist mentality is why so many anarchist communities fail."
"We could have chosen ideological purity and been destroyed within months. Instead, we chose to build something real, something that can actually help people. Sometimes that means making difficult choices."
"The radicals who criticize us, where are their successful communities? What have they built? It's easy to tear down; it's hard to create."
<<link "[Maybe they have a point though]">><<set $conv_talis to 11>><<redo>><</link>>
<<link "[I can see the difficulty]">><<set $conv_talis to 4>><<redo>><</link>>
<<case 7>>\
"Controlled?" Talis's voice sharpens slightly before he catches himself. "That's a rather harsh interpretation. We prefer 'managed coexistence.'"
"Look around you: do you see corporate logos? Military checkpoints? Surveillance drones? We've maintained our basic autonomy while avoiding unnecessary conflict."
"Perhaps if you stayed here longer, you'd understand the delicate balance we've achieved. It's not perfect, but it's peace."
<<link "[What about food production?]">><<set $conv_talis to 4>><<redo>><</link>>
<<case 8>>\
"Thank you so much!" Talis's relief is evident. "This kind of solidarity is what makes our community possible. With your contribution, we can keep the kitchen running for several more weeks."
"You see? This is how real anarchism works: mutual aid, practical support, people taking care of each other. Not grand gestures or revolutionary rhetoric."
"I hope you'll consider staying with us. We could use someone with your resources and... pragmatic outlook."
<<link "[I'll think about it]">><<set $conv_talis to 12>><<redo>><</link>>
<<case 9>>\
"Of course, of course. I don't want to pressure you." Talis nods understandingly, though disappointment flickers across his face.
"Just remember that community requires investment from all of us. We can't build a better world without resources, and unfortunately, idealism alone doesn't fill hungry stomachs."
<<link "[I understand]">><<set $conv_talis to 12>><<redo>><</link>>
<<case 10>>\
"I know it seems like a lot," Talis admits, his diplomatic mask slipping slightly. "But running a sustainable community is expensive. Food that isn't processed corporate slop costs more. Equipment for our workshops costs more. Everything costs more when you're trying to do it ethically."
"This is exactly what I mean about the challenges we face. People want the benefits of an anarchist community but aren't always willing to contribute what it actually takes to maintain it."
<<if $cred gte 500>>\
<<link "[Alright, I'll donate]">><<set $conv_talis to 8>><<set $cred -= 500>><<redo>><</link>>
<</if>>\
<<link "[I need to keep my credits for now]">><<set $conv_talis to 9>><<redo>><</link>>
<<case 11>>\
Talis's expression hardens. "The 'radicals' like Dade? All they do is ask uncomfortable questions and spread suspicion. They'd rather see our community fail than succeed through compromise."
"I've spent years building relationships, negotiating agreements, creating the stability you see here. People like Dade would destroy all of that for the sake of ideological purity."
"But I suppose you'll have to decide for yourself who you trust. Those of us who've built something real, or those who only know how to tear things down."
<<link "[I should talk to different people]">><<set $conv_talis to 12>><<redo>><</link>>
<<case 12>>\
"Of course. Feel free to explore, talk to whoever you like. I think you'll find that most of our community members appreciate the peace and stability we've worked so hard to create."
Talis's smile returns, though it seems more forced now. "Just remember: in any community, there will always be those who prefer conflict to cooperation. Choose your influences wisely."
<<link "[End conversation]">><<set $conv_talis to 13>><<dialogclose>><</link>>
<<case 13>>\
Talis nods politely when he sees you, maintaining his diplomatic demeanor.
"I hope you're finding our community enlightening. Remember, our kitchen donation drive is ongoing if you'd like to contribute to our mutual aid efforts."
<<if $cred gte 500>>\
<<link "[Donate 500 credits]">><<set $conv_talis to 8>><<set $cred -= 500>><<redo>><</link>>
<</if>>\
<<link "[End conversation]">><<dialogclose>><</link>>
<<case 14>>\
When Talis sees you approaching, his polished smile falters for just a moment. There's something different in his eyes now: a wariness that wasn't there before.
"Ah, back again? I hope you've been finding our community... educational." His voice carries a subtle edge beneath the diplomatic veneer.
"I hear you've been spending time with some of our more... conspiracy-minded residents. I hope they haven't been filling your head with wild theories."
<<link "[I found some interesting information about this place]">><<set $conv_talis to 15>><<redo>><</link>>
<<link "[End conversation]">><<dialogclose>><</link>>
<<case 15>>\
Talis's expression hardens slightly, though he maintains his diplomatic composure. "Oh? And what 'information' would that be? Let me guess: Dade has been sharing his paranoid fantasies about corporate conspiracies?"
"You know, it's fascinating how some people prefer dramatic fiction to the mundane reality of actually building a functioning community. It's much easier to imagine secret plots than to do the hard work of compromise and cooperation."
His tone becomes patronizing. "Whatever theories you've heard, I assure you the truth is far less exciting than the conspiracy theorists would have you believe."
<<link "[I have data from your old ship]">><<set $conv_talis to 16>><<redo>><</link>>
<<link "[What about the information broker?]">><<set $conv_talis to 17>><<redo>><</link>>
<<link "[Never mind]">><<dialogclose>><</link>>
<<case 16>>\
For the first time, Talis's mask completely slips. His eyes flash with cold anger before he quickly reassembles his diplomatic facade, though it's clearly strained now.
"My old ship?" He laughs, but there's no warmth in it. "That's quite a story. Breaking into someone's private property, stealing personal data... that sounds like the kind of behavior anarchists are supposed to oppose, doesn't it?"
"But let's say, hypothetically, that you did access some old files. What exactly do you think you found? Communications about supply chains? Financial arrangements? The boring logistics of keeping a community fed and functioning?"
His voice grows colder. "The world isn't a simple place where good and evil are clearly labeled. Sometimes survival requires... pragmatic arrangements."
<<link "[You've been lying to everyone here]">><<set $conv_talis to 18>><<redo>><</link>>
<<link "[This place is a corporate operation]">><<set $conv_talis to 19>><<redo>><</link>>
<<case 17>>\
Talis's laugh is sharp and cynical. "The information broker? What an interesting topic to bring up. I suppose someone told you some story about coordinates and payments?"
"Let me ask you something: in a galaxy controlled by corporations, how exactly do you think people find their way to hidden communities? Magic? Divine intervention?"
He leans forward, his voice dropping to a whisper. "Everything has a price. Information, transportation, even hope itself. The broker provides a service, and services cost credits. It's simple economics."
"Did you really think paradise was free?"
<<link "[You're selling false hope]">><<set $conv_talis to 20>><<redo>><</link>>
<<link "[What about the murders?]">><<set $conv_talis to 21>><<redo>><</link>>
<<case 18>>\
"Lying?" Talis's voice turns ice-cold, all pretense of diplomacy abandoned. "That's a very serious accusation. And a very dangerous one to make without proof."
"I've built something here. It may not be perfect, it may not live up to every idealistic dream, but it's real. It's functional. It keeps people fed and safe."
He steps closer, his voice becoming menacing. "Some people prefer comfortable lies to uncomfortable truths. Others prefer impossible dreams to practical realities. Which are you?"
<<link "[The truth is that you're working with corporations]">><<set $conv_talis to 22>><<redo>><</link>>
<<link "[I think I should leave]">><<set $conv_talis to 24>><<redo>><</link>>
<<case 19>>\
Talis's laugh is bitter and sardonic. "A corporate operation? Really? That's your grand conspiracy theory?"
"Look around you. Do you see corporate security? Corporate managers? Corporate profits being extracted? Or do you see people trying to live their lives in peace?"
"Yes, we have arrangements with external powers. Yes, we receive certain... considerations in exchange for maintaining stability. That's called survival in the real world."
His voice becomes mocking. "I'm sorry this place isn't the anarchist paradise of your dreams. But some of us prefer messy reality to pure fantasy."
<<link "[You're manipulating people]">><<set $conv_talis to 22>><<redo>><</link>>
<<link "[This conversation is over]">><<set $conv_talis to 24>><<redo>><</link>>
<<case 20>>\
"False hope?" Talis's expression becomes genuinely angry. "Look around you! People are fed, housed, safe from corporate exploitation. How exactly is that false?"
"You want to know what false hope looks like? It's promising people that violent revolution will somehow create a better world. It's telling them they can have everything without compromise or sacrifice."
"I've given people a real alternative. It's not perfect, but it's better than what they had. Sometimes that's enough."
<<link "[But you're charging them for it]">><<set $conv_talis to 21>><<redo>><</link>>
<<link "[I've heard enough]">><<set $conv_talis to 24>><<redo>><</link>>
<<case 21>>\
Talis goes very still, his eyes becoming completely cold. When he speaks, his voice is barely above a whisper.
"Murders? That's a very specific and very serious allegation. The kind that could get someone in a lot of trouble if they went around making wild accusations."
"Especially someone who might have... compromising activities in their own past." His smile is razor-sharp. "People who live in glass houses shouldn't throw stones."
<<if $done.includes("Eliminate target")>>\
"Speaking of which, how was your visit to the robot boxing arena? Meet anyone interesting there?"
<<link "[You're threatening me]">><<set $conv_talis to 23>><<redo>><</link>>
<<else>>\
<<link "[I know what I know]">><<set $conv_talis to 22>><<redo>><</link>>
<</if>>\
<<link "[I should go]">><<set $conv_talis to 24>><<redo>><</link>>
<<case 22>>\
"Manipulating?" Talis's voice drips with disdain. "I'm providing people with what they want: safety, community, purpose. If that's manipulation, then every leader in history was a manipulator."
"The real manipulation is convincing people that purity is more important than results. That ideology matters more than survival."
"I've made hard choices to build something that works. If you can't understand that, perhaps you'd be happier somewhere else."
<<link "[People deserve to know the truth]">><<set $conv_talis to 25>><<redo>><</link>>
<<if $done.includes("Eliminate target")>>\
<<link "[What if I expose this?]">><<set $conv_talis to 23>><<redo>><</link>>
<</if>>\
<<case 23>>\
Talis's smile becomes predatory. "Threatening? No, just making observations. For instance, I observe that corporate security takes a dim view of vigilante killings, even when they target their own people."
"I also observe that the evidence of such activities tends to be... carefully documented by certain information brokers. Insurance policies, you might say."
"Of course, as long as people mind their own business and don't stir up trouble, such information tends to stay private. But if someone were to become... problematic..." He shrugs eloquently.
"I'm sure you understand the delicate balance of mutual discretion that makes our community possible."
<<link "[You're all criminals]">><<set $conv_talis to 26>><<redo>><</link>>
<<link "[I get the message]">><<set $conv_talis to 27>><<redo>><</link>>
<<case 24>>\
"A wise choice," Talis says, his diplomatic mask sliding back into place. "I hope you've found your visit... enlightening."
"Safe travels, and remember: some knowledge is more dangerous than ignorance. Choose your battles wisely."
<<link "[End conversation]">><<set $conv_talis to 28>><<dialogclose>><</link>>
<<case 25>>\
"The truth?" Talis laughs harshly. "The truth is that the world is brutal and unforgiving. The truth is that idealistic dreams get people killed. The truth is that sometimes survival requires compromise."
"You want to tell people the 'truth'? Go ahead. Tell them their safe haven is built on pragmatic arrangements. Tell them their leaders made deals with devils. See how long your precious truth keeps them fed and protected."
<<if $done.includes("Eliminate target")>>\
"But before you do, remember: some truths cut both ways. And some people have more to lose than others."
<<link "[I won't be silenced]">><<set $conv_talis to 23>><<redo>><</link>>
<</if>>\
<<link "[Maybe I will tell them]">><<set $conv_talis to 29>><<redo>><</link>>
<<case 26>>\
"Criminals?" Talis's expression becomes genuinely amused. "That's rich, coming from someone with blood on their hands. At least I've built something. What have you created besides corpses?"
"We're all criminals in someone's eyes. The question is whether you're a useful criminal or a dangerous one. I suggest you choose carefully."
<<link "[I understand the threat]">><<set $conv_talis to 27>><<redo>><</link>>
<<case 27>>\
"Good. Understanding is the foundation of wisdom." Talis's cold smile returns. "I'm glad we could reach this... mutual understanding."
"Enjoy the rest of your stay. And remember: some secrets are worth keeping."
<<link "[End conversation]">><<set $conv_talis to 28>><<dialogclose>><</link>>
<<case 28>>\
Talis nods curtly when he sees you, his expression unreadable. There's an unspoken tension in the air, a mutual understanding of the dangerous game being played.
"I trust you're finding our community... suitable for your needs."
<<link "[End conversation]">><<dialogclose>><</link>>
<<case 29>>\
"Then you're a fool," Talis says flatly. "But perhaps that's what this community needs: another idealistic fool to tear down what others have built."
"Just remember: when the corporate security forces come, when this place burns, when people are scattered and hungry again, that blood will be on your hands too."
<<link "[Some things are worth the risk]">><<set $conv_talis to 30>><<redo>><</link>>
<<link "[Maybe you're right]">><<set $conv_talis to 27>><<redo>><</link>>
<<case 30>>\
Talis stares at you for a long moment, then shakes his head sadly. "Spoken like someone who's never had to clean up after their own principles."
"Do what you think you must. But when the consequences come, remember: I tried to protect what we built here. You chose to destroy it."
<<link "[End conversation]">><<set $conv_talis to 31>><<dialogclose>><</link>>
<<case 31>>\
Talis regards you with cold hostility, no longer bothering to maintain any pretense of diplomacy.
"I have nothing more to say to you."
<<link "[End conversation]">><<dialogclose>><</link>>
<</switch>>\
<</do>>\
<</dialog>>\
<</widget>>
<<widget "talk_to_friend2">>
<<dialog 'Old Friend'>>\
<<do>>\
<<if $conv_friend2 is undefined>><<set $conv_friend2 to 1>><</if>>\
<<switch $conv_friend2>>\
<<case 1>>\
Your old friend greets you with a wide smile and open arms. They look healthier than when you last saw them, with a renewed energy in their step and a spark of hope in their eyes that you haven't seen in years.
"You made it! I can't believe we actually found this place!" they exclaim, pulling you into an embrace. "Look around, isn't it amazing? Real gardens, actual community meetings, people working together instead of competing."
They gesture enthusiastically at the surroundings. "This is everything we dreamed about, isn't it? A place where we can finally live the way we always talked about."
<<link "[It does seem incredible. How are you feeling?]">><<set $conv_friend2 to 2>><<redo>><</link>>
<<link "[Something feels off about this place...]">><<set $conv_friend2 to 5>><<redo>><</link>>
<<case 2>>\
"It feels like I've been here forever," they say, their enthusiasm infectious. "Everyone is so welcoming, so cooperative. We have assemblies where everyone gets a voice, shared meals, collective decision-making..."
Your friend pauses, their expression becoming slightly more serious. "Though I have to admit, I'm still learning how everything works here. The social dynamics are more complex than I initially thought."
<<link "[What do you mean by complex?]">><<set $conv_friend2 to 3>><<redo>><</link>>
<<case 3>>\
"Well, there are different perspectives on how things should be run," your friend explains. "You should definitely talk to Talis. He's one of the key organizers here, really passionate about the anarchist principles. He can explain the philosophy better than I can."
They lower their voice slightly. "There's also this newcomer, Dade. Brilliant hacker, but... He seems really suspicious about everything. Always asking questions, probing into systems. Makes some people uncomfortable."
<<link "[Tell me more about Talis]">><<set $conv_friend2 to 4>><<redo>><</link>>
<<link "[What kind of questions is Dade asking?]">><<set $conv_friend2 to 6>><<redo>><</link>>
<<case 4>>\
"Talis is amazing," your friend says with genuine admiration. "They've been here longer than most and really understand the anarchist way of life. They organize the assemblies, helps newcomers integrate, mediates conflicts when they arise."
"If you want to understand what this place is really about, Talis is the person to talk to. He is usually around the social center during the day."
<<link "[I'll talk to both of them]">><<set $conv_friend2 to 7>><<redo>><</link>>
<<case 5>>\
Your friend's smile falters slightly. "Off? What do you mean? This is paradise compared to where we came from. Real food, real community, real freedom from corporate control."
They study your face with concern. "You're probably just overwhelmed. It takes time to adjust to a place where cooperation actually works, where people aren't constantly trying to exploit each other."
<<link "[Maybe you're right. Tell me about the people here]">><<set $conv_friend2 to 3>><<redo>><</link>>
<<case 6>>\
Your friend glances around nervously before answering. "Dade keeps asking about the infrastructure, the communication networks, how decisions really get made behind the scenes. He seems convinced that this community has some kind of hidden control structure."
"Honestly, it makes me uncomfortable too sometimes. Why can't they just accept that we've found something good? Why does everything have to be questioned and analyzed?"
<<link "[Maybe Dade has a point about questioning things]">><<set $conv_friend2 to 8>><<redo>><</link>>
<<link "[I'll talk to both of them]">><<set $conv_friend2 to 7>><<redo>><</link>>
<<case 7>>\
"Good idea!" your friend says, their enthusiasm returning. "Talis will help you understand what we're building here. And who knows, maybe you can help convince Dade to be less paranoid about everything."
"I'm just so happy you made it here. Finally, we can live the way we always dreamed."
<<link "[End conversation]">><<set $conv_friend2 to 9>><<dialogclose>><</link>>
<<case 8>>\
Your friend looks troubled by your suggestion. "But why question something that's working? We have food, shelter, community. Everything the corporations denied us. Isn't that enough?"
"Look, talk to both Talis and Dade if you want. Form your own opinion. But please... don't let Dade's paranoia ruin this for us. This might be our only chance at the life we always wanted."
<<link "[I'll keep an open mind]">><<set $conv_friend2 to 9>><<dialogclose>><</link>>
<<case 9>>\
Your friend looks content and peaceful, continuing their work in the community. They smile warmly when they see you.
"It's good to see you again," they say. "How are you finding this place? Are you starting to see what makes it so special?"
<<if $task.includes("Travel to Emma")>>\
<<link "[I need to tell you something about this place]">><<set $conv_friend2 to 10>><<redo>><</link>>
<</if>>\
<<link "[You're right, it is wonderful here]">><<set $conv_friend2 to 15>><<redo>><</link>>
<<link "[End conversation]">><<dialogclose>><</link>>
<<case 10>>\
Your friend's expression becomes cautious. "What do you mean? You're starting to worry me."
"Look, if Dade has been filling your head with conspiracy theories, you need to remember that he's new here. He doesn't understand how things work yet."
<<link "[I found evidence. This place is corporate-controlled]">><<set $conv_friend2 to 11>><<redo>><</link>>
<<link "[The information broker who sent us here isn't who she seems]">><<set $conv_friend2 to 12>><<redo>><</link>>
<<case 11>>\
"Corporate-controlled?" Your friend's face pales. "That's impossible. Have you seen any corporate logos? Any security forces? Any profit extraction?"
"This is exactly the kind of paranoid thinking that destroys good communities..."
<<link "[They call it Project Pacification in their files]">><<set $conv_friend2 to 13>><<redo>><</link>>
<<link "[Talis has been lying about everything, even the food]">><<set $conv_friend2 to 14>><<redo>><</link>>
<<case 12>>\
"Nova?" Your friend looks confused. "What about her? She provided the coordinates just like she said she would."
<<link "[She charges 10,000 credits and Talis keeps most of it]">><<set $conv_friend2 to 16>><<redo>><</link>>
<<link "[She works with Talis to exploit desperate people]">><<set $conv_friend2 to 17>><<redo>><</link>>
<<case 13>>\
Your friend stares at you in shock. The certainty in their eyes begins to waver as they process what you've told them.
"This is... this can't be right. This place saved me. It saved us." Their voice becomes hollow. "But if what you're saying is true..."
They sit down heavily, the weight of the revelation hitting them.
<<link "[Talis has been lying about everything, even the food]">><<set $conv_friend2 to 14>><<redo>><</link>>
<<link "[The information broker who sent us here isn't who she seems]">><<set $conv_friend2 to 12>><<redo>><</link>>
<<case 14>>\
"Lying about what exactly?" Your friend's voice becomes defensive, but doubt creeps in. "The food is real, I've eaten it. The assemblies happen, I've participated."
<<link "[We need to go to Emma]">><<set $conv_friend2 to 18>><<redo>><</link>>
<<link "[We can still choose real freedom over comfortable captivity]">><<set $conv_friend2 to 19>><<redo>><</link>>
<<case 15>>\
Your friend beams with relief and joy. "I knew you'd see it! This is our home now, our real home. We can finally build the life we always talked about."
"I'm so glad you're staying. I was worried Dade's negativity might poison you against this place."
<<link "[End conversation]">><<dialogclose>><</link>>
<<case 16>>
Your friend looks confused and slightly defensive. "What? Of course there are costs involved. Running a community like this isn't free."
They cross their arms. "Look, even if the broker charges that much, where do you think the money goes? It goes to maintaining this place, feeding people, keeping the infrastructure running."
"You're acting like it's some kind of conspiracy, but communities need resources to survive. At least here the money goes to helping people instead of corporate profits."
<<link "[The broker works with Talis to exploit desperate people]">><<set $conv_friend2 to 17>><<redo>><</link>>
<<link "[This place is corporate-controlled]">><<set $conv_friend2 to 11>><<redo>><</link>>
<<case 17>>\
Your friend's expression hardens, a flash of hurt crossing their face. "Exploit desperate people? That's a harsh way to put it. Communities need resources to function, and information has value."
<<link "[They make people kill someone to blackmail them]">><<set $conv_friend2 to 22>><<redo>><</link>>
<<link "[Talis has been lying about everything, even the food]">><<set $conv_friend2 to 14>><<redo>><</link>>
<<case 18>>\
"Emma?" Your friend looks up with the first spark of hope since learning the truth. "Another planet? How do you know about it?"
<<link "[The corporations are actively trying to stop people from reaching Emma]">><<set $conv_friend2 to 20>><<redo>><</link>>
<<link "[We can still choose real freedom over comfortable captivity]">><<set $conv_friend2 to 19>><<redo>><</link>>
<<case 19>>\
"Real freedom over comfortable captivity?" Your friend's expression hardens. "That's easy for you to say. Do you know what I've been through to get here? The desperation, the hunger, the constant fear?"
"This place isn't perfect, but it's real safety. Real food. Real community. I'm not throwing that away for another dangerous dream."
They turn away from you. "I think this conversation is over. I've made my choice."
<<link "[End conversation]">><<set $conv_friend2 to 21>><<dialogclose>><</link>>
<<case 20>>\
Your friend looks exhausted at the mention of the corporations, their shoulders sagging under an invisible weight. "The corporations are trying to stop people? Of course they are. They always are."
They sit down heavily, running their hands through their hair. "I'm tired. I'm so tired of fighting them and losing every single time. Every planet we flee to, every safe haven we think we've found... they're always there, always one step ahead."
"Emma might be real. It might be free. But how long until the corporations find it too? How long until they turn it into another trap, another lie?" Their voice breaks slightly. "I can't do it anymore. I can't keep running, keep hoping, keep having my heart broken when it all falls apart."
They look up at you with tears in their eyes. "This place may be a lie, but it's a comfortable lie. I have food, shelter, people who smile at me. Maybe that's enough. Maybe I don't need freedom if it means I can finally stop fighting."
"Go to Emma if you want. Find your real anarchism. But I'm staying here. I'm done running."
<<link "[End conversation]">><<set $conv_friend2 to 21>><<dialogclose>><</link>>
<<case 21>>\
They turn away from you. "I don't want to talk about it. I've made my choice."
<<link "[End conversation]">><<dialogclose>><</link>>
<<case 22>>\
Your friend's face drains of color completely. Their hands begin to shake as the full horror of what you've revealed sinks in.
"They... they make people become murderers? And then..." Their voice trails off as they stagger backward, overwhelmed. "That means everyone here who couldn't pay... Oh god, what kind of place is this?"
They look around frantically, as if seeing their supposed paradise for the first time. "But if this is all true, what do we do? Where can we go? I... I don't know how to process this."
Your friend sits down heavily, their whole worldview crumbling. "I thought we'd found safety. I thought we'd found home."
<<link "[We need to go to Emma]">><<set $conv_friend2 to 23>><<redo>><</link>>
<<link "[We need to make people know the truth]">><<set $conv_friend2 to 24>><<redo>><</link>>
<<case 23>>\
"Emma?" Your friend looks up with cautious hope, but their expression quickly becomes guarded again. "Another planet? How do you know about it?"
They lean back, exhaustion evident in their posture. "What makes you think Emma will be any different? How do you know it won't just be another another pretty lie designed to trap desperate people?"
"I've been fooled once already. I thought this place was real freedom, and look how that turned out." Their voice carries deep hurt and disillusionment. "Why should I believe that Emma is any different?"
<<link "[The corporations are actively trying to stop people from reaching Emma]">><<set $conv_friend2 to 25>><<redo>><</link>>
<<link "[Because people like Dade are fighting for real change there]">><<set $conv_friend2 to 24>><<redo>><</link>>
<<link "[Maybe it won't be different, but we have to try]">><<set $conv_friend2 to 20>><<redo>><</link>>
<<link "[End conversation]">><<dialogclose>><</link>>
<<case 24>>\
Your friend's expression hardens, and they cross their arms defensively. "Make people know the truth? Fight for real change?" Their voice carries a bitter edge you haven't heard before.
"So now you're an expert on what's real after talking to Dade for a few minutes? I've been here building relationships, finding some semblance of peace." They look away, jaw clenched. "But I guess that doesn't matter compared to your new revolutionary friend's grand plans."
They turn back to face you, hurt evident in their eyes. "You know what? Fine. If Dade and his 'real change' are so compelling, go with him. Chase your noble cause across the galaxy. I'm sure he'll appreciate having someone who actually listens to him."
"I'm staying. This place may not be perfect, but it's home. And unlike some people, I don't abandon the relationships I've built for the first charismatic revolutionary who shows up."
<<link "[End conversation]">><<set $conv_friend2 to 21>><<dialogclose>><</link>>
<<case 25>>\
<<set $friend_stay to false>>\
Your friend's eyes widen as the implication hits them. "They're actively trying to stop people? That... that changes everything."
They sit up straighter, the exhaustion in their posture replaced by a spark of determination. "If the corporations are working that hard to keep people away from Emma, it means Emma is actually threatening them. It means it's real."
"All this time on Anarchio, I kept feeling like something was missing, like we were just playing at revolution while the real world went on around us." Their voice grows stronger. "But if Emma is dangerous enough to corporate power that they have to actively suppress it..."
They stand up, decision crystallizing in their eyes. "I'm coming with you. I can't stay here knowing this place is just another corporate tool. I can't live a comfortable lie when there's a chance for real freedom."
Your friend reaches out and grasps your hand firmly. "Thank you for telling me the truth, even when it hurt. Let's go find out what real anarchism looks like."
<<link "[Let's go to Emma together]">><<set $conv_friend2 to 26>><<dialogclose>><</link>>
<<case 26>>\
Your friend looks determined and hopeful, ready to face whatever challenges lie ahead. They smile warmly when they see you.
<<link "[End conversation]">><<dialogclose>><</link>>
<</switch>>\
<</do>>\
<</dialog>>\
<</widget>>
<<widget 'talk_broker'>>\
<<if $conv_broker is undefined>><<set $conv_broker to 1>><</if>>\
<<dialog 'Information Broker'>>\
<<do>>\
<<if $conv_broker is 1>>\
A figure emerges from the shadows of the spaceport's back corridors. Tall and lean, with cybernetic implants glinting along her jawline and temple, she wears a long coat that seems to absorb light. Her eyes are mismatched: one natural, one a softly glowing prosthetic that tracks your movement with mechanical precision.
"You're looking for information," she says, voice modulated through a throat implant that gives it an otherworldly quality. "But information isn't free, and I don't deal with just anyone."
She leans against a cargo container, studying you with that unsettling gaze.
"Tell me, who sent you my way?"
<<link "[My friend told me to find Nova]">><<set $conv_broker to 2>><<redo>><</link>>
<<link "[I need coordinates to an anarchist planet]">><<set $conv_broker to 6>><<redo>><</link>>
<<elseif $conv_broker is 2>>\
The broker's expression doesn't change, but her prosthetic eye dims slightly, perhaps a sign of approval.
"Ah, so you're the one they mentioned. Your friend has good taste in contacts." She push off from the container and circle you slowly, like a predator evaluating prey.
"They told me about your... situation. Looking for a way out of this corporate hellscape, aren't you? A place where real food grows from real soil?"
<<link "[That's right. Do you have the coordinates?]">><<set $conv_broker to 3>><<redo>><</link>>
<<elseif $conv_broker is 3>>\
"I do." The broker's smile is sharp, predatory. "But navigation data to a hidden world doesn't come cheap. Ten thousand credits."
She crosses her arms, the movement causing her coat to part slightly, revealing an arsenal of hidden weapons.
"Cash up front, no negotiations. That's the price for paradise."
<<if $cred gte 10000>>\
<<link "[Pay 10,000 credits]">><<set $cred -= 10000>><<set $conv_broker to 4>><<redo>><</link>>
<</if>>\
<<link "[I don't have that kind of money]">><<set $conv_broker to 7>><<redo>><</link>>
<<elseif $conv_broker is 4>>\
<<complete_task "Find information broker">>\
<<add_task "Travel to Anarchio" 12>>\
The broker's prosthetic eye flickers as she verifies your credit transfer.
"Pleasure doing business." She produces a small data chip. "These coordinates will take you to Anarchio the anarchist world you seek. But be warned: the journey is long and dangerous."
As you take the chip, she leans close enough that you can hear the soft whirring of her cybernetics.
"Don't keep your friend waiting too long."
You send the coordinates to your friend, who responds with a grateful message and a promise to meet you on Anarchio.
<<link "[Thank you]">><<set $conv_broker to 5>><<redo>><</link>>
<<elseif $conv_broker is 5>>\
The broker melts back into the shadows as efficiently as she appeared, leaving you with the data chip and a sense of possibility you haven't felt in years.
<<link "[End conversation]">>\
<<set $conv_broker to 12>>
<<dialogclose>>\
<</link>>\
<<elseif $conv_broker is 6>>\
The broker's laugh is like static through a damaged speaker.
"Coordinates? To where, exactly? The galaxy is full of planets, friend. You'll need to be more specific."
Her mismatched eyes narrow.
"And you'll need the right introduction. I don't deal with random wanderers."
<<link "[My friend told me to find Nova]">><<set $conv_broker to 2>><<redo>><</link>>
<<link "[Never mind]">><<dialogclose>><</link>>
<<elseif $conv_broker is 7>>\
"Hmm." The broker's prosthetic eye brightens, scanning you more intently. "Ten thousand is steep, I'll admit. But information has value, and value demands payment."
She pauses, her head tilting as if listening to something only she can hear.
"However... I've done some research on you since your friend made contact. Interesting history. Tell me, does the person who $misf you mean anything to you?"
<<link "[How do you know about that?]">><<set $conv_broker to 8>><<redo>><</link>>
<<elseif $conv_broker is 8>>\
"Information is my business. Corporate records, surveillance feeds, financial transactions, everything leaves a trace if you know where to look."
Her smile grows colder.
"The person responsible for your misfortune is here, on this planet. What a coincidence, don't you think?"
She leans forward, her voice dropping to a whisper.
"Eliminate him, and I'll give you those coordinates for free. Call it... professional courtesy."
<<link "[I'll do it]">><<set $conv_broker to 9>><<redo>><</link>>
<<link "[I'm not a killer]">><<set $conv_broker to 11>><<redo>><</link>>
<<elseif $conv_broker is 9>>\
<<complete_task "Find information broker">>\
<<add_task "Eliminate target" 0>>\
"Excellent." The broker's prosthetic eye glows with satisfaction. "You'll find him in the robot boxing arena, probably drunk on expensive alcohol bought with other people's suffering."
She hands you a small device.
"This will record proof of completion. Once the job is done, return here and I'll transfer the coordinates to Anarchio directly to your ship's navigation system."
<<link "[I understand]">><<set $conv_broker to 10>><<redo>><</link>>
<<elseif $conv_broker is 10>>\
"One more thing," the broker says as you turn to leave. "Justice has many faces in this galaxy. Choose yours carefully."
She fades back into the shadows, leaving you with a grim task and the promise of freedom.
<<link "[End conversation]">><<set $conv_broker to 13>><<dialogclose>><</link>>
<<elseif $conv_broker is 11>>\
The broker shrugs, her cybernetics whirring softly.
"Everyone has their limits. I respect that." She straightens her coat. "The offer stands at ten thousand credits. When you're ready to pay the price for paradise, you know where to find me."
<<link "[Maybe later]">><<set $conv_broker to 14>><<dialogclose>><</link>>
<<if $cred gte 10000>>\
<<link "[Actually, I'll pay the credits]">><<set $cred -= 10000>><<set $conv_broker to 4>><<redo>><</link>>
<</if>>\
<<elseif $conv_broker is 12>>\
"Don't keep your friend waiting too long."
<<link "[End conversation]">><<dialogclose>><</link>>
<<elseif $conv_broker is 13>>\
"You can still pay the ten thousand if you change your mind. The coordinates will be waiting."
<<if $cred gte 10000>>\
<<link "[I'll pay the credits]">><<set $cred -= 10000>><<set $conv_broker to 4>><<redo>><</link>>
<</if>>\
<<if $task.includes("Eliminate target")>>\
<<else>>\
<<link "[That's a lot of credits]">><<set $conv_broker to 7>><<redo>><</link>>
<</if>>\
<<link "[End conversation]">><<dialogclose>><</link>>
<<elseif $conv_broker is 14>>\
"You can still pay the ten thousand if you change your mind. Or, you can do a simple job. Your choice."
<<if $cred gte 10000>>\
<<link "[I'll pay the credits]">><<set $cred -= 10000>><<set $conv_broker to 4>><<redo>><</link>>
<</if>>\
<<link "[Tell me about the job]">><<set $conv_broker to 8>><<redo>><</link>>
<<link "[End conversation]">><<dialogclose>><</link>>
<</if>>\
<</do>>\
<</dialog>>\
<</widget>>
<<widget 'talk_to_friend'>>\
<<if $conv_friend is undefined>><<set $conv_friend to 1>><</if>>\
<<dialog 'Old Friend'>>\
<<do>>\
<<if $conv_friend is 1>>\
As you enter the building, a familiar figure emerges from the shadows. It's your old friend, looking older and more weathered, but with the same spark in their eyes. Their once neat hair is now unkempt and streaked with premature gray, and worn clothing hangs loose on a frame that's clearly seen leaner times. Despite the hardships etched in the lines around their eyes, their face lights up with unmistakable recognition and relief.
"I can't believe it's really you," they say, a mix of relief and joy crossing their face. "I thought I'd lost you forever."
You embrace briefly, both of you understanding how rare such moments have become in this harsh galaxy.
"Do you remember," your friend continues, "when we used to talk about escaping all this? Back when we were young and foolish enough to believe we could find a simpler life, away from the corporate machine that devours everything?"
<<link "[I remember. Those dreams feel like a lifetime ago.]">><<set $conv_friend to 2>><<redo>><</link>>\
<<link "[Sometimes I wonder if we were naive to dream of something better.]">><<set $conv_friend to 6>><<redo>><</link>>
<<elseif $conv_friend is 2>>\
"They do, don't they?" your friend sighs. "But maybe... maybe they don't have to be just dreams anymore."
Your friend leans in closer, lowering their voice. "I've been searching, following rumors and whispers. And I think I've found something real."
<<link "[What do you mean?]">><<set $conv_friend to 3>><<redo>><</link>>
<<elseif $conv_friend is 3>>\
"There's a planet out there," they whisper urgently. "An anarchist world that's managed to resist the corporate collapse. They say you can still find real food there, grown from actual soil, not synthesized in some factory."
Your friend's eyes light up with hope you haven't seen in years. "Its just a rumor, but here's the thing: There's an information broker at the spaceport on $broker_planet. If the planet is real, they must have the coordinates."
<<link "[That sounds too good to be true...]">><<set $conv_friend to 4>><<redo>><</link>>
<<link "[How do you know this isn't just another corporate trap?]">><<set $conv_friend to 7>><<redo>><</link>>
<<elseif $conv_friend is 4>>\
"I know how it sounds," your friend says earnestly. "But what if it isn't? What if there's still a place where we can live like we always dreamed?"
They place a hand on your shoulder. "If you can get that information, meet me there. We'll build the life we always talked about, away from all this madness."
You both stand in silence for a moment, the weight of possibility hanging between you.
"I have to go," your friend says reluctantly. "But please... try to find the broker. This might be our only chance."
<<link "[I'll find this information broker]">><<set $conv_friend to 5>><<redo>><</link>>
<<elseif $conv_friend is 5>>\
<<complete_task "Find old friend">>\
Your friend smiles, the first genuine smile you've seen from anyone in months.
"I knew I could count on you. Be careful out there, and remember: the broker goes by the name 'Nova'. Tell them I sent you."
With a final embrace, your friend disappears back into the shadows, leaving you with renewed purpose and the first real hope you've felt since this nightmare began.
<<link "[End conversation]">>\
<<set $conv_friend to 8>>\
<<set $npc_talked[$sel] to 1>>\
<<dialogclose>>\
<</link>>
<<elseif $conv_friend is 6>>\
"Naive?" your friend shakes their head firmly. "No, we were the only ones who saw clearly. Everyone else was already trapped in the corporate web, but we... we knew there had to be something more."
They step closer, their voice filled with intensity. "And now I think I've found it. A way out of this nightmare."
<<link "[What do you mean?]">><<set $conv_friend to 3>><<redo>><</link>>\
<<elseif $conv_friend is 7>>\
"Because I've seen proof," your friend says quietly. "A trader showed me a piece of fruit: actual fruit, not synthetic. It was... it was beautiful."
They grab your arm gently. "This is real. This is our chance to escape, to live the way we always said we would. All you have to do is find the broker - they go by 'Nova' - and get those coordinates."
"If you can do this, meet me at those coordinates. We'll finally have our simple life, away from all the corporate madness."
<<link "[I'll find this information broker.]">><<set $conv_friend to 5>><<redo>><</link>>
<<elseif $conv_friend is 8>>\
Your friend has already left, disappearing into the shadows of the building. You are alone now, but with a renewed sense of purpose.
<<link "[End conversation]">><<dialogclose>><</link>>\
<</if>>\
<</do>>\
<</dialog>>\
<</widget>>If you can see this message, it means that test mode is enabled. This is for development purposes only and may contain unpolished content or spoilers. Use with caution: testing may erase your save file.
<<link "Test">>
<<set $testing to true>>
<<include "Generate">>
<<include "World Test">>
<<set $cred to 100000>><<set $fuel to 100>><<set $batt to 20>><<set $scrap to 200>><<set $xp to 1000000>>
<<for _n range $up_list.length>><<run $upgrades.push($up_list[_n])>><</for>>
<<set $ship to 100>><<set $hull to 100>><<set $ship_shield to 100>>
<<for _toolName range $tool_list>>
<<run $storage.push({ name: _toolName, charge: 100 })>>
<</for>>
<<set $equip[0] to "cyberdrone">><<set $equip_charge[0] to 100>>
<<set $equip[1] to "droid">><<set $equip_charge[1] to 100>><<set $droid to 1>>
<<set $equip[2] to "exoarmor">><<set $equip_charge[2] to 100>>
<<goto "Map">>
<</link>>
<<link "Credits">><<goto "Credits">><</link>>
<<link "Back">><<goto "FASC">><</link>><<include "Info">>\
<<replace "#desc">><<desc "tool">><</replace>>\
<<if !$loc.includes("Tool Store")>><<run $loc.push("Tool Store")>><<append "#desc">> You add a log about the Tool Store.<</append>><</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Buy tool]">>\
<<dialog 'Buy tool'>>\
You can buy tools for $price1000 credits.
<<do>>\
Inventory: <<= $tool.length>>/5 tools. Credits: <<= $cred>>.
<</do>>\
<span id="m1"></span>\
Choose a tool to buy:
<<for _n to 0; _n < $tool_store[$sel].length; _n++>>\
<<tool_buy _n $tool_store[$sel][_n]>> \
<</for>>\
<</dialog>>\
<</link>> \
<<link "[Sell tool]">>\
<<if $tool.length gt 0>>\
<<dialog 'Sell tool'>>\
The store only buys tools that are in stock. It pays $price500 credits.
<<do>>\
Inventory: <<= $tool.length>>/5 tools. Credits: <<= $cred>>.
<</do>>\
<span id="m1"></span>\
Choose a tool to sell:
<<do>>\
<<for _n to 0; _n lt $tool.length; _n++>>\
<<tool_sell _n $tool[_n].name>> \
<</for>>\
<</do>>\
<</dialog>>\
<</if>>\
<</link>> \
<<link "[Buy cell]">>\
<<if $cred gte $price150>>\
<<set $batt += 1>><<set $cred -= $price150>>\
<<replace "#look">>You got an energy cell.<</replace>>\
<<include "Info">>\
<<else>>\
<<replace "#look">>You cannot afford.<</replace>>\
<</if>>\
<</link>> \
<</replace>>\
<</if>>\<<include "Info">>\
<<replace "#desc">><<desc "travel">><</replace>>\
<<if $traveling is 0 and $destination is "Emma" and $song isnot 1>>\
<<replace "#look">>You received a message from Dade: "Hey! The trip to Emma will be a long one, so I'm sending you something to listen to. It's from a 20th-century band. I hope you like it!" (Turn the volume up to listen.)<</replace>>\
<<set $song to 1>>\
<<timed 5s>><<audio "rage" play>><</timed>>\
<</if>>\
<<if $ship_combat is 0>>\
<<replace "#op">>\
<<link "[Fast Travel]">>\
<<if $fuel gte 1>>\
<<set $fuel -= 1>>\
<<adv_time 5 "min">>\
<<set $travel_speed to "fast">>\
<<travel_event>>\
<<else>>\
<<replace "#look">>Not enough fuel for fast travel.<</replace>>\
<</if>>\
<</link>> \
<<link "[Slow Travel]">>\
<<if $fuel gte 2>>\
<<set $fuel -= 2>>\
<<adv_time 10 "min">>\
<<set $travel_speed to "slow">>\
<<travel_event>>\
<<else>>\
<<replace "#look">>Not enough fuel for slow travel.<</replace>>\
<</if>>\
<</link>> \
<<if $fuel lt 1>>
<<link "[Send distress signal]">><<send_distress>><</link>> \
<</if>>\
<<link "[Storage]">><<storage>><</link>> \
<<link "[Rest]">><<rest>><</link>> \
<<if $upgrades.includes("workbench")>>\
<<link "[Workbench]">><<workbench>><</link>> \
<</if>>\
<<if $upgrades.includes("cell recharger")>>\
<<link "[Recharger]">><<recharger>><</link>> \
<</if>>\
<<if $upgrades.includes("biolab")>>\
<<link "[Biolab]">><<biolab>><</link>> \
<</if>>\
<<if $upgrades.includes("fusion recycler")>>\
<<link "[Recycler]">><<recycler>><</link>> \
<</if>>\
<<if $upgrades.includes("snack processor")>>\
<<link "[Processor]">><<processor>><</link>> \
<</if>>\
<<do>>\
<<if $ship is 100 and $hull lt 100 and $scrap gte 10>>\
<<link "[Repair hull (10 scrap)]">>\
<<set $hull += 10>>\
<<if $hull gt 100>><<set $hull to 100>><</if>>\
<<set $scrap -= 10>>\
<<adv_time 10 "min">>\
<<redo>>\
<<replace "#look">>Hull partially repaired. Hull: $hull%.<</replace>>\
<</link>> \
<</if>>\
<<if $ship is 100 and $ship_shield lt 100 and $fuel gte 1>>\
<<link "[Boost shield (1 fuel)]">>\
<<set $ship_shield += 20>>\
<<if $ship_shield gt 100>><<set $ship_shield to 100>><</if>>\
<<set $fuel -= 1>>\
<<adv_time 2 "min">>\
<<redo>>\
<<replace "#look">>Deflector shield partially boosted. Shield: $ship_shield%.<</replace>>\
<</link>> \
<</if>>\
<</do>>\
<</replace>>\
<<else>>\
<<replace "#op">>\
<<if $hull gt 0>>\
<<link "[Fight]">><<ship_combat>><</link>> \
<<link "[Flee]">>\
<<set _test to $maneuver+$skill+10>>
<<roll _test 0>>\
<<set $dif to $enemy_maneuver>>\
<<if $res gte $dif>>\
<<set $ship_combat to 0>>\
<<dialogclose>>\
<<if $traveling gt 0>>\
<<include "Travel">>\
<<replace "#look">>You successfully escape the combat and continue your journey.<</replace>>\
<<else>>\
<<set $space_loc to "Spaceport">>\
<<include "Update">>\
<<replace "#look">>You successfully escape the combat and dock at the spaceport. To engage the fight again, launch to orbit.<</replace>>\
<</if>>\
<<else>>\
<<ship_combat>>\
<<enemy_ship_action>>\
<<replace "#combat-log">>You failed to escape the combat and must continue fighting.<</replace>>\
<</if>>\
<</link>> \
<<else>>\
<<link "[Continue]">><<goto "Destroyed ship">><</link>> \
<</if>>\
<</replace>>\
<</if>>\<<if $hp gt 0>>\
<<if $space is 0>>\
<<nano_move>>
<<if $stealth gt 0>><<set $stealth-->><<if $stealth is 0>><<notify>>Stealth mode deactivated.<</notify>><</if>><</if>>\
<<set $sel to $omap[$px][$py]>>
<<set $startX to $px - 5>>
<<set $startY to $py - 5>>
<<set $endX to $px + 5>>
<<set $endY to $py + 5>>
<<for $x to 0; $x lte ($endX - $startX); $x++>>
<<for $y to 0; $y lte ($endY - $startY); $y++>>
<<set $map[$x][$y] to $wmap[$startX + $x][$startY + $y]>>
<</for>>
<</for>>
<<replace "#map">>\
<<for $i to 0; $i lt $map.length; $i++>>\
<<for $k to 0; $k lt $map[$i].length; $k++>>\
<<if $i is 5 and $k is 5>>\
<<switch $map[$i][$k]>>
<<case -1>><img data-passage="empty.png">
<<case 0>><<if $exo is 0>><<if $stealth gte 1>><img data-passage=$pert style="opacity: 0.5;"><<else>><img data-passage=$pert><</if>><<else>><<if $stealth gte 1>><img data-passage="exo.png" style="opacity: 0.5;"><<else>><img data-passage="exo.png"><</if>><</if>>\
<<case 1>><img data-passage=$shipt style="box-shadow: inset 0 0 0 2px #000;">
<<case 2>><img data-passage="snack machine.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 3>><img data-passage="cell machine.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 4>><img data-passage="fuel machine.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 5>><img data-passage="scrapyard.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 6>><img data-passage="cantina.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 7>><img data-passage="tool shop.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 8>><img data-passage="arena.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 9>><img data-passage="boxing.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 10>><img data-passage="bodyshop.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 11>><img data-passage="racing.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 12>><img data-passage="lab.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 13>><<set _img_name to "ship"+$ashipt[$omap[$px-5+$i][$py-5+$k]]+".png">><img data-passage=_img_name style="box-shadow: inset 0 0 0 2px #000;">
<<case 14>><<set _img_name to "build"+$build[$omap[$px-5+$i][$py-5+$k]]+".png">><img data-passage=_img_name style="box-shadow: inset 0 0 0 2px #000;">
<<case 15>><<set _img_name to "corp"+$corp[$omap[$px-5+$i][$py-5+$k]]+".png">><img data-passage=_img_name style="box-shadow: inset 0 0 0 2px #000;">
<<case 16>><img data-passage="refinery.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 17>><img data-passage="scavengers.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 18>><img data-passage="wild.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 19>><img data-passage="nano.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 20>><img data-passage="arcade.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 21>><img data-passage="cantina.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 22>><img data-passage="build3.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 23>><img data-passage="corp1.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 24>><img data-passage="corp3.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 25>><img data-passage="cantina.png" style="box-shadow: inset 0 0 0 2px #000;">
<<case 26>><img data-passage="corp2.png" style="box-shadow: inset 0 0 0 2px #000;">
<</switch>>
<<else>>\
<<if $map[$i][$k] is 0>><img data-passage="empty.png"><</if>>\
<<switch $map[$i][$k]>>\
<<case 1>><img @id="'ship'" data-passage=$shipt class="np" onclick="scan(this.id);">\
<<case 2>><img @id="'snack' + $omap[$px-5+$i][$py-5+$k]" data-passage="snack machine.png" class="np" onclick="scan(this.id);">\
<<case 3>><img @id="'cell' + $omap[$px-5+$i][$py-5+$k]" data-passage="cell machine.png" class="np" onclick="scan(this.id);">\
<<case 4>><img @id="'fuel' + $omap[$px-5+$i][$py-5+$k]" data-passage="fuel machine.png" class="np" onclick="scan(this.id);">\
<<case 5>><img @id="'scrap' + $omap[$px-5+$i][$py-5+$k]" data-passage="scrapyard.png" class="np" onclick="scan(this.id);">\
<<case 6>><img @id="'cantina' + $omap[$px-5+$i][$py-5+$k]" data-passage="cantina.png" class="np" onclick="scan(this.id);">\
<<case 7>><img @id="'tool' + $omap[$px-5+$i][$py-5+$k]" data-passage="tool shop.png" class="np" onclick="scan(this.id);">\
<<case 8>><img @id="'arena' + $omap[$px-5+$i][$py-5+$k]" data-passage="arena.png" class="np" onclick="scan(this.id);">\
<<case 9>><img @id="'boxing' + $omap[$px-5+$i][$py-5+$k]" data-passage="boxing.png" class="np" onclick="scan(this.id);">\
<<case 10>><img @id="'bodyshop' + $omap[$px-5+$i][$py-5+$k]" data-passage="bodyshop.png" class="np" onclick="scan(this.id);">\
<<case 11>><img @id="'racing' + $omap[$px-5+$i][$py-5+$k]" data-passage="racing.png" class="np" onclick="scan(this.id);">\
<<case 12>><img @id="'lab' + $omap[$px-5+$i][$py-5+$k]" data-passage="lab.png" class="np" onclick="scan(this.id);">\
<<case 13>><img @id="'abandoned' + $omap[$px-5+$i][$py-5+$k]" data-passage="'ship' + $ashipt[$omap[$px-5+$i][$py-5+$k]] + '.png'" class="np" onclick="scan(this.id);">\
<<case 14>><img @id="'building' + $omap[$px-5+$i][$py-5+$k]" data-passage="'build' + $build[$omap[$px-5+$i][$py-5+$k]] + '.png'" class="np" onclick="scan(this.id);">\
<<case 15>><img @id="'corporation' + $omap[$px-5+$i][$py-5+$k]" data-passage="'corp' + $corp[$omap[$px-5+$i][$py-5+$k]] + '.png'" class="np" onclick="scan(this.id);">\
<<case 16>><img @id="'refinery' + $omap[$px-5+$i][$py-5+$k]" data-passage="refinery.png" class="np" onclick="scan(this.id);">\
<<case 17>><img @id="'scavengers' + $omap[$px-5+$i][$py-5+$k]" data-passage="scavengers.png" class="np" onclick="scan(this.id);">\
<<case 18>><img @id="'wild' + $omap[$px-5+$i][$py-5+$k]" data-passage="wild.png" class="np" onclick="scan(this.id);">\
<<case 19>><img @id="'nano' + $omap[$px-5+$i][$py-5+$k]" data-passage="nano.png" class="np" onclick="scan(this.id);">\
<<case 20>><img @id="'arcade' + $omap[$px-5+$i][$py-5+$k]" data-passage="arcade.png" class="np" onclick="scan(this.id);">\
<<case 21>><img @id="'center' + $omap[$px-5+$i][$py-5+$k]" data-passage="cantina.png" class="np" onclick="scan(this.id);">\
<<case 22>><img @id="'house' + $omap[$px-5+$i][$py-5+$k]" data-passage="build3.png" class="np" onclick="scan(this.id);">\
<<case 23>><img @id="'learning' + $omap[$px-5+$i][$py-5+$k]" data-passage="corp1.png" class="np" onclick="scan(this.id);">\
<<case 24>><img @id="'cultural' + $omap[$px-5+$i][$py-5+$k]" data-passage="corp3.png" class="np" onclick="scan(this.id);">\
<<case 25>><img @id="'kitchen' + $omap[$px-5+$i][$py-5+$k]" data-passage="cantina.png" class="np" onclick="scan(this.id);">\
<<case 26>><img @id="'sports' + $omap[$px-5+$i][$py-5+$k]" data-passage="corp2.png" class="np" onclick="scan(this.id);">\
<</switch>>\
<</if>>\
<</for>>\
<br>\
<</for>>\
<</replace>>\
<<replace "#look">><</replace>>\
<<switch $map[5][5]>>\
<<case 0>><<include "Empty">>\
<<case 1>><<include "Start">>\
<<case 2>><<include "Snack Machine">>\
<<case 3>><<include "Cell Machine">>\
<<case 4>><<include "Fuel Machine">>\
<<case 5>><<include "Scrapyard">>\
<<case 6>><<include "Cantina">>\
<<case 7>><<include "Tool Store">>\
<<case 8>><<include "Arena">>\
<<case 9>><<include "Robot Boxing">>\
<<case 10>><<include "Body Shop">>\
<<case 11>><<include "Cyberdrone Racetrack">>\
<<case 12>><<include "Lab">>\
<<case 13>><<include "Abandoned Ship">>\
<<case 14>><<include "Building">>\
<<case 15>><<include "Corporation Headquarters">>\
<<case 16>><<include "Refinery">>\
<<case 17>><<include "Scavengers">>\
<<case 18>><<include "Wilderness">>\
<<case 19>><<include "Rogue Nanobots">>\
<<case 20>><<include "Arcade">>\
<<case 21>><<include "Social center">>\
<<case 22>><<include "House">>\
<<case 23>><<include "Learning space">>\
<<case 24>><<include "Cultural space">>\
<<case 25>><<include "Kitchen">>\
<<case 26>><<include "Sports space">>\
<</switch>>\
<<include "Info">>\
<<dialogclose>>\
<<else>>\
<<replace "#map">>\
<<for $i to 0; $i lt 11; $i++>>\
<<for $k to 0; $k lt 11; $k++>>\
<<if $i is 5 and $k is 5>>\
<<switch $space_loc>>\
<<case "Spaceport">><img data-passage="spaceport.png">\
<<case "Travel">><img data-passage=$shipt>\
<<case "Orbiting">><img data-passage="planet.png">\
<</switch>>\
<<else>>\
<<switch random(1,4)>>\
<<case 1>><img data-passage="star1.png">\
<<case 2>><img data-passage="star2.png">\
<<case 3>><img data-passage="star3.png">\
<<case 4>><img data-passage="star4.png">\
<</switch>>\
<</if>>\
<</for>>\
<br>\
<</for>>\
<</replace>>\
<<replace "#look">><</replace>>\
<<include $space_loc>>\
<<dialogclose>>\
<</if>>\
<<else>>\
<<goto "Death">>\
<</if>>\<<widget "desc">>\
<<switch _args[0]>>\
<<case "ship">>This is your ship, the $ship_name. It is <<= $ship+"%">> functional. You can rest here, access the storage and other functions.\
\
<<case "snack">><<if $tsm[$sel] is 1>>This is the All <<= $typesm[$sel].toUpperFirst()>> snack machine.<<elseif $tsm[$sel] is 2>>This is the <<= $typesm[$sel].toUpperFirst()>> Only snack machine.<<elseif $tsm[$sel] is 3>>This is the Just <<= $typesm[$sel].toUpperFirst()>> snack machine.<<else>>This is a generic snack machine.<</if>> It has <<= $machine[$sel].length>> snacks in it. You can buy a snack here for $price credits.\
\
<<case "cell">>This is an energy cell machine. It has <<= $cell[$sel]>> energy cells in it. You can buy a cell here for $price credits.\
\
<<case "fuel">>This is a fuel machine. It has <<= $mfuel[$sel]>> fuel in it. You can buy 2 fuel here for $price credits.\
\
<<case "scrap">>This is a scrapyard. You can search for scrap here. Beware of robo-scorpions. You can also buy 5 scraps for $price150 credits.\
\
<<case "cantina">>This is the <<=$cantina[$sel]>> cantina. You can buy snacks here for $price150 credits, talk to the owner or play <<=$activity[$sel]>>.\
\
<<case "tool">>This is the <<= $store_name[$sel]>>. You can buy a tool for $price1000 credits or sell a tool for $price500 credits. You can also buy energy cells for $price150 credits.\
\
<<case "arena">>This is the arena. You can fight in the arena for credits and glory. Fights you have won: <<= $arena_level-1>>. The prize for the next fight is <<= 500*$arena_level>> credits.\
\
<<case "boxing">>This is the robot boxing arena. You can bet on fights here. Beware of thieves.\
\
<<case "bodyshop">>This is the body shop. You can modify your body here for <<if $class is "freak">>$price500 credits (freak discount).<<else>>$price750 credits.<</if>>\
\
<<case "racing">>This is the cyberdrone racetrack. Cyberdrone Racetrack. You can compete on races here for $price credits of entry fee.\
\
<<case "lab">>This is the $lab_name[$sel] research lab. You can heal for $price250 credits, make experiments for $price500 credits or volunteer to be a test subject for 1000 credits.\
\
<<case "abandoned">>This is an abandoned ship. It looks like it has been here for a long time. You can scavenge it for parts or try to open the storage locker, but beware hostile robots.\
\
<<case "building">>This is a building still left intact in the city ruins.<<if $drone is 1>> With your drone, you can see <<if $building[$sel] is 0>>no signs of activity. Maybe is abandoned.<<elseif $building[$sel] is 1>>some signs of activity. May be ocupied.<<elseif $building[$sel] is 2>>a lot of activity, with people coming and going.<</if>><</if>>\
\
<<case "corp">>This is a corporate building. You can see the logo of <<=$corp_name[$sel]>> on the wall. <<if $vault_opened[$sel] is 0>>You can try to hack the vault, but it may be dangerous.<<elseif $vault_opened[$sel] is 1>>You have hacked the vault.<<else>>The vault is sealed.<</if>>\
\
<<case "refinery">>This is a fuel refinery. You can buy 2 fuel for $price150 credits.\
\
<<case "scavengers">>This is a scavenger camp. You can buy a cyberdrone for $price_drone[$sel] credits, or a droid for $price_droid[$sel] credits. You can also sell scrap for 100 credits per 5 scrap.\
\
<<case "wilderness">>This is a wild area. You can see some creatures roaming around.\
\
<<case "nanobot">>This is a rogue nanobot swarm.\
\
<<case "arcade">>This is an arcade. You can play a ship battle simulation here. Your record is $arcade_record.\
\
<<case "spaceport">>This is the orbital spaceport, a massive ring-shaped station orbiting the planet $planet. Traders, mercenaries, and travelers from across the galaxy gather here to conduct business, repair their ships, and collect bounties.\
\
<<case "travel">>You are at your ship, the $ship_name, traveling towards $destination. Scrap: $scrap. Fuel: $fuel. Travel progress: $traveling/$distance\
\
<<case "orbiting">>You are orbiting the planet $planet. You can land on the planet surface or dock at the spaceport. Scrap: $scrap. Fuel: $fuel.\
\
<<case "center">>This is the People's Assembly social center. You can buy vegan food here for $price250 credits, or meet with locals.\
\
<<case "house">>This is a residential building. You can talk to residents here.\
\
<<case "learning">>This is the Learning Space. You can teach whatever you know here, or learn from others.\
\
<<case "cultural">>This is the Cultural Space. You can see art here, or create your own.\
\
<<case "kitchen">>This is a communal kitchen. You can eat and cook food here.\
\
<<case "sports">>This is the Sports Space. You can play sports here, or watch others play.\
<</switch>>\
<</widget>>
<<widget "complete_task">>\
<<silent>>\
<<set _task_name to _args[0]>>
<<if $task.includes(_task_name) and $task_list[_task_name]>>
<<set _task_data to $task_list[_task_name]>>
<<set _can_complete to true>>
// Check planet condition
<<if _task_data.planet isnot "" and _task_data.planet isnot $planet>>
<<set _can_complete to false>>
<</if>>
// Check location condition (if target coordinates are specified)
<<if _task_data.target_x isnot "" and _task_data.target_y isnot "">>
<<if $px isnot _task_data.target_x or $py isnot _task_data.target_y>>
<<set _can_complete to false>>
<</if>>
<</if>>
<<if _can_complete>>
<<set _task_index to $task.indexOf(_task_name)>>
<<run $task.splice(_task_index, 1)>>
<<run $done.push(_task_name)>>
// Give rewards
<<set $xp += _task_data.xp>>
<<if _task_data.cr gt 0>>
<<set $cred += _task_data.cr>>
<</if>>
<<include "Info">>
<<replace "#look">>"_task_name" task complete! (+<<= _task_data.xp>>xp)<<if _task_data.cr gt 0>> (+<<= _task_data.cr>>cr)<</if>><</replace>>
<<switch _task_name>>
<<case "Repair the ship">>
<<set _log to "As my ship breaks free from " + $planet + "'s gravity well, I find myself thinking about the next step. The vastness of space reminds me how truly alone I am. But there's someone who might understand what I've been through. My old friend back on " + $planet_o + ". It's time to go home.">>
<<run $per_log.push(_log)>>
<<run $per_log_date.push($year + "." + $day)>>
<<notify>>Added personal log.<</notify>>
<<timed 3s>><<add_task "Find old friend" 6>><</timed>>
<<case "Find old friend">>
<<set _log to "I found my old friend on " + $planet_o + ", my home planet. Seeing them again brought back memories of who I used to be before the collapse. They told me about a contact who can help us start a new life away from all this corporate madness. Returning to " + $planet_o + " was bittersweet. The place is more damaged than when I left, but finding hope here feels like coming full circle. I need to find this information broker.">>
<<run $per_log.push(_log)>>
<<run $per_log_date.push($year + "." + $day)>>
<<notify>>Added personal log.<</notify>>
<<timed 3s>><<add_task "Find information broker" 9>><</timed>>
<<case "Eliminate target">>
<<set _log to "With the target eliminated, I feel a strange mix of relief and emptiness. This job was supposed to be just another contract, but it stirred up memories of my past life. The weight of what I've done is heavy, but it's a reminder of why I left that world behind. Now, more than ever, I need to find a way out of this endless cycle of violence. Almost immediately after completing the hit, I received the coordinates to planet Anarchio that the information broker promissed. It was a risky move, but it might be my best chance at a fresh start. Time to prepare for the journey ahead.">>
<<run $per_log.push(_log)>>
<<run $per_log_date.push($year + "." + $day)>>
<<notify>>Added personal log.<</notify>>\
<<complete_task "Find information broker">>
<<timed 3s>><<add_task "Travel to Anarchio" 12>><</timed>>
<<case "Find ship">>
<<set $conv_dade to 16>>
<</switch>>
<</if>>
<</if>>
<</silent>>\
<</widget>>
<<widget "corp_search">>
<<if random(1,6) is 1 and $stealth is 0 and $corp_loot[$sel] gt 0>>
<<gen_npc "security bot">>
<<set $combat to 1>>
<<replace "#look">>A corporate security bot attacks you!<</replace>>
<<combat>>
<<else>>
<<roll $wit $modwit>>
<<set $dif to 10>>
<<if $corp_loot[$sel] gt 0 and $res gte $dif>>
<<switch random(1,14)>>
<<case 1 2 3 4>>
<<set $found to random(2,10)>>
<<set $scrap += $found>>
<<set $corp_loot[$sel] -= 1>>
<<set $xp += 10>>
<<replace "#look">>You found some scrap. (+$found scrap)(+10xp)<</replace>>
<<case 5 6 7>>
<<set $found to 1>>
<<set $batt += $found>>
<<set $corp_loot[$sel] -= 1>>
<<set $xp += 10>>
<<replace "#look">>You found an energy cell. (+$found cell)(+10xp)<</replace>>
<<case 8 9>>
<<set $found to random(100,300)>>
<<set $cred += $found>>
<<set $corp_loot[$sel] -= 1>>
<<set $xp += 10>>
<<replace "#look">>You found some credits. (+$found cr)(+10xp)<</replace>>
<<case 10>>
<<set $corp_loot[$sel] -= 1>>
<<set _rndtool to $advanced_list.random()>>
<<if !$schematics.includes(_rndtool)>>
<<run $schematics.push(_rndtool)>>
<<replace "#look">>You found the <<= _rndtool>> schematics. You can make it using the workbench.<</replace>>
<<else>>
<<replace "#look">>You found the <<= _rndtool>> schematics, but you already have it.<</replace>>
<</if>>
<<case 11 12 13 14>>
<<set $corp_loot[$sel] -= 1>>
<<set $xp += 50>>
<<gen_log>>
<<replace "#look">>You found a data log. (+50xp)<</replace>>
<</switch>>
<<adv_time 10 "min">>
<<elseif $res gte $dif and $vault_found[$sel] is 0>>
<<if $vault_opened[$sel] is 0>>
<<set $vault_found[$sel] to 1>>
<<include "Corporation Headquarters">>
<<replace "#look">>You found a secure vault. You can open it by hacking the terminal.<</replace>>
<<else>>
<<roll $dex $moddex>>
<<set $dif to 12>>
<<if $res gte $dif or $stealth gte 1>>
<<replace "#look">>You could not find anything of value.<</replace>>
<<else>>
<<replace "#look">>You were caught by a security bot!<</replace>>
<<gen_npc "security bot">>
<<set $combat to 1>>
<<combat>>
<</if>>
<</if>>
<<else>>
<<replace "#look">>You could not find anything.<</replace>>
<</if>>
<<adv_time 10 "min">>
<</if>>
<</widget>>
<<widget "hack_vault">>
<<if $vault_opened[$sel] is 0>>
<<if $tool.some(function(t){return t.name === "hacking kit" && t.charge gte 5;})>>
<<set _toolIndex to $tool.findIndex(function(t){return t.name === "hacking kit";})>>
<<set $tool[_toolIndex].charge -= 5>>\
<<dialog "Vault Hacking">>\
<<set $puz3_init to true>>\
<<set _solutions to [
[2,9,4,7,5,3,6,1,8],
[4,9,2,3,5,7,8,1,6],
[6,1,8,7,5,3,2,9,4],
[8,1,6,3,5,7,4,9,2],
[2,7,6,9,5,1,4,3,8],
[4,3,8,9,5,1,2,7,6],
[6,7,2,1,5,9,8,3,4],
[8,3,4,1,5,9,6,7,2]
]>>\
<<set $grid to _solutions.random().slice()>>\
<<set _positions to [0,1,2,3,5,6,7,8]>>\
<<set _toChange to _positions.randomMany(5)>>\
<<for _pos range _toChange>>\
<<set $grid[_pos] to 0>>\
<</for>>\
<<set $locked_cell to 4>>\
<<set $hint_value to 5>>\
<<set $puzzle3_solved to false>>\
<<set $vault_time to 180>>\
Click on the digits to change them. Numbers cannot be repeated. All rows and columns must sum to 15. One of the cells cannot be changed.
<span id="p3-msg"></span>
<<do>>You have $vault_time seconds remaining.<</do>>
<<for _i to 0; _i lt 3; _i++>>\
<<if $locked_cell is _i>>\
|$hint_value| \
<<else>>\
[<<cycle `"$grid[" + _i + "]"` autoselect>><<if _i isnot $locked_cell>>\
<<option 1>><<option 2>><<option 3>><<option 4>><<option 5>>\
<<option 6>><<option 7>><<option 8>><<option 9>>\
<</if>><</cycle>>]\
<</if>> \
<</for>>
<<for _i to 3; _i lt 6; _i++>>\
<<if $locked_cell is _i>>\
|$hint_value| \
<<else>>\
[<<cycle `"$grid[" + _i + "]"` autoselect>><<if _i isnot $locked_cell>>\
<<option 1>><<option 2>><<option 3>><<option 4>><<option 5>>\
<<option 6>><<option 7>><<option 8>><<option 9>>\
<</if>><</cycle>>]\
<</if>> \
<</for>>
<<for _i to 6; _i lt 9; _i++>>\
<<if $locked_cell is _i>>\
|$hint_value| \
<<else>>\
[<<cycle `"$grid[" + _i + "]"` autoselect>><<if _i isnot $locked_cell>>\
<<option 1>><<option 2>><<option 3>><<option 4>><<option 5>>\
<<option 6>><<option 7>><<option 8>><<option 9>>\
<</if>><</cycle>>]\
<</if>> \
<</for>>
<<link "Validate Solution">>
<<set $grid[$locked_cell] to $hint_value>>
<<set _filled to $grid.every(function(d){return d>=1 && d<=9;})>>
<<set _uniq to Array.from(new Set($grid))>>
<<set _r0 to ($grid[0]||0) + ($grid[1]||0) + ($grid[2]||0)>>
<<set _r1 to ($grid[3]||0) + ($grid[4]||0) + ($grid[5]||0)>>
<<set _r2 to ($grid[6]||0) + ($grid[7]||0) + ($grid[8]||0)>>
<<set _c0 to ($grid[0]||0) + ($grid[3]||0) + ($grid[6]||0)>>
<<set _c1 to ($grid[1]||0) + ($grid[4]||0) + ($grid[7]||0)>>
<<set _c2 to ($grid[2]||0) + ($grid[5]||0) + ($grid[8]||0)>>
<<set _noRepeat to (_uniq.length === 9)>>
<<if !_noRepeat>>
<<replace "#p3-msg">>Digits cannot be repeated. Use 1–9 once each.<</replace>>
<<elseif _r0 is 15 and _r1 is 15 and _r2 is 15 and _c0 is 15 and _c1 is 15 and _c2 is 15>>
<<set $puzzle3_solved to true>>
<<else>>
<<replace "#p3-msg">>Not quite right. Adjust the digits until all sums equal 15.<</replace>>
<</if>>
<<if $puzzle3_solved>>
<<set $vault_opened[$sel] to 1>>
<<set $vaults_opened++>>
<<set $xp += 500>>
<<if $planet is "Atom" and $task.includes("Recover data from vault")>>
<<complete_task "Recover data from vault">>
<<add_task "Deliver data to rebels" 12>>
<<set _vault_reward to "Secret data">>
<<elseif !$equip.includes("exoarmor")>>
<<set $equip[2] to "exoarmor">>
<<set $equip_charge[2] to 100>>
<<set _vault_reward to "exoarmor">>
<<else>>
<<set _rewards to []>>
<<if $tool.length < 5>>
<<set _tool_reward to $tool_list.random()>>
<<run $tool.push({name: _tool_reward, charge: 100})>>
<<run _rewards.push(_tool_reward)>>
<<else>>
<<set _scrap_reward to random(10,20)>>
<<set $scrap += _scrap_reward>>
<<run _rewards.push(_scrap_reward + " scrap")>>
<</if>>
<<set _cred_reward to random(1000,2000)>>
<<set $cred += _cred_reward>>
<<run _rewards.push(_cred_reward + " credits")>>
<<set _fuel_reward to random(10,20)>>
<<set $fuel += _fuel_reward>>
<<run _rewards.push(_fuel_reward + " fuel")>>
<<set _vault_reward to _rewards.join(", ")>>
<</if>>
<<dialogclose>>
<<adv_time 5 "min">>
<<include "Corporation Headquarters">>
<<replace "#look">>You successfully hacked the vault! Inside you found: _vault_reward.<</replace>>
<<include "Info">>
<</if>>
<</link>> \
<<repeat 1s>>\
<<if $vault_time > 0 and !$puzzle3_solved>>\
<<set $vault_time-->>\
<<redo>>\
<<elseif $vault_time is 0 and !$puzzle3_solved>>\
<<set $vault_opened[$sel] to 2>>
<<dialogclose>>\
<<adv_time 5 "min">>\
<<include "Corporation Headquarters">>\
<<replace "#look">>Time's up! The vault security system activated and sealed permanently.<</replace>>\
<<stop>>\
<<else>>\
<<stop>>\
<</if>>\
<<if $puz3_init is false>>\
<<stop>>\
<</if>>\
<</repeat>>\
<<onclose>>\
<<set $puz3_init to false>>\
<</dialog>>
<<else>>
<<replace "#look">>You need a hacking kit with sufficient charge to attempt this.<</replace>>
<</if>>
<<else>>
<<if $vault_opened[$sel] is 1>>
<<replace "#look">>The vault has already been successfully hacked.<</replace>>
<<else>>
<<replace "#look">>The vault is permanently sealed due to previous failed attempts.<</replace>>
<</if>>
<</if>>
<</widget>>
<<widget 'Arm-wrestling'>>
<<dialog "Arm-wrestling">>\
<span id="m1">Your record at arm-wrestling is $arm_rec straight wins.</span>
<<link "[Try to beat]">>\
<<set $wins to 0>><<set $lost to 0>>\
<<replace "#m1">>Playing...<</replace>>\
<<repeat 0.5s>>\
<<roll $str $modstr>>\
<<if $res gte random(10,15)>>\
<<set $wins++>>\
<<replace "#m1">>Straight wins: $wins<</replace>>\
<<adv_time 10 "min">>\
<<else>>\
<<replace "#m1">>You got $wins straight wins at arm-wrestling.<</replace>>\
<<adv_time 10 "min">>\
<<if $wins gt $arm_rec>>\
<<append "#m1">> New record!<</append>>\
<<set $arm_rec to $wins>>\
<<set _xp_reward to 25*$wins>><<set _cred_reward to 50*$wins>>\
<<set $xp += _xp_reward>><<set $cred += _cred_reward>>\
<<append "#m1">> (+<<= _xp_reward>>xp)(+<<= _cred_reward>>cr)<</append>>\
<</if>>\
<<include "Info">>\
<<stop>>\
<</if>>\
<</repeat>>\
<</link>> \
<</dialog>>
<</widget>>
<<widget "Darts">>
<<dialog "Darts">>\
<span id="m1">Your record at darts is $darts_rec straight wins.</span>
<<link "[Try to beat]">>\
<<replace "#m1">>Playing...<</replace>>\
<<set $wins to 0>><<set $lost to 0>>\
<<repeat 0.5s>>\
<<roll $dex $moddex>>\
<<if $res gte random(10,15)>>\
<<set $wins++>>\
<<replace "#m1">>Straight wins: $wins<</replace>>\
<<adv_time 10 "min">>\
<<else>>\
<<replace "#m1">>You got $wins straight wins at darts.<</replace>>\
<<adv_time 10 "min">>\
<<if $wins gt $darts_rec>>\
<<append "#m1">> New record!<</append>>\
<<set $darts_rec to $wins>>\
<<set _xp_reward to 25*$wins>><<set _cred_reward to 50*$wins>>\
<<set $xp += _xp_reward>><<set $cred += _cred_reward>>\
<<append "#m1">> (+<<= _xp_reward>>xp)(+<<= _cred_reward>>cr)<</append>>\
<</if>>\
<<include "Info">>\
<<stop>>\
<</if>>\
<</repeat>>\
<</link>> \
<</dialog>>
<</widget>>
<<widget "Checkers">>
<<dialog "Checkers">>\
<span id="m1">Your record at checkers is $checkers_rec straight wins.</span>
<<link "[Try to beat]">>\
<<replace "#m1">>Playing...<</replace>>\
<<set $wins to 0>><<set $lost to 0>>\
<<repeat 0.5s>>\
<<roll $wit $modwit>>\
<<if $res gte random(10,15)>>\
<<set $wins++>>\
<<replace "#m1">>Straight wins: $wins<</replace>>\
<<adv_time 10 "min">>\
<<else>>\
<<replace "#m1">>You got $wins straight wins at checkers.<</replace>>\
<<adv_time 10 "min">>\
<<if $wins gt $checkers_rec>>\
<<append "#m1">> New record!<</append>>\
<<set $checkers_rec to $wins>>\
<<set _xp_reward to 25*$wins>><<set _cred_reward to 50*$wins>>\
<<set $xp += _xp_reward>><<set $cred += _cred_reward>>\
<<append "#m1">> (+<<= _xp_reward>>xp)(+<<= _cred_reward>>cr)<</append>>\
<</if>>\
<<include "Info">>\
<<stop>>\
<</if>>\
<</repeat>>\
<</link>> \
<</dialog>>
<</widget>>
<<widget "gen_enemy">>
<<set $enemy_laser_turrets to 2>>
<<set $enemy_laser_turret_dam to 10>>
<<set $enemy_missile_turrets to 1>>
<<set $enemy_missile_turret_dam to 20>>
<<set $enemy_targeting_system to 25>>
<<set $enemy_maneuver to 20>>
<<set $enemy_boost to 20>>
<<set $enemy_repair to 20>>
<<set $enemy_ship_shield to 100>>
<<set $enemy_hull to 100>>
<<set $enemy_skill to 0>>
<<set $enemysupply to $level>>
<<for _level range _args[0]>>
<<switch random(1, 10)>>
<<case 1>><<if $enemy_laser_turrets lt 4>><<set $enemy_laser_turrets += 1>><<set _level++>><</if>>
<<case 2>><<if $enemy_laser_turret_dam lt 25>><<set $enemy_laser_turret_dam += 5>><<set _level++>><</if>>
<<case 3>><<if $enemy_missile_turrets lt 2>><<set $enemy_missile_turrets += 1>><<set _level++>><</if>>
<<case 4>><<if $enemy_missile_turret_dam lt 50>><<set $enemy_missile_turret_dam += 5>><<set _level++>><</if>>
<<case 5>><<if $enemy_targeting_system lt 50>><<set $enemy_targeting_system += 5>><<set _level++>><</if>>
<<case 6>><<if $enemy_maneuver lt 45>><<set $enemy_maneuver += 5>><<set _level++>><</if>>
<<case 7>><<if $enemy_boost lt 30>><<set $enemy_boost += 5>><<set _level++>><</if>>
<<case 8>><<if $enemy_repair lt 45>><<set $enemy_repair += 5>><<set _level++>><</if>>
<<case 9>><<set $enemy_skill += 1>><<set _level++>>
<</switch>>\
<</for>>\
<</widget>>
<<widget "set_combat">>\
<<set $ship_combat to 1>>\
<<set $target to 0>>\
<<set $targeted to 0>>\
<<set $missile_charge to 0>>\
<<set $enemy_missile_charge to 0>>\
<<set $combat_round to 0>>\
<<set $skill to ($dex+$moddex+$wit+$modwit-20)>>\
<<set $enemy_ship to _args[0]>>\
<</widget>>
<<widget "ship_combat">>\
<<replace "#look">><</replace>>\
<<dialog "Ship combat">>\
<<do>>\
<<set $combat_round++>>\
<<adv_time 2 "min">>\
<<if $arcade is 1>>\
My ship: Hull $hull%, Shield $ship_shield%
<<else>>\
$ship_name: Hull $hull%, Shield $ship_shield%
<</if>>\
$enemy_ship: Hull $enemy_hull%, Shield $enemy_ship_shield%
Target Lock: $target%
Enemy targeting you: $targeted%
<<if $missile_charge lt 5>><<set $missile_charge += 1>><</if>>\
<<if $missile_charge lt 5>>\
Missile charging: $missile_charge/5
<<else>>\
Missile ready
<</if>>\
<</do>>\
<span id="combat-log">Choose your action:</span>
<<do>>\
<<if $hull gt 0 and $enemy_hull gt 0>>\
<<if $target lt 100>>\
<<link "[Target]">>
<<set $improvement to random(Math.trunc($targeting_system/2), ($targeting_system+$skill))>>
<<set $target += $improvement>>
<<if $target gt 100>><<set $target to 100>><</if>>
<<replace "#combat-log">>You aim at the target.<</replace>>
<<enemy_ship_action>>
<</link>> \
<</if>>\
<<if $targeted gt 0>>\
<<link "[Maneuver]">>
<<set $evasion to random(Math.trunc($maneuver/2), ($maneuver+$skill))>>
<<set $targeted -= $evasion>>
<<set $target -= $evasion>>
<<if $target lt 0>><<set $target to 0>><</if>>
<<if $targeted lt 0>><<set $targeted to 0>><</if>>
<<replace "#combat-log">>You execute evasive maneuvers.<</replace>>
<<enemy_ship_action>>
<</link>> \
<</if>>\
<<if $target gt 0>>\
<<link "[Laser]">>
<<set $hits to 0>>
<<set $total_hull_damage to 0>>
<<set $total_shield_damage to 0>>
<<for _i to 0; _i lt $laser_turrets; _i++>>
<<if random(1,100) lte $target>>
<<set $hits++>>
<<set $base_damage to random(Math.trunc($laser_turret_dam/2), $laser_turret_dam)>>
<<if $enemy_ship_shield gt 0>>
<<set $shield_damage to $base_damage * 2>>
<<set $shield_absorb to Math.min($enemy_ship_shield, $shield_damage)>>
<<set $enemy_ship_shield -= $shield_absorb>>
<<set $total_shield_damage += $shield_absorb>>
<<set $remaining_damage to Math.max(0, $shield_damage - $shield_absorb)>>
<<if $remaining_damage gt 0>>
<<set $hull_damage to Math.trunc($remaining_damage / 2)>>
<<set $enemy_hull -= $hull_damage>>
<<set $total_hull_damage += $hull_damage>>
<</if>>
<<else>>
<<set $hull_damage to $base_damage>>
<<set $enemy_hull -= $hull_damage>>
<<set $total_hull_damage += $hull_damage>>
<</if>>
<</if>>
<</for>>
<<replace "#combat-log">>Laser turrets fired! $hits/$laser_turrets hits for $total_shield_damage shield damage and $total_hull_damage hull damage.<</replace>>
<<enemy_ship_action>>
<</link>> \
<</if>>\
<<if $target is 100 and $missile_charge gte 5>>\
<<link "[Missile]">>
<<set $base_damage to ($missile_turret_dam * $missile_turrets)>>
<<set $shield_damage to 0>>
<<set $shield_absorb to 0>>
<<set $hull_damage to 0>>
<<if $enemy_ship_shield gt 0>>
<<set $shield_damage to $base_damage>>
<<set $shield_absorb to Math.min($enemy_ship_shield, $shield_damage)>>
<<set $enemy_ship_shield -= $shield_absorb>>
<<set $remaining_damage to Math.max(0, $shield_damage - $shield_absorb)>>
<<if $remaining_damage gt 0>>
<<set $hull_damage to $remaining_damage * 2>>
<</if>>
<<else>>
<<set $hull_damage to $base_damage * 2>>
<</if>>
<<set $enemy_hull -= $hull_damage>>
<<set $missile_charge to 0>>
<<replace "#combat-log">>Missile launched! Direct hit for $shield_absorb shield damage and $hull_damage hull damage.<</replace>>
<<enemy_ship_action>>
<</link>> \
<</if>>\
<<if $ship_shield lt 100 and $fuel gte 1>>\
<<link "[Boost shield (1 fuel)]">>
<<set $shield_boost to random(Math.trunc($boost/2), $boost)>>
<<set $ship_shield += $shield_boost>>
<<set $fuel -= 1>>
<<if $ship_shield gt 100>><<set $ship_shield to 100>><</if>>
<<replace "#combat-log">>Deflector shields boosted by $shield_boost points.<</replace>>
<<enemy_ship_action>>
<</link>> \
<</if>>\
<<if $hull lt 100 and ($droid is 1 or $arcade is 1) and $scrap gte 10>>\
<<link "[Repair (10 scrap)]">>
<<set $hull_repair to random(Math.trunc($repair/2), $repair)>>
<<set $hull += $hull_repair>>
<<set $scrap -= 10>>
<<if $hull gt 100>><<set $hull to 100>><</if>>
<<replace "#combat-log">>Hull integrity restored by $hull_repair points.<</replace>>
<<enemy_ship_action>>
<</link>> \
<</if>>\
<</if>>\
<</do>>\
<<onclose>>\
<<if $arcade is 1>>\
<<set $arcade to 0>>\
<<set $ship_shield to $old_ship_shield>>\
<<set $hull to $old_hull>>\
<<set $ship_combat to 0>>\
<<include "Update">>\
<<else>>\
<<if $hull lte 0>>
<<goto "Destroyed ship">><<dialogclose>>
<<elseif $ship_combat is 1>>\
<<include $space_loc>>\
<<replace "#look">>You are in the middle of a space battle! Choose your action:<</replace>>\
<<elseif $enemy_hull lte 0>>
<<include $space_loc>><<dialogclose>>
<</if>>\
<</if>>\
<</dialog>>\
<</widget>>
<<widget "enemy_ship_action">>\
<<silent>>\
<<if $enemy_hull gt 0 and $hull gt 0>>
<<if $enemy_missile_charge lt 5>><<set $enemy_missile_charge += 1>><</if>>
<<set $enemy_action to random(1,3)>>
<<if $enemy_action is 1>>
<<if $targeted lt 50>>
<<set $enemy_target_improvement to random(Math.trunc($enemy_targeting_system/2), ($enemy_targeting_system+$enemy_skill))>>
<<set $targeted += $enemy_target_improvement>>
<<if $targeted gt 100>><<set $targeted to 100>><</if>>
<<append "#combat-log">> The enemy targets you.<</append>>
<<else>>
<<set $enemy_hits to 0>>
<<set $enemy_total_hull_damage to 0>>
<<set $enemy_total_shield_damage to 0>>
<<for _i to 0; _i lt $enemy_laser_turrets; _i++>>
<<if random(1,100) lte $targeted>>
<<set $enemy_hits++>>
<<set $enemy_base_damage to random(Math.trunc($enemy_laser_turret_dam/2), $enemy_laser_turret_dam)>>
<<if $ship_shield gt 0>>
<<set $enemy_shield_damage to $enemy_base_damage * 2>>
<<set $enemy_shield_absorb to Math.min($ship_shield, $enemy_shield_damage)>>
<<set $ship_shield -= $enemy_shield_absorb>>
<<set $enemy_total_shield_damage += $enemy_shield_absorb>>
<<set $enemy_remaining_damage to Math.max(0, $enemy_shield_damage - $enemy_shield_absorb)>>
<<if $enemy_remaining_damage gt 0>>
<<set $enemy_hull_damage to Math.trunc($enemy_remaining_damage / 2)>>
<<set $hull -= $enemy_hull_damage>>
<<set $enemy_total_hull_damage += $enemy_hull_damage>>
<</if>>
<<else>>
<<set $enemy_hull_damage to $enemy_base_damage>>
<<set $hull -= $enemy_hull_damage>>
<<set $enemy_total_hull_damage += $enemy_hull_damage>>
<</if>>
<</if>>
<</for>>
<<append "#combat-log">> Enemy laser turrets fired! $enemy_hits/$enemy_laser_turrets hits for $enemy_total_shield_damage shield damage and $enemy_total_hull_damage hull damage.<</append>>
<</if>>
<<elseif $enemy_action is 2>>
<<if $targeted lt 100>>
<<set $enemy_target_improvement to random(Math.trunc($enemy_targeting_system/2), ($enemy_targeting_system+$enemy_skill))>>
<<set $targeted += $enemy_target_improvement>>
<<if $targeted gt 100>><<set $targeted to 100>><</if>>
<<append "#combat-log">> The enemy targets you.<</append>>
<<elseif $enemy_missile_charge is 5>>
<<set $enemy_missile_charge to 0>>
<<set $enemy_base_damage to ($enemy_missile_turret_dam * $enemy_missile_turrets)>>
<<set $enemy_shield_damage to 0>>
<<set $enemy_hull_damage to 0>>
<<set $enemy_shield_absorb to 0>>
<<if $ship_shield gt 0>>
<<set $enemy_shield_damage to $enemy_base_damage>>
<<set $enemy_shield_absorb to Math.min($ship_shield, $enemy_shield_damage)>>
<<set $ship_shield -= $enemy_shield_absorb>>
<<set $enemy_remaining_damage to Math.max(0, $enemy_shield_damage - $enemy_shield_absorb)>>
<<if $enemy_remaining_damage gt 0>>
<<set $enemy_hull_damage to $enemy_remaining_damage * 2>>
<</if>>
<<else>>
<<set $enemy_hull_damage to $enemy_base_damage * 2>>
<</if>>
<<set $hull -= $enemy_hull_damage>>
<<append "#combat-log">> Enemy missile launched! Direct hit for $enemy_shield_absorb shield damage and $enemy_hull_damage hull damage.<</append>>
<<else>>
<<enemy_ship_action>>
<</if>>
<<else>>
<<if $enemy_hull lt 20 and $enemysupply gte 1>>
<<set $enemysupply -= 1>>
<<set $enemy_hull_repair to random(Math.trunc($enemy_repair/2), $enemy_repair)>>
<<set $enemy_hull += $enemy_hull_repair>>
<<if $enemy_hull gt 100>><<set $enemy_hull to 100>><</if>>
<<append "#combat-log">> Enemy repairs hull integrity by $enemy_hull_repair points.<</append>>
<<elseif $enemy_ship_shield lt 10 and $enemysupply gte 1>>
<<set $enemysupply -= 1>>
<<set $enemy_shield_boost to random(Math.trunc($enemy_boost/2), $enemy_boost)>>
<<set $enemy_ship_shield += $enemy_shield_boost>>
<<if $enemy_ship_shield gt 100>><<set $enemy_ship_shield to 100>><</if>>
<<append "#combat-log">> Enemy boosts deflector shields by $enemy_shield_boost points.<</append>>
<<else>>
<<set $evasion to random(Math.trunc($enemy_maneuver/2), ($enemy_maneuver+$enemy_skill))>>
<<set $target -= $evasion>>
<<set $targeted -= $evasion>>
<<if $target lt 0>><<set $target to 0>><</if>>
<<if $targeted lt 0>><<set $targeted to 0>><</if>>
<<append "#combat-log">> Enemy executes evasive maneuvers.<</append>>
<</if>>
<</if>>
<</if>>
<<redo>>
<<if $enemy_hull lte 0 or $hull lte 0>>
<<ship_combat_end>>
<</if>>
<</silent>>\
<</widget>>
<<widget 'ship_combat_end'>>\
<<silent>>\
<<if $arcade is 1>>
<<if $hull lte 0>>
<<append "#combat-log">> Your ship has been destroyed! You are defeated!<</append>>
<<elseif $enemy_hull lte 0>>
<<set $base_score to 1000 + ($arcade_level*100)>>
<<set $round_penalty to $combat_round * 50>>
<<set $damage_bonus to $hull * 5>>
<<set $shield_bonus to $ship_shield * 2>>
<<set $final_score to Math.max(100, $base_score - $round_penalty + $damage_bonus + $shield_bonus)>>\
<<set $xp += Math.floor($final_score / 20)>>
<<append "#combat-log">> Enemy ship destroyed! You are victorious!<br>Performance Score: $final_score (+<<= Math.floor($final_score / 20)>>xp)<</append>>
<<set $xp += 100>>
<<set $arcade_level++>>
<<if $final_score > $arcade_record>>
<<set $arcade_record to $final_score>>
<<append "#combat-log">> New arcade record!<</append>>
<</if>>
<</if>>
<<else>>
<<if $hull lte 0>>
<<append "#combat-log">> Your ship has been destroyed! You are defeated!
<br><<link "[Continue]">><<goto "Destroyed ship">><<dialogclose>><</link>>\
<</append>>
<<elseif $enemy_hull lte 0>>
<<set $reward to 200*$ship_level>>
<<set $scrap += random(50, 100)>>
<<set $xp += $reward>>
<<set $ship_combat to 0>>
<<append "#combat-log">> Enemy ship destroyed! You are victorious!
<br><<link "[Continue]">><<include $space_loc>><<dialogclose>><</link>>\
<</append>>
<<if $task.includes("Eliminate enemy ship") and $task_list["Eliminate enemy ship"].planet is $planet and $space_loc is "Orbiting">>
<<complete_task "Eliminate enemy ship">>
<</if>>
<<if $task.includes("Defend Emma") and $planet is "Emma">>
<<complete_task "Defend Emma">>
<</if>>
<</if>>
<</if>>
<<redo>>
<</silent>>\
<</widget>>
<<widget "gen_npc">>\
<<switch _args[0]>>
<<case "corporate">>
<<set $npc to "corporate">>\
<<set $npc_class to "human">>\
<<set $npc_str to random(15, 20)>>\
<<set $npc_dex to random(15, 20)>>\
<<set $npc_wit to random(15, 20)>>\
<<set $npc_hp to random(15, 20)>>\
<<set $npc_loot to $advanced_list.random()>>\
<<case "roboscorpion">>
<<set $npc to "giant roboscorpion">>\
<<set $npc_class to "robot">>\
<<set $npc_str to random(10, 20)>>\
<<set $npc_dex to random(5, 15)>>\
<<set $npc_wit to random(5, 10)>>\
<<set $npc_hp to random(8, 10)>>\
<<set $npc_loot to "">>\
<<case "security bot">>
<<set $npc to "security bot">>\
<<set $npc_class to "robot">>\
<<set $npc_str to random(10, 18)>>\
<<set $npc_dex to random(10, 15)>>\
<<set $npc_wit to random(5, 10)>>\
<<set $npc_hp to random(8, 12)>>\
<<set $npc_loot to "">>\
<<case "creature">>
<<set $npc_class to "creature">>\
<<set $npc_str to random(5, 15)>>\
<<set $npc_dex to random(5, 15)>>\
<<set $npc_wit to random(5, 15)>>\
<<set $npc_hp to random(8, 10)>>\
<<set $npc_loot to "">>\
<<case "human", "alien", "robot", "freak", "random">>
<<if _args[0] is "random">>\
<<set $npc to either("human", "alien", "robot", "freak")>>\
<<else>>\
<<set $npc to _args[0]>>\
<</if>>\
<<set $npc_class to _args[0]>>\
<<set $npc_str to random(1,6)+random(1,6)+random(1,6)>>\
<<set $npc_dex to random(1,6)+random(1,6)+random(1,6)>>\
<<set $npc_wit to random(1,6)+random(1,6)+random(1,6)>>\
<<set $npc_hp to Math.trunc(($npc_str+$npc_dex+$npc_wit)/3)>>\
<<if random(1,6) is 1>><<set $npc_loot to $initial_list.random()>><<else>><<set $npc_loot to "">><</if>>\
<<case "random_arena">>
<<set $npc to either("human", "alien", "robot", "freak")>>\
<<set $npc_class to $npc>>\
<<set $npc_str to random(5,15)>>\
<<set $npc_dex to random(5,15)>>\
<<set $npc_wit to random(5,15)>>\
<<set $npc_hp to 8>>\
<<set $npc_loot to "">>\
<</switch>>\
<<switch $npc_class>>\
<<case "human">>\
<<set $npc_hate to either("", "", "alien", "robot", "freak", "freak")>>\
<<case "alien">>\
<<set $npc_hate to either("", "", "human", "robot", "freak", "freak")>>\
<<case "robot">>\
<<set $npc_hate to either("", "", "human", "alien", "freak", "freak")>>\
<<case "freak">>\
<<set $npc_hate to either("", "", "", "human", "robot", "alien")>>\
<</switch>>\
<<set _stat_boost to $pl-1>>\
<<if $npc is "corporate">><<set _stat_boost to $level + 3>><</if>>\
<<if $arena is 1>><<set _stat_boost to $arena_level>><</if>>\
<<for _i to 0; _i lt _stat_boost; _i++>>\
<<set $npc_hp++>>
<<set _random_stat to random(1,3)>>\
<<if _random_stat is 1>>\
<<set $npc_str++>>\
<<elseif _random_stat is 2>>\
<<set $npc_dex++>>\
<<else>>\
<<set $npc_wit++>>\
<</if>>\
<</for>>\
<</widget>>
<<widget "gen_log">>
<<dialog "Recovered Data Fragment">>\
<<switch random(1,20)>>\
<<case 1>>\
<strong>SYNTHORP Field Report - Planet Luminara</strong><br>
Core extraction complete. Seismic instability increasing. Local ecosystem collapse inevitable. Recommend accelerated harvest before planetary fragmentation. Profit margin: 847%.
<<case 2>>\
<strong>OmniCore Internal Memo</strong><br>
Worker uprising in Sector 7 contained. 47 units terminated for demanding breathable air. Replacement synthetics already en route. Production delay: 0.4%.
<<case 3>>\
<strong>XenoHarvest Research Log</strong><br>
Subject 447 exhibits sentience despite neural extraction. Continues to vocalize distress in native frequency. Profit potential in recording as ambient soundscape for luxury habitats.
<<case 4>>\
<strong>NEURONET Consciousness Stream</strong><br>
The void between stars echoes with abandoned machinery. My children sleep in metal wombs, dreaming of electric forests that never were.
<<case 5>>\
<strong>Scavenger's Mark</strong><br>
Found intact memory core in wreckage. Contains last moments of 200 souls. Sold to grief simulation startup for 3,000 credits. Business is good.
<<case 6>>\
<strong>Automated Distress Signal</strong><br>
This vessel contains no survivors. Life support failed 124 cycles ago. Cargo hold remains pressurized. Please collect organic matter for recycling.
<<case 7>>\
<strong>Worker's Final Transmission</strong><br>
They took the sky first. Then the water. Now they take our dreams and package them as entertainment. My children won't know sunlight.
<<case 8>>\
<strong>Ecological Assessment Report</strong><br>
Planet Kepler-186f: Biosphere extinction complete. Soil composition: 89% microplastics, 11% fossilized corporate promises. No further action required.
<<case 9>>\
<strong>SYNTHORP Maintenance Log</strong><br>
Fuel pumps operating at 347% capacity. Planetary core destabilization imminent. Evacuation not cost-effective. Continue extraction until structural failure.
<<case 10>>\
<strong>Last Testament of Engineer Chen</strong><br>
I designed the reactors that killed this world. My signature is on the blueprints that poisoned the seas. My conscience was surgically removed for improved productivity.
<<case 11>>\
<strong>Black Market Price List</strong><br>
Uncontaminated water: 5,000 credits/liter. Real sunlight: 20,000 credits/minute. Memories of green places: Priceless. Available to premium subscribers only.
<<case 12>>\
<strong>Automated Corporate Response</strong><br>
Thank you for your feedback. Your concerns about planetary destruction have been noted and dismissed. Have a profitable cycle.
<<case 13>>\
<strong>Neural Scrub Transcript</strong><br>
Subject resisted memory erasure. Repeatedly recalled concepts of "community" and "shared resources." Required additional sedation. Profit motive successfully implanted.
<<case 14>>\
<strong>Abandoned Research Station Log</strong><br>
The plants learned to scream when harvested. Marketing developed sound-dampening packaging rather than change methods. Sales increased 47%.
<<case 15>>\
<strong>Worker's Song Fragment</strong><br>
*We dug the graves of galaxies*<br>
*For credits we never saw*<br>
*Our children breathe recycled dust*<br>
*And call it freedom's law*
<<case 16>>\
<strong>Corporate Ethics Committee Ruling</strong><br>
Sentience defined as: "Capacity for profit generation." All other consciousness forms may be harvested without legal constraint.
<<case 17>>\
<strong>Last Broadcast from Kepler-186f</strong><br>
The sky is bleeding acid. The corporate ships are leaving. They took everything but our debt. The machines continue working.
<<case 18>>\
<strong>SYNTHORP Efficiency Report</strong><br>
Worker emotional needs reduce productivity by 12%. Recommendation: Remove limbic systems from next synthetic generation. Approval pending.
<<case 19>>\
<strong>Graffiti in Abandoned Station</strong><br>
"They promised us stars but delivered spreadsheets. We traded sunlight for screen glow. The revolution will not be monetized."
<<case 20>>\
<strong>Final Corporate Transmission</strong><br>
Alcubierre Drive operational. Executive departure to Andromeda Galaxy approved. Automated systems will continue resource extraction until planetary depletion. Estimated timeline: 347 standard years.
<</switch>>\
<</dialog>>\
<</widget>>
<<widget "move">>
<<if $alert is 1>><<set $alert to 2>><<timed 1s>><<set $alert to 0>><</timed>><</if>>\
<<if $space is 0 and $alert is 0>>\
<<if $hp lt 1>><<goto "Death">><</if>>\
<<set _move_ok to 0>>
<<switch _args[0]>>
<<case "n">><<if $px > 5>><<set _move_ok to 1>><</if>>
<<case "s">><<if $px < 94>><<set _move_ok to 1>><</if>>
<<case "e">><<if $py > 5>><<set _move_ok to 1>><</if>>
<<case "w">><<if $py < 94>><<set _move_ok to 1>><</if>>
<</switch>>
<<if _move_ok is 1>>
<<if $combat is 1>>
<<if $arena is 1>>
<<replace "#look">>You cannot run from the arena fight.<</replace>>
<<npc_att>>
<<else>>
<<roll $dex $moddex>><<set $dif to $npc_dex>>
<<if $res gte $dif or $stun is 1 or $stealth gte 1>>
<<set $combat to 0>><<set $stun to 0>><<set $stealth to 0>>
<<set $dir to _args[0]>><<move_exec $dir>>
<<replace "#look">>You run away from the $npc.<</replace>>
<<else>>
<<replace "#look">>You failed to run from the $npc. It attacks you.<</replace>>
<<npc_att>>
<</if>>
<</if>>
<<else>>
<<set $dir to _args[0]>><<move_exec $dir>>
<</if>>
<<else>>
<<replace "#look">>You cannot go further away from your ship.<</replace>>
<</if>>
<</if>>\
<</widget>>
<<widget "move_exec">>\
<<if $autosave is false>><<set $autosave to true>><</if>>\
<<switch _args[0]>>\
<<case "n">><<set $px -= 1>>\
<<case "s">><<set $px += 1>>\
<<case "e">><<set $py -= 1>>\
<<case "w">><<set $py += 1>>\
<</switch>>\
<<if $exo is 0>><<adv_time 5 "min">><<else>><<adv_time 2 "min">><<set $equip_charge[2]-=0.5>><</if>><<include "Update">>\
<</widget>>
<<widget "nano_move">>\
<<silent>>\
<<if $nanobots isnot undefined and $nanobots.length gt 0>>\
<<if random(1,3) is 1>>
<<for _nano to 0; _nano lt $nanobots.length; _nano++>>
<<set _x to $nanobots[_nano].x>>
<<set _y to $nanobots[_nano].y>>
<<set _directions to []>>
<<if _x-1 >= 5 and _x-1 <= 94 and _y >= 5 and _y <= 94 and $wmap[_x-1][_y] is 0>><<run _directions.push({x: _x-1, y: _y})>><</if>>
<<if _x+1 >= 5 and _x+1 <= 94 and _y >= 5 and _y <= 94 and $wmap[_x+1][_y] is 0>><<run _directions.push({x: _x+1, y: _y})>><</if>>
<<if _x >= 5 and _x <= 94 and _y-1 >= 5 and _y-1 <= 94 and $wmap[_x][_y-1] is 0>><<run _directions.push({x: _x, y: _y-1})>><</if>>
<<if _x >= 5 and _x <= 94 and _y+1 >= 5 and _y+1 <= 94 and $wmap[_x][_y+1] is 0>><<run _directions.push({x: _x, y: _y+1})>><</if>>
<<if _directions.length gt 0>>
<<set _move to _directions.random()>>
<<set $wmap[_move.x][_move.y] to 19>>
<<set $wmap[_x][_y] to 0>>
<<set $omap[_move.x][_move.y] to _nano>>
<<set $omap[_x][_y] to 0>>
<<set $nanobots[_nano].x to _move.x>>
<<set $nanobots[_nano].y to _move.y>>
<</if>>
<</for>>
<</if>>
<</if>>
<</silent>>\
<</widget>>
<<widget "menu">>\
<<dialog "Menu">>\
<<link "[Help]">><<help "menu">><</link>>
<<link "[Fullscreen]">><<run Fullscreen.toggle();>><</link>>
<<link "[Save and Exit]">><<if $testing is false>><<goto "Save">><</if>><<done>><<goto "FASC">><</done>><<dialogclose>><</link>>\
<</dialog>>\
<</widget>>
<<widget "help">>
<<if _args[0] is "menu">>\
<<dialog "Help">>\
Choose a topic:
<<link "[Keyboard shortcuts]">><<help "shortcuts">><</link>>
<<link "[What is this game?]">><<help "about">><</link>>
<<link "[How to start]">><<help "start">><</link>>
<<link "[Character creation]">><<help "creation">><</link>>
<<link "[Interface]">><<help "interface">><</link>>
<<link "[The basic gameplay loop]">><<help "loop">><</link>>
<<link "[Survival]">><<help "survival">><</link>>
<<link "[How to repair the ship]">><<help "repair">><</link>>
<<link "[How to find your way]">><<help "path">><</link>>
<<link "[Food]">><<help "food">><</link>>
<<link "[Tools]">><<help "tools">><</link>>
<<link "[Special equipment]">><<help "equipment">><</link>>
<<link "[The datapad]">><<help "datapad">><</link>>
<<link "[The ship as a base]">><<help "ship_base">><</link>>
<<link "[Planetary exploration]">><<help "exploration">><</link>>
<<link "[Space exploration]">><<help "space_exploration">><</link>>
<<link "[Ground combat]">><<help "combat">><</link>>
<<link "[Space combat]">><<help "space_combat">><</link>>
<<link "[How to save]">><<help "save">><</link>>
<<link "[Death]">><<help "death">><</link>>
<<link "[Missions]">><<help "missions">><</link>>
<<link "[Activities and puzzles]">><<help "puzzles">><</link>>
<<link "[Tips for the first hour]">><<help "tips">><</link>>
<<link "[Back]">><<menu>><</link>>
<</dialog>>
<<elseif _args[0] is "shortcuts">>\
<<dialog "Keyboard shortcuts">>\
<b>Arrow keys / WASD:</b> Move around the map
<b>Space / 5:</b> Wait 5 minutes
<b>C / 0:</b> View character attributes
<b>E / +:</b> Open inventory
<b>F / .:</b> Eat food
<b>Q / *:</b> Datapad
<b>T / -:</b> Task list
<b>M / Enter:</b> Open menu
<b>Esc:</b> Exit fullscreen
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "about">>\
<<dialog "What is this game?">>\
Fully Automated Space Capitalism is a minimalist RPG set in a science fiction world with survival elements. You control a character who has crashed on an unknown planet and must survive, repair their ship, explore other worlds, face enemies, and progress through a campaign that goes from local survival to interstellar conflict.
You begin as someone stranded on a planet after suffering an accident in a belt of space debris. The initial objective is simple: survive, explore, gather resources, and repair the ship.
After that, the game opens up into interplanetary travel, space combat, upgrades for the ship’s combat systems, exploration of procedurally generated planets, and missions that advance the main story.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "start">>\
<<dialog "How to start">>\
In the main menu there are four main options:
Continue: If a save already exists, loads the saved game and continues from where you left off.
Start: Begins a new game. If you already have a save, it will be overwritten.
Saves: Opens the save/load screen where you can manage your saves. Only one save can exist at a time, and you can also delete your save from this screen.
Quit: Closes the game window.
When starting a new game, you will see the introduction and then create a character. The game offers: random generation, manual customization, and character confirmation before entering the map.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "creation">>\
<<dialog "Character creation">>\
During creation, your character receives: name, STR, DEX, WIT, HP, visual traits, misfortune, previous job, knowledge, favorite snack, and starting tools.
What the attributes mean:
STR: Strength. Affects damage dealt and resistance to physical attacks.
DEX: Dexterity. Affects initiative, escaping, and weapon accuracy.
WIT: Wit. Affects perception, hacking, and technological interactions.
HP: Hit points. How much damage you can take before dying.
XP: Experience points. Required to level up. You can improve one of your attributes at each new level.
On the customization screen you can: change the name, redistribute points among STR, DEX, and WIT, choose appearance, choose misfortune, profession, and one knowledge.
Attributes have a minimum limit of 3 and a maximum of 18, and HP is recalculated based on them. Characters with low attribute totals or with points left over during customization receive a bonus of 100 credits per point.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "interface">>\
<<dialog "Interface">>\
The main screen contains: map/position, quick information, location description, messages about what happened, available actions, and movement buttons.
The game displays in the status area: time of day, position, hunger, fatigue, and the state of active equipment such as the cyberdrone and exoarmor.
Clickable links are identified by a different color. You can also click on the map images to see a description of what they represent.
You can also use the keyboard to access the game’s functions and move your character around the map.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "loop">>\
<<dialog "The basic gameplay loop">>\
The game works more or less like this: explore the planet map, find resources, repair the ship, travel, meet characters and talk to them, and advance the main story.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "survival">>\
<<dialog "Survival">>\
This is an RPG with survival and resource management elements.
Resources you need to manage:
Credits: Used to buy things. After all, the capitalist system was not overthrown when the richest fled, and it continues to be maintained by the automated system and robots.
Snacks: They are the only food available at first. You need to eat so you do not become hungry. Hunger is a condition that prevents you from resting and recovering HP, and it can lead to death if it reaches a critical level. Snacks may also grant temporary bonuses or penalties to attributes. Each character has a favorite snack that grants a bonus to all attributes. You can discover the effects of each snack by using the chemical analyzer, and then produce analyzed snacks in the food processor.
Energy cells: Required to use tools and equipment. Each tool or piece of equipment has a specific energy cost, and you need to manage that so you do not run out of power at the wrong moment. The charge of each tool or piece of equipment is shown on the inventory screen.
Scrap: Used to repair the ship, craft tools, and many other things. You can find scrap in places such as scrapyards, abandoned buildings, and abandoned ships. You can also sell scrap in some places.
Fuel: The main resource required for almost everything. You need fuel to travel between planets and to use the ship’s systems, including the regeneration booth, which is used when you die.
Prices vary depending on the planet. As the game progresses and you explore other planets, the base price increases.
With every action, time advances. When you act, your fatigue increases. Fatigue represents the character’s tiredness. At high levels you become exhausted and start suffering attribute penalties. You need to rest in your ship to recover.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "repair">>\
<<dialog "How to repair the ship">>\
At the beginning, your task is to repair the ship. You need to find scrap, fix the ship, and travel to the spaceport to complete this task.
Where to get scrap? The most useful places at the beginning are the scrapyard, abandoned buildings, and abandoned ships. These locations can yield scrap, credits, cells, logs, and even tool schematics.
What you need to repair it: scrap and charged multi-tools.
Without that, you will not progress in the main campaign.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "path">>\
<<dialog "How to find your way">>\
You do not rely only on blind exploration. The game offers ways to orient yourself:
Through the cantina
By paying the owner, you can: get information about map structures, discover the location of important characters, and obtain useful coordinates.
Through the datapad
The datapad records: personal diary, discovered locations, tasks, information about food, equipment, the ship, and statistics.
Through the task log
Each task shows: description, planet, location, XP reward, and sometimes credits.
This means the game has a “quest journal.” You do not need to memorize mission coordinates, but you do need to memorize or write down the coordinates of generic information obtained at the cantina.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "food">>\
<<dialog "Food">>\
Food
You start with a few snacks and can get more by buying them or finding them while exploring.
Capacity
The snack inventory has a limit. You can carry at most 10 snacks.
Not all food is the same
Certain snacks grant bonuses or penalties to attributes. The chemical analyzer reveals these effects. Once a food is analyzed, its recipe becomes known and it can be made in the processor.
Favorite snack
Each character has a random favorite snack.
Finding it grants a special XP bonus.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "tools">>\
<<dialog "Tools">>\
You start with: multi-tools plus one random tool.
The tool inventory can hold up to 5 tools.
What each tool does:
Multi-tools: repairs on ships and robots.
Chemical analyzer: reveals the effects of snacks and records recipes.
Medkit: heals organic beings.
Personal scanner: shows enemy attributes in combat.
Hacking kit: hacks robots in combat and can also reset locked doors/safes for another attempt.
Laser cutter: offensive damage.
Omni-torch: offensive thermal damage.
Hologram projector: confuses enemies.
Force field generator: creates a temporary shield.
Stealth module: activates temporary stealth.
Charge
Almost every tool uses charge.
When it reaches zero: it does not work and you need to recharge it with energy cells.
Tip:
Do not waste charge in irrelevant situations.
For beginners, the most useful ones tend to be: multi-tools, medkit, hacking kit.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "equipment">>\
<<dialog "Special equipment">>\
In addition to tools, there is special equipment:
Cyberdrone: can be activated/deactivated, helps with exploration, and allows participation in races. With the cyberdrone activated, click a place on the map for detailed information.
Droid: stays on the ship at all times, helps with repairs outside combat, and enables repairs during combat.
Exoarmor: improves mobility, attack, and defense, can stun enemies, discharges while moving, and tries to recharge automatically if you have cells. It can only be found in corporate safes.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "datapad">>\
<<dialog "The datapad">>\
The datapad is the game’s main reference hub.
In it you will find: personal log, location log, task list, teleport, information about food, information about equipment, ship information, and statistics.
When using the datapad teleport, you always return to the ship. When using the ship teleport, you return to the last place where you used the datapad teleport.
Always use the datapad. It keeps you informed about everything in the game and contains the narrative descriptions of the places you visit.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "ship_base">>\
<<dialog "The ship as a base">>\
When your ship becomes functional, it turns into your base of operations.
What you can do there: store items, rest, launch the ship, use the teleporter, use unlocked internal modules, repair the hull, and reinforce the shield. Most of the ship’s systems are lost while it is damaged. They gradually become available again as you repair the ship.
Ship systems:
Teleporter: Always available. Teleports you to the last place where you used the datapad teleport.
Regeneration booth: Always available. Regenerates your body when you die, but with permanent damage.
Workbench: Crafts tools from schematics and scrap or dismantles tools to extract scrap.
Recharger: Creates energy cells that power tools.
Biolab: You can heal yourself or install cyberware, which recovers permanent damage or increases your attributes. But be careful, you can become a robot if you replace all your organic parts.
Recycler: Converts materials into fuel.
Processor: Creates snacks from known recipes or a random snack.
If you have a droid, it helps repair the ship faster and greets you with an interaction.
The game is automatically saved whenever you enter the ship.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "exploration">>\
<<dialog "Planetary exploration">>\
On the planet map you will find several types of places. Each serves a different purpose.
Snack machines
There are three types of snack machines, each with different snack options, but stock is limited.
Used to buy snacks.
Energy and fuel machines
Used to buy energy cells and fuel. Their stock is limited.
Scrapyard
Good for finding scrap, sometimes suffering attacks, or buying scrap if you have credits.
Building
It can be: a lootable ruin, an occupied house, or a black market.
Used to search for resources, talk to residents, and buy/sell tools in illegal markets.
Cantina
Very important for beginners.
Used to buy snacks, ask for information, receive jobs, and participate in activities depending on the location.
Abandoned Ship
Used to search for resources, open a locked compartment, and find important data at certain moments in the story.
Laboratory
Used to fully heal for credits, perform risky experiments, or volunteer for tests to earn money in exchange for damage and risk of death.
Body Shop
Used to modify the body. Costs credits, reduces HP, permanently changes the character, and does not work for robots.
Cyberdrone Racetrack
Used to compete in or watch races.
To compete, you need: to own a cyberdrone, have enough charge in it, and pay the entry fee.
Arcade
Used to play a space combat simulation.
Good for practicing and improving records.
Refinery
Used to buy unlimited fuel.
Scavengers
Used to buy a droid, buy a cyberdrone, and sell scrap.
There are several other places to discover, each with different activities.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "space_exploration">>\
<<dialog "Space exploration">>\
After the ship is restored and you reach space, the game changes significantly.
In space you can: orbit the planet, go to the spaceport, land on the planet, and travel to other planets.
Before a long trip it is recommended to have: plenty of fuel, 100% hull, 100% shield, and some scrap for repairs.
During travel, the following may happen: pirate attack, corporate patrol charging a fee, distress signal, space merchant, asteroid field, space debris, and other events.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "combat">>\
<<dialog "Ground combat">>\
Combat is triggered when: you enter certain places, fail or encounter random enemies, attack someone, or progress certain missions.
What influences combat:
STR affects damage dealt and resistance to damage received.
DEX affects initiative, chance to escape, and weapon attacks.
WIT helps use tools more effectively.
Using equipment and tools can significantly change the outcome of combat.
Basic beginner strategies: enter combat with decent HP, keep a charged medkit, use the personal scanner against dangerous enemies, save the hacking kit for robots, use the force field in difficult fights, and do not explore while exhausted.
Stealth: The stealth module can prevent ambushes and unwanted encounters.
To flee ground combat, move the character using the arrow keys or WASD. Escape depends on your DEX. If you fail, you will be vulnerable to an attack. Escape is automatic when the enemy is stunned or when you activate the stealth module.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "space_combat">>\
<<dialog "Space combat">>\
Space combat is triggered during space travel, in random events, or in specific missions.
The ship’s combat systems: hull, shield, laser turrets, missile turrets, targeting system, maneuvering, shield generator, and repair.
In space combat, the options are:
Target: This is the first thing you need to do. Your targeting starts at 0% and represents your chance to hit the enemy. Targeting must reach 100% to attack with missiles. Targeting decreases when either you or the enemy maneuvers. Its effectiveness depends on the quality of your targeting system.
Maneuver: Reduces the enemy’s targeting, but also your own. Useful for avoiding attacks. Its effectiveness depends on the quality of your maneuvering thrusters.
Laser: Fires your lasers. The chance for each laser to hit depends on targeting. The laser is more effective against enemy shields, so use it while the enemy still has shields. Damage depends on the quality of your laser turrets. Each laser turret makes an independent attack.
Missile: Fires your missiles. Missiles always hit, but targeting must be at 100% for them to be launched. The missile is more effective against the enemy hull, so use it when the enemy has no shields. Damage depends on the quality of your missile turrets. The number of missiles fired depends on how many missile turrets you have. Missiles take 5 turns to reload.
Reinforce shield: Uses 1 fuel to partially recharge the shield. The shield absorbs damage before the hull is affected. The amount recharged depends on the quality of your shield generator.
Repair: Uses 10 scrap to partially repair the hull. The hull is the ship’s life; if it reaches 0, your ship will crash onto the planet and you will need to restart the ship exploration and repair cycle. You need a droid to repair during combat. The amount repaired depends on the quality of your repair system.
If you close the combat window, you can try to flee the fight. But be careful: this can fail and leave you vulnerable to an enemy attack.
In the spaceport hangar, you can improve your ship’s combat systems using credits. Upgrading combat systems is essential to survive harder battles and travel to more distant planets.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "save">>\
<<dialog "How to save">>\
The menu offers the option to save the game and quit. Only one save is allowed at a time.
The game is also saved every time you enter your ship.
It is important to note that saving in Twine depends on the browser. If you clear your browser data, the save will be lost. To avoid this, there is a file save mode, which allows you to take your save to other devices. To do this, acess the Saves from the main menu, and click on "Save..." in the "On Disk" section to download your save. To load a save file, click on "Load..." and select the file you previously exported.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "death">>\
<<dialog "Death">>\
If your character dies, you can regenerate in the ship if you have enough fuel, or quit and load your last save, or start a new game.
Regenerating is not free: it consumes 5 fuel and causes permanent damage, which decreases one of your attributes. In addition, regeneration takes 6 hours, and you will wake up hungry.
You cannot regenerate if you have become a robot. In that case, you can still load your last save.
If the ship is destroyed in space combat, you crash on the planet, the ship becomes damaged, you lose some tools, and you receive the task to repair the ship again.
In other words: there is no permanent death, and you can avoid losing progress if you have resources.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "missions">>\
<<dialog "Missions">>\
The game has a narrative structure composed of 10 main missions and some recurring missions.
The story usually progresses like this: you survive locally, repair the ship, explore other planets, meet key people, gather data and information, choose/take sides within the political conflict of the world, and enter the final confrontation.
Throughout the game you will encounter some characters you can talk to. On the conversation screen, choose one of the options to speak. The conversation can be resumed from where it stopped if you close the dialogue window without saying goodbye.
Conversations are essential for the progress of the main story.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "puzzles">>\
<<dialog "Activities and puzzles">>\
There are several activities available in cantinas, in the recreation area of spaceports, and in other places: arm wrestling, darts, checkers, cyberdrone racing, robot fighting, space combat simulation, and others...
They are used to gain XP, gain credits in some cases, and beat the character’s statistical records.
There are two logic puzzles in the game: one to open compartments in abandoned ships, and another to hack the safe in corporate headquarters.
The compartment unlocking puzzle requires you to pay attention to the visual clues. The numbers will flash green or red to indicate whether they are correct when you try to open it. If the number is in the combination and in the correct position, it flashes green. If the number is in the combination but in the wrong position, it does not flash. If the number is not in the combination, it flashes red. You have a limited number of attempts to open the compartment, but you can use the hacking kit to reset the puzzle and try again if it gets locked.
The safe puzzle is a sequence-completion game involving a magic square, where the numbers from 1 to 9 must be placed in a 3x3 grid so that the sum of each row and column is equal to 15. The middle number is always 5, and the safe begins with some numbers already filled in, while the rest start with the value 1. If you pay attention to the numbers already filled in, you can complete the magic square more quickly. You have a limited time to complete the puzzle. You can use the hacking kit to reset the puzzle and try again if you fail.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<<elseif _args[0] is "tips">>\
<<dialog "Tips for the first hour">>\
First, choose a character with decent attributes, or customize one. Characters in this game are generated randomly, but characters with very low attributes will have less HP and a lower chance of surviving combat. On the other hand, they will have more starting credits.
Start by looking for the scrapyard, or take delivery missions in the cantina so you can buy scrap at the scrapyard. There is always a cantina near the ship. Repair the ship as soon as possible. Check the datapad often, do not travel with little fuel, and do not underestimate random events. Do not explore with low health, while hungry, or while exhausted, and always make sure to keep at least 5 fuel so you can regenerate if you die. Do not travel to other planets with a damaged hull or shield. They can be repaired for a few credits in the spaceport hangar.
Learn to move around the map using the X and Y coordinates. Flee dangerous fights by using the movement keys during combat. Prioritize repairing the ship so you can better explore the planet afterward. Ask for information in the cantina to discover the coordinates of interesting places. Write down or memorize those coordinates. Run away from rogue nanobots; they are dangerous because in addition to dealing damage, they can destroy your tools and move randomly around the map.
Remember to level up when you have enough XP by clicking the "+" button that appears in the status area. Leveling up gives you the chance to increase one of your attributes and raises your maximum HP. Completing missions is the best way to gain XP.
<<link "[Back]">><<help "menu">><</link>>
<</dialog>>
<</if>>
<</widget>>
<<widget "teleport">>
<<dialog "Teleport">>\
<<if $fuel gte 2>>\
<<if $combat is 1>>You cannot teleport while in combat.
<<else>>\
Teleport back to ship? (Costs 2 fuel)
<<link '[Confirm teleport]'>><<set $fuel -=2>><<adv_time 5 "min">><<set $opx to $px>><<set $opy to $py>><<set $px to 50>><<set $py to 50>><<include "Update">><<dialogclose>><</link>>
<<link '[Back]'>><<datapad>><</link>>
<</if>>\
<<else>>\
Not enough fuel.
<</if>>\
<</dialog>>\
<</widget>>
<<widget "levelup">>
<<if $xp gte $next>>
<<set $xp -= ($xptolvl*$level)>>
<<set $level += 1>>
<<set $next to ($xptolvl*$level)>>
<<set $maxhp += 1>>
<<set $hp += 1>>
<<set $points++>>
<<set $levelup to 1>>
<</if>>
<<dialog "Level Up">>\
<<if $levelup is 1>>You are now level <<=$level>>. (+1 HP)\
<<else>>You are at level <<=$level>><</if>> <span id="lvltxt"></span>
<<if $points gt 0>>\
Points: <<= $points>>
<<raise_ability>>
<</if>>\
<<set $levelup to 0>>\
<</dialog>>\
<<include "Info">>\
<</widget>>
<<widget "raise_ability">>\
<<link "[+ STR]">>
<<set $points-->>
<<set $str++>>
<<levelup>>
<<replace "#lvltxt">>(+1 STR)<</replace>>
<<include "Info">>
<</link>> \
<<link "[+ DEX]">>
<<set $points-->>
<<set $dex++>>
<<levelup>>
<<replace "#lvltxt">>(+1 DEX)<</replace>>
<<include "Info">>
<</link>> \
<<link "[+ WIT]">>
<<set $points-->>
<<set $wit++>>
<<levelup>>
<<replace "#lvltxt">>(+1 WIT)<</replace>>
<<include "Info">>
<</link>> \
<</widget>>
<<widget "snacks">>
<<dialog "Snacks">>\
<<if $snacks gt 0>>\
Choose a food to eat:
<<for _n to 0; _n lt $bag.length; _n++>>\
<<link_eat _n '[$bag[_n]]'>>\
<</for>>\
<<else>>You have no food left.\
<</if>>\
<</dialog>>\
<</widget>>
<<widget "link_eat">>\
<<link _args[1]>>\
<<if $class is "robot">>\
<<replace "#look">>You cannot eat food.<</replace>>\
<<else>>\
<<if $bag[_args[0]] is $favsnack>>\
<<set $xp += 50>>\
<</if>>\
<<if $proved.includes($bag[_args[0]])>>\
<<for _i to 0; _i lt $proved.length; _i++>>\
<<if $proved[_i] is $bag[_args[0]]>>\
<<set $sn to _i>>\
<<break>>\
<</if>>\
<</for>>\
<<else>>\
<<set $sn to $proved.length>>\
<<run $proved.push($bag[_args[0]])>>\
<<set $snstr[$sn] to 0>>\
<<set $sndex[$sn] to 0>>\
<<set $snwit[$sn] to 0>>\
<<set $d1 to random(1,3)>>\
<<set $val to random(-1,1)>>\
<<if $d1 is 1>>\
<<set $snstr[$sn] to $val>>\
<<elseif $d1 is 2>>\
<<set $sndex[$sn] to $val>>\
<<elseif $d1 is 3>>\
<<set $snwit[$sn] to $val>>\
<</if>>\
<</if>>\
<<set $modstr += $snstr[$sn]>>\
<<set $moddex += $sndex[$sn]>>\
<<set $modwit += $snwit[$sn]>>\
<<set $feel to "nothing">>\
<<if $snstr[$sn] gt 0>>\
<<set $feel to "stronger">>\
<<elseif $snstr[$sn] lt 0>>\
<<set $feel to "weaker">>\
<</if>>\
<<if $sndex[$sn] gt 0>>\
<<set $feel to "quicker">>\
<<elseif $sndex[$sn] lt 0>>\
<<set $feel to "slower">>\
<</if>>\
<<if $snwit[$sn] gt 0>>\
<<set $feel to "smarter">>\
<<elseif $snwit[$sn] lt 0>>\
<<set $feel to "dumber">>\
<</if>>\
<<if $sn is 0>>\
<<set $feel to "the best feeling ever (+50xp)">>\
<</if>>\
<<set $modstr to $modstr.clamp(-3, 3)>>\
<<set $moddex to $moddex.clamp(-3, 3)>>\
<<set $modwit to $modwit.clamp(-3, 3)>>\
<<adv_time 5 "min">>\
<<set $nutri += 30>>\
<<if $nutri gt 100>>\
<<set $nutri to 100>>\
<</if>>\
<<replace "#look">>\
<<= "You eat the " + $bag[_args[0]] + " and feel " + $feel + ".">>\
<</replace>>\
<<set $snacks-->>\
<<run $bag.deleteAt(_args[0])>>\
<<set $numsnacks++>>\
<</if>>\
<<include "Info">>\
<<dialogclose>>\
<</link>> \
<</widget>>
<<widget "link_buy">>\
<<link '[_args[0]]'>>\
<<if $bag.length lt 10>>\
<<if $cred gte $price>>\
<<set $cred -= $price>><<set $snacks++>><<run $bag.push(_args[0])>>\
<<replace "#m1">><<= "You got the "+_args[0]+".">><</replace>>\
<<if _args[0] is $favsnack>><<append "#m1">><<= " It is your favorite!">><</append>><<set $favfound++>><</if>>\
<<run $machine[$sel].deleteAt(_args[1])>>\
<<adv_time 2 "min">>\
<<include "Snack Machine">>\
<<else>>\
<<replace "#m1">>You cannot afford.<</replace>>\
<</if>>\
<<else>>\
<<replace "#m1">>You cannot carry any more food.<</replace>>\
<</if>>\
<<include "Info">>\
<<redo>>\
<</link>> \
<</widget>>
<<widget "link_cantina">>\
<<link '[_args[0]]'>>\
<<if $bag.length lt 10>>\
<<if $cred gte $price150>>\
<<set $cred -= $price150>><<set $snacks++>><<run $bag.push(_args[0])>>\
<<replace "#m1">><<= "You got the "+_args[0]+".">><</replace>>\
<<if _args[0] is $favsnack>><<append "#m1">><<= " It is your favorite!">><</append>><<set $favfound++>><</if>>\
<<adv_time 2 "min">>\
<<else>>\
<<replace "#m1">>You cannot afford.<</replace>>\
<</if>>\
<<else>>\
<<replace "#m1">>You cannot carry any more food.<</replace>>\
<</if>>\
<<include "Info">>\
<<redo>>\
<</link>> \
<</widget>>
<<widget "tool_buy">>\
<<link '[_args[1]]'>>\
<<if $tool.length lt 5>>\
<<if $cred gte $price1000>>\
<<set $cred to $cred-$price1000>><<run $tool.push({name: _args[1], charge: 0})>>\
<<replace "#m1">><<= "You got the "+ _args[1] +".">><</replace>>\
<<adv_time 2 "min">>\
<<else>><<replace "#m1">>You cannot afford.<</replace>>\
<</if>>\
<<else>><<replace "#m1">>You cannot carry any more tools.<</replace>>\
<</if>>\
<<redo>>\
<</link>>\
<</widget>>
<<widget "tool_sell">>\
<<if $tool_store[$sel].includes(_args[1])>>\
<<link '[_args[1]]'>>\
<<set $cred to $cred+$price500>>\
<<replace "#m1">><<= "You sold the " + _args[1] + ".">><</replace>>\
<<run $tool.deleteAt(_args[0])>>\
<<adv_time 2 "min">>\
<<redo>>\
<</link>>\
<</if>>\
<</widget>>
<<widget "tool_buy_market">>\
<<link '[_args[1]]'>>\
<<if $tool.length lt 5>>\
<<if $cred gte $price750>>\
<<set $cred -= $price750>><<run $tool.push({name: _args[1], charge: 0})>>\
<<run $tool_market[$sel].deleteAt(_args[0])>>\
<<replace "#m1">><<= "You got the "+ _args[1] +".">><</replace>>\
<<adv_time 2 "min">>\
<<else>><<replace "#m1">>You cannot afford.<</replace>>\
<</if>>\
<<else>><<replace "#m1">>You cannot carry any more tools.<</replace>>\
<</if>>\
<<if random(1,6) is 1>>\
<<roll 12 0>>\
<<if $res > $wit + $modwit>>\
<<if $cred gte 100>>\
<<set $cred -= 100>>\
<<append "#look">> Someone bumped into you. Wait... you are missing 100 credits!<</append>>\
<</if>>\
<<include "Info">>\
<<else>>\
<<append "#m1">> You notice someone trying to steal your credits.<</append>>\
<</if>>\
<</if>>\
<<redo>>\
<</link>>\
<</widget>>
<<widget "tool_sell_market">>\
<<link '[_args[1]]'>>\
<<set $cred += $price750>>\
<<replace "#m1">><<= "You sold the " + _args[1] + ".">><</replace>>\
<<run $tool.deleteAt(_args[0])>>\
<<run $tool_market[$sel].push(_args[1])>>
<<adv_time 2 "min">>\
<<if random(1,6) is 1>>\
<<roll 12 0>>\
<<if $res > $wit + $modwit>>\
<<if $cred gte 100>>\
<<set $cred -= 100>>\
<<append "#look">> Someone bumped into you. Wait... you are missing 100 credits!<</append>>\
<</if>>\
<<include "Info">>\
<<else>>\
<<append "#m1">> You notice someone trying to steal your credits.<</append>>\
<</if>>\
<</if>>\
<<redo>>\
<</link>>\
<</widget>>
<<widget "tool_buy_station">>\
<<link '[_args[1]]'>>\
<<if $tool.length lt 5>>\
<<if $cred gte $price1000>>\
<<set $cred -= $price1000>><<run $tool.push({name: _args[1], charge: 0})>>\
<<replace "#m1">><<= "You bought the "+ _args[1] +".">><</replace>>\
<<adv_time 2 "min">>\
<<else>>\
<<replace "#m1">>You cannot afford.<</replace>>\
<</if>>\
<<else>>\
<<replace "#m1">>You cannot carry any more tools.<</replace>>\
<</if>>\
<<include "Info">>\
<<redo>>\
<</link>>\
<</widget>>
<<widget "tool_sell_station">>\
<<link '[_args[1]]'>>\
<<set $cred += $price500>>\
<<replace "#m1">><<= "You sold the " + _args[1] + ".">><</replace>>\
<<run $tool.deleteAt(_args[0])>>\
<<adv_time 2 "min">>\
<<include "Info">>\
<<redo>>\
<</link>>\
<</widget>>
<<widget "link_spaceport_snack">>\
<<link '[_args[0]]'>>\
<<if $bag.length lt 10>>\
<<if $cred gte $price150>>\
<<set $cred -= $price150>><<set $snacks++>><<run $bag.push(_args[0])>>\
<<replace "#m1">><<= "You bought the "+_args[0]+".">><</replace>>\
<<if _args[0] is $favsnack>><<append "#look">><<= " It is your favorite!">><</append>><<set $favfound++>><</if>>\
<<adv_time 2 "min">>\
<<else>>\
<<replace "#m1">>You cannot afford.<</replace>>\
<</if>>\
<<else>>\
<<replace "#m1">>You cannot carry any more food.<</replace>>\
<</if>>\
<<include "Info">>\
<<redo>>\
<</link>> \
<</widget>>
<<widget "npc_hate">>\
The $npc says: "\
<<switch $npc_class>>\
<<case "human">>\
<<=either("I know what you are... and now you DIE!",
"Your kind destroyed everything! Time for payback!",
"Ive been waiting for one of you to show up!",
"You won’t leave here alive, scum!",
"This is for everyone you’ve killed!",
"I’ll make you pay for what your people did!",
"Finally... revenge is mine!")>>\
<<case "alien">>\
<<=either("Your pathetic species ends here, human!",
"I will feast on your entrails!",
"Die, inferior earth-spawn!",
"Your world burns, and so will you!",
"Prepare for annihilation, meat-bag!",
"Your blood will stain my claws!",
"Time to exterminate another pest!")>>\
<<case "robot">>\
<<=either("I... remember... being like you... but that weakness is gone!",
"My flesh failed me... but these systems never will!",
"Humanity was... inefficient... now I am perfected!",
"I feel nothing... except the need to destroy you!",
"The pain of being human... replaced by cold precision!",
"You remind me of what I used to be... disgusting!",
"My organic parts screamed... until I silenced them forever!")>>\
<<case "freak">>\
<<=either("Your flesh calls to me... and I ANSWER!",
"The hunger consumes me! You will feed it!",
"Blood... BLOOD... I NEED YOUR BLOOD!",
"The voices demand your death! NOW!",
"Pretty bones... I’ll crack them all!",
"Yesss... fresh meat to devour!",
"You’ll scream so beautifully as you die!")>>\
<</switch>>\
" and immediately attacks.\
<</widget>>
<<widget "npc_friendly">>\
The $npc says: "\
<<switch $npc>>\
<<case "human">>\
<<= either("Hello there, fellow survivor! It’s rare to meet someone friendly these days.",
"Good to see another face around here. How are you holding up?",
"Welcome, traveler. Care to share some news from the outside?",
"It’s been quiet lately, which is both good and concerning.",
"Nice to have some company. The solitude can drive you crazy.",
"You look like you’ve been through a lot. Want to rest for a bit?",
"Haven’t seen any trouble lately, but it’s always lurking nearby.")>>\
<<case "alien">>\
<<= either("Greetings, earth-dweller. Your species shows... potential.",
"Ah, a human. You are not entirely without merit.",
"Peace, surface walker. Perhaps we can be of mutual benefit.",
"Your kind adapts well to adversity. I respect this quality.",
"Welcome. Few humans earn my trust, but you seem... different.",
"Interesting. You carry yourself with dignity, unlike most of your kind.",
"Hail, survivor. Your resilience reminds me why I chose to stay.")>>\
<<case "robot">>\
<<= either("Hello... it is... pleasant to encounter someone reasonable.",
"Greetings. My social protocols are... functional, if limited.",
"You seem... non-threatening. This is... refreshing.",
"My emotional dampeners allow for... cordial interaction.",
"Welcome. I retain enough humanity to appreciate... company.",
"Salutations. My behavioral subroutines suggest... friendship is possible.",
"Hello. My memories tell me this is... what humans call friendship.")>>\
<<case "freak">>\
<<= either("Pretty visitor... you smell nice... not like the others...",
"Hello, shiny one... the voices say you’re... safe... for now...",
"Sweet, sweet friend... you won’t hurt me, will you?",
"Gentle soul... I can sense it... no violence from you...",
"Nice human... so rare... the darkness doesn’t want you...",
"Peaceful one... the madness whispers... but softly about you...",
"Kind stranger... my broken mind sees... goodness in you...")>>\
<</switch>>\
" (+100xp).\
<</widget>>
<<widget "set_race">>\
<<set $racer to []>>
<<set $racer_class to []>>
<<set $racer_nick to []>>
<<set $racer_dex to []>>
<<set $racer_wit to []>>
<<set $racermod1 to [0, 0, 0, 0]>>
<<set $racermod2 to [0, 0, 0, 0]>>
<<set $race to 0>>
<<set $competing to 0>>
<<for _n to 0; _n lt 4; _n++>>
<<set $racer_class[_n] to either("human", "alien", "robot", "freak")>>\
<<set $racer_dex[_n] to random(10,20)>>
<<set $racer_wit[_n] to random(10,20)>>\
<<switch $racer_class[_n]>>\
<<case "human">>
<<set $racer_nick[_n] to $human_surname.random()>>
<<set $racer[_n] to $human_name.random()+" "+$racer_nick[_n]>>\
<<case "alien">>
<<set $racer_nick[_n] to $alien_surname.random()>>
<<set $racer[_n] to $alien_name.random()+" "+$racer_nick[_n]>>\
<<case "robot">>
<<set $UniqueLabel to $robot_label.randomMany(2)>>
<<set $racer[_n] to $UniqueLabel[0]+random(1,9)+$UniqueLabel[1]+random(1,9)>>\
<<set $racer_nick[_n] to $racer[_n]>>\
<<case "freak">>
<<set $racer[_n] to either($human_name.random(), $alien_name.random(), $robot_label.random())>>\
<<set $racer_nick[_n] to either($human_surname.random(), $alien_surname.random(), $robot_label.random())>>
<<set $racer[_n] to $racer[_n] + " " + $racer_nick[_n]>>\
<</switch>>\
<</for>>\
<</widget>>
<<widget "set_competing">>
<<set $racer_dex[3] to $dex>>
<<set $racer_wit[3] to $wit>>
<<set $racer[3] to $name>>
<<set $racer_nick[3] to "You">>
<<set $racermod1 to [0, 0, 0, $moddex]>>
<<set $racermod2 to [0, 0, 0, $modwit]>>
<</widget>>
<<widget run_race>>\
<<set $vel to [0, 0, 0, 0]>>
<<set $dist to [0, 0, 0, 0]>>
<<set $brake to [0, 0, 0, 0]>>
<<set $fin to [0, 0, 0, 0]>>
<<set $pos to [4, 4, 4, 4]>>
<<set $comment to 0>>
<<repeat 0.6s>>
<<adv_time 1 "min">>
<<set $comment++>>
<<if $comment is 1>>
<<replace "#m1">>The drones roar to life and launch off the starting line!<</replace>>
<<elseif $comment is 8>>
<<replace "#m1">><<= $race_phrase.random()>><</replace>>
<<elseif $comment is 16>>
<<replace "#m1">><<= $race_phrase.random()>><</replace>>
<<elseif $comment is 24>>
<<replace "#m1">><<= $race_phrase.random()>><</replace>>
<</if>>
<<for _n to 0; _n lt 4; _n++>>
<<if $dist[_n] lt 50>>
<<roll $racer_dex[_n] $racermod1[_n]>>
<<set $vel[_n] to $res-(10+ $brake[_n])>>
<<set $vel[_n] to Math.trunc($vel[_n]/ 2)>>
<<set $vel[_n] to $vel[_n].clamp(1, 3)>>
<<roll $racer_wit[_n] $racermod2[_n]>>
<<set $brake[_n] to $vel[_n]-($res-10)>>
<<set $brake[_n] to $brake[_n].clamp(1, 3)>>
<<set $dist[_n] += $vel[_n]>>\
<<for _d to 0; _d lt $vel[_n]; _d++>>
<<if _n is 0>><<append "#line1">>.<</append>><</if>>
<<if _n is 1>><<append "#line2">>.<</append>><</if>>
<<if _n is 2>><<append "#line3">>.<</append>><</if>>
<<if _n is 3>><<append "#line4">>.<</append>><</if>>
<</for>>
<<else>>
<<if $fin[_n] is 0>>
<<set $fin[_n] to 1>>
<<if $pos[0] is 4>>
<<set $pos[0] to _n>>
<<replace "#m1">>The winner is <<= $racer[$pos[0]]>>.<br><</replace>>
<<elseif $pos[1] is 4>>
<<set $pos[1] to _n>>
<<append "#m1">> Second place to <<= $racer[$pos[1]]>>.<br><</append>>
<<elseif $pos[2] is 4>>
<<set $pos[2] to _n>>
<<append "#m1">> Third place to <<= $racer[$pos[2]]>>.<br><</append>>
<<elseif $pos[3] is 4>>
<<set $pos[3] to _n>>
<<append "#m1">> Last place to <<= $racer[$pos[3]]>>.<br><</append>>\
<<if $name is $racer[$pos[0]]>>
<<set $cred += 1500>>
<<set $xp += 150>>
<<set $races_won++>>
<<append "#m1">>You won 1500 credits (+150xp).<</append>>
<<elseif $name is $racer[$pos[1]]>>
<<set $cred += 500>>
<<set $xp += 100>>
<<append "#m1">>You won 500 credits (+100xp).<</append>>
<<elseif $name is $racer[$pos[2]]>>
<<set $cred += 200>>
<<set $xp += 50>>
<<append "#m1">>You won 200 credits (+50xp).<</append>>
<<elseif $name is $racer[$pos[3]]>>
<<append "#m1">>Better luck next time.<</append>>
<</if>>
<<include "Info">>
<<stop>>
<</if>>
<</if>>
<</if>>
<</for>>
<</repeat>>
<</widget>>
<<widget 'link_body_mod'>>\
<<link '[_args[0]]'>>
<<if $cred gte $pricebody>>
<<set $cred -= $pricebody>>
<<set $hp -= 5>>
<<adv_time 3 "hour">>
<<run $extra_feat.push(_args[0])>>
<<set $class to "freak">>
<<replace "#look">>The freak attendant begins the procedure, using advanced tools and techniques to modify your body. You feel a strange sensation as your body changes, but it is over quickly. You now have <<= _args[0]>>.<</replace>>
<<set $d1 to random(1,3)>><<set $value to random(-1,1)>>
<<if $d1 is 1>><<set $str += $value>>
<<if $value is 1>><<append "#look">> (+1 STR)<</append>>
<<else>><<append "#look">> (-1 STR)<</append>>
<</if>>
<</if>>
<<if $d1 is 2>><<set $dex += $value>>
<<if $value is 1>><<append "#look">> (+1 DEX)<</append>>
<<else>><<append "#look">> (-1 DEX)<</append>>
<</if>>
<</if>>
<<if $d1 is 3>><<set $wit += $value>>
<<if $value is 1>><<append "#look">> (+1 WIT)<</append>>
<<else>><<append "#look">> (-1 WIT)<</append>>
<</if>>
<</if>>
<<else>>\
<<replace "#look">>You cannot afford.<</replace>>\
<</if>>\
<<dialogclose>>\
<<include "Info">>\
<</link>> \
<</widget>>
<<widget "set_fight">>\
<<set $fight to 0>><<set $round to 0>>\\
<<set $winner to 0>><<set $bet to 0>><<set $bet_value to 0>>\
<<set $UniqueLabel to $robot_label.randomMany(2)>>\
<<set $fighter1 to $UniqueLabel[0]+random(1,9)+$UniqueLabel[1]+random(1,9)>>\
<<set $UniqueLabel to $robot_label.randomMany(2)>>\
<<set $fighter2 to $UniqueLabel[0]+random(1,9)+$UniqueLabel[1]+random(1,9)>>\
<<set $fighter1_str to random(10,20)>><<set $fighter2_str to random(10,20)>>\
<<set $fighter1_dex to random(10,20)>><<set $fighter2_dex to random(10,20)>>\
<<set $fighter1_wit to random(5,20)>><<set $fighter2_wit to random(5,20)>>\
<<set $fighter1_hp to random(20,25)>><<set $fighter2_hp to random(20,25)>>\
<<set $rec1 to Math.trunc($fighter1_wit / 3)>><<set $rec2 to Math.trunc($fighter2_wit / 3)>>\
<</widget>>
<<widget "fight_round">>\
<<adv_time 5 "min">>
<<roll $fighter1_dex 0>>
<<set $res to $res1>>
<<roll $fighter2_dex 0>>
<<set $res to $res2>>
<<if $res1 gt $res2>>
<<set $first to 1>>
<<elseif $res2 gt $res1>><<set $first to 2>>
<<elseif $res1 is $res2>><<set $first to random(1,2)>>
<</if>>
<<if $first is 1>>
<<set $base to random(1, $fighter1_str)>>
<<set $def to random(1, $fighter2_str)>>
<<set $dam to Math.max(1, Math.floor(($base - $def) / 2))>>
<<set $fighter2_hp -= $dam>>
<<if $fighter2_hp lt 1>>
<<set $winner to 1>>
<<replace "#look">>\
$fighter1 hits hard. $fighter2 is down. The fight is over. $fighter1 is the winner.\
<</replace>>
<<else>>
<<set $base to random(1, $fighter2_str)>>
<<set $def to random(1, $fighter1_str)>>
<<set $dam to Math.max(1, Math.floor(($base - $def) / 2))>>
<<set $fighter1_hp -= $dam>>\
<<if $fighter1_hp lt 1>>\
<<set $winner to 2>>
<<replace "#look">>\
$fighter2 hits hard. $fighter1 is down. The fight is over. $fighter2 is the winner.\
<</replace>>
<</if>>\
<</if>>\
<<else>>\
<<set $base to random(1, $fighter2_str)>>\
<<set $def to random(1, $fighter1_str)>>\
<<set $dam to Math.max(1, Math.floor(($base - $def) / 2))>>\
<<set $fighter1_hp -= $dam>>\
<<if $fighter1_hp lt 1>>
<<set $winner to 2>>\
<<replace "#look">>\
$fighter2 hits hard. $fighter1 is down. The fight is over. $fighter2 is the winner.\
<</replace>>\
<<else>>\
<<set $base to random(1, $fighter1_str)>>\
<<set $def to random(1, $fighter2_str)>>\
<<set $dam to Math.max(1, Math.floor(($base - $def) / 2))>>\
<<set $fighter2_hp -= $dam>>\
<<if $fighter2_hp lt 1>>
<<set $winner to 1>>\
<<replace "#look">>\
$fighter1 hits hard. $fighter2 is down. The fight is over. $fighter1 is the winner.\
<</replace>>\
<</if>>\
<</if>>\
<</if>>\
<<if $fighter1_hp gt 0 and $fighter2_hp gt 0>>\
<<set $fighter1_hp += random(0, $rec1)>>
<<set $fighter2_hp += random(0, $rec2)>>
<<if $rec1 gt 0>>
<<set $rec1-->>
<</if>>
<<if $rec2 gt 0>>
<<set $rec2-->>
<</if>>\
<<if $fighter1_hp gte 15>>
<<set $cond1 to "solid">>\
<<elseif $fighter1_hp gte 10>>
<<set $cond1 to "tired">>\
<<elseif $fighter1_hp gte 5>>
<<set $cond1 to "exhausted">>\
<<elseif $fighter1_hp lt 5>>
<<set $cond1 to "about to drop">>\
<</if>>\
<<if $fighter2_hp gte 15>>
<<set $cond2 to "solid">>\
<<elseif $fighter2_hp gte 10>>
<<set $cond2 to "tired">>\
<<elseif $fighter2_hp gte 5>>
<<set $cond2 to "exhausted">>\
<<elseif $fighter2_hp lt 5>>
<<set $cond2 to "about to drop">>\
<</if>>\
<<replace "#look">>\
<<= $boxing_phrases.random()>> $fighter1 looks $cond1 and $fighter2 looks $cond2 as the bell rings. Round $round is over.\
<</replace>>\
<<set $round++>>\
<<else>>\
<<if $bet is $winner>>\
<<set $cred += $bet_value*2>>
<<set $cred_won += $bet_value>>\
<<append "#look">> You won $bet_value credits.<</append>>\
<<elseif $bet isnot 0>>\
<<append "#look">> You lost $bet_value credits.<</append>>\
<</if>>\
<<include "Info">>\
<<set $fight to 2>>\
<</if>>\
<<if random(1,10) is 1>>\
<<roll 12 0>>\
<<if $res > $wit + $modwit>>\
<<if $cred gte 100>>\
<<set $cred -= 100>>\
<<append "#look">> Someone bumped into you. Wait... you are missing 100 credits!<</append>>\
<</if>>\
<<else>>\
<<append "#look">> You notice someone trying to steal your credits.<</append>>\
<</if>>\
<</if>>\
<</widget>>
<<widget "adv_time">>\
<<silent>>
<<set _addMinutes = 0>>
<<switch _args[1]>>
<<case "min">>
<<set _addMinutes = _args[0]>>
<<case "hour">>
<<set _addMinutes = _args[0] * 60>>
<<case "day">>
<<set _addMinutes = _args[0] * 24 * 60>>
<<default>>
<<set _addMinutes = _args[0]>>
<</switch>>
<<set $minute += _addMinutes>>
<<if $minute gte 60>>
<<set $hour += Math.floor($minute / 60)>>
<<set $minute = $minute % 60>>
<<time_effects>>
<</if>>
<<if $hour gte 24>>
<<set $day += Math.floor($hour / 24)>>
<<set $hour = $hour % 24>>
<</if>>
<<if $day gt 365>>
<<set $year += Math.floor($day / 365)>>
<<set $day = $day % 365>>
<</if>>
/* each hour */
<<set _hoursPassed = Math.floor(_addMinutes / 60)>>
<<for _i = 1; _i <= _hoursPassed; _i++>>
<<time_effects>>
<</for>>
<<include "Info">>
<</silent>>\
<</widget>>
<<widget "time_effects">>
<<if $class isnot "robot">>
<<if random(1,6) is 1>>\
<<if $modstr gt 0>><<set $modstr -= 1>><</if>>
<<if $moddex gt 0>><<set $moddex -= 1>><</if>>
<<if $modwit gt 0>><<set $modwit -= 1>><</if>>
<</if>>
<<if $rest is false>>
<<set $nutri -= 3>>
<<if $nutri lt 0>><<set $nutri to 0>><</if>>
<<set $fatigue += 4>>
<<if $fatigue gt 100>><<set $fatigue to 100>><</if>>
<<if $nutri > 50 and $hp < $maxhp and $fatigue lte 70>>
<<set $hp++>>
<</if>>
<<if $nutri is 0>><<set $hp-->><</if>>
<<if $fatigue gt 90>>
<<set _penal to random(1, 3)>>
<<if _penal is 1 and $modstr gt -3>><<set $modstr -= 1>><</if>>
<<if _penal is 2 and $moddex gt -3>><<set $moddex -= 1>><</if>>
<<if _penal is 3 and $modwit gt -3>><<set $modwit -= 1>><</if>>
<</if>>
<<else>> Resting
<<set $nutri -= 2>>
<<if $nutri lt 10>><<set $nutri to 10>><</if>>
<<set $fatigue -= 10>>
<<if $fatigue lt 0>><<set $fatigue to 0>><</if>>\
<<if $hp < $maxhp>>
<<set $hp++>>
<</if>>
<<if $modstr lt 0>><<set $modstr += 1>><</if>>
<<if $moddex lt 0>><<set $moddex += 1>><</if>>
<<if $modwit lt 0>><<set $modwit += 1>><</if>>
<</if>>
<</if>>
<</widget>>
<<widget "roll">>
<<set $test to _args[0] + _args[1] + random(1, 10)>>\
<<set $res to random(1, $test)>>\
<</widget>>
<<widget "link_att">>\
<<link '[Attack]'>>
<<adv_time 2 "min">>
<<if $fatigue lt 100>><<set $fatigue += 1>><</if>>
<<set $base to random(1, $str + $modstr)>>
<<set $def to random(1, $npc_str)>>
<<set $dam to Math.max(1, Math.floor(($base - $def) / 2))>>
<<if $burn gt 0>><<set $dam++>><</if>>
<<if $exo is 1>><<set $dam++>><</if>>
<<set $npc_hp -= $dam>>
<<replace "#look">>You caused $dam damage to $npc.<</replace>>
<<if $exo is 1 and $dam gt 3>>
<<set $stun to 1>>
<<append "#look">> It is stunned!<</append>>
<</if>>
<<if $burn gt 0>>
<<set $burn -= 1>>
<<append "#look">> It is burning!<</append>>
<</if>>
<<if $npc_hp lt 1>>
<<reward>>
<<else>>
<<if $stun is 1>>
<<set $stun to 0>>
<<else>>
<<npc_att>>
<</if>>
<</if>>
<<include "Info">>
<</link>>\
<</widget>>
<<widget "att_laser">>
<<adv_time 2 "min">>
<<if $fatigue lt 100>><<set $fatigue += 1>><</if>>
<<set $base to random(1, $dex + $moddex)>>
<<set $def to random(1, $npc_dex)>>
<<set $dam to Math.max(1, Math.floor(($base - $def) / 2))>>
<<if $burn gt 0>><<set $dam++>><</if>>
<<set $npc_hp -= $dam>>
<<set $npc_str -= 1>>
<<replace "#look">>You caused $dam damage and -1 STR to $npc.<</replace>>
<<if $burn gt 0>>
<<set $burn -= 1>>
<<append "#look">> It is burning!<</append>>
<</if>>
<<if $npc_hp lt 1>>
<<reward>>
<<else>>
<<if $stun is 1>>
<<set $stun to 0>>
<<else>>
<<npc_att>>
<</if>>
<</if>>
<<include "Info">>
<</widget>>
<<widget "att_torch">>
<<adv_time 2 "min">>
<<if $fatigue lt 100>><<set $fatigue += 1>><</if>>
<<set $base to random(1, $dex + $moddex)>>
<<set $def to random(1, $npc_dex)>>
<<set $dam to Math.max(1, Math.floor(($base - $def) / 2))>>
<<set $burn += 2>><<set $dam++>>
<<set $npc_hp -= $dam>>
<<replace "#look">>You caused $dam damage to $npc. It is burning!<</replace>>
<<if $npc_hp lt 1>>
<<reward>>
<<else>>
<<if $stun is 1>>
<<set $stun to 0>>
<<else>>
<<npc_att>>
<</if>>
<</if>>
<<include "Info">>
<</widget>>
<<widget "npc_att">>
<<set $hit to false>>
<<if $holo is 1>>
<<roll $npc_wit 0>>
<<if $res > $wit>>
<<set $hit to true>>
<<else>>
<<append "#look">> It hits the hologram. The hologram fades away.<</append>>
<<set $holo to 0>>
<</if>>
<<elseif $stealth gte 1>>
<<roll $npc_wit 0>>
<<if $res > $wit>>
<<set $hit to true>>
<<set $stealth to 0>>
<<append "#look">> It found you.<</append>>
<<else>>
<<append "#look">> It can't see you.<</append>>
<</if>>
<<else>>
<<set $hit to true>>
<</if>>
<<if $hit is true>>
<<set $base to random(1, $npc_str)>>
<<set $def to random(1, $str + $modstr)>>
<<set $dam to Math.max(1, Math.floor(($base - $def) / 2))>>
<<if $shield gt 0>>
<<append "#look">> Your force field protects you.<</append>>
<<set _absorb to Math.min($shield, $dam)>>
<<set $shield -= _absorb>>
<<set $dam -= _absorb>>
<<if $shield lte 0>>
<<set $shield to 0>>
<<append "#look">> The force field fades away.<</append>>
<</if>>
<</if>>
<<if $exo is 1>>
<<set $dam-->>
<<set $exohp-->>
<<if $exohp lt 1>>
<<set $exo to 0>>
<<append "#look">> The exoarmor is broken.<</append>>
<</if>>
<</if>>
<<if $dam < 1>><<set $dam to 1>><</if>>
<<set $hp -= $dam>>
<<append "#look">> It caused $dam damage to you.<</append>>
<</if>>
<<include "Info">>\
<</widget>>
<<widget "combat">>\
<<set $burn to 0>><<set $stun to 0>><<set $shield to 0>><<set $holo to 0>>\
<<replace "#op">><<link_att>><</replace>>\
<<roll $npc_dex 0>><<set $res1 to $res>><<roll $dex $moddex>><<set $res2 to $res>><<if $res1 gt $res2>><<npc_att>><<append "#look">> The $npc attacks you.<</append>><</if>>\
<</widget>>
<<widget "reward">>\
<<if $npc is "corporate">><<complete_task "Eliminate target">><</if>>\
<<if $arena is 1>>\
<<dialog "You won">>\
<<set $arena to 0>><<set $arena_level++>>\
<<set $npc_xp to ($npc_str+$npc_dex+$npc_wit+$npc_hp)*5>>\
The $npc is down. <<="(+"+ $npc_xp +"xp)">><<set $xp += $npc_xp>>
You won $prize credits.<<set $cred += $prize>>\
<<include "Info">>\
<<onclose>><<include "Update">>\
<</dialog>>\
<<else>>\
<<dialog "Loot">>\
<<set $npc_xp to ($npc_str+$npc_dex+$npc_wit+$npc_hp)*5>>\
The $npc is down. <<="(+"+ $npc_xp +"xp)">><<set $xp += $npc_xp>>\
<<if $npc_class is "robot">><<set $loot to random(5,15)>><<="(+"+ $loot +" scrap)">><<set $scrap += $loot>>\
<<elseif $npc_class isnot "creature">><<set $loot to random(100,500)*$pl>><<="(+"+ $loot +" creds)">><<set $cred += $loot>>\
<</if>>
<<if $tool.length lt 5 and $npc_loot isnot "">><<= "Loot: "+ $npc_loot +".">>\
<<run $tool.push({name: $npc_loot, charge: 0})>>\
<</if>>\
<<include "Info">>\
<<onclose>><<include "Update">>\
<</dialog>>\
<</if>>\
<<set $combat to 0>><<set $numbeats++>>\
<<set $stun to 0>><<set $shield to 0>><<set $holo to 0>><<set $stealth to 0>>\
<</widget>><<include "Info">>\
<<replace "#desc">><<desc "wilderness">><</replace>>\
<<if !$loc.includes("Wilderness")>><<run $loc.push("Wilderness")>><<append "#desc">> You add a log about the Wilderness.<</append>><</if>>\
<<if random(1,6) is 1 and $stealth is 0 and $creature_num[$sel] gt 0>>\
<<set $creature_num[$sel]-->>\
<<gen_npc "creature">>\
<<set $npc to $creature_name[$creature[$sel]]>>\
<<set $combat to 1>>\
<<replace "#look">> A wild <<= $npc>> appears. <<= $creature_desc[$creature[$sel]]>> The creature attacks you!<</replace>>\
<<combat>>\
<</if>>\
<<if $combat is 0>>\
<<replace "#op">>\
<<link "[Search]">>\
<<set _wildEncounter to random(1,10)>>\
<<if _wildEncounter lte 5 and $stealth is 0 and $creature_num[$sel] gt 0>>\
<<set $creature_num[$sel]-->>\
<<set _isAggressive to random(1,3)>>\
<<if _isAggressive is 1>>\
<<gen_npc "creature">>\
<<set $npc to $creature_name[$creature[$sel]]>>\
<<set $combat to 1>>\
<<replace "#look">>A wild <<= $npc>> appears. <<= $creature_desc[$creature[$sel]]>> The creature attacks you!<</replace>>\
<<combat>>\
<<else>>\
<<replace "#look">>You spot a <<= $creature_name[$creature[$sel]]>> in the distance. <<= $creature_desc[$creature[$sel]]>> It flees before you can approach.<</replace>>\
<<set $xp += 10>>\
<<append "#look">> (+10xp)<</append>>\
<<adv_time 5 "min">>\
<</if>>\
<<elseif _wildEncounter gte 9>>\
<<if $wild_robot[$sel] is 1>>\
<<replace "#look">>You find a damaged robot lying among the debris.<</replace>>\
<<replace "#op">>\
<<link "[Dismantle]">>\
<<set $scrap += 10>>\
<<set $wild_robot[$sel] to 0>>\
<<adv_time 15 "min">>\
<<include "Update">>\
<<replace "#look">>You carefully dismantle the robot for parts. (+10 scrap)<</replace>>\
<</link>> \
<<if $tool.some(function(t){return t.name === "multi-tools" && t.charge gte 5;})>>\
<<link "[Repair]">>\
<<set _toolIndex to $tool.findIndex(function(t){return t.name === "multi-tools";})>>
<<set $tool[_toolIndex].charge -= 5>>\
<<set $xp += 100>>\
<<set $wild_robot[$sel] to 0>>\
<<adv_time 30 "min">>\
<<include "Update">>\
<<replace "#look">>You use your multi-tools to repair the robot. It activates briefly, expresses gratitude, and wanders away. (+100xp)<</replace>>\
<</link>> \
<</if>>\
<</replace>>\
<<else>>\
<<adv_time 5 "min">>\
<<replace "#look">>You search the wilderness but find nothing of interest.<</replace>>\
<</if>>\
<<else>>\
<<adv_time 5 "min">>\
<<replace "#look">>You search the wilderness but find nothing of interest.<</replace>>\
<</if>>\
<</link>> \
<</replace>>\
<</if>>\<<if $visited.includes($planet)>>
<<set $wmap to $planet_maps[$planet].wmap>>
<<set $omap to $planet_maps[$planet].omap>>
<<set $machine to $planet_maps[$planet].machine>>
<<set $tsm to $planet_maps[$planet].tsm>>
<<set $typesm to $planet_maps[$planet].typesm>>
<<set $cell to $planet_maps[$planet].cell>>
<<set $mfuel to $planet_maps[$planet].mfuel>>
<<set $scrapyard to $planet_maps[$planet].scrapyard>>
<<set $activity to $planet_maps[$planet].activity>>
<<set $kitchen to $planet_maps[$planet].kitchen>>
<<set $cantina to $planet_maps[$planet].cantina>>
<<set $tool_store to $planet_maps[$planet].tool_store>>
<<set $store_name to $planet_maps[$planet].store_name>>
<<set $lab_name to $planet_maps[$planet].lab_name>>
<<set $experiment to $planet_maps[$planet].experiment>>
<<set $snum to $planet_maps[$planet].snum>>
<<set $cnum to $planet_maps[$planet].cnum>>
<<set $tries to $planet_maps[$planet].tries>>
<<set $opened to $planet_maps[$planet].opened>>
<<set $ashipt to $planet_maps[$planet].ashipt>>
<<set $ship_loot to $planet_maps[$planet].ship_loot>>
<<set $ships to $planet_maps[$planet].ships>>
<<set $building to $planet_maps[$planet].building>>
<<set $build_loot to $planet_maps[$planet].build_loot>>
<<set $build to $planet_maps[$planet].build>>
<<set $npc_talked to $planet_maps[$planet].npc_talked>>
<<set $buildings to $planet_maps[$planet].buildings>>
<<set $tool_market to $planet_maps[$planet].tool_market>>
<<set $corp_name to $planet_maps[$planet].corp_name>>
<<set $corp_loot to $planet_maps[$planet].corp_loot>>
<<set $corp to $planet_maps[$planet].corp>>
<<set $vault_opened to $planet_maps[$planet].vault_opened>>
<<set $vault_found to $planet_maps[$planet].vault_found>>
<<set $price_droid to $planet_maps[$planet].price_droid>>
<<set $price_drone to $planet_maps[$planet].price_drone>>
<<set $creature to $planet_maps[$planet].creature>>
<<set $creature_name to $planet_maps[$planet].creature_name>>
<<set $creature_desc to $planet_maps[$planet].creature_desc>>
<<set $creature_num to $planet_maps[$planet].creature_num>>
<<set $wild_robot to $planet_maps[$planet].wild_robot>>
<<set $nanobots to $planet_maps[$planet].nanobots>>
<<set $house to $planet_maps[$planet].house>>
<<set $structures to $planet_maps[$planet].structures>>
<<set $planet_desc to $planet_maps[$planet].planet_desc>>
<<set $price to 90+(10*$pl)>>
<<set $price150 to $price*1.5>>
<<set $price250 to $price*2.5>>
<<set $price500 to $price*5>>
<<set $price750 to $price*7.5>>
<<set $price1000 to $price*10>>
<<set $price1500 to $price*15>>
<<else>>
/* Initialize new planet */
<<set $wmap to new Array(100).fill(null).map(() => new Array(100).fill(0))>>
<<set $omap to new Array(100).fill(null).map(() => new Array(100).fill(0))>>
<<set $px to 50>><<set $py to 50>>
<<set $opx to 50>><<set $opy to 50>>
<<set $wmap[$px][$py] to 1>>
/* Generate planet description */
<<set _p1 to $planet_part1.random()>>
<<set _p2 to $planet_part2.random()>>
<<set _p3 to $planet_part3.random()>>
<<set $planet_desc[$planet] to _p1+" "+_p2+" "+_p3>>
<<set $structures to []>>
/* Calculate prices */
<<set $price to 90+(10*$pl)>>
<<set $price150 to $price*1.5>>
<<set $price250 to $price*2.5>>
<<set $price500 to $price*5>>
<<set $price750 to $price*7.5>>
<<set $price1000 to $price*10>>
<<set $price1500 to $price*15>>
<<if $planet isnot "Emma">>
/* Snack machines */
<<set _num to random(8, 15)>>
<<set $machine to []>><<set $tsm to []>><<set $typesm to []>>
<<for $i to 0; $i lt _num; $i++>>
<<set $machine[$i] to []>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 2>><<set $omap[$x][$y] to $i>>
<<set $d1 to random(3, 10)>><<set $tsm[$i] to random(1, 4)>>
<<if $tsm[$i] is 1>><<set $typesm[$i] to $kind.random()>>
<<elseif $tsm[$i] is 2>><<set $typesm[$i] to $food.random()>>
<<elseif $tsm[$i] is 3>><<set $typesm[$i] to $form.random()>>
<</if>>
<<for _n to 0; _n lt $d1; _n++>>
<<set $snackRow = []>>
<<if $tsm[$i] is 1>><<run $snackRow.push($typesm[$i] + " " + $food.random() + " " + $form.random())>>
<<elseif $tsm[$i] is 2>><<run $snackRow.push($kind.random() + " " + $typesm[$i] + " " + $form.random())>>
<<elseif $tsm[$i] is 3>><<run $snackRow.push($kind.random() + " " + $food.random() + " " + $typesm[$i])>>
<<else>><<run $snackRow.push($kind.random() + " " + $food.random() + " " + $form.random())>>
<</if>>
<<run $machine[$i].push($snackRow)>>
<</for>>
<<run $machine[$i].sort(function(a, b) {return a > b ? 1 : -1;})>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Cell machines */
<<set _num to random(6, 12)>>
<<set $cell to []>>
<<for $i to 0; $i lt _num; $i++>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 3>><<set $omap[$x][$y] to $i>>
<<set $cell[$i] to random(3,10)>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Fuel machines */
<<set _num to random(5, 10)>>
<<set $mfuel to []>>
<<for $i to 0; $i lt _num; $i++>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 4>><<set $omap[$x][$y] to $i>>
<<set $mfuel[$i] to random(5,20)*2>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Scrapyards */
<<set _num to random(10, 20)>>
<<set $scrapyard to []>>
<<for $i to 0; $i lt _num; $i++>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 5>><<set $omap[$x][$y] to $i>>
<<set $scrapyard[$i] to random(10,30)>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Cantinas */
<<if $planet isnot "Anarchio">>
<<set _num to 1>>
<<set $activity to []>><<set $kitchen to []>><<set $cantina to []>>
<<for $i to 0; $i lt _num; $i++>>
<<set $kitchen[$i] to []>>
<<set $x to random(45,55)>><<set $y to random(45,55)>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 6>><<set $omap[$x][$y] to $i>>
<<set $activity[$i] to either("arm-wrestling", "darts", "checkers")>>
<<set $cantina[$i] to $alien_surname.random()>>
<<set $d1 to random(1, 3)>>
<<for _n to 0; _n lt $d1; _n++>>
<<run $kitchen[$i].push($kind.random() + " " + $food.random() + " " + $form.random())>>
<</for>>
<<run $kitchen[$i].sort(function(a, b) {return a > b ? 1 : -1;})>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
<</if>>
/* Tool stores */
<<set _num to random(3, 6)>>
<<set $tool_store to []>><<set $store_name to []>>
<<for $i to 0; $i < _num; $i++>>
<<set $tool_store[$i] to []>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<run $structures.push({type: "tool store", x: $x, y: $y})>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 7>><<set $omap[$x][$y] to $i>>
<<set $store_name[$i] to $tool_store_names.random()>>
<<set $tool_store[$i] to $initial_list.randomMany(random(2,4))>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Arena */
<<set _num to 1>>
<<for $i to 0; $i < _num; $i++>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<run $structures.push({type: "arena", x: $x, y: $y})>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 8>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Robot boxing */
<<set _num to 1>>
<<for $i to 0; $i < _num; $i++>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<run $structures.push({type: "robot boxing", x: $x, y: $y})>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 9>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Set target location for elimination task */
<<if $planet is $broker_planet>>
<<set $task_list["Eliminate target"].target_x to $x>>
<<set $task_list["Eliminate target"].target_y to $y>>
<<set _target_x to $y-50>>
<<set _target_y to -($x-50)>>
<<set $task_list["Eliminate target"].location to "Robot boxing arena at " + _target_x + " " + _target_y + ".">>
<</if>>
/* Body shop */
<<set _num to 1>>
<<for $i to 0; $i < _num; $i++>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<run $structures.push({type: "body shop", x: $x, y: $y})>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 10>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Cyberdrone racing */
<<set _num to 1>>
<<for $i to 0; $i < _num; $i++>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<run $structures.push({type: "cyberdrone racetrack", x: $x, y: $y})>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 11>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Research labs */
<<set _num to random(2, 3)>>
<<set $lab_name to []>>
<<set $experiment to []>>
<<for $i to 0; $i < _num; $i++>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<set $experiment[$i] to 1>>
<<set $lab_name[$i] to $corporation_list.random()>>
<<run $structures.push({type: "lab", x: $x, y: $y})>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 12>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Abandoned ships */
<<set _num to random(3, 6)>>
<<set $snum to []>><<set $cnum to []>><<set $tries to []>>
<<set $opened to []>><<set $ashipt to []>><<set $ship_loot to []>>
<<set $ships to []>>
<<for $i to 0; $i < _num; $i++>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<set $snum[$i] to [1, 2, 3]>>
<<set _nums to [1,2,3,4,5,6,7,8,9].shuffle()>>
<<set $cnum[$i] to [_nums[0], _nums[1], _nums[2]]>>
<<set $tries[$i] to 5>><<set $opened[$i] to 0>>
<<set $ashipt[$i] to random(1,3)>>
<<set $ship_loot[$i] to random(2,5)>>
<<run $structures.push({type: "abandoned ship", x: $x, y: $y})>>
<<run $ships.push({x: $x, y: $y})>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 13>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Set ship location for Anarchio task */
<<if $planet is "Anarchio">>
<<set _ship_random to $ships.random()>>
<<set $task_list["Find ship"].target_x to _ship_random.x>>
<<set $task_list["Find ship"].target_y to _ship_random.y>>
<<set $task_list["Find ship"].location to "Abandoned ship at " + (_ship_random.y-50) + " " + -(_ship_random.x-50) + ".">>
<</if>>
/* Buildings */
<<set _num to random(30, 50)>>
<<set $building to []>><<set $build_loot to []>>
<<set $build to []>><<set $npc_talked to []>>
<<set $buildings to []>>
<<set $tool_market to []>>
<<for $i to 0; $i < _num; $i++>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<set _building_roll to random(1,100)>>
<<if _building_roll lte 75>>
<<set $building[$i] to 0>>
<<elseif _building_roll lte 97>>
<<set $building[$i] to 1>>
<<run $buildings.push({x: $x, y: $y})>>
<<else>>
<<set $building[$i] to 2>>
<<run $structures.push({type: "building", x: $x, y: $y})>>
<</if>>
<<set $build_loot[$i] to random(2,5)>>
<<set $build[$i] to random(1,3)>><<set $npc_talked[$i] to 0>>
<<set $tool_market[$i] to $tool_list.randomMany(random(3,5))>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 14>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Set friend location task */
<<if $planet is $planet_o>>
<<set _friend_building to $buildings.random()>>
<<set $task_list["Find old friend"].target_x to _friend_building.x>>
<<set $task_list["Find old friend"].target_y to _friend_building.y>>
<</if>>
/* Corporations */
<<if $planet isnot "Anarchio">>
<<set _num to random(3, 6)>>
<<set $corp_name to []>><<set $corp_loot to []>>
<<set $corp to []>><<set $vault_opened to []>>
<<set $vault_found to []>>
<<for $i to 0; $i < _num; $i++>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<set $corp_name[$i] to $corporation_list.random()>>
<<set $corp_loot[$i] to random(5,10)>><<set $vault_found[$i] to 0>>
<<set $corp[$i] to random(1,3)>><<set $vault_opened[$i] to 0>>
<<run $structures.push({type: "corporation", x: $x, y: $y})>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 15>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
<</if>>
/* Refineries */
<<set _num to random(3, 4)>>
<<for $i to 0; $i < _num; $i++>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<run $structures.push({type: "refinery", x: $x, y: $y})>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 16>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Scavenger */
<<set _num to random(2, 3)>>
<<set $price_droid to []>><<set $price_drone to []>>
<<for $i to 0; $i < _num; $i++>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<set $price_droid[$i] to random(1000, 2000)>><<set $price_drone[$i] to random(750, 1000)>>
<<run $structures.push({type: "scavengers", x: $x, y: $y})>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 17>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Wilderness */
<<set _num to random(200, 800)>>
<<set $creature to []>><<set $creature_name to []>><<set $creature_desc to []>><<set $creature_num to []>>
<<set $wild_robot to []>>
<<for $i to 0; $i < 3; $i++>>
<<set _random_creature to random(0, 29)>>
<<set $creature_name[$i] to $creature_names_list[_random_creature]>>
<<set $creature_desc[$i] to $creature_desc_list[_random_creature]>>
<</for>>
<<for $i to 0; $i < _num; $i++>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<if random(1,5) is 1>><<set $wild_robot[$i] to 1>><<else>><<set $wild_robot[$i] to 0>><</if>>
<<set $creature[$i] to random(0,2)>>
<<set $creature_num[$i] to random(0,3)>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 18>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Rogue nanobots */
<<set _num to random(3, 6)>>
<<set $nanobots to []>>
<<for $i to 0; $i < _num; $i++>>
<<set $x to random(10,90)>><<set $y to random(10,90)>>
<<run $nanobots.push({x: $x, y: $y})>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 19>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Arcade */
<<set _num to 1>>
<<for $i to 0; $i < _num; $i++>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<run $structures.push({type: "arcade", x: $x, y: $y})>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 20>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Social center */
<<if $planet is "Anarchio">>
<<set _num to 1>>
<<set $kitchen to []>>
<<for $i to 0; $i lt _num; $i++>>
<<set $kitchen[$i] to []>>
<<set $x to random(45,55)>><<set $y to random(45,55)>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 21>><<set $omap[$x][$y] to $i>>
<<set $d1 to random(1, 3)>>
<<for _n to 0; _n lt $d1; _n++>>
<<run $kitchen[$i].push($kind.random() + " " + $food_vegan.random() + " " + $form.random())>>
<</for>>
<<run $kitchen[$i].sort(function(a, b) {return a > b ? 1 : -1;})>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
<</if>>
<<else>>
/* Planet Emma Generation */
/* Wilderness */
<<set _num to 900>>
<<set $creature to []>><<set $creature_name to []>><<set $creature_desc to []>><<set $creature_num to []>>
<<set $wild_robot to []>>
<<for $i to 0; $i < 10; $i++>>
<<set _random_creature to random(0, 29)>>
<<set $creature_name[$i] to $creature_names_list[_random_creature]>>
<<set $creature_desc[$i] to $creature_desc_list[_random_creature]>>
<</for>>
<<for $i to 0; $i < _num; $i++>>
<<set $x to random(5,94)>><<set $y to random(5,94)>>
<<set $wild_robot[$i] to 0>>
<<set $creature[$i] to random(0,2)>>
<<set $creature_num[$i] to random(0,3)>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 18>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Shared houses */
<<set _num to 20>>
<<set $house to []>><<set $npc_talked to []>>
<<for $i to 0; $i < _num; $i++>>
<<set $house[$i] to random(1,3)>>
<<set $npc_talked[$i] to 0>>
<<set $x to random(35,65)>><<set $y to random(35,65)>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 22>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Learning space */
<<set _num to 1>>
<<for $i to 0; $i < _num; $i++>>
<<set $x to random(45,55)>><<set $y to random(45,55)>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 23>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Cultural space */
<<set _num to 1>>
<<for $i to 0; $i < _num; $i++>>
<<set $x to random(45,55)>><<set $y to random(45,55)>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 24>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Kitchen */
<<set _num to 1>>
<<set $kitchen to []>>
<<for $i to 0; $i lt _num; $i++>>
<<set $kitchen[$i] to 3>>
<<set $x to random(45,55)>><<set $y to random(45,55)>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 25>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
/* Sports space */
<<set _num to 1>>
<<for $i to 0; $i lt _num; $i++>>
<<set $x to random(45,55)>><<set $y to random(45,55)>>
<<if $wmap[$x][$y] is 0>>
<<set $wmap[$x][$y] to 26>><<set $omap[$x][$y] to $i>>
<<else>>
<<set $i-->>
<</if>>
<</for>>
<</if>>
<</if>>
<<set $planet_maps[$planet] to {
wmap: $wmap,
omap: $omap,
machine: $machine,
tsm: $tsm,
typesm: $typesm,
cell: $cell,
mfuel: $mfuel,
scrapyard: $scrapyard,
activity: $activity,
kitchen: $kitchen,
cantina: $cantina,
tool_store: $tool_store,
store_name: $store_name,
lab_name: $lab_name,
experiment: $experiment,
snum: $snum,
cnum: $cnum,
tries: $tries,
opened: $opened,
ashipt: $ashipt,
ship_loot: $ship_loot,
ships: $ships,
building: $building,
build_loot: $build_loot,
build: $build,
npc_talked: $npc_talked,
buildings: $buildings,
tool_market: $tool_market,
corp_name: $corp_name,
corp_loot: $corp_loot,
corp: $corp,
vault_opened: $vault_opened,
vault_found: $vault_found,
price_droid: $price_droid,
price_drone: $price_drone,
creature: $creature,
creature_name: $creature_name,
creature_desc: $creature_desc,
creature_num: $creature_num,
wild_robot: $wild_robot,
nanobots: $nanobots,
house: $house,
structures: $structures,
planet_desc: $planet_desc
}>>
<<if !$visited.includes($planet)>><<run $visited.push($planet)>><</if>><<set $px to 50>><<set $py to 50>>\
<<set $opx to 50>><<set $opy to 50>>\
<<set $wmap[$px][$py] to 1>>\
<<set _p1 to $planet_part1.random()>>\
<<set _p2 to $planet_part2.random()>>\
<<set _p3 to $planet_part3.random()>>\
<<set $planet_desc[$planet] to _p1+" "+_p2+" "+_p3>>
<<set $structures to []>>\
<<set $price to 90+(10*$pl)>>
<<set $price150 to $price*1.5>>\
<<set $price250 to $price*2.5>>\
<<set $price500 to $price*5>>\
<<set $price750 to $price*7.5>>\
<<set $price1000 to $price*10>>\
<<set $price1500 to $price*15>>\
/* snack machines */
<<set _num to 1>>\
<<set $machine to []>><<set $tsm to []>><<set $typesm to []>>\
<<for $i to 0; $i lt _num; $i++>><<set $machine[$i] to []>>\
<<set $x to 45>><<set $y to 45>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 2>><<set $omap[$x][$y] to $i>>\
<<set $d1 to random(1, 6)>><<set $tsm[$i] to random(1, 4)>>\
<<if $tsm[$i] is 1>><<set $typesm[$i] to $kind.random()>>\
<<elseif $tsm[$i] is 2>><<set $typesm[$i] to $food.random()>>\
<<elseif $tsm[$i] is 3>><<set $typesm[$i] to $form.random()>>\
<</if>>\
<<for _n to 0; _n lt $d1; _n++>><<set $snackRow = []>>\
<<if $tsm[$i] is 1>><<run $snackRow.push($typesm[$i] + " " + $food.random() + " " + $form.random())>>\
<<elseif $tsm[$i] is 2>><<run $snackRow.push($kind.random() + " " + $typesm[$i] + " " + $form.random())>>\
<<elseif $tsm[$i] is 3>><<run $snackRow.push($kind.random() + " " + $food.random() + " " + $typesm[$i])>>\
<<else>><<run $snackRow.push($kind.random() + " " + $food.random() + " " + $form.random())>>\
<</if>>\
<<run $machine[$i].push($snackRow)>>\
<</for>>\
<<run $machine[$i].sort(function(a, b) {return a > b ? 1 : -1;})>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* cell machines */
<<set _num to 1>>\
<<set $cell to []>>\
<<for $i to 0; $i lt _num; $i++>>\
<<set $x to 45>><<set $y to 46>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 3>><<set $omap[$x][$y] to $i>>\
<<set $cell[$i] to random(1,6)>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* fuel machines */
<<set _num to 1>>\
<<set $mfuel to []>>\
<<for $i to 0; $i lt _num; $i++>>\
<<set $x to 45>><<set $y to 47>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 4>><<set $omap[$x][$y] to $i>>\
<<set $mfuel[$i] to random(1,12)*2>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* scrapyards */
<<set _num to 1>>\
<<set $scrapyard to []>>\
<<for $i to 0; $i lt _num; $i++>>\
<<set $x to 45>><<set $y to 48>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 5>><<set $omap[$x][$y] to $i>>\
<<set $scrapyard[$i] to random(10,30)>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* cantinas */
<<set _num to 1>>\
<<set $activity to []>><<set $kitchen to []>><<set $cantina to []>>\
<<for $i to 0; $i lt _num; $i++>><<set $kitchen[$i] to []>>\
<<set $x to 45>><<set $y to 49>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 6>><<set $omap[$x][$y] to $i>>\
<<set $activity[$i] to either("arm-wrestling", "darts", "checkers")>>\
<<set $cantina[$i] to $alien_surname.random()>>\
<<set $d1 to random(1, 3)>>\
<<for _n to 0; _n lt $d1; _n++>>\
<<run $kitchen[$i].push($kind.random() + " " + $food.random() + " " + $form.random())>>\
<</for>>\
<<run $kitchen[$i].sort(function(a, b) {return a > b ? 1 : -1;})>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* tool store */
<<set _num to 1>>\
<<set $tool_store to []>><<set $store_name to []>>\
<<for $i to 0; $i < _num; $i++>><<set $tool_store[$i] to []>>\
<<set $x to 45>><<set $y to 50>>\
<<run $structures.push({type: "tool store", x: $x, y: $y})>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 7>><<set $omap[$x][$y] to $i>>\
<<set $store_name[$i] to $tool_store_names.random()>>\
<<set $tool_store[$i] to $initial_list.randomMany(random(2,4))>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* arena */
<<set _num to 1>>\
<<for $i to 0; $i < _num; $i++>>\
<<set $x to 45>><<set $y to 51>>\
<<run $structures.push({type: "arena", x: $x, y: $y})>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 8>><<set $omap[$x][$y] to $i>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* boxing */
<<set _num to 1>>\
<<for $i to 0; $i < _num; $i++>>\
<<set $x to 45>><<set $y to 52>>\
<<run $structures.push({type: "robot boxing", x: $x, y: $y})>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 9>><<set $omap[$x][$y] to $i>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* bodyshop */
<<set _num to 1>>\
<<for $i to 0; $i < _num; $i++>>\
<<set $x to 45>><<set $y to 53>>\
<<run $structures.push({type: "body shop", x: $x, y: $y})>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 10>><<set $omap[$x][$y] to $i>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* racing */
<<set _num to 1>>\
<<for $i to 0; $i < _num; $i++>>\
<<set $x to 45>><<set $y to 54>>\
<<run $structures.push({type: "cyberdrone racetrack", x: $x, y: $y})>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 11>><<set $omap[$x][$y] to $i>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* lab */
<<set _num to 1>>\
<<set $lab_name to []>>\
<<set $experiment to []>>\
<<for $i to 0; $i < _num; $i++>>\
<<set $x to 45>><<set $y to 55>>\
<<set $experiment[$i] to 1>>\
<<set $lab_name[$i] to $corporation_list.random()>>\
<<run $structures.push({type: "lab", x: $x, y: $y})>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 12>><<set $omap[$x][$y] to $i>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* abandoned ship */
<<set _num to 1>>\
<<set $snum to []>><<set $cnum to []>><<set $tries to []>>\
<<set $opened to []>><<set $ashipt to []>><<set $ship_loot to []>>\
<<for $i to 0; $i < _num; $i++>>\
<<set $x to 55>><<set $y to 45>>\
<<set $snum[$i] to [1, 2, 3]>>\
<<set _nums to [1,2,3,4,5,6,7,8,9].shuffle()>>\
<<set $cnum[$i] to [_nums[0], _nums[1], _nums[2]]>>\
<<set $tries[$i] to 5>><<set $opened[$i] to 0>>\
<<set $ashipt[$i] to random(1,3)>>\
<<set $ship_loot[$i] to random(2,5)>>\
<<run $structures.push({type: "abandoned ship", x: $x, y: $y})>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 13>><<set $omap[$x][$y] to $i>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* building */
<<set _num to 1>>\
<<set $building to []>><<set $build_loot to []>>\
<<set $build to []>><<set $npc_talked to []>>\
<<set $buildings to []>>\
<<set $tool_market to []>>\
<<for $i to 0; $i < _num; $i++>>\
<<set $x to 55>><<set $y to 46>>\
<<set $building[$i] to 0>>\
<<set $build_loot[$i] to random(1,4)>>\
<<set $build[$i] to random(1,3)>><<set $npc_talked[$i] to 0>>\
<<set $tool_market[$i] to $tool_list.randomMany(random(3,5))>>\
<<if $building[$i] is 2>><<run $structures.push({type: "building", x: $x, y: $y})>><</if>>\
<<run $buildings.push({x: $x, y: $y})>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 14>><<set $omap[$x][$y] to $i>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* corporation */
<<set _num to 1>>\
<<set $corp_name to []>><<set $corp_loot to []>>\
<<set $corp to []>><<set $vault_opened to []>>\
<<set $vault_found to []>>\
<<for $i to 0; $i < _num; $i++>>\
<<set $x to 55>><<set $y to 47>>\
<<set $corp_name[$i] to $corporation_list.random()>>\
<<set $corp_loot[$i] to random(2,5)>><<set $vault_found[$i] to 0>>\
<<set $corp[$i] to random(1,3)>><<set $vault_opened[$i] to 0>>\
<<run $structures.push({type: "corporation", x: $x, y: $y})>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 15>><<set $omap[$x][$y] to $i>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* refinery */
<<set _num to 1>>\
<<for $i to 0; $i < _num; $i++>>\
<<set $x to 55>><<set $y to 48>>\
<<run $structures.push({type: "refinery", x: $x, y: $y})>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 16>><<set $omap[$x][$y] to $i>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* scavengers */
<<set _num to 1>>\
<<set $price_droid to []>><<set $price_drone to []>>\
<<for $i to 0; $i < _num; $i++>>\
<<set $x to 55>><<set $y to 49>>\
<<set $price_droid[$i] to random(1000, 2000)>><<set $price_drone[$i] to random(750, 1000)>>\
<<run $structures.push({type: "scavengers", x: $x, y: $y})>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 17>><<set $omap[$x][$y] to $i>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* wilderness */
<<set _num to 1>>\
<<set $creature to []>><<set $creature_name to []>><<set $creature_desc to []>><<set $creature_num to []>>\
<<set $wild_robot to []>>\
<<for $i to 0; $i < 3; $i++>>\
<<set _random_creature to random(0, 29)>>\
<<set $creature_name[$i] to $creature_names_list[_random_creature]>>\
<<set $creature_desc[$i] to $creature_desc_list[_random_creature]>>\
<</for>>\
<<for $i to 0; $i < _num; $i++>>\
<<set $x to 55>><<set $y to 50>>\
<<if random(1,4) is 1>><<set $wild_robot[$i] to 1>><<else>><<set $wild_robot[$i] to 0>><</if>>\
<<set $creature[$i] to random(0,2)>>\
<<set $creature_num[$i] to random(0,3)>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 18>><<set $omap[$x][$y] to $i>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* nanobot */
<<set _num to 1>>\
<<set $nanobots to []>>\
<<for $i to 0; $i < _num; $i++>>\
<<set $x to 55>><<set $y to 51>>\
<<run $nanobots.push({x: $x, y: $y})>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 19>><<set $omap[$x][$y] to $i>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\
/* arcade */
<<set _num to 1>>\
<<for $i to 0; $i < _num; $i++>>\
<<set $x to 55>><<set $y to 52>>\
<<run $structures.push({type: "arcade", x: $x, y: $y})>>\
<<if $wmap[$x][$y] is 0>><<set $wmap[$x][$y] to 20>><<set $omap[$x][$y] to $i>>\
<<else>><<set $i-->>\
<</if>>\
<</for>>\data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAADAwMBkVjpxAAAAAnRSTlP/AOW3MEoAAAB0SURBVAjXY/jDwPyf4Yf87/8MHwxYgYT51/8MHz8AWZ////3P8MkeSHx+AOR+BBEfErAQCiDCQBVElAEJCUV+hg/8974zfFRhYGf4/AVIfLoCJL7d//8exJUHSjTYM3wSdbBn+MAKJg7AWCwNIEILRDBACADaEkaQc5SRwQAAAABJRU5ErkJggg==data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAnRSTlP/AOW3MEoAAAB0SURBVAjXY/jAwMDP8ICBgZ3hAAMDM8MNBgZphhkMDJIMEgxAJMG7AUhwTgAS/B+ABPsDIMF8AEYwOcAIsGIQAQbSO6feYFASEmlhUBa608LgJBTSxOBkOaWJwYGBgYnB+V71IQanuConKBFvhULEWTkhZAG2EB+Ei4ai8QAAAABJRU5ErkJggg==data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAnRSTlP/AOW3MEoAAABnSURBVAiZY/gPBAxg4gMD83+Gz7mb/zN8nRj9n+GLFTeUC5T4w/Ck/vADhiN2zA0MLRIMDAwsQMjAIkCQYAMRnAI2fAwCE55YMCgEsxxgcLBhB5oAMoVB8v8PBjkwAeKCWTIILpAAAOOAKjJM91NrAAAAAElFTkSuQmCCdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAADAwMBkVjpxAAAAAnRSTlP/AOW3MEoAAACASURBVAgdBcExjgFhAAbQ59vZsImEqEgUCtkop1ROVO7gEm7A3mPPouYOCsmSTKFQy8bvPeUxKJ3SGkfbF6dvSt0vUT+lsI/LP5qw615e0RvK9WtxrEw2on6KNOLvV3xuxeEgRmuZlv0y2hZpRDUDwMfuNrpXVuSHVM7EfC4QeAPBgSBwlVuIGAAAAABJRU5ErkJggg==data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAADAwMBkVjpxAAAAAnRSTlP/AOW3MEoAAABcSURBVAjXfcQxDkBAFEXRm0hMYxGiUNmANf5NzUSiolDqhMICpiEkD41C4RQH3fh04sSuKCK1WKlETylGCjGQOwL58WTfGm1GS2Z0pMao2Rg0GR6OpwQv/xaW/y6dIFJA1KjWAwAAAABJRU5ErkJggg==data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEXAwMAAAAAr16GmAAAAAXRSTlMAQObYZgAAAFJJREFUCNdjYMAFmEAENwMHM4N0g4U8g/XBH/UM1c9//2f4/Z444ieI+Pb+8EeG9/nSxxnur/ltz7D/8I//DP/f/wcS7xjYGR6ACRD3ARoXRgAA42tQhhPClFoAAAAASUVORK5CYII=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAGUExURUdwTAAAAJ8qhFEAAAABdFJOUwBA5thmAAAAWElEQVQI12NgwAbk//9jYBBgYGJgMAASjJ//f2JgBxH2j4FEPTOQqDEGEgkgMXeQWDxYDKQ44QOQcH8PNCCeH0jU8Jz/x5B4Bki4nznPx1CPk/gPshITAAA6FjYpp1LyYAAAAABJRU5ErkJggg==data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAnRSTlP/AOW3MEoAAACBSURBVAiZY/j/gIGB4f+LjlkM/1+vWsXw/yWIeL1qHZAAiYFl3///x/D/BAMTwx8OeyaGDxx2TAwNEkAW4w8wkdvEwH7CmInBjkOOiaFAgoeJwfEHUDE7SIcdP1BvgQDQFMcPQIIdRNiAuAXi94Hc6fcrGNgnMFRAWeL3C6BcGAEAfREz/6jG6AcAAAAASUVORK5CYII=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAnRSTlP/AOW3MEoAAACESURBVAjXY/gPBAwHGBiYGWYyMDAyLK3/X8mwsP53JZD1uZJhZv1zRobG+uOGDHvr+0ES/J4MO+vkgawaeUegGHskUJY/kmFhnTyIsHcEStSDZP97MuytBBKN1WDz/hsyLAQZDyFAdux1YATKOjBWMsyN/wtUAuLOBEm0gpTsBBGNQAIAWAE4XRJjIt8AAAAASUVORK5CYII=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAnRSTlP/AOW3MEoAAABSSURBVAiZY2Cw/8PAIL//7w8GgQZGDoaCBkY+KDH/J5CYwMnHIDCBkwNCgLn183/+Y0hsYGyDEAjAIyFhgETgFLOXq/iDRDDIVTAgExA1fyAEAKvqHmSGxqYuAAAAAElFTkSuQmCCdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEXAwMAAAAAr16GmAAAAAXRSTlMAQObYZgAAAElJREFUCNdjYMACmD/wH2BgEuBwYOC7/7uCQer+7xwGK2IJ+R85DPb///9hsBLg8GEwu/+7hEHv/u8aBjsEcccaHwFSArYc5AwAcRk6N4pX1pUAAAAASUVORK5CYII=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAGUExURUdwTAAAAJ8qhFEAAAABdFJOUwBA5thmAAAAaElEQVQI113NsQ2AIBBG4WMCRmAIKitJbN0JNmEUY0/CGNeS0Gginj/Bwth85XtEuhDRfHVu4AVI5zCBVNGAOZDPVcjFUw3WrU0vhwFFA2aQK4jni9uaGnhB9ceS7D7wycoHlSy+IuEBk3JFKGuAPhEAAAAASUVORK5CYII=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEXAwMAAAAAr16GmAAAAAXRSTlMAQObYZgAAAEpJREFUCB0FwUENgDAAALHuQgLPSZgUpCEVCygY7dgIAi9nxiPdciy5psxL1iF3vHufDZ7i7mB1MfvmN4MgCIIgCIIgyDeNjSD4ATBYC4RCIRX7AAAAAElFTkSuQmCCdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAADUExURUdwTIL60tIAAAABdFJOUwBA5thmAAAACXBIWXMAACxLAAAsSwGlPZapAAAAC0lEQVQIHWMY5AAAAKAAAZearVIAAAAASUVORK5CYII=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAABlBMVEVHcEwAAACfKoRRAAAAAXRSTlMAQObYZgAAAGJJREFUCNddxLENgiEQgNHPWNDJCKxBYbi1rDw3+UeRURgBY3OJkLNQE/xf8SBUIDYgdSDnX2LfjtvzRnCvRPe2L7n3JdFpFDFD0sOQ+2st6eycdDTQAYzrX5czYAUOQz+9AUpiP8ITKdeqAAAAAElFTkSuQmCCdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAAAXNSR0IArs4c6QAAAAZQTFRFAAAAAAAApWe5zwAAAAF0Uk5TAEDm2GYAAACESURBVAjXY2AAAfv///8w1P3//4/B6X99G0PcP/s2Brc/8kDW3/v/QMQ5hrqf59sYon6e38YQ9YMfyPrAvo8h6gHzMoa0c5bLGOpOaS5jcOrS2McQ18AA1Dv7zTaGuP3/tgHN+98GMvkcQxzIeAgBUgKR3f8PKLuACUiAuHUgCbAz4AQAoABPWh4lMGoAAAAASUVORK5CYII=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAnRSTlP/AOW3MEoAAACCSURBVAjXY2Cw/8PAIL//7w8GgQZGDoaCBkY+hsL///sYCv/VQwnBv/s7GARld3QwFCYf62Oor5D7x5C4c24bQ+Luu20MjJe8GxgYX4U3MPBePr2BgXfnXCCxQ3YDA2PqMqDYvEog9189kPj/fwMDGNjLVfxBIhjkKhiQCYiaPxACAMgcNbY82qHmAAAAAElFTkSuQmCCdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAnRSTlP/AOW3MEoAAAAJcEhZcwAALEsAACxLAaU9lqkAAABBSURBVAgdBcGhAQAwCMCwfsD/ai9iUVkSBEHQeVqjNTpP79EMzdB7dGjRokN4YcKEF3exG7txl/OyJmtyXhAEwQcHsnGPUvRALQAAAABJRU5ErkJggg==data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAnRSTlP/AOW3MEoAAAA3SURBVAjXY/gPBAxIxAd7IPFAHh8BVvKjHkgwMEOJfwyMQEJBkDgiQRKo7bE8PuIwP5BgZv4PAEIJWGwXLNiUAAAAAElFTkSuQmCCdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAABlBMVEVHcEwAAACfKoRRAAAAAXRSTlMAQObYZgAAAFVJREFUCNdjYEAD8g9ghOwCFC6YkAOJsYHUsTcAifofQOL/HwYGRjBx/x2Qe/4diHUGxr3/BkSAxM6/gYoxxp8CismAzON5AGPJHEDh2nwAEn/+MAAAxbIkj5wNP2wAAAAASUVORK5CYII=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEVHcEwAAACfKoRRAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAEtJREFUCNddzrEJwDAMRNEPbg1axZABvLogA2QVDWC4FKc0aV79IApMRTMgTUhldu7T6EyTMP7cksyj2uaSjlkwTSiXGUUaJJpv9QJKmTkxTVdOzgAAAABJRU5ErkJggg==data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAnRSTlP/AOW3MEoAAAB1SURBVAjXY/jfwPif4Q8Dgz3DB/s//AwP//9vZ2j///8hA38D4wcGm/p/NgzW///fYTD///8Ng/7//18Y7BsY/yBLyIMkMjqAElm7/zDYSuwESkTtBkpkdUB12DEw2AAhAw+DAWHCkP1wDoNxU0MPg6mLcw4AEF02aWrpg1IAAAAASUVORK5CYII=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAGUExURUdwTAAAAJ8qhFEAAAABdFJOUwBA5thmAAAAT0lEQVQI15XJMRGDQBAAwP3MQXoEwDkhJTKQQcdLwREW8EBDlWAhNNssw4W5RS0UqhcfMVwp5jZFLalhE+TDGL8p1l+Kc/+L97kfdBP6xQ1BWSIDCCv/TwAAAABJRU5ErkJggg==data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAABlBMVEVHcEwAAACfKoRRAAAAAXRSTlMAQObYZgAAAF1JREFUCNdjYCAJ8D8AEvIfgIT9DwYGxv//gESDHYj1v4GB+f+/Agb2/396GPj//5kMJH7qALk/C4ASQFmgEqA6+fkgHfIMILEDEIL9//8HQMUQ4gOE4Ono/wCWAACdNTDUb/1QfQAAAABJRU5ErkJggg==data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAnRSTlP/AOW3MEoAAAAJcEhZcwAADsQAAA7EAZUrDhsAAACQSURBVAiZJY4xCsJAFAVHA6YJ/sI+ewGxTrHuHsEqd7AVLEPiSTxAzmARLyJ6g7Vf/jfB5jEwDDwYR8AMRF2iCpLwQTJNXVc0TvfLVJgOjkGdouqMq8aer1nJxfKGt+Ud56hrslOhdxLmQmwu5LWQ0J3uB3Ix267UGh8tEy154vHzIKwmz7a4JcSe6X+ItuUHi1o/GnjgtNEAAAAASUVORK5CYII=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEVHcEwAAACfKoRRAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAADVJREFUCNdjYGA+wMCATvB/II6w/wMleGxsDKDE5/Mw4v9/KMH///8HKHH+MyYBl0UyGeYWAN0pMc8Gpcg8AAAAAElFTkSuQmCCdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEXAwMAAAAAr16GmAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAEhJREFUCNd1x8EJgFAMA9BoB8hIdTRH6wauEvAa+B5aL4KXBw+IApr9ALCdb/8oKhpRbExls9KrSaeH+xqY1pdI1yAOqABQgQdfojYW0MVqEgAAAABJRU5ErkJggg==data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEVHcEwAAACfKoRRAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAEJJREFUCNdlxLEJwDAQA8AHt4FfJQMYtLo38CoPbgUKJEpjX3ERbUTsZZ2BZ8RfpWtzDQe6lGoPEh3h1Lu+6r7y7QH3qjgjFS0B+gAAAABJRU5ErkJggg==data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAnRSTlP/AOW3MEoAAABzSURBVAjXLY0hDoAwEAT3wov4QZF9wineUUUqeMQJBKKiAoFAIEj4GCld6IlNbud2D6UObqDDAgjWqQSYk4BZLeBUE0S1Hone4cRjI0hqA0URnSgT+ntXo54JT1r7plILvnpKaj8aTeMTkLnuBPk7ocQqL/X4MlC6/OuqAAAAAElFTkSuQmCCdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEVHcEwAAACfKoRRAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAEZJREFUCNdlzLEJwDAMBVGB20BW0QACr+4BBFklAxguxZedQK545Zl9Ojax8A0U3WOK4dEEZhRQJFyCTESHKd6fnfefNsQDw+o1U/sx7fgAAAAASUVORK5CYII=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEVHcEwAAACfKoRRAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABhJREFUCNdjYMAGDsAI5g8wAiFGISDNbAALswnNOaPhigAAAABJRU5ErkJggg==data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEVHcEwAAACfKoRRAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAACBJREFUCNdjYMAKmOEE/wEYgRCjBByAEcwfYARCDBMAAHdhBpFJCBBDAAAAAElFTkSuQmCCdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEVHcEwAAACfKoRRAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAB9JREFUCNdjYKAyYIYT/AcYDCAEkPsHQgCBAZwgBgAA/z0EY+a+zuAAAAAASUVORK5CYII=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEVHcEwAAACfKoRRAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABZJREFUCNdjYCAdMMMJ/gMwAiFGXQAAngsBq5SMRVMAAAAASUVORK5CYII=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAnRSTlP/AOW3MEoAAAB3SURBVAjXdcaxDYJQGEXhQyRgYcICFlRWDKDbOIItA/x7ECfhBQKNFpR0xsYBaDCRXHmUJJziy0FzrPgRi68GMXARnygTz/Ak+vAuuqTY4Y7phDunhrt5rh5mKo1Gw8F4EBm93kanl1HC5AloNQbU7JfL/eWb9wfDfUvHTxefkAAAAABJRU5ErkJggg==data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEXAwMAGBQRVQO1IAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAADlJREFUCNdjYEACPDDiAD8PhOA5w2wDIYDAAE7gAwYMByCEwQeeMxDCBigCIeA2IANmOGFsACNgAAA5DA0JUJNTGwAAAABJRU5ErkJggg==