diff --git a/contributors.html b/contributors.html
index ec31af02..06e411dc 100644
--- a/contributors.html
+++ b/contributors.html
@@ -124,6 +124,10 @@
SHARK GAME: NEW FRONTIERS
Adr |
Playtester, Code contributor |
+
+ | Three Eels in a Jellyfish Coat |
+ Fan, Shore Ocean Developer |
+
diff --git a/css/style.css b/css/style.css
index 913e1a0b..6ea4e8bf 100644
--- a/css/style.css
+++ b/css/style.css
@@ -68,6 +68,14 @@
--color-darker: #001d2b;
--color-title: rgba(29, 83, 114, 0.2);
}
+:root :not(.no-theme).shore {
+ --color-lighter: #ffdf80;
+ --color-light: #ffd24d;
+ --color-med: #ffbf00;
+ --color-dark: #cc9900;
+ --color-darker: #997300;
+ --color-title: rgba(255, 191, 0, 0.2);
+}
:root :not(.no-theme).shrouded {
--color-lighter: #22bec3;
--color-light: #302d39;
diff --git a/css/style.css.map b/css/style.css.map
index 6ff82d25..ff15c98a 100644
--- a/css/style.css.map
+++ b/css/style.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["../styles/style.scss"],"names":[],"mappings":"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","file":"style.css"}
\ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["../styles/style.scss"],"names":[],"mappings":"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","file":"style.css"}
\ No newline at end of file
diff --git a/css/style.min.css b/css/style.min.css
index e3ac35ec..fd24a228 100644
--- a/css/style.min.css
+++ b/css/style.min.css
@@ -1 +1 @@
-.fill-available-width,#sidebar #resourceTableContainer table{width:100%;width:fill-available;width:-moz-available;width:-webkit-fill-available}.clear-fix{display:block;zoom:1}.clear-fix:after{content:" ";display:block;font-size:0;height:0;clear:both;visibility:hidden}.bold{font-weight:bold}:root{--color-lighter: #8e9fc0;--color-light: #536892;--color-med: #2e4372;--color-dark: #152a55;--color-darker: #061639;--color-title: rgba(46, 67, 114, 0.2)}:root :not(.no-theme).abandoned{--color-lighter: #7e798f;--color-light: #454152;--color-med: #1f1b2c;--color-dark: #171226;--color-darker: #0a0514;--color-title: rgba(31, 27, 44, 0.2)}:root :not(.no-theme).chaotic{--color-lighter: #a2b3ae;--color-light: #69877d;--color-med: #45695d;--color-dark: #26453b;--color-darker: #113a2d;--color-title: rgba(69, 105, 93, 0.2)}:root :not(.no-theme).frigid{--color-lighter: #c0cdd4;--color-light: #5d829b;--color-med: #2f5d7c;--color-dark: #14415f;--color-darker: #05283f;--color-title: rgba(47, 93, 124, 0.2)}:root :not(.no-theme).haven{--color-lighter: #75aab6;--color-light: #2f7591;--color-med: #1d5372;--color-dark: #053247;--color-darker: #001d2b;--color-title: rgba(29, 83, 114, 0.2)}:root :not(.no-theme).shrouded{--color-lighter: #22bec3;--color-light: #302d39;--color-med: #121019;--color-dark: #0f0b18;--color-darker: #0a0613;--color-title: rgba(18, 16, 25, 0.2)}:root :not(.no-theme).tempestuous{--color-lighter: #858d9e;--color-light: #5e687e;--color-med: #3e4960;--color-dark: #253046;--color-darker: #121a2b;--color-title: rgba(62, 73, 96, 0.2)}:root :not(.no-theme).volcanic{--color-lighter: #cf9d9d;--color-light: #8f5252;--color-med: #681e1e;--color-dark: #521212;--color-darker: #2b0707;--color-title: rgba(104, 30, 30, 0.2)}html{min-height:100%}body{color:#fff;background-color:var(--color-darker);font-family:Verdana,Geneva,sans-serif;font-size:13pt;text-align:center;min-height:100%;overflow-y:auto}::-webkit-scrollbar{width:initial}::-webkit-scrollbar-track{background:var(--color-med)}.gateway::-webkit-scrollbar-track{background:rgb(55.6216216216,164.8783783784,129.1216216216)}::-webkit-scrollbar-thumb{background-color:var(--color-light)}.gateway::-webkit-scrollbar-thumb{background-color:rgb(95.7297297297,201.2702702703,166.7297297297)}div{padding:0;margin:0}a:active,a:hover,a:visited,a:link{color:var(--color-lighter)}a:hover{filter:brightness(125%)}a:active{filter:brightness(135%)}h1{color:var(--color-lighter);filter:brightness(130%);font-size:2em;text-shadow:0 0 .3em var(--color-darker)}h2{color:var(--color-lighter);font-size:1.3em;text-shadow:0 0 .3em var(--color-darker)}h3{color:var(--color-lighter);font-size:1.1em;text-align:center;text-shadow:0 0 .3em var(--color-darker)}h4{color:var(--color-lighter);font-size:.8em;text-align:center;text-shadow:0 0 .3em var(--color-darker)}#shareWrapper{margin-left:auto;margin-right:auto;display:inline-block;text-align:center;margin-top:.8em;margin-bottom:.2em;background:var(--color-med);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 2px 2px var(--color-med);-moz-box-shadow:0 0 2px 2px var(--color-med);box-shadow:0 0 2px 2px var(--color-med)}#wrapper{background-color:var(--color-dark);margin-left:auto;margin-right:auto;margin-top:2.5em;padding:10px;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;height:100%;min-height:90vh;display:flex;flex-direction:column}#wrapper #game{flex:1 0 auto}#wrapper #devs{align-items:center;display:flex;flex-direction:column}#wrapper #devs>ul{margin:0;padding:0;list-style-type:none}#wrapper #devs tr{text-align:right}#wrapper #devs tr td{padding-left:1rem;padding-right:1rem;width:50%}#wrapper #devs tr td:nth-child(2){text-align:left}#wrapper #copyright{flex-shrink:0}#wrapper.topLogActive{margin-top:4.8em}#wrapper.notMinimized{margin-top:0}pre{text-align:left}#game{display:none}.section,#content,#sidebar,#title{-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;padding:5px;overflow:hidden}.inner-section,#statsContainer,#buttonList,#tabMessage{padding:5px;margin:5px}.click-passthrough,.largeDesc,.medDesc,.smallDesc,.smallDescAllowClicks,#tabSceneTracker,.button-icon,.top-bar #title #titlebar,.top-bar #title{pointer-events:none}#title{clear:both;text-shadow:2px 2px 3px var(--color-darker);margin-bottom:1em;box-shadow:0 4px 4px 4px var(--color-darker);background-image:url("../img/sharklogo.png");background-position:center;background-repeat:no-repeat}#title.radical{background-image:url("../img/sharklogo_radical.png")}#title h1{margin:.1em auto .3em auto}#title h2{text-align:left;margin:.2em}#title h4{margin:.2em auto 1.5em}.top-bar{margin-top:35px}.top-bar #title{padding:0;width:100%;height:4.3em;position:fixed;background-image:none;font-size:initial;left:0;top:0;box-shadow:none;margin-bottom:0;z-index:2;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.top-bar #title.biggerTitleDiv{height:13em}.top-bar #title #titlebar{width:100%}.top-bar #title #gameName,.top-bar #title #versionNumber,.top-bar #title #updateGame{display:none;pointer-events:all}.top-bar #title #titlemenu,.top-bar #title #subtitlemenu{pointer-events:all;float:left;font-size:initial;height:auto;margin:.2em .8em;overflow:hidden;text-align:center;font-weight:bold}.top-bar #title #titlemenu a:link,.top-bar #title #titlemenu a:visited,.top-bar #title #subtitlemenu a:link,.top-bar #title #subtitlemenu a:visited{color:var(--color-lighter);filter:none}.top-bar #title #titlemenu a:hover,.top-bar #title #subtitlemenu a:hover{filter:brightness(130%)}.top-bar #title #subtitlemenu{float:right}.top-bar #title li{font-size:initial;pointer-events:all}.top-bar #title #log{pointer-events:all}.top-bar #title #titlebackground{display:block}#titlebackground{height:2em;display:none;background-color:var(--color-med);position:fixed;width:100%;z-index:-1;box-shadow:0 4px 4px 4px var(--color-darker)}#titlebackground.topLogActive{height:4.3em}#titlebar{height:auto;margin:0 auto;overflow:hidden;text-align:center;font-weight:bold;color:var(--color-lighter);font-size:1.3em}#titlebar ul{padding:.2em 0;margin:.4em auto .6em auto}#titlemenu a:link,#titlemenu a:visited{color:var(--color-lighter);filter:brightness(125%)}#titlemenu a:hover{color:var(--color-lighter);filter:brightness(130%)}#titlemenu li{padding:0;margin:0;list-style-type:none;display:inline}#titlemenu li:before{content:" | "}#titlemenu li:first-child:before{content:none}#subtitlemenu{font-size:.8em}#subtitlemenu li{padding:0;margin:0;list-style-type:none;display:inline}#subtitlemenu li:before{content:" | "}#subtitlemenu li:first-child:before{content:none}#contentMenu{overflow:hidden;min-height:1.8em}#contentMenu ul{padding:0;margin:0}#contentMenu li{padding:0;margin:0;list-style-type:none;display:inline}#contentMenu #tabList{float:left;position:fixed;margin-bottom:.4em;margin-left:1em;box-shadow:0 0 10px 10px var(--color-dark);background-color:var(--color-dark);z-index:1}#contentMenu #tabList li{font-weight:bold;list-style-type:none;display:inline}#contentMenu #tabList li:before{content:" | "}#contentMenu #tabList li:first-child:before{content:none}#contentMenu #tabList:empty{box-shadow:none}#contentMenu #tabList.notFixed{position:static}#contentMenu #tabList .newTab a:link{color:#ace3d1;text-shadow:0 0 .8em rgb(95.7297297297,201.2702702703,166.7297297297)}#contentMenu #tabList .newTab a:visited{color:#ace3d1;text-shadow:0 0 .8em rgb(95.7297297297,201.2702702703,166.7297297297)}#contentMenu #tabList .newTab a:hover{color:rgb(210.1351351351,239.8648648649,230.1351351351);text-shadow:0 0 .8em rgb(133.8648648649,214.1351351351,187.8648648649)}#contentMenu #tabList .newTab a:active{color:rgb(210.1351351351,239.8648648649,230.1351351351);text-shadow:0 0 .8em rgb(133.8648648649,214.1351351351,187.8648648649)}#buyButtons{padding-left:0px}#buyButtons li{padding:0;margin:0;list-style-type:none;display:inline}#sidebar{float:left;text-align:left;width:25%;background-color:var(--color-med);text-shadow:0px 0px 2px #000;-webkit-box-shadow:0 0 5px 5px var(--color-dark) inset;-moz-box-shadow:0 0 5px 5px var(--color-dark) inset;box-shadow:0 0 5px 5px var(--color-dark) inset}#sidebar #resourceTableContainer{margin:0}#sidebar #resourceTableContainer table{margin:0;background-color:var(--color-darker);border:1px solid var(--color-lighter);padding:.5em;overflow:hidden;text-align:left;border-spacing:0 .1em}#sidebar #resourceTableContainer table .highlightedIncome{background-color:var(--color-light)}#sidebar #resourceTableContainer table .highlightedResource{background-color:var(--color-light)}#sidebar #resourceTableContainer table h3{padding:.2em;width:auto;margin:auto;font-size:.9em;color:var(--color-lighter),20%;filter:brightness(120%);border-top:.1em dashed var(--color-lighter);border-bottom:.1em dashed var(--color-lighter);background:var(--color-dark);cursor:pointer;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#sidebar td{font-size:1.1em;padding:.1em;word-break:break-all;word-wrap:break-word;background-repeat:no-repeat;background-position:right}#sidebar ul{list-style-type:none;padding:0;margin:0}#sidebar li{padding:.5em;margin:0}#status{margin:5px;padding:0}#log{overflow:hidden;overflow-anchor:none;position:relative}#log li{display:block;padding-top:.1em;padding-bottom:.1em}#log h3{display:block;text-align:center}#log .error{color:#e03030;text-shadow:0 0 .8em maroon}#log .discovery{color:#ace3d1;text-shadow:0 0 .8em rgb(95.7297297297,201.2702702703,166.7297297297)}#log #messageList{box-sizing:border-box;text-align:center;padding:0;overflow-y:hidden;max-height:9em;margin-top:0;margin-bottom:0;border-style:solid;border-width:2px;background-color:var(--color-med);-webkit-box-shadow:0 0 2px 2px var(--color-dark) inset;-moz-box-shadow:0 0 2px 2px var(--color-dark) inset;box-shadow:0 0 2px 2px var(--color-dark) inset}#log #messageList.scrollable{overflow-y:auto}#log #messageList.forRightSide{overflow-y:auto;border-style:none;max-height:39em}#log #messageList.forRightSide li{padding-top:1em;padding-bottom:1em;padding-left:.4em;padding-right:.4em}#log #messageList.forLeftSide{overflow-y:auto;border-style:none;max-height:30em}#log #messageList.forLeftSide li{padding-top:1em;padding-bottom:1em;padding-left:.4em;padding-right:.4em}#log #messageList .evenMessage{background-color:var(--color-dark)}#rightLogContainer{float:right;width:18%;background-color:var(--color-med);box-shadow:0 0 5px 5px var(--color-dark) inset;overflow:clip}#resource-numen{text-shadow:0 0 .3em #fff,0 0 .6em #fff,0 0 .8em #fff}#content{background-color:var(--color-med);-webkit-box-shadow:0 0 5px 5px var(--color-dark) inset;-moz-box-shadow:0 0 5px 5px var(--color-dark) inset;box-shadow:0 0 5px 5px var(--color-dark) inset;padding:.5em}#content #helpButton{padding:2px 5px 2px 5px}#tabMessage{position:relative;padding:1.4em;background:repeat-x center;-webkit-border-radius:.5em;-moz-border-radius:.5em;border-radius:.5em;-webkit-box-shadow:0 0 30px 30px var(--color-med) inset;-moz-box-shadow:0 0 30px 30px var(--color-med) inset;box-shadow:0 0 30px 30px var(--color-med) inset;text-shadow:0 0 .3em var(--color-dark)}#extraMessage{display:inline-block;width:400px}#buttonList{padding:1em}#buttonList button{touch-action:manipulation}#buttonList.homeScreen{display:flex;flex-wrap:wrap;justify-content:center}#buttonList.homeScreen ul{display:inline-block}#buttonList.homeScreen li{display:inline-block}#buttonList.homeScreen button{display:inline-block;margin:.4em;height:10em;width:12em}#buttonList.lab{width:100%}#buttonList.lab button{width:100%}button.newlyDiscovered{max-width:none}#homeTabs{margin-bottom:1em}#homeTabs ul{padding:0;margin:0}#homeTabs li{list-style-type:none;display:inline}#homeTabs li:before{content:" | "}#homeTabs li:first-child:before{content:none}#homeTabs .newItemAdded a:link{color:#ace3d1;text-shadow:0 0 .8em rgb(95.7297297297,201.2702702703,166.7297297297)}#homeTabs .newItemAdded a:visited{color:#ace3d1;text-shadow:0 0 .8em rgb(95.7297297297,201.2702702703,166.7297297297)}#homeTabs .newItemAdded a:hover{color:rgb(210.1351351351,239.8648648649,230.1351351351);text-shadow:0 0 .8em rgb(133.8648648649,214.1351351351,187.8648648649)}#homeTabs .newItemAdded a:active{color:rgb(210.1351351351,239.8648648649,230.1351351351);text-shadow:0 0 .8em rgb(133.8648648649,214.1351351351,187.8648648649)}#buttonLeftContainer{float:left;width:50%}#statsContainer{padding:1em}.statsInnerContainer table,#statsRightContainer table,#statsLeftContainer table,#statsUpperContainer table{text-align:left;margin-left:auto;margin-right:auto;padding:.1em;border:2px solid var(--color-lighter);border-collapse:collapse;background:var(--color-darker)}.statsInnerContainer td,#statsRightContainer td,#statsLeftContainer td,#statsUpperContainer td{margin:.2em;font-size:.9em;padding:.4em}#statsUpperContainer{width:100%}#statsLeftContainer{float:left;width:50%}#statsRightContainer{float:right;width:45%}#incomeData{padding:.1em .1em 1em;border-bottom:.1em dashed var(--color-lighter);text-shadow:0px 0px 2px #000}#incomeData .oddRow{background:var(--color-darker)}#incomeData .evenRow{background:var(--color-dark)}#incomeData .essenceGlow{text-shadow:0 0 1em #ace3d1;background:var(--color-dark)}#generalStats .timeDisplay{font-style:italic;font-size:110%}#disposeResource{padding:.1em .1em .5em;border-bottom:.1em dashed var(--color-lighter)}#upgradeList{float:right;text-align:left;margin:auto;width:40%;padding:.2em .2em .2em 2em;border-left:.1em dashed var(--color-lighter);text-shadow:0px 0px 2px #000}#upgradeList ul{list-style-type:square;padding:0;margin:0;max-height:600pt;overflow-y:auto}#upgradeList li{padding:.5em .5em .5em .2em;margin:0}#recyclerContainer{margin:0 auto;overflow:hidden;max-width:55em}#recyclerContainer>#inputButtons{float:left;margin:auto;width:35%;text-shadow:0px 0px 2px #000}#recyclerContainer>#junkDisplay{position:relative;float:left;margin:auto;width:25%;background:#450808 url("../img/recyclerbg.png") center;color:hsl(0,22.7642276423%,78.2352941176%);border:.2em solid #975f5f;-webkit-box-shadow:0 0 15px 15px #450808 inset;-moz-box-shadow:0 0 15px 15px #450808 inset;box-shadow:0 0 15px 15px #450808 inset;padding:.5em;text-shadow:0px 0px 2px #000}#recyclerContainer>#outputButtons{float:left;margin:auto;width:35%;text-shadow:0px 0px 2px #000}#recyclerContainer #buyButtons{padding-left:0px}#updateGameBox{bottom:15px;right:15px;cursor:pointer}#updateGameBox:empty{display:none}button{background-color:var(--color-light);color:#fff;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;border:2px solid var(--color-lighter);padding:10px;margin:1% auto;cursor:pointer;display:block;min-width:12em;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-shadow:0px 0px 2px #000;font-size:100%}button.min{padding:.1em;margin:0px 2px 3px;min-width:0;display:inline;border-radius:5px}button.min-block{padding:.1em;margin:auto;min-width:0;vertical-align:super;border-radius:5px}button.close-button{padding:0 3.5px;margin:auto;float:right}button:hover{-webkit-box-shadow:0px 0px 2px 2px var(--color-lighter);-moz-box-shadow:0px 0px 2px 2px var(--color-lighter);box-shadow:0px 0px 2px 2px var(--color-lighter)}button:active,button.keep-button-pressed{background-color:var(--color-dark);color:var(--color-light);-webkit-box-shadow:0px 3px 7px 7px var(--color-darker) inset;-moz-box-shadow:0px 3px 7px 7px var(--color-darker) inset;box-shadow:0px 3px 7px 7px var(--color-darker) inset}button:active .medDesc,button.keep-button-pressed .medDesc{font-size:80%;color:var(--color-lighter);filter:brightness(80%)}button:active div,button.keep-button-pressed div{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background-color:var(--color-dark)}button:focus{outline:0}button.disabled{background-color:var(--color-darker);color:var(--color-lighter);filter:brightness(80%);cursor:default;border-color:var(--color-med)}button.disabled:hover{box-shadow:none}button.disabled:active{box-shadow:none}button.disabled .medDesc{font-size:80%;color:var(--color-lighter);filter:brightness(75%)}button.disabled div{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background-color:var(--color-darker)}#custom-input{padding:.1em;margin:0px 2px 3px;width:6em;background-color:var(--color-light);border-color:var(--color-lighter);color:#fff;font-size:90%}#custom-input[disabled]{background-color:var(--color-darker);color:var(--color-lighter);filter:brightness(80%);cursor:default;border-color:var(--color-med)}.button-icon{background-color:var(--color-lighter);display:block;margin:0 auto .4em auto;-webkit-box-shadow:0 0 3px 3px var(--color-lighter);-moz-box-shadow:0 0 3px 3px var(--color-lighter);box-shadow:0 0 3px 3px var(--color-lighter);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.gives-consumer{box-shadow:0 0 3px 1px red inset}#tabSceneTracker{position:absolute;width:100%;top:0;left:0;display:flex;justify-content:center}#tabSceneTracker .inactive{color:var(--color-dark)}#tabSceneDiv{display:flex}#tabSceneImage,#tabSceneImageEssence,#tabSceneImageRed{display:block;margin:.1em auto .4em auto;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 0 5px 5px var(--color-dark);-moz-box-shadow:0 0 5px 5px var(--color-dark);box-shadow:0 0 5px 5px var(--color-dark)}#tabSceneImageRed{-webkit-box-shadow:0 0 5px 5px #5c1919;-moz-box-shadow:0 0 5px 5px #5c1919;box-shadow:0 0 5px 5px #5c1919}#tabSceneImageEssence{-webkit-box-shadow:0 0 5px 5px rgb(62.0540540541,183.9459459459,144.0540540541);-moz-box-shadow:0 0 5px 5px rgb(62.0540540541,183.9459459459,144.0540540541);box-shadow:0 0 5px 5px rgb(62.0540540541,183.9459459459,144.0540540541)}#sceneLeft,#sceneRight{min-width:0}#overlay{-webkit-opacity:.5;-moz-opacity:.5;opacity:.5;position:fixed;top:0;left:0;background-color:#000;width:100%;height:100%;z-index:10}#idle-overlay{-webkit-opacity:.8;-moz-opacity:.8;opacity:.8;position:fixed;top:0;left:0;background-color:#000;width:100%;height:100%;z-index:20;display:flex;justify-content:center;align-items:center;flex-direction:column}.pointy{cursor:pointer}.littleGeneralText{font-size:10pt}.smallDesc,.smallDescAllowClicks{font-size:80%;color:var(--color-lighter)}.smallDescAllowClicks{pointer-events:auto}.medDesc{font-size:80%;color:var(--color-lighter);filter:brightness(130%)}.largeDesc{font-size:125%;color:var(--color-lighter);filter:brightness(130%)}.copyrightNotice{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:80%;color:var(--color-lighter);filter:brightness(130%);position:static}#pane{background-color:var(--color-dark);-webkit-box-shadow:0 0 5px 5px var(--color-darker) inset;-moz-box-shadow:0 0 5px 5px var(--color-darker) inset;box-shadow:0 0 5px 5px var(--color-darker) inset;filter:brightness(98%);-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;padding:1em 2em;margin:auto;overflow:auto;position:fixed;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);-o-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);border:double var(--color-med);max-height:90%;max-width:90%;z-index:11}#pane h2{padding-bottom:.5em}#pane #paneHeaderEnd{border-bottom:.5em double var(--color-med)}#pane #paneHeaderTitleDiv{vertical-align:middle;display:inline;text-align:left}#pane #paneHeaderTitleDiv h3{display:inline}#pane #paneHeaderCloseButtonDiv{vertical-align:middle;text-align:right}#pane table{margin:auto;text-align:left}#pane .option-button{padding-left:0;padding-right:0;min-width:0;width:4em}#pane .paneContentDiv{border-bottom:.4em double var(--color-med)}#pane #changelogDiv{text-align:left}#pane #changelogDiv h3{text-align:left}#pane td.optionLabel{min-width:12em;word-wrap:break-word}#pane #endCredits{font-size:90%}.gateway{text-align:center}.gateway h1{text-align:center;color:rgb(210.1351351351,239.8648648649,230.1351351351)}.gateway h2{text-align:center;color:#ace3d1}.gateway h3{text-align:center;color:#ace3d1}.gateway h4{text-align:center;color:#ace3d1}.gateway .medDesc{color:rgb(152.9324324324,220.5675675676,198.4324324324)}.gateway .smallDesc,.gateway .smallDescAllowClicks{color:#ace3d1}.gatewayButton,.gateway button,button.gateway,button.newlyDiscovered{background-color:rgb(36.3243243243,107.6756756757,84.3243243243);border-color:#ace3d1;max-width:16em}.gatewayButton div,.gateway button div,button.gateway div,button.newlyDiscovered div{background-color:rgb(95.7297297297,201.2702702703,166.7297297297);-webkit-box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297);-moz-box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297);box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297)}.gatewayButton:hover,.gateway button:hover,button.gateway:hover,button.newlyDiscovered:hover{-webkit-box-shadow:0px 0px 2px 2px #ace3d1;-moz-box-shadow:0px 0px 2px 2px #ace3d1;box-shadow:0px 0px 2px 2px #ace3d1}.gatewayButton:active,.gateway button:active,button.gateway:active,button.newlyDiscovered:active{background-color:rgb(17.027027027,50.472972973,39.527027027);color:rgb(95.7297297297,201.2702702703,166.7297297297);-webkit-box-shadow:0px 3px 7px 7px rgb(36.3243243243,107.6756756757,84.3243243243) inset;-moz-box-shadow:0px 3px 7px 7px rgb(36.3243243243,107.6756756757,84.3243243243) inset;box-shadow:0px 3px 7px 7px rgb(36.3243243243,107.6756756757,84.3243243243) inset}.gatewayButton:active .medDesc,.gateway button:active .medDesc,button.gateway:active .medDesc,button.newlyDiscovered:active .medDesc{color:rgb(133.8648648649,214.1351351351,187.8648648649)}.gatewayButton:active div,.gateway button:active div,button.gateway:active div,button.newlyDiscovered:active div{background-color:rgb(36.3243243243,107.6756756757,84.3243243243);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.gatewayButton.disabled,.gateway button.disabled,button.disabled.gateway,button.disabled.newlyDiscovered{background-color:rgb(17.027027027,50.472972973,39.527027027);color:rgb(49.1891891892,145.8108108108,114.1891891892);border-color:rgb(49.1891891892,145.8108108108,114.1891891892)}.gatewayButton.disabled .medDesc,.gateway button.disabled .medDesc,button.disabled.gateway .medDesc,button.disabled.newlyDiscovered .medDesc{color:rgb(55.6216216216,164.8783783784,129.1216216216)}.gatewayButton.disabled div,.gateway button.disabled div,button.disabled.gateway div,button.disabled.newlyDiscovered div{background-color:rgb(17.027027027,50.472972973,39.527027027);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.gatewayButton.respecMode,.gateway button.respecMode,button.respecMode.gateway,button.respecMode.newlyDiscovered{box-shadow:0 0 6px rgb(229.2027027027,246.2972972973,240.7027027027) inset;background-color:rgb(55.6216216216,164.8783783784,129.1216216216)}#pane.gateway{-webkit-border-radius:3em;-moz-border-radius:3em;border-radius:3em;background-color:rgb(36.3243243243,107.6756756757,84.3243243243);-webkit-box-shadow:0 0 2em 2em rgb(36.3243243243,107.6756756757,84.3243243243);-moz-box-shadow:0 0 2em 2em rgb(36.3243243243,107.6756756757,84.3243243243);box-shadow:0 0 2em 2em rgb(36.3243243243,107.6756756757,84.3243243243);border:none}#pane.gateway #paneHeaderEnd,#pane.gateway .paneContentDiv{border-bottom:none}#pane.gateway #treeCanvas{-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;-webkit-box-shadow:0 0 5px 5px #ace3d1;-moz-box-shadow:0 0 5px 5px #ace3d1;box-shadow:0 0 5px 5px #ace3d1;width:800px;height:600px;touch-action:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}#overlay.gateway{-webkit-opacity:1;-moz-opacity:1;opacity:1;background-color:rgb(17.027027027,50.472972973,39.527027027)}.gateway .essenceCount{color:rgb(95.7297297297,201.2702702703,166.7297297297);text-shadow:0 0 .6em rgb(95.7297297297,201.2702702703,166.7297297297)}.gateway .essenceCountBrighter{color:rgb(191.0675675676,233.4324324324,219.5675675676);text-shadow:0 0 .6em rgb(191.0675675676,233.4324324324,219.5675675676)}.gateway .numenCount{color:#fff;text-shadow:0 0 .3em #fff,0 0 .6em #fff,0 0 .8em #fff}.gatewayButtonList{list-style-type:none;display:inline-block}.gatewayButtonList button{display:inline-block;margin:.2em}.gatewayPropertyList{list-style-type:none;padding-left:0}.gatewayPropertyList li{padding-left:0}.gateway input{background-color:rgb(36.3243243243,107.6756756757,84.3243243243);border-color:#ace3d1;color:#fff;text-align:right;width:4em}.gateway ::-webkit-inner-spin-button{margin-left:2px}#planetContainer{text-align:center;margin:.5em auto;padding:.5em}.gateway ::selection{background-color:rgb(17.027027027,50.472972973,39.527027027)}.gateway ::-moz-selection{background-color:rgb(17.027027027,50.472972973,39.527027027)}#aspectList{margin:.5em auto}#aspectTable{border-spacing:0}#aspectTable tr:nth-child(6n+1) td,#aspectTable tr:nth-child(6n+2) td,#aspectTable tr:nth-child(6n+3) td{background-color:rgb(55.6216216216,164.8783783784,129.1216216216)}.aspectDiv{display:inline-block;vertical-align:middle;-webkit-border-radius:.5em;-moz-border-radius:.5em;border-radius:.5em;background-color:rgb(36.3243243243,107.6756756757,84.3243243243);-webkit-box-shadow:0 0 .5em .5em rgb(36.3243243243,107.6756756757,84.3243243243);-moz-box-shadow:0 0 .5em .5em rgb(36.3243243243,107.6756756757,84.3243243243);box-shadow:0 0 .5em .5em rgb(36.3243243243,107.6756756757,84.3243243243);padding:.2em;margin:1.5em;max-width:14em}.aspectDiv .gatewayButton,.aspectDiv button.newlyDiscovered,.aspectDiv .gateway button,.gateway .aspectDiv button,.aspectDiv button.gateway{-webkit-box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297);-moz-box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297);box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297)}.disabledAspectDiv{display:inline-block;vertical-align:middle;-webkit-border-radius:.5em;-moz-border-radius:.5em;border-radius:.5em;background-color:rgb(17.027027027,50.472972973,39.527027027);-webkit-box-shadow:0 0 .5em .5em rgb(17.027027027,50.472972973,39.527027027);-moz-box-shadow:0 0 .5em .5em rgb(17.027027027,50.472972973,39.527027027);box-shadow:0 0 .5em .5em rgb(17.027027027,50.472972973,39.527027027);padding:.2em;margin:1.5em;max-width:14em}.disabledAspectDiv .gatewayButton,.disabledAspectDiv button.newlyDiscovered,.disabledAspectDiv .gateway button,.gateway .disabledAspectDiv button,.disabledAspectDiv button.gateway{-webkit-box-shadow:0 0 3px 3px rgb(55.6216216216,164.8783783784,129.1216216216);-moz-box-shadow:0 0 3px 3px rgb(55.6216216216,164.8783783784,129.1216216216);box-shadow:0 0 3px 3px rgb(55.6216216216,164.8783783784,129.1216216216)}.planetDisplay{-webkit-border-radius:50px;-moz-border-radius:50px;border-radius:50px;background-color:rgb(95.7297297297,201.2702702703,166.7297297297);-webkit-box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297);-moz-box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297);box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297);margin:0 auto}button.planetButton{background-color:rgba(0,0,0,0);border:none;padding:20px;max-width:14em;margin:.8em}button.planetButton div{-webkit-border-radius:50px;-moz-border-radius:50px;border-radius:50px}button.planetButton:hover{text-shadow:0 0 .3em rgb(191.0675675676,233.4324324324,219.5675675676),0 0 .6em rgb(210.1351351351,239.8648648649,230.1351351351),0 0 .9em rgb(229.2027027027,246.2972972973,240.7027027027);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}button.planetButton:hover div{-webkit-box-shadow:0 0 .4em .4em #ace3d1;-moz-box-shadow:0 0 .4em .4em #ace3d1;box-shadow:0 0 .4em .4em #ace3d1}button.planetButton:active{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#gatewayVoiceMessage{font-size:1.25em}.tooltip{display:block;background-color:var(--color-light);color:#fff;text-align:center;border-style:solid;border-color:var(--color-lighter);border-width:5px;border-radius:8px;padding-left:15px;padding-right:15px;padding-top:12px;padding-bottom:12px;min-width:200px;position:fixed;z-index:40;opacity:1;transition:opacity .3s;text-shadow:0px 0px 3px #000;font-size:1.2rem}.tooltip:empty{opacity:0;transition:opacity 0s}.tooltip .littleTooltipText{font-size:.6em}.tooltip.gives-consumer{box-shadow:0 0 3px 1px red inset}.forHomeButtonOrGrotto{width:250px}.forIncomeTable{width:auto}.forAspectTree{width:300px;background-color:rgb(23.4594594595,69.5405405405,54.4594594595);border-color:rgb(17.027027027,50.472972973,39.527027027)}.forAspectTreeUnpurchased{background-color:rgb(17.027027027,50.472972973,39.527027027);border-color:rgb(10.5945945946,31.4054054054,24.5945945946)}.forAspectTreeAffordable{background-color:rgb(36.3243243243,107.6756756757,84.3243243243);border-color:rgb(55.6216216216,164.8783783784,129.1216216216)}.hrForTooltipJuxtaposition{border:0;border-top:2px solid var(--color-lighter)}.hrForTooltipSeparation{border:0;border-top:2px dashed var(--color-lighter)}.hrForTooltipSeparationInGateway{border:0;border-top:2px dashed #fff}.hrForTooltipJuxtapositionInGateway{border:0;border-top:2px solid #fff}.collapser{padding-right:1em;padding-left:.7em}.disposeArrangement ul{display:inline-block}.disposeArrangement li{display:inline-block}.disposeArrangement button{display:inline-block;margin:.4em;max-width:12em;min-width:9em}.disposeArrangement button.newlyDiscovered{max-width:12em;min-width:9em}.disposeArrangement #buyButtons button{margin:0 2px 3px;min-width:0}#cheatsDisplay{width:50%}#leftButtons{float:left;width:50%}#leftButtons .up-down{display:flex;width:12em;margin:1% auto;overflow:hidden;font-size:90%}#leftButtons .up-down .up-downText{margin:auto}#leftButtons .up-down .up-downButtonContainer{float:right;max-width:1.5em}#rightButtons{float:right;width:50%}#rightButtons .up-down{display:flex;width:12em;margin:1% auto;overflow:hidden;font-size:90%}#rightButtons .up-down .up-downText{margin:auto}#rightButtons .up-down .up-downButtonContainer{float:right;max-width:1.5em}.token{margin:.5em 0 .5em .5em}#token-div{display:flex}#minute-hand-toggle{color:#fff;border-color:rgb(36.3243243243,107.6756756757,84.3243243243);background:rgb(17.027027027,50.472972973,39.527027027)}#minute-hand-toggle.disabled{text-shadow:none}#minute-hand-toggle.minuteOn{box-shadow:0 0 4px #ace3d1;border-color:rgb(55.6216216216,164.8783783784,129.1216216216);background:rgb(36.3243243243,107.6756756757,84.3243243243)}#minute-hand-toggle.minuteOn.power1{box-shadow:0 0 6px rgb(191.0675675676,233.4324324324,219.5675675676);border-color:rgb(55.6216216216,164.8783783784,129.1216216216);background:rgb(42.7567567568,126.7432432432,99.2567567568)}#minute-hand-toggle.minuteOn.power2{box-shadow:0 0 6px rgb(191.0675675676,233.4324324324,219.5675675676);border-color:rgb(55.6216216216,164.8783783784,129.1216216216);background:rgb(49.1891891892,145.8108108108,114.1891891892)}#minute-hand-toggle.minuteOn.power3{box-shadow:0 0 7px rgb(210.1351351351,239.8648648649,230.1351351351);border-color:rgb(95.7297297297,201.2702702703,166.7297297297);background:rgb(55.6216216216,164.8783783784,129.1216216216)}#minute-hand-toggle.minuteOn.power4{box-shadow:0 0 8px rgb(229.2027027027,246.2972972973,240.7027027027);border-color:#ace3d1;background:rgb(62.0540540541,183.9459459459,144.0540540541)}#minute-hand-toggle.minuteOn.power5{box-shadow:0 0 9px rgb(248.2702702703,252.7297297297,251.2702702703);border-color:rgb(229.2027027027,246.2972972973,240.7027027027);background:rgb(95.7297297297,201.2702702703,166.7297297297)}#minute-hand-toggle.disabled{border-color:rgb(17.027027027,50.472972973,39.527027027)}.minuteOn{color:#fff;text-shadow:0 0 .6em #fff}.minuteOff{color:#fff}.bigSpeedHeader{font-size:2em}.speedButtons{display:flex}.speedButtons button{margin:1em;width:6em;height:17em}#aspectInnerWarning{padding-top:1em;padding-bottom:1em}.reflectionText{color:#fff}#token-div{background-color:var(--color-light);box-shadow:0 1px 3px #fff}.reminderShadow{box-shadow:0 0 3em #fff}#minute-hand-div{display:flex;flex-direction:column;align-items:center;position:relative}#pause-toggle{margin-left:1em;color:#fff;border-color:rgb(36.3243243243,107.6756756757,84.3243243243);background:rgb(17.027027027,50.472972973,39.527027027)}#pause-toggle.on{box-shadow:0 0 6px rgb(191.0675675676,233.4324324324,219.5675675676);border-color:rgb(55.6216216216,164.8783783784,129.1216216216);background:rgb(49.1891891892,145.8108108108,114.1891891892)}#minute-slider{background:rgb(17.027027027,50.472972973,39.527027027);border-style:dashed;border-color:rgb(36.3243243243,107.6756756757,84.3243243243)}#minute-slider.power1{background:rgb(23.4594594595,69.5405405405,54.4594594595);border-color:rgb(42.7567567568,126.7432432432,99.2567567568);box-shadow:0 0 6px rgb(55.6216216216,164.8783783784,129.1216216216)}#minute-slider.power2{background:rgb(36.3243243243,107.6756756757,84.3243243243);border-color:rgb(55.6216216216,164.8783783784,129.1216216216);box-shadow:0 0 8px #ace3d1}#minute-slider.power3{background:rgb(55.6216216216,164.8783783784,129.1216216216);border-color:rgb(95.7297297297,201.2702702703,166.7297297297);box-shadow:0 0 10px #ace3d1}#minute-slider.power4{background:rgb(95.7297297297,201.2702702703,166.7297297297);border-color:#ace3d1;box-shadow:0 0 12px #ace3d1}#minute-slider.power5{background:#ace3d1;border-color:rgb(229.2027027027,246.2972972973,240.7027027027);box-shadow:0 0 15px #ace3d1}#minute-time{margin-bottom:1rem}#minute-time.noTime{color:#555}#minute-row-two{display:flex;flex-wrap:wrap}.front{z-index:30}.inGateway{visibility:hidden}.inGateway #overlay{visibility:visible}.can-afford-aspect{text-shadow:0 0 .6em #ace3d1}#visitButtons{margin:1em 0}#keybindTable td{padding:.2rem}#keybind-overlay-container{float:left;margin-left:1rem}select{background-color:var(--color-darker);color:inherit;border:none;outline:none;font-size:inherit;text-align:right;text-align-last:right}select .evenMessage{background-color:var(--color-dark)}option{direction:rtl}/*# sourceMappingURL=style.min.css.map */
+.fill-available-width,#sidebar #resourceTableContainer table{width:100%;width:fill-available;width:-moz-available;width:-webkit-fill-available}.clear-fix{display:block;zoom:1}.clear-fix:after{content:" ";display:block;font-size:0;height:0;clear:both;visibility:hidden}.bold{font-weight:bold}:root{--color-lighter: #8e9fc0;--color-light: #536892;--color-med: #2e4372;--color-dark: #152a55;--color-darker: #061639;--color-title: rgba(46, 67, 114, 0.2)}:root :not(.no-theme).abandoned{--color-lighter: #7e798f;--color-light: #454152;--color-med: #1f1b2c;--color-dark: #171226;--color-darker: #0a0514;--color-title: rgba(31, 27, 44, 0.2)}:root :not(.no-theme).chaotic{--color-lighter: #a2b3ae;--color-light: #69877d;--color-med: #45695d;--color-dark: #26453b;--color-darker: #113a2d;--color-title: rgba(69, 105, 93, 0.2)}:root :not(.no-theme).frigid{--color-lighter: #c0cdd4;--color-light: #5d829b;--color-med: #2f5d7c;--color-dark: #14415f;--color-darker: #05283f;--color-title: rgba(47, 93, 124, 0.2)}:root :not(.no-theme).haven{--color-lighter: #75aab6;--color-light: #2f7591;--color-med: #1d5372;--color-dark: #053247;--color-darker: #001d2b;--color-title: rgba(29, 83, 114, 0.2)}:root :not(.no-theme).shore{--color-lighter: #ffdf80;--color-light: #ffd24d;--color-med: #ffbf00;--color-dark: #cc9900;--color-darker: #997300;--color-title: rgba(255, 191, 0, 0.2)}:root :not(.no-theme).shrouded{--color-lighter: #22bec3;--color-light: #302d39;--color-med: #121019;--color-dark: #0f0b18;--color-darker: #0a0613;--color-title: rgba(18, 16, 25, 0.2)}:root :not(.no-theme).tempestuous{--color-lighter: #858d9e;--color-light: #5e687e;--color-med: #3e4960;--color-dark: #253046;--color-darker: #121a2b;--color-title: rgba(62, 73, 96, 0.2)}:root :not(.no-theme).volcanic{--color-lighter: #cf9d9d;--color-light: #8f5252;--color-med: #681e1e;--color-dark: #521212;--color-darker: #2b0707;--color-title: rgba(104, 30, 30, 0.2)}html{min-height:100%}body{color:#fff;background-color:var(--color-darker);font-family:Verdana,Geneva,sans-serif;font-size:13pt;text-align:center;min-height:100%;overflow-y:auto}::-webkit-scrollbar{width:initial}::-webkit-scrollbar-track{background:var(--color-med)}.gateway::-webkit-scrollbar-track{background:rgb(55.6216216216,164.8783783784,129.1216216216)}::-webkit-scrollbar-thumb{background-color:var(--color-light)}.gateway::-webkit-scrollbar-thumb{background-color:rgb(95.7297297297,201.2702702703,166.7297297297)}div{padding:0;margin:0}a:active,a:hover,a:visited,a:link{color:var(--color-lighter)}a:hover{filter:brightness(125%)}a:active{filter:brightness(135%)}h1{color:var(--color-lighter);filter:brightness(130%);font-size:2em;text-shadow:0 0 .3em var(--color-darker)}h2{color:var(--color-lighter);font-size:1.3em;text-shadow:0 0 .3em var(--color-darker)}h3{color:var(--color-lighter);font-size:1.1em;text-align:center;text-shadow:0 0 .3em var(--color-darker)}h4{color:var(--color-lighter);font-size:.8em;text-align:center;text-shadow:0 0 .3em var(--color-darker)}#shareWrapper{margin-left:auto;margin-right:auto;display:inline-block;text-align:center;margin-top:.8em;margin-bottom:.2em;background:var(--color-med);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 2px 2px var(--color-med);-moz-box-shadow:0 0 2px 2px var(--color-med);box-shadow:0 0 2px 2px var(--color-med)}#wrapper{background-color:var(--color-dark);margin-left:auto;margin-right:auto;margin-top:2.5em;padding:10px;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;height:100%;min-height:90vh;display:flex;flex-direction:column}#wrapper #game{flex:1 0 auto}#wrapper #devs{align-items:center;display:flex;flex-direction:column}#wrapper #devs>ul{margin:0;padding:0;list-style-type:none}#wrapper #devs tr{text-align:right}#wrapper #devs tr td{padding-left:1rem;padding-right:1rem;width:50%}#wrapper #devs tr td:nth-child(2){text-align:left}#wrapper #copyright{flex-shrink:0}#wrapper.topLogActive{margin-top:4.8em}#wrapper.notMinimized{margin-top:0}pre{text-align:left}#game{display:none}.section,#content,#sidebar,#title{-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;padding:5px;overflow:hidden}.inner-section,#statsContainer,#buttonList,#tabMessage{padding:5px;margin:5px}.click-passthrough,.largeDesc,.medDesc,.smallDesc,.smallDescAllowClicks,#tabSceneTracker,.button-icon,.top-bar #title #titlebar,.top-bar #title{pointer-events:none}#title{clear:both;text-shadow:2px 2px 3px var(--color-darker);margin-bottom:1em;box-shadow:0 4px 4px 4px var(--color-darker);background-image:url("../img/sharklogo.png");background-position:center;background-repeat:no-repeat}#title.radical{background-image:url("../img/sharklogo_radical.png")}#title h1{margin:.1em auto .3em auto}#title h2{text-align:left;margin:.2em}#title h4{margin:.2em auto 1.5em}.top-bar{margin-top:35px}.top-bar #title{padding:0;width:100%;height:4.3em;position:fixed;background-image:none;font-size:initial;left:0;top:0;box-shadow:none;margin-bottom:0;z-index:2;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.top-bar #title.biggerTitleDiv{height:13em}.top-bar #title #titlebar{width:100%}.top-bar #title #gameName,.top-bar #title #versionNumber,.top-bar #title #updateGame{display:none;pointer-events:all}.top-bar #title #titlemenu,.top-bar #title #subtitlemenu{pointer-events:all;float:left;font-size:initial;height:auto;margin:.2em .8em;overflow:hidden;text-align:center;font-weight:bold}.top-bar #title #titlemenu a:link,.top-bar #title #titlemenu a:visited,.top-bar #title #subtitlemenu a:link,.top-bar #title #subtitlemenu a:visited{color:var(--color-lighter);filter:none}.top-bar #title #titlemenu a:hover,.top-bar #title #subtitlemenu a:hover{filter:brightness(130%)}.top-bar #title #subtitlemenu{float:right}.top-bar #title li{font-size:initial;pointer-events:all}.top-bar #title #log{pointer-events:all}.top-bar #title #titlebackground{display:block}#titlebackground{height:2em;display:none;background-color:var(--color-med);position:fixed;width:100%;z-index:-1;box-shadow:0 4px 4px 4px var(--color-darker)}#titlebackground.topLogActive{height:4.3em}#titlebar{height:auto;margin:0 auto;overflow:hidden;text-align:center;font-weight:bold;color:var(--color-lighter);font-size:1.3em}#titlebar ul{padding:.2em 0;margin:.4em auto .6em auto}#titlemenu a:link,#titlemenu a:visited{color:var(--color-lighter);filter:brightness(125%)}#titlemenu a:hover{color:var(--color-lighter);filter:brightness(130%)}#titlemenu li{padding:0;margin:0;list-style-type:none;display:inline}#titlemenu li:before{content:" | "}#titlemenu li:first-child:before{content:none}#subtitlemenu{font-size:.8em}#subtitlemenu li{padding:0;margin:0;list-style-type:none;display:inline}#subtitlemenu li:before{content:" | "}#subtitlemenu li:first-child:before{content:none}#contentMenu{overflow:hidden;min-height:1.8em}#contentMenu ul{padding:0;margin:0}#contentMenu li{padding:0;margin:0;list-style-type:none;display:inline}#contentMenu #tabList{float:left;position:fixed;margin-bottom:.4em;margin-left:1em;box-shadow:0 0 10px 10px var(--color-dark);background-color:var(--color-dark);z-index:1}#contentMenu #tabList li{font-weight:bold;list-style-type:none;display:inline}#contentMenu #tabList li:before{content:" | "}#contentMenu #tabList li:first-child:before{content:none}#contentMenu #tabList:empty{box-shadow:none}#contentMenu #tabList.notFixed{position:static}#contentMenu #tabList .newTab a:link{color:#ace3d1;text-shadow:0 0 .8em rgb(95.7297297297,201.2702702703,166.7297297297)}#contentMenu #tabList .newTab a:visited{color:#ace3d1;text-shadow:0 0 .8em rgb(95.7297297297,201.2702702703,166.7297297297)}#contentMenu #tabList .newTab a:hover{color:rgb(210.1351351351,239.8648648649,230.1351351351);text-shadow:0 0 .8em rgb(133.8648648649,214.1351351351,187.8648648649)}#contentMenu #tabList .newTab a:active{color:rgb(210.1351351351,239.8648648649,230.1351351351);text-shadow:0 0 .8em rgb(133.8648648649,214.1351351351,187.8648648649)}#buyButtons{padding-left:0px}#buyButtons li{padding:0;margin:0;list-style-type:none;display:inline}#sidebar{float:left;text-align:left;width:25%;background-color:var(--color-med);text-shadow:0px 0px 2px #000;-webkit-box-shadow:0 0 5px 5px var(--color-dark) inset;-moz-box-shadow:0 0 5px 5px var(--color-dark) inset;box-shadow:0 0 5px 5px var(--color-dark) inset}#sidebar #resourceTableContainer{margin:0}#sidebar #resourceTableContainer table{margin:0;background-color:var(--color-darker);border:1px solid var(--color-lighter);padding:.5em;overflow:hidden;text-align:left;border-spacing:0 .1em}#sidebar #resourceTableContainer table .highlightedIncome{background-color:var(--color-light)}#sidebar #resourceTableContainer table .highlightedResource{background-color:var(--color-light)}#sidebar #resourceTableContainer table h3{padding:.2em;width:auto;margin:auto;font-size:.9em;color:var(--color-lighter),20%;filter:brightness(120%);border-top:.1em dashed var(--color-lighter);border-bottom:.1em dashed var(--color-lighter);background:var(--color-dark);cursor:pointer;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#sidebar td{font-size:1.1em;padding:.1em;word-break:break-all;word-wrap:break-word;background-repeat:no-repeat;background-position:right}#sidebar ul{list-style-type:none;padding:0;margin:0}#sidebar li{padding:.5em;margin:0}#status{margin:5px;padding:0}#log{overflow:hidden;overflow-anchor:none;position:relative}#log li{display:block;padding-top:.1em;padding-bottom:.1em}#log h3{display:block;text-align:center}#log .error{color:#e03030;text-shadow:0 0 .8em maroon}#log .discovery{color:#ace3d1;text-shadow:0 0 .8em rgb(95.7297297297,201.2702702703,166.7297297297)}#log #messageList{box-sizing:border-box;text-align:center;padding:0;overflow-y:hidden;max-height:9em;margin-top:0;margin-bottom:0;border-style:solid;border-width:2px;background-color:var(--color-med);-webkit-box-shadow:0 0 2px 2px var(--color-dark) inset;-moz-box-shadow:0 0 2px 2px var(--color-dark) inset;box-shadow:0 0 2px 2px var(--color-dark) inset}#log #messageList.scrollable{overflow-y:auto}#log #messageList.forRightSide{overflow-y:auto;border-style:none;max-height:39em}#log #messageList.forRightSide li{padding-top:1em;padding-bottom:1em;padding-left:.4em;padding-right:.4em}#log #messageList.forLeftSide{overflow-y:auto;border-style:none;max-height:30em}#log #messageList.forLeftSide li{padding-top:1em;padding-bottom:1em;padding-left:.4em;padding-right:.4em}#log #messageList .evenMessage{background-color:var(--color-dark)}#rightLogContainer{float:right;width:18%;background-color:var(--color-med);box-shadow:0 0 5px 5px var(--color-dark) inset;overflow:clip}#resource-numen{text-shadow:0 0 .3em #fff,0 0 .6em #fff,0 0 .8em #fff}#content{background-color:var(--color-med);-webkit-box-shadow:0 0 5px 5px var(--color-dark) inset;-moz-box-shadow:0 0 5px 5px var(--color-dark) inset;box-shadow:0 0 5px 5px var(--color-dark) inset;padding:.5em}#content #helpButton{padding:2px 5px 2px 5px}#tabMessage{position:relative;padding:1.4em;background:repeat-x center;-webkit-border-radius:.5em;-moz-border-radius:.5em;border-radius:.5em;-webkit-box-shadow:0 0 30px 30px var(--color-med) inset;-moz-box-shadow:0 0 30px 30px var(--color-med) inset;box-shadow:0 0 30px 30px var(--color-med) inset;text-shadow:0 0 .3em var(--color-dark)}#extraMessage{display:inline-block;width:400px}#buttonList{padding:1em}#buttonList button{touch-action:manipulation}#buttonList.homeScreen{display:flex;flex-wrap:wrap;justify-content:center}#buttonList.homeScreen ul{display:inline-block}#buttonList.homeScreen li{display:inline-block}#buttonList.homeScreen button{display:inline-block;margin:.4em;height:10em;width:12em}#buttonList.lab{width:100%}#buttonList.lab button{width:100%}button.newlyDiscovered{max-width:none}#homeTabs{margin-bottom:1em}#homeTabs ul{padding:0;margin:0}#homeTabs li{list-style-type:none;display:inline}#homeTabs li:before{content:" | "}#homeTabs li:first-child:before{content:none}#homeTabs .newItemAdded a:link{color:#ace3d1;text-shadow:0 0 .8em rgb(95.7297297297,201.2702702703,166.7297297297)}#homeTabs .newItemAdded a:visited{color:#ace3d1;text-shadow:0 0 .8em rgb(95.7297297297,201.2702702703,166.7297297297)}#homeTabs .newItemAdded a:hover{color:rgb(210.1351351351,239.8648648649,230.1351351351);text-shadow:0 0 .8em rgb(133.8648648649,214.1351351351,187.8648648649)}#homeTabs .newItemAdded a:active{color:rgb(210.1351351351,239.8648648649,230.1351351351);text-shadow:0 0 .8em rgb(133.8648648649,214.1351351351,187.8648648649)}#buttonLeftContainer{float:left;width:50%}#statsContainer{padding:1em}.statsInnerContainer table,#statsRightContainer table,#statsLeftContainer table,#statsUpperContainer table{text-align:left;margin-left:auto;margin-right:auto;padding:.1em;border:2px solid var(--color-lighter);border-collapse:collapse;background:var(--color-darker)}.statsInnerContainer td,#statsRightContainer td,#statsLeftContainer td,#statsUpperContainer td{margin:.2em;font-size:.9em;padding:.4em}#statsUpperContainer{width:100%}#statsLeftContainer{float:left;width:50%}#statsRightContainer{float:right;width:45%}#incomeData{padding:.1em .1em 1em;border-bottom:.1em dashed var(--color-lighter);text-shadow:0px 0px 2px #000}#incomeData .oddRow{background:var(--color-darker)}#incomeData .evenRow{background:var(--color-dark)}#incomeData .essenceGlow{text-shadow:0 0 1em #ace3d1;background:var(--color-dark)}#generalStats .timeDisplay{font-style:italic;font-size:110%}#disposeResource{padding:.1em .1em .5em;border-bottom:.1em dashed var(--color-lighter)}#upgradeList{float:right;text-align:left;margin:auto;width:40%;padding:.2em .2em .2em 2em;border-left:.1em dashed var(--color-lighter);text-shadow:0px 0px 2px #000}#upgradeList ul{list-style-type:square;padding:0;margin:0;max-height:600pt;overflow-y:auto}#upgradeList li{padding:.5em .5em .5em .2em;margin:0}#recyclerContainer{margin:0 auto;overflow:hidden;max-width:55em}#recyclerContainer>#inputButtons{float:left;margin:auto;width:35%;text-shadow:0px 0px 2px #000}#recyclerContainer>#junkDisplay{position:relative;float:left;margin:auto;width:25%;background:#450808 url("../img/recyclerbg.png") center;color:hsl(0,22.7642276423%,78.2352941176%);border:.2em solid #975f5f;-webkit-box-shadow:0 0 15px 15px #450808 inset;-moz-box-shadow:0 0 15px 15px #450808 inset;box-shadow:0 0 15px 15px #450808 inset;padding:.5em;text-shadow:0px 0px 2px #000}#recyclerContainer>#outputButtons{float:left;margin:auto;width:35%;text-shadow:0px 0px 2px #000}#recyclerContainer #buyButtons{padding-left:0px}#updateGameBox{bottom:15px;right:15px;cursor:pointer}#updateGameBox:empty{display:none}button{background-color:var(--color-light);color:#fff;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;border:2px solid var(--color-lighter);padding:10px;margin:1% auto;cursor:pointer;display:block;min-width:12em;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-shadow:0px 0px 2px #000;font-size:100%}button.min{padding:.1em;margin:0px 2px 3px;min-width:0;display:inline;border-radius:5px}button.min-block{padding:.1em;margin:auto;min-width:0;vertical-align:super;border-radius:5px}button.close-button{padding:0 3.5px;margin:auto;float:right}button:hover{-webkit-box-shadow:0px 0px 2px 2px var(--color-lighter);-moz-box-shadow:0px 0px 2px 2px var(--color-lighter);box-shadow:0px 0px 2px 2px var(--color-lighter)}button:active,button.keep-button-pressed{background-color:var(--color-dark);color:var(--color-light);-webkit-box-shadow:0px 3px 7px 7px var(--color-darker) inset;-moz-box-shadow:0px 3px 7px 7px var(--color-darker) inset;box-shadow:0px 3px 7px 7px var(--color-darker) inset}button:active .medDesc,button.keep-button-pressed .medDesc{font-size:80%;color:var(--color-lighter);filter:brightness(80%)}button:active div,button.keep-button-pressed div{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background-color:var(--color-dark)}button:focus{outline:0}button.disabled{background-color:var(--color-darker);color:var(--color-lighter);filter:brightness(80%);cursor:default;border-color:var(--color-med)}button.disabled:hover{box-shadow:none}button.disabled:active{box-shadow:none}button.disabled .medDesc{font-size:80%;color:var(--color-lighter);filter:brightness(75%)}button.disabled div{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background-color:var(--color-darker)}#custom-input{padding:.1em;margin:0px 2px 3px;width:6em;background-color:var(--color-light);border-color:var(--color-lighter);color:#fff;font-size:90%}#custom-input[disabled]{background-color:var(--color-darker);color:var(--color-lighter);filter:brightness(80%);cursor:default;border-color:var(--color-med)}.button-icon{background-color:var(--color-lighter);display:block;margin:0 auto .4em auto;-webkit-box-shadow:0 0 3px 3px var(--color-lighter);-moz-box-shadow:0 0 3px 3px var(--color-lighter);box-shadow:0 0 3px 3px var(--color-lighter);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.gives-consumer{box-shadow:0 0 3px 1px red inset}#tabSceneTracker{position:absolute;width:100%;top:0;left:0;display:flex;justify-content:center}#tabSceneTracker .inactive{color:var(--color-dark)}#tabSceneDiv{display:flex}#tabSceneImage,#tabSceneImageEssence,#tabSceneImageRed{display:block;margin:.1em auto .4em auto;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 0 5px 5px var(--color-dark);-moz-box-shadow:0 0 5px 5px var(--color-dark);box-shadow:0 0 5px 5px var(--color-dark)}#tabSceneImageRed{-webkit-box-shadow:0 0 5px 5px #5c1919;-moz-box-shadow:0 0 5px 5px #5c1919;box-shadow:0 0 5px 5px #5c1919}#tabSceneImageEssence{-webkit-box-shadow:0 0 5px 5px rgb(62.0540540541,183.9459459459,144.0540540541);-moz-box-shadow:0 0 5px 5px rgb(62.0540540541,183.9459459459,144.0540540541);box-shadow:0 0 5px 5px rgb(62.0540540541,183.9459459459,144.0540540541)}#sceneLeft,#sceneRight{min-width:0}#overlay{-webkit-opacity:.5;-moz-opacity:.5;opacity:.5;position:fixed;top:0;left:0;background-color:#000;width:100%;height:100%;z-index:10}#idle-overlay{-webkit-opacity:.8;-moz-opacity:.8;opacity:.8;position:fixed;top:0;left:0;background-color:#000;width:100%;height:100%;z-index:20;display:flex;justify-content:center;align-items:center;flex-direction:column}.pointy{cursor:pointer}.littleGeneralText{font-size:10pt}.smallDesc,.smallDescAllowClicks{font-size:80%;color:var(--color-lighter)}.smallDescAllowClicks{pointer-events:auto}.medDesc{font-size:80%;color:var(--color-lighter);filter:brightness(130%)}.largeDesc{font-size:125%;color:var(--color-lighter);filter:brightness(130%)}.copyrightNotice{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:80%;color:var(--color-lighter);filter:brightness(130%);position:static}#pane{background-color:var(--color-dark);-webkit-box-shadow:0 0 5px 5px var(--color-darker) inset;-moz-box-shadow:0 0 5px 5px var(--color-darker) inset;box-shadow:0 0 5px 5px var(--color-darker) inset;filter:brightness(98%);-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;padding:1em 2em;margin:auto;overflow:auto;position:fixed;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);-o-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);border:double var(--color-med);max-height:90%;max-width:90%;z-index:11}#pane h2{padding-bottom:.5em}#pane #paneHeaderEnd{border-bottom:.5em double var(--color-med)}#pane #paneHeaderTitleDiv{vertical-align:middle;display:inline;text-align:left}#pane #paneHeaderTitleDiv h3{display:inline}#pane #paneHeaderCloseButtonDiv{vertical-align:middle;text-align:right}#pane table{margin:auto;text-align:left}#pane .option-button{padding-left:0;padding-right:0;min-width:0;width:4em}#pane .paneContentDiv{border-bottom:.4em double var(--color-med)}#pane #changelogDiv{text-align:left}#pane #changelogDiv h3{text-align:left}#pane td.optionLabel{min-width:12em;word-wrap:break-word}#pane #endCredits{font-size:90%}.gateway{text-align:center}.gateway h1{text-align:center;color:rgb(210.1351351351,239.8648648649,230.1351351351)}.gateway h2{text-align:center;color:#ace3d1}.gateway h3{text-align:center;color:#ace3d1}.gateway h4{text-align:center;color:#ace3d1}.gateway .medDesc{color:rgb(152.9324324324,220.5675675676,198.4324324324)}.gateway .smallDesc,.gateway .smallDescAllowClicks{color:#ace3d1}.gatewayButton,.gateway button,button.gateway,button.newlyDiscovered{background-color:rgb(36.3243243243,107.6756756757,84.3243243243);border-color:#ace3d1;max-width:16em}.gatewayButton div,.gateway button div,button.gateway div,button.newlyDiscovered div{background-color:rgb(95.7297297297,201.2702702703,166.7297297297);-webkit-box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297);-moz-box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297);box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297)}.gatewayButton:hover,.gateway button:hover,button.gateway:hover,button.newlyDiscovered:hover{-webkit-box-shadow:0px 0px 2px 2px #ace3d1;-moz-box-shadow:0px 0px 2px 2px #ace3d1;box-shadow:0px 0px 2px 2px #ace3d1}.gatewayButton:active,.gateway button:active,button.gateway:active,button.newlyDiscovered:active{background-color:rgb(17.027027027,50.472972973,39.527027027);color:rgb(95.7297297297,201.2702702703,166.7297297297);-webkit-box-shadow:0px 3px 7px 7px rgb(36.3243243243,107.6756756757,84.3243243243) inset;-moz-box-shadow:0px 3px 7px 7px rgb(36.3243243243,107.6756756757,84.3243243243) inset;box-shadow:0px 3px 7px 7px rgb(36.3243243243,107.6756756757,84.3243243243) inset}.gatewayButton:active .medDesc,.gateway button:active .medDesc,button.gateway:active .medDesc,button.newlyDiscovered:active .medDesc{color:rgb(133.8648648649,214.1351351351,187.8648648649)}.gatewayButton:active div,.gateway button:active div,button.gateway:active div,button.newlyDiscovered:active div{background-color:rgb(36.3243243243,107.6756756757,84.3243243243);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.gatewayButton.disabled,.gateway button.disabled,button.disabled.gateway,button.disabled.newlyDiscovered{background-color:rgb(17.027027027,50.472972973,39.527027027);color:rgb(49.1891891892,145.8108108108,114.1891891892);border-color:rgb(49.1891891892,145.8108108108,114.1891891892)}.gatewayButton.disabled .medDesc,.gateway button.disabled .medDesc,button.disabled.gateway .medDesc,button.disabled.newlyDiscovered .medDesc{color:rgb(55.6216216216,164.8783783784,129.1216216216)}.gatewayButton.disabled div,.gateway button.disabled div,button.disabled.gateway div,button.disabled.newlyDiscovered div{background-color:rgb(17.027027027,50.472972973,39.527027027);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.gatewayButton.respecMode,.gateway button.respecMode,button.respecMode.gateway,button.respecMode.newlyDiscovered{box-shadow:0 0 6px rgb(229.2027027027,246.2972972973,240.7027027027) inset;background-color:rgb(55.6216216216,164.8783783784,129.1216216216)}#pane.gateway{-webkit-border-radius:3em;-moz-border-radius:3em;border-radius:3em;background-color:rgb(36.3243243243,107.6756756757,84.3243243243);-webkit-box-shadow:0 0 2em 2em rgb(36.3243243243,107.6756756757,84.3243243243);-moz-box-shadow:0 0 2em 2em rgb(36.3243243243,107.6756756757,84.3243243243);box-shadow:0 0 2em 2em rgb(36.3243243243,107.6756756757,84.3243243243);border:none}#pane.gateway #paneHeaderEnd,#pane.gateway .paneContentDiv{border-bottom:none}#pane.gateway #treeCanvas{-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;-webkit-box-shadow:0 0 5px 5px #ace3d1;-moz-box-shadow:0 0 5px 5px #ace3d1;box-shadow:0 0 5px 5px #ace3d1;width:800px;height:600px;touch-action:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}#overlay.gateway{-webkit-opacity:1;-moz-opacity:1;opacity:1;background-color:rgb(17.027027027,50.472972973,39.527027027)}.gateway .essenceCount{color:rgb(95.7297297297,201.2702702703,166.7297297297);text-shadow:0 0 .6em rgb(95.7297297297,201.2702702703,166.7297297297)}.gateway .essenceCountBrighter{color:rgb(191.0675675676,233.4324324324,219.5675675676);text-shadow:0 0 .6em rgb(191.0675675676,233.4324324324,219.5675675676)}.gateway .numenCount{color:#fff;text-shadow:0 0 .3em #fff,0 0 .6em #fff,0 0 .8em #fff}.gatewayButtonList{list-style-type:none;display:inline-block}.gatewayButtonList button{display:inline-block;margin:.2em}.gatewayPropertyList{list-style-type:none;padding-left:0}.gatewayPropertyList li{padding-left:0}.gateway input{background-color:rgb(36.3243243243,107.6756756757,84.3243243243);border-color:#ace3d1;color:#fff;text-align:right;width:4em}.gateway ::-webkit-inner-spin-button{margin-left:2px}#planetContainer{text-align:center;margin:.5em auto;padding:.5em}.gateway ::selection{background-color:rgb(17.027027027,50.472972973,39.527027027)}.gateway ::-moz-selection{background-color:rgb(17.027027027,50.472972973,39.527027027)}#aspectList{margin:.5em auto}#aspectTable{border-spacing:0}#aspectTable tr:nth-child(6n+1) td,#aspectTable tr:nth-child(6n+2) td,#aspectTable tr:nth-child(6n+3) td{background-color:rgb(55.6216216216,164.8783783784,129.1216216216)}.aspectDiv{display:inline-block;vertical-align:middle;-webkit-border-radius:.5em;-moz-border-radius:.5em;border-radius:.5em;background-color:rgb(36.3243243243,107.6756756757,84.3243243243);-webkit-box-shadow:0 0 .5em .5em rgb(36.3243243243,107.6756756757,84.3243243243);-moz-box-shadow:0 0 .5em .5em rgb(36.3243243243,107.6756756757,84.3243243243);box-shadow:0 0 .5em .5em rgb(36.3243243243,107.6756756757,84.3243243243);padding:.2em;margin:1.5em;max-width:14em}.aspectDiv .gatewayButton,.aspectDiv button.newlyDiscovered,.aspectDiv .gateway button,.gateway .aspectDiv button,.aspectDiv button.gateway{-webkit-box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297);-moz-box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297);box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297)}.disabledAspectDiv{display:inline-block;vertical-align:middle;-webkit-border-radius:.5em;-moz-border-radius:.5em;border-radius:.5em;background-color:rgb(17.027027027,50.472972973,39.527027027);-webkit-box-shadow:0 0 .5em .5em rgb(17.027027027,50.472972973,39.527027027);-moz-box-shadow:0 0 .5em .5em rgb(17.027027027,50.472972973,39.527027027);box-shadow:0 0 .5em .5em rgb(17.027027027,50.472972973,39.527027027);padding:.2em;margin:1.5em;max-width:14em}.disabledAspectDiv .gatewayButton,.disabledAspectDiv button.newlyDiscovered,.disabledAspectDiv .gateway button,.gateway .disabledAspectDiv button,.disabledAspectDiv button.gateway{-webkit-box-shadow:0 0 3px 3px rgb(55.6216216216,164.8783783784,129.1216216216);-moz-box-shadow:0 0 3px 3px rgb(55.6216216216,164.8783783784,129.1216216216);box-shadow:0 0 3px 3px rgb(55.6216216216,164.8783783784,129.1216216216)}.planetDisplay{-webkit-border-radius:50px;-moz-border-radius:50px;border-radius:50px;background-color:rgb(95.7297297297,201.2702702703,166.7297297297);-webkit-box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297);-moz-box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297);box-shadow:0 0 3px 3px rgb(95.7297297297,201.2702702703,166.7297297297);margin:0 auto}button.planetButton{background-color:rgba(0,0,0,0);border:none;padding:20px;max-width:14em;margin:.8em}button.planetButton div{-webkit-border-radius:50px;-moz-border-radius:50px;border-radius:50px}button.planetButton:hover{text-shadow:0 0 .3em rgb(191.0675675676,233.4324324324,219.5675675676),0 0 .6em rgb(210.1351351351,239.8648648649,230.1351351351),0 0 .9em rgb(229.2027027027,246.2972972973,240.7027027027);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}button.planetButton:hover div{-webkit-box-shadow:0 0 .4em .4em #ace3d1;-moz-box-shadow:0 0 .4em .4em #ace3d1;box-shadow:0 0 .4em .4em #ace3d1}button.planetButton:active{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#gatewayVoiceMessage{font-size:1.25em}.tooltip{display:block;background-color:var(--color-light);color:#fff;text-align:center;border-style:solid;border-color:var(--color-lighter);border-width:5px;border-radius:8px;padding-left:15px;padding-right:15px;padding-top:12px;padding-bottom:12px;min-width:200px;position:fixed;z-index:40;opacity:1;transition:opacity .3s;text-shadow:0px 0px 3px #000;font-size:1.2rem}.tooltip:empty{opacity:0;transition:opacity 0s}.tooltip .littleTooltipText{font-size:.6em}.tooltip.gives-consumer{box-shadow:0 0 3px 1px red inset}.forHomeButtonOrGrotto{width:250px}.forIncomeTable{width:auto}.forAspectTree{width:300px;background-color:rgb(23.4594594595,69.5405405405,54.4594594595);border-color:rgb(17.027027027,50.472972973,39.527027027)}.forAspectTreeUnpurchased{background-color:rgb(17.027027027,50.472972973,39.527027027);border-color:rgb(10.5945945946,31.4054054054,24.5945945946)}.forAspectTreeAffordable{background-color:rgb(36.3243243243,107.6756756757,84.3243243243);border-color:rgb(55.6216216216,164.8783783784,129.1216216216)}.hrForTooltipJuxtaposition{border:0;border-top:2px solid var(--color-lighter)}.hrForTooltipSeparation{border:0;border-top:2px dashed var(--color-lighter)}.hrForTooltipSeparationInGateway{border:0;border-top:2px dashed #fff}.hrForTooltipJuxtapositionInGateway{border:0;border-top:2px solid #fff}.collapser{padding-right:1em;padding-left:.7em}.disposeArrangement ul{display:inline-block}.disposeArrangement li{display:inline-block}.disposeArrangement button{display:inline-block;margin:.4em;max-width:12em;min-width:9em}.disposeArrangement button.newlyDiscovered{max-width:12em;min-width:9em}.disposeArrangement #buyButtons button{margin:0 2px 3px;min-width:0}#cheatsDisplay{width:50%}#leftButtons{float:left;width:50%}#leftButtons .up-down{display:flex;width:12em;margin:1% auto;overflow:hidden;font-size:90%}#leftButtons .up-down .up-downText{margin:auto}#leftButtons .up-down .up-downButtonContainer{float:right;max-width:1.5em}#rightButtons{float:right;width:50%}#rightButtons .up-down{display:flex;width:12em;margin:1% auto;overflow:hidden;font-size:90%}#rightButtons .up-down .up-downText{margin:auto}#rightButtons .up-down .up-downButtonContainer{float:right;max-width:1.5em}.token{margin:.5em 0 .5em .5em}#token-div{display:flex}#minute-hand-toggle{color:#fff;border-color:rgb(36.3243243243,107.6756756757,84.3243243243);background:rgb(17.027027027,50.472972973,39.527027027)}#minute-hand-toggle.disabled{text-shadow:none}#minute-hand-toggle.minuteOn{box-shadow:0 0 4px #ace3d1;border-color:rgb(55.6216216216,164.8783783784,129.1216216216);background:rgb(36.3243243243,107.6756756757,84.3243243243)}#minute-hand-toggle.minuteOn.power1{box-shadow:0 0 6px rgb(191.0675675676,233.4324324324,219.5675675676);border-color:rgb(55.6216216216,164.8783783784,129.1216216216);background:rgb(42.7567567568,126.7432432432,99.2567567568)}#minute-hand-toggle.minuteOn.power2{box-shadow:0 0 6px rgb(191.0675675676,233.4324324324,219.5675675676);border-color:rgb(55.6216216216,164.8783783784,129.1216216216);background:rgb(49.1891891892,145.8108108108,114.1891891892)}#minute-hand-toggle.minuteOn.power3{box-shadow:0 0 7px rgb(210.1351351351,239.8648648649,230.1351351351);border-color:rgb(95.7297297297,201.2702702703,166.7297297297);background:rgb(55.6216216216,164.8783783784,129.1216216216)}#minute-hand-toggle.minuteOn.power4{box-shadow:0 0 8px rgb(229.2027027027,246.2972972973,240.7027027027);border-color:#ace3d1;background:rgb(62.0540540541,183.9459459459,144.0540540541)}#minute-hand-toggle.minuteOn.power5{box-shadow:0 0 9px rgb(248.2702702703,252.7297297297,251.2702702703);border-color:rgb(229.2027027027,246.2972972973,240.7027027027);background:rgb(95.7297297297,201.2702702703,166.7297297297)}#minute-hand-toggle.disabled{border-color:rgb(17.027027027,50.472972973,39.527027027)}.minuteOn{color:#fff;text-shadow:0 0 .6em #fff}.minuteOff{color:#fff}.bigSpeedHeader{font-size:2em}.speedButtons{display:flex}.speedButtons button{margin:1em;width:6em;height:17em}#aspectInnerWarning{padding-top:1em;padding-bottom:1em}.reflectionText{color:#fff}#token-div{background-color:var(--color-light);box-shadow:0 1px 3px #fff}.reminderShadow{box-shadow:0 0 3em #fff}#minute-hand-div{display:flex;flex-direction:column;align-items:center;position:relative}#pause-toggle{margin-left:1em;color:#fff;border-color:rgb(36.3243243243,107.6756756757,84.3243243243);background:rgb(17.027027027,50.472972973,39.527027027)}#pause-toggle.on{box-shadow:0 0 6px rgb(191.0675675676,233.4324324324,219.5675675676);border-color:rgb(55.6216216216,164.8783783784,129.1216216216);background:rgb(49.1891891892,145.8108108108,114.1891891892)}#minute-slider{background:rgb(17.027027027,50.472972973,39.527027027);border-style:dashed;border-color:rgb(36.3243243243,107.6756756757,84.3243243243)}#minute-slider.power1{background:rgb(23.4594594595,69.5405405405,54.4594594595);border-color:rgb(42.7567567568,126.7432432432,99.2567567568);box-shadow:0 0 6px rgb(55.6216216216,164.8783783784,129.1216216216)}#minute-slider.power2{background:rgb(36.3243243243,107.6756756757,84.3243243243);border-color:rgb(55.6216216216,164.8783783784,129.1216216216);box-shadow:0 0 8px #ace3d1}#minute-slider.power3{background:rgb(55.6216216216,164.8783783784,129.1216216216);border-color:rgb(95.7297297297,201.2702702703,166.7297297297);box-shadow:0 0 10px #ace3d1}#minute-slider.power4{background:rgb(95.7297297297,201.2702702703,166.7297297297);border-color:#ace3d1;box-shadow:0 0 12px #ace3d1}#minute-slider.power5{background:#ace3d1;border-color:rgb(229.2027027027,246.2972972973,240.7027027027);box-shadow:0 0 15px #ace3d1}#minute-time{margin-bottom:1rem}#minute-time.noTime{color:#555}#minute-row-two{display:flex;flex-wrap:wrap}.front{z-index:30}.inGateway{visibility:hidden}.inGateway #overlay{visibility:visible}.can-afford-aspect{text-shadow:0 0 .6em #ace3d1}#visitButtons{margin:1em 0}#keybindTable td{padding:.2rem}#keybind-overlay-container{float:left;margin-left:1rem}select{background-color:var(--color-darker);color:inherit;border:none;outline:none;font-size:inherit;text-align:right;text-align-last:right}select .evenMessage{background-color:var(--color-dark)}option{direction:rtl}/*# sourceMappingURL=style.min.css.map */
diff --git a/css/style.min.css.map b/css/style.min.css.map
index c8f87da2..4e4daf4d 100644
--- a/css/style.min.css.map
+++ b/css/style.min.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["../styles/style.scss"],"names":[],"mappings":"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","file":"style.min.css"}
\ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["../styles/style.scss"],"names":[],"mappings":"AAmJA,6DACI,WACA,qBACA,qBACA,6BAyBJ,WACI,cACA,OAEA,iBACI,YACA,cACA,YACA,SACA,WACA,kBAIR,MACI,iBAOJ,MACI,yBACA,uBACA,qBACA,sBACA,wBACA,sCAGI,gCACI,yBACA,uBACA,qBACA,sBACA,wBACA,qCAEJ,8BACI,yBACA,uBACA,qBACA,sBACA,wBACA,sCAEJ,6BACI,yBACA,uBACA,qBACA,sBACA,wBACA,sCAEJ,4BACI,yBACA,uBACA,qBACA,sBACA,wBACA,sCAEJ,4BACI,yBACA,uBACA,qBACA,sBACA,wBACA,sCAEJ,+BACI,yBACA,uBACA,qBACA,sBACA,wBACA,qCAEJ,kCACI,yBACA,uBACA,qBACA,sBACA,wBACA,qCAEJ,+BACI,yBACA,uBACA,qBACA,sBACA,wBACA,sCASZ,KACI,gBAGJ,KACI,MAnMS,KAoMT,qCACA,sCACA,eACA,kBACA,gBACA,gBAGJ,oBACI,cAGJ,0BACI,4BAGJ,kCACI,WAzNoB,iDA4NxB,0BACI,oCAGJ,kCACI,iBAlOmB,iDAqOvB,IACI,UACA,SAIA,kCAII,2BAGJ,QACI,wBAGJ,SACI,wBAIR,GACI,2BACA,wBACA,cACA,yCAGJ,GACI,2BACA,gBACA,yCAGJ,GACI,2BACA,gBACA,kBACA,yCAGJ,GACI,2BACA,eACA,kBACA,yCAGJ,cACI,iBACA,kBACA,qBACA,kBACA,gBACA,mBACA,4BAlRA,sBAoRuB,IAnRvB,mBAmRuB,IAlRvB,cAkRuB,IA9QvB,gDACA,6CACA,wCAgRJ,SACI,mCACA,iBACA,kBACA,iBACA,aA7RA,sBA8RuB,KA7RvB,mBA6RuB,KA5RvB,cA4RuB,KACvB,YAEA,gBACA,aACA,sBAEA,eACI,cAGJ,eACI,mBACA,aACA,sBAGJ,kBACI,SACA,UACA,qBAGJ,kBACI,iBAEA,qBACI,kBACA,mBACA,UAGJ,kCACI,gBAIR,oBACI,cAGJ,sBACI,iBAGJ,sBACI,aAIR,IACI,gBAGJ,MACI,aAGJ,kCAxVI,sBAyVuB,KAxVvB,mBAwVuB,KAvVvB,cAuVuB,KACvB,YACA,gBAGJ,uDAEI,YACA,WAGJ,gJACI,oBAGJ,OACI,WAEA,4CACA,kBACA,6CACA,6CACA,2BACA,4BAEA,eACI,qDAGJ,UAEI,2BAGJ,UACI,gBACA,YAGJ,UACI,uBAIR,SACI,gBAEA,gBACI,UACA,WACA,aACA,eACA,sBACA,kBACA,OACA,MACA,gBACA,gBACA,UAnZJ,sBAoZ2B,EAnZ3B,mBAmZ2B,EAlZ3B,cAkZ2B,EAGvB,+BACI,YAGJ,0BACI,WAIJ,qFAGI,aACA,mBAGJ,yDAEI,mBACA,WACA,kBACA,YACA,iBACA,gBACA,kBACA,iBACA,oJAEI,2BACA,YAEJ,yEACI,wBAIR,8BACI,YAGJ,mBACI,kBACA,mBAGJ,qBACI,mBAGJ,iCACI,cAKZ,iBACI,WACA,aACA,kCACA,eACA,WACA,WACA,6CAEA,8BACI,aAIR,UACI,YACA,cACA,gBACA,kBACA,iBACA,2BACA,gBAEA,aACI,eACA,2BAKJ,uCAEI,2BACA,wBAEJ,mBACI,2BACA,wBAEJ,cACI,UACA,SAjbJ,qBACA,eAEA,qBACI,cAGJ,iCACI,aA8aR,cACI,eAEA,iBACI,UACA,SA3bJ,qBACA,eAEA,wBACI,cAGJ,oCACI,aAwbR,aACI,gBACA,iBAEA,gBACI,UACA,SAGJ,gBACI,UACA,SACA,qBACA,eAIJ,sBACI,WACA,eACA,mBACA,gBACA,2CACA,mCACA,UAGA,yBACI,iBA5dR,qBACA,eAEA,gCACI,cAGJ,4CACI,aAwdA,4BACI,gBAGJ,+BACI,gBAKI,qCACI,MA7jBF,QA8jBE,sEAEJ,wCACI,MAjkBF,QAkkBE,sEAEJ,sCACI,wDACA,uEAEJ,uCACI,wDACA,uEAOpB,YACI,iBACA,eACI,UACA,SACA,qBACA,eAIR,SACI,WACA,gBACA,MAtlBY,IAulBZ,kCAEA,6BAnkBA,uDACA,oDACA,+CAokBA,iCAEI,SAGA,uCAEI,SACA,qCACA,sCACA,aACA,gBACA,gBAIA,sBAEA,0DACI,oCAGJ,4DACI,oCAGJ,0CACI,aACA,WACA,YACA,eACA,+BACA,wBACA,4CACA,+CAEA,6BACA,eA/kBZ,yBACA,wBACA,sBACA,qBACA,iBAilBA,YACI,gBACA,aACA,qBACA,qBACA,4BACA,0BAGJ,YACI,qBACA,UACA,SAGJ,YACI,aACA,SAIR,QACI,WACA,UAGJ,KACI,gBAGA,qBACA,kBAEA,QACI,cACA,iBACA,oBAGJ,QACI,cACA,kBAGJ,YACI,MA/rBM,QAgsBN,4BAGJ,gBACI,MAjsBU,QAksBV,sEAGJ,kBACI,sBACA,kBACA,UACA,kBACA,eACA,aACA,gBACA,mBACA,iBACA,kCAjrBJ,uDACA,oDACA,+CAkrBI,6BACI,gBAGJ,+BACI,gBACA,kBACA,gBACA,kCACI,gBACA,mBACA,kBACA,mBAIR,8BACI,gBACA,kBACA,gBACA,iCACI,gBACA,mBACA,kBACA,mBAIR,+BACI,mCAKZ,mBACI,YACA,UACA,kCACA,+CACA,cAGJ,gBAEI,YACI,0CAKR,SAEI,kCAxuBA,uDACA,oDACA,+CAwuBA,aAEA,qBACI,wBAIR,YACI,kBAEA,cACA,2BAvwBA,sBAwwBuB,KAvwBvB,mBAuwBuB,KAtwBvB,cAswBuB,KAtvBvB,wDACA,qDACA,gDAsvBA,uCAGJ,cACI,qBACA,YAGJ,YAEI,YAEA,mBAGI,0BAGJ,uBACI,aACA,eACA,uBAEA,0BACI,qBAGJ,0BACI,qBAGJ,8BACI,qBACA,YACA,YACA,WAIR,gBACI,WACA,uBACI,WAKZ,uBAEI,eAGJ,UACI,kBAEA,aACI,UACA,SAGJ,aAhwBA,qBACA,eAEA,oBACI,cAGJ,gCACI,aA8vBI,+BACI,MAz1BE,QA01BF,sEAEJ,kCACI,MA71BE,QA81BF,sEAEJ,gCACI,wDACA,uEAEJ,iCACI,wDACA,uEAMhB,qBACI,WACA,UAOJ,gBAEI,YAIA,2GACI,gBACA,iBACA,kBACA,aACA,sCACA,yBACA,+BAIJ,+FACI,YACA,eACA,aAIR,qBACI,WAIJ,oBACI,WACA,UAIJ,qBACI,YACA,UAIJ,YACI,sBACA,+CACA,6BAEA,oBACI,+BAEJ,qBACI,6BAEJ,yBACI,4BACA,6BAKJ,2BACI,kBACA,eAIR,iBACI,uBACA,+CAGJ,aACI,YACA,gBACA,YACA,UACA,2BACA,6CACA,6BAEA,gBACI,uBACA,UACA,SACA,iBACA,gBAGJ,gBACI,4BACA,SAQR,mBACI,cACA,gBACA,eAEA,iCACI,WACA,YACA,UACA,6BAGJ,gCACI,kBACA,WACA,YACA,UACA,uDACA,2CACA,0BA38BJ,+CACA,4CACA,uCA28BI,aACA,6BAGJ,kCACI,WACA,YACA,UACA,6BAGJ,+BACI,iBAQR,eACI,YACA,WACA,eACA,qBACI,aAIR,OACI,oCACA,MApgCS,KAMT,sBAggCuB,KA//BvB,mBA+/BuB,KA9/BvB,cA8/BuB,KACvB,sCAEA,aACA,eACA,eACA,cACA,eAz9BA,yBACA,wBACA,sBACA,qBACA,iBAu9BA,6BAEA,eAEA,WACI,aACA,mBACA,YACA,eACA,kBAGJ,iBACI,aACA,YACA,YACA,qBACA,kBAGJ,oBACI,gBACA,YACA,YAGJ,aA7hCA,wDACA,qDACA,gDAiiCA,yCAEI,mCACA,yBA1hCJ,6DACA,0DACA,qDA2hCI,2DACI,cACA,2BACA,uBAGJ,iDAziCJ,wBACA,qBACA,gBAyiCQ,mCAIR,aACI,UAGJ,gBACI,qCACA,2BACA,uBACA,eACA,8BAEA,sBACI,gBAGJ,uBACI,gBAGJ,yBACI,cACA,2BACA,uBAGJ,oBAxkCJ,wBACA,qBACA,gBAwkCQ,qCAKZ,cACI,aACA,mBACA,UACA,oCACA,kCACA,MAvmCS,KAwmCT,cAEA,wBACI,qCACA,2BACA,uBACA,eACA,8BAQR,aACI,sCACA,cACA,wBA9mCA,oDACA,iDACA,4CARA,sBAunCuB,IAtnCvB,mBAsnCuB,IArnCvB,cAqnCuB,IAI3B,gBACI,iCAGJ,iBACI,kBACA,WACA,MACA,OACA,aACA,uBAGA,2BACI,wBAIR,aACI,aAGJ,uDACI,cACA,2BAnpCA,sBAopCuB,IAnpCvB,mBAmpCuB,IAlpCvB,cAkpCuB,IA9oCvB,iDACA,8CACA,yCAgpCJ,kBAlpCI,uCACA,oCACA,+BAqpCJ,sBAvpCI,gFACA,6EACA,wEA0pCJ,uBAEI,YAGJ,SAvoCI,gBAwoCiB,GAvoCjB,aAuoCiB,GAtoCjB,QAsoCiB,GACjB,eACA,MACA,OACA,sBACA,WACA,YACA,WAGJ,cAlpCI,gBAmpCiB,GAlpCjB,aAkpCiB,GAjpCjB,QAipCiB,GACjB,eACA,MACA,OACA,sBACA,WACA,YACA,WACA,aACA,uBACA,mBACA,sBAGJ,QACI,eAGJ,mBACI,eAGJ,iCACI,cACA,2BAIJ,sBAEI,oBAGJ,SACI,cACA,2BACA,wBAIJ,WACI,eACA,2BACA,wBAIJ,iBAprCI,yBACA,wBACA,sBACA,qBACA,iBAkrCA,cACA,2BACA,wBACA,gBAKJ,MACI,mCA3tCA,yDACA,sDACA,iDA2tCA,uBA/uCA,sBAgvCuB,KA/uCvB,mBA+uCuB,KA9uCvB,cA8uCuB,KACvB,gBACA,YACA,cACA,eACA,QACA,SA9tCA,oDACA,iDACA,gDACA,+CACA,4CA4tCA,+BACA,eACA,cAEA,WAEA,SACI,oBAGJ,qBACI,2CAGJ,0BACI,sBACA,eACA,gBACA,6BACI,eAIR,gCACI,sBACA,iBAGJ,YACI,YACA,gBAGJ,qBACI,eACA,gBACA,YACA,UAGJ,sBACI,2CAGJ,oBACI,gBAEA,uBACI,gBAIR,qBACI,eACA,qBAGJ,kBACI,cAMR,SACI,kBAEA,YACI,kBACA,wDAGJ,YACI,kBACA,MA90CU,QAi1Cd,YACI,kBACA,MAn1CU,QAs1Cd,YACI,kBACA,MAx1CU,QA21Cd,kBACI,wDAGJ,mDACI,MAh2CU,QAo2ClB,qEACI,iBAl2CoB,gDAm2CpB,aAt2Cc,QAu2Cd,eAEA,qFACI,iBAz2Ce,iDAiBnB,gFACA,6EACA,wEA01CA,6FA51CA,2CACA,wCACA,mCAg2CA,iGACI,iBAj3CgB,4CAk3ChB,MAr3Ce,iDA6BnB,yFACA,sFACA,iFAy1CI,qIACI,wDAGJ,iHACI,iBA33CY,gDAqBpB,wBACA,qBACA,gBAy2CA,yGACI,iBAh4CgB,4CAi4ChB,uDACA,8DAEA,6IACI,uDAGJ,yHACI,iBAz4CY,4CAoBpB,wBACA,qBACA,gBAw3CA,iHACI,2EACA,iBAl5CgB,iDA25CxB,cAj5CI,sBAk5CuB,IAj5CvB,mBAi5CuB,IAh5CvB,cAg5CuB,IACvB,iBA55CoB,gDAepB,+EACA,4EACA,uEA64CA,YAEA,2DAEI,mBAGJ,0BA55CA,sBA65C2B,KA55C3B,mBA45C2B,KA35C3B,cA25C2B,KAv5C3B,uCACA,oCACA,+BAu5CI,YACA,aACA,kBACA,0CAIR,iBAt4CI,gBAu4CiB,EAt4CjB,aAs4CiB,EAr4CjB,QAq4CiB,EACjB,iBAh7CoB,4CAm7CxB,uBACI,uDACA,sEAGJ,+BACI,wDACA,uEAGJ,qBACI,MAv8CU,KAw8CV,YACI,0CAKR,mBACI,qBACA,qBAEA,0BACI,qBACA,YAIR,qBACI,qBACA,eACA,wBACI,eAIR,eACI,iBAz9CoB,gDA09CpB,aA79Cc,QA89Cd,MAx9CS,KAy9CT,iBACA,UAGJ,qCACI,gBAGJ,iBACI,kBACA,iBACA,aAGJ,qBACI,iBA1+CoB,4CA6+CxB,0BACI,iBA9+CoB,4CAi/CxB,YACI,iBAGJ,aACI,iBAII,yGACI,iBA7/CY,iDAkgDxB,WACI,qBACA,sBA1/CA,sBA4/CuB,KA3/CvB,mBA2/CuB,KA1/CvB,cA0/CuB,KACvB,iBAtgDoB,gDAepB,iFACA,8EACA,yEAu/CA,aACA,aACA,eAEA,4IA7/CA,gFACA,6EACA,wEAggDJ,mBACI,qBACA,sBA1gDA,sBA4gDuB,KA3gDvB,mBA2gDuB,KA1gDvB,cA0gDuB,KACvB,iBArhDoB,4CAcpB,6EACA,0EACA,qEAugDA,aACA,aACA,eAEA,oLA7gDA,gFACA,6EACA,wEAghDJ,eAxhDI,sBAyhDuB,KAxhDvB,mBAwhDuB,KAvhDvB,cAuhDuB,KACvB,iBAriDmB,iDAiBnB,gFACA,6EACA,wEAohDA,cAGJ,oBACI,+BACA,YACA,aACA,eACA,YAEA,wBAtiDA,sBAuiD2B,KAtiD3B,mBAsiD2B,KAriD3B,cAqiD2B,KAG3B,0BACI,YACI,iLAhiDR,wBACA,qBACA,gBAmiDI,8BA3iDJ,yCACA,sCACA,iCA8iDA,2BA1iDA,wBACA,qBACA,gBA6iDJ,qBACI,iBAGJ,SACI,cACA,oCACA,WACA,kBACA,mBACA,kCACA,iBACA,kBACA,kBACA,mBACA,iBACA,oBACA,gBACA,eACA,WACA,UACA,uBACA,6BACA,iBAEA,eACI,UACA,sBAGJ,4BACI,eAGJ,wBACI,iCAIR,uBACI,YAGJ,gBACI,WAGJ,eACI,YACA,gEACA,aArnDoB,4CAsnDpB,0BACI,iBAvnDgB,4CAwnDhB,4DAEJ,yBACI,iBA5nDgB,gDA6nDhB,aA9nDgB,iDAkoDxB,2BACI,SACA,0CAGJ,wBACI,SACA,2CAGJ,iCACI,SACA,2BAGJ,oCACI,SACA,0BAGJ,WACI,kBACA,kBAIA,uBACI,qBAGJ,uBACI,qBAGJ,2BACI,qBACA,YACA,eACA,cAEA,2CACI,eACA,cAKJ,uCACI,iBACA,YAKZ,eACI,UAGJ,aACI,WACA,UAEA,sBACI,aACA,WACA,eACA,gBACA,cAEA,mCACI,YAGJ,8CACI,YACA,gBAKZ,cACI,YACA,UAEA,uBACI,aACA,WACA,eACA,gBACA,cAEA,oCACI,YAGJ,+CACI,YACA,gBAKZ,OACI,wBAGJ,WACI,aAGJ,oBACI,WACA,aAjvDoB,gDAkvDpB,WAjvDoB,4CAmvDpB,6BACI,iBAGJ,6BACI,2BACA,aA3vDgB,iDA4vDhB,WA3vDgB,gDA6vDhB,oCACI,qEACA,aAhwDY,iDAiwDZ,2DAGJ,oCACI,qEACA,aAtwDY,iDAuwDZ,4DAGJ,oCACI,qEACA,aA7wDW,iDA8wDX,WA7wDY,iDAgxDhB,oCACI,qEACA,aApxDM,QAqxDN,4DAGJ,oCACI,qEACA,+DACA,WA1xDW,iDA8xDnB,6BACI,aA5xDgB,4CAgyDxB,UACI,WACA,0BAGJ,WACI,WAGJ,gBACI,cAGJ,cACI,aAEA,qBACI,WACA,UACA,YAIR,oBACI,gBACA,mBAGJ,gBACI,WAGJ,WACI,oCACA,0BAGJ,gBACI,wBAGJ,iBACI,aACA,sBACA,mBACA,kBAGJ,cACI,gBACA,WACA,aAp1DoB,gDAq1DpB,WAp1DoB,4CAs1DpB,iBACI,qEACA,aA11DgB,iDA21DhB,4DAIR,eACI,WA91DoB,4CA+1DpB,oBACA,aAj2DoB,gDAm2DpB,sBACI,0DACA,6DACA,oEAGJ,sBACI,WA12DgB,gDA22DhB,aA52DgB,iDA62DhB,2BAGJ,sBACI,WAj3DgB,iDAk3DhB,aAn3De,iDAo3Df,4BAGJ,sBACI,WAx3De,iDAy3Df,aA13DU,QA23DV,4BAGJ,sBACI,WA/3DU,QAg4DV,+DACA,4BAIR,aACI,mBAEA,oBACI,WAIR,gBACI,aACA,eAGJ,OACI,WAGJ,WACI,kBAEA,oBACI,mBAIR,mBACI,6BAGJ,cACI,aAIA,iBACI,cAIR,2BACI,WACA,iBAGJ,OACI,qCACA,cACA,YACA,aACA,kBACA,iBACA,sBAEA,oBACI,mCAIR,OACI","file":"style.min.css"}
\ No newline at end of file
diff --git a/js/data/events.js b/js/data/events.js
index fee41d63..3b55cb6a 100644
--- a/js/data/events.js
+++ b/js/data/events.js
@@ -542,4 +542,30 @@ SharkGame.Events = {
res.buildIncomeNetwork();
},
},
+ shoreGiveCoral: {
+ handlingTime: "beforeTick",
+ priority: 0,
+ getAction() {
+ return "remove";
+ },
+ trigger() {
+ if (!SharkGame.flags.gaveCoral) {
+ SharkGame.flags.gaveCoral = true;
+ res.changeResource("coral", 50);
+ }
+ },
+ },
+ shoreGiveSeagrass: {
+ handlingTime: "beforeTick",
+ priority: 0,
+ getAction() {
+ return "remove";
+ },
+ trigger() {
+ if (!SharkGame.flags.gaveSeagrass) {
+ SharkGame.flags.gaveSeagrass = true;
+ res.changeResource("seagrass", 50);
+ }
+ },
+ },
};
diff --git a/js/data/homeactions.js b/js/data/homeactions.js
index add3fcd7..6cafe5e6 100644
--- a/js/data/homeactions.js
+++ b/js/data/homeactions.js
@@ -1396,6 +1396,8 @@ SharkGame.HomeActions = {
},
*/
},
+
+ // ---------------------------------------------------
abandoned: {
catchFish: {},
@@ -1866,6 +1868,8 @@ SharkGame.HomeActions = {
helpText: "This octopus machine imbues sponge with industrial potential. Requires residue for function.",
},
},
+
+ // ---------------------------------------------------
haven: {
catchFish: {},
@@ -2330,6 +2334,8 @@ SharkGame.HomeActions = {
"This dolphin machine creates delphinium. What good that is to us is a mystery. Use it to make their useless machines, I guess?",
},
},
+
+ // ---------------------------------------------------
frigid: {
catchFish: {},
@@ -2347,264 +2353,1433 @@ SharkGame.HomeActions = {
name: "Enlist squid",
effect: {
resource: {
- squid: 1,
+ squid: 1,
+ },
+ },
+ cost: [{ resource: "fish", costFunction: "linear", priceIncrease: 15 }],
+ max: "squid",
+ prereq: {
+ upgrade: ["civilContact"],
+ },
+ outcomes: [
+ "A giant squid joins you.",
+ "A bush-club squid joins you.",
+ "A comb-finned squid joins you.",
+ "A glass squid joins you.",
+ "An armhook squid joins you.",
+ "A jewel squid joins you.",
+ "A scaled squid joins you.",
+ "A big-fin squid joins you.",
+ "A whip-lash squid joins you.",
+ "A flying squid joins you.",
+ "A hooked squid joins you.",
+ "A glacial squid joins you.",
+ "A fire squid joins you.",
+ "A grass squid joins you.",
+ ],
+ multiOutcomes: [
+ "The squid join the frenzy, but stay close to the village.",
+ "The squid are cooperative and obedient. They do as directed.",
+ "A squiggle of squid! No, of course that's not real.",
+ "You all. Hunting duty. Get on it.",
+ "Squid are ready to hunt.",
+ "The squid venture out in search of fish.",
+ "The squid have no qualms about joining the frenzy.",
+ "The squid offer their utmost respect.",
+ ],
+ helpText: "Enlist a squid to help us hunt down fish. Squid are used to the cold.",
+ },
+
+ getCrab: {
+ prereq: {
+ resource: {
+ shark: 6,
+ },
+ },
+ helpText: "Hire a crab to find things that sharks overlook.",
+ },
+
+ getUrchin: {
+ name: "Attract urchin",
+ effect: {
+ resource: {
+ urchin: 1,
+ },
+ },
+ cost: [{ resource: "kelp", costFunction: "linear", priceIncrease: 1 }],
+ max: "urchin",
+ prereq: {
+ upgrade: ["urchinAttraction"],
+ },
+ outcomes: [
+ "A collector urchin joins you.",
+ "A burrowing urchin joins you.",
+ "A fire urchin joins you.",
+ "A lance urchin joins you.",
+ "A long-spined urchin joins you.",
+ "A reef urchin joins you.",
+ "A rock-boring urchin joins you.",
+ "A pencil urchin joins you.",
+ "A needle urchin joins you.",
+ "A violet urchin joins you.",
+ "A purple urchin joins you.",
+ "A double-spined urchin joins you.",
+ "A flower urchin joins you.",
+ ],
+ multiOutcomes: [
+ "ow ow ow spikes hurt",
+ "The urchins join the frenzy. The frenzy keeps its distance.",
+ "Prickly.",
+ "A pile of sea urchins. A whole pile of them.",
+ "The urchins, they're everywhere!",
+ "How many urchins could we possibly need?",
+ "The urchins go straight to harvesting kelp, and in the process, sand.",
+ "And we're sure that we need urchins this badly?",
+ "I wonder if these things can be weaponized...",
+ "These aren't poisonous...Right?",
+ ],
+ helpText: "Attract an urchin who will gather kelp and sand. Urchins are used to the cold.",
+ },
+
+ // SHARK JOBS ////////////////////////////////////////////////////////////////////////////////
+
+ getScientist: {},
+
+ getNurse: {},
+
+ // SQUID JOBS ////////////////////////////////////////////////////////////////////////////////
+
+ getExtractionTeam: {
+ // i consider this a squid job
+ name: "Organize extraction team",
+ effect: {
+ resource: {
+ extractionTeam: 1,
+ },
+ },
+ cost: [
+ { resource: "crab", costFunction: "constant", priceIncrease: 1 },
+ { resource: "squid", costFunction: "constant", priceIncrease: 1 },
+ { resource: "kelp", costFunction: "linear", priceIncrease: 50 },
+ ],
+ max: "extractionTeam",
+ prereq: {
+ upgrade: ["assistedExtraction"],
+ },
+ outcomes: [
+ "Team assembled.",
+ "Initiating teamwork.",
+ "Cooperation commencing.",
+ "The crab climbs onto the squid's head. Now, they are a team.",
+ "Crab + Squid = Crystal???",
+ "The squid's speed quickly makes up for the effect of the cold on the crab, and they zip into the distance.",
+ "The squid straps the crab to itself with a band of kelp. That's one way, I guess.",
+ ],
+ multiOutcomes: [
+ "The method of cooperation varies, but the result is always the same.",
+ "Some of these pairs have...unique strategies. That one has make a bundle with its kelp.",
+ "The pairs dart off into the ocean.",
+ "The teams form a loose group, which then moves in a general direction.",
+ "Teamwork makes the dream work, or something.",
+ "That's a lot of crystal.",
+ "Has anyone ever stopped to consider why these things need kelp?",
+ ],
+ helpText: "Convince a squid and a crab to work together to gather crystals.",
+ },
+
+ getCollective: {
+ name: "Assemble squid collective",
+ effect: {
+ resource: {
+ collective: 1,
+ },
+ },
+ cost: [
+ { resource: "squid", costFunction: "constant", priceIncrease: 10 },
+ { resource: "fish", costFunction: "linear", priceIncrease: 1000 },
+ ],
+ max: "collective",
+ prereq: {
+ upgrade: ["squidBiology"],
+ },
+ outcomes: [
+ "The squid have been collected.",
+ "The group congregates and begins doing whatever it is they do.",
+ "A collective of squid collectively collects itself.",
+ "I collect that this collective is collectively collected.",
+ "Why is it not called a collection?",
+ "A bunch of squid get together and do something or other.",
+ ],
+ multiOutcomes: [
+ "Collect the squid. Collect them.",
+ "Collected a bunch of squid, I guess.",
+ "Why do squid have to do everything as a team???",
+ "I'm a bit concerned about future living space at this point.",
+ "How many squid could possibly be needed to do this job??",
+ ],
+ helpText: "Bring together a group of squid to produce even more squid.",
+ },
+
+ // CRAB JOB ////////////////////////////////////////////////////////////////////////////////
+
+ getBrood: {},
+
+ // URCHIN JOB ////////////////////////////////////////////////////////////////////////////////////
+
+ getSpawner: {
+ name: "Designate urchin spawner",
+ effect: {
+ resource: {
+ spawner: 1,
+ },
+ },
+ cost: [
+ { resource: "urchin", costFunction: "constant", priceIncrease: 1 },
+ { resource: "kelp", costFunction: "linear", priceIncrease: 15 },
+ ],
+ max: "spawner",
+ prereq: {
+ upgrade: ["urchinBiology"],
+ },
+ outcomes: [
+ "Wait, so, run this process by me again real quick?",
+ "The urchin stops collecting kelp.",
+ "If urchins could talk, I'd want to know what they think of this change of profession.",
+ ],
+ multiOutcomes: [
+ "Hold on - more?",
+ "Wait, who said we needed more?",
+ "Did we not already have enough?",
+ "At this rate, the entire sea floor will eventually fill up with urchins!",
+ "Seriously, I can't look anywhere and NOT see more of them.",
+ "I'm gonna wake up tomorrow covered in these things, I swear.",
+ "I'm a bit concerned about future living space at this point.",
+ ],
+ helpText: "Tell an urchin to go make more urchins.",
+ },
+
+ // SHARK MACHINES ////////////////////////////////////////////////////////////////////////////////
+
+ getCrystalMiner: {},
+
+ getSandDigger: {},
+
+ getFishMachine: {},
+
+ getAutoTransmuter: {},
+
+ getHeater: {
+ name: "Build heater",
+ effect: {
+ resource: {
+ heater: 1,
+ },
+ },
+ cost: [
+ { resource: "sharkonium", costFunction: "linear", priceIncrease: 100 },
+ {
+ resource: "kelp",
+ costFunction: "linear",
+ get priceIncrease() {
+ return 750 - 375 * SharkGame.Aspects.amorphousAssembly.level;
+ },
+ },
+ ],
+ max: "heater",
+ prereq: {
+ upgrade: ["artificialHeating"],
+ },
+ outcomes: [
+ "Heater activated.",
+ "Heater constructed.",
+ "Climate control online.",
+ "Construction complete.",
+ "Less-ice-inator is ready to go.",
+ ],
+ multiOutcomes: [
+ "The ice crawls toward us regardless.",
+ "Are we fighting a hopeless cause?",
+ "The machines extend our lives, but can they truly save us?",
+ "The warmth. The warmth we desired so much.",
+ "The frozen sea lives a little longer.",
+ "This world dies slower.",
+ ],
+ get helpText() {
+ return SharkGame.Upgrades.purchased.indexOf("rapidRecharging") > -1
+ ? "Construct one of the machines we used to slow the formerly-advancing ice shelf. Not much use now."
+ : "Construct a machine to slow down the advancing ice shelf.";
+ },
+ },
+ },
+
+ // ---------------------------------------------------
+ shore: {
+
+ // FREEBIES //////////////////////////////////////
+ catchFish: {},
+ debugbutton: {},
+
+ // PROCESSING ////////////////////////////////////
+ seagrassToScience: {
+ name: "Study seagrass flowers",
+ effect: {
+ resource: {
+ science: 5,
+ },
+ },
+ cost: [{ resource: "seagrass", costFunction: "constant", priceIncrease: 2 }],
+ max: "seagrass",
+ prereq: {
+ resource: {
+ seagrass: 1,
+ },
+ upgrade: ["xenobiology"],
+ },
+ outcomes: [
+ "There's science inside these things, surely!",
+ "The cause of science is advanced!",
+ "This is perhaps maybe insightful!",
+ "Why are we even doing this? Who knows! Science!",
+ "Results still inconclusive! Unsurpsingly...",
+ "Quick question. What's a flower?",
+ "At least it's not gross.",
+ "We would learn a lot more from these if they weren't so absolutely tiny.",
+ ],
+ helpText: "Dissect seagrass flowers to further the cause of science. This is research, probably!",
+ }, // end of processing code
+
+ // MAKE ADVANCED RESOURCES ///////////////////////
+ transmuteSharkonium: {
+ name: "Transmute stuff to sharkonium",
+ effect: {
+ resource: {
+ sharkonium: 1,
+ },
+ },
+ cost: [
+ {
+ resource: "crystal",
+ costFunction: "constant",
+ get priceIncrease() {
+ return 5 - SharkGame.Aspects.syntheticTransmutation.level;
+ },
+ },
+ {
+ resource: "sand",
+ costFunction: "constant",
+ get priceIncrease() {
+ return 15 - 3 * SharkGame.Aspects.syntheticTransmutation.level;
+ },
+ },
+ ],
+ max: "sharkonium",
+ prereq: {
+ upgrade: ["transmutation"],
+ },
+ outcomes: [
+ "Transmutation destination!",
+ "Transmutation rejuvenation!",
+ "Transmogrification revelation!",
+ "Transformation libation!",
+ "Transfiguration nation! ...wait.",
+ "Sharkonium arise!",
+ "Arise, sharkonium!",
+ "More sharkonium!",
+ "The substance that knows no name! Except the name sharkonium!",
+ "The substance that knows no description! It's weird to look at.",
+ "The foundation of a modern shark frenzy!",
+ ],
+ helpText: "Convert ordinary resources into sharkonium, building material of the future!",
+ }, // end of processing code
+ coatHardbark: {
+ name: "Coat driftwood to make hardbark",
+ effect: {
+ resource: {
+ hardbark: 1,
+ },
+ },
+ cost: [
+ { resource: "crystal", costFunction: "constant", priceIncrease: 5 },
+ { resource: "driftwood", costFunction: "constant", priceIncrease: 1 },
+ ],
+ max: "hardbark",
+ prereq: {
+ upgrade: ["hardbarkCoating"],
+ },
+ outcomes: [
+ "Hardbark made. Yippee.",
+ "It’s just wood. In crystal.",
+ "A simple design, much like their inventors.",
+ "Yes, I suppose the crystal is really hard to coat with…",
+ "It’s… honestly a little impressive. For a fish, of course.",
+ "Gah. I’ve made so many typos trying to spell hardbark.",
+ "help me I got some crystal stuck on me",
+ "How did such a strong recipe end up with mudskippers...?",
+ ],
+ helpText: "Coat sturdy driftwood pieces with crystal to make hardbark.",
+ },
+
+ // BUY ANIMALS (and jobs) /////////////////////////////////
+ getShark: {
+ name: "Recruit shark",
+ effect: {
+ resource: {
+ shark: 1,
+ },
+ },
+ cost: [{ resource: "fish", costFunction: "linear", priceIncrease: 5 }],
+ max: "shark",
+ prereq: {
+ resource: {
+ fish: 5,
+ },
+ },
+ outcomes: [
+ "A bignose shark joins you.",
+ "A blacktip reef shark joins you.",
+ "A blue shark joins you.",
+ "A bull shark joins you.",
+ "A cat shark joins you.",
+ "A crocodile shark joins you.",
+ "A dusky whaler shark joins you.",
+ "A dogfish joins you.",
+ "A graceful shark joins you.",
+ "A grey reef shark joins you.",
+ "A goblin shark joins you.",
+ "A hammerhead shark joins you.",
+ "A hardnose shark joins you.",
+ "A lemon shark joins you.",
+ "A milk shark joins you.",
+ "A nervous shark joins you.",
+ "An oceanic whitetip shark joins you.",
+ "A pigeye shark joins you.",
+ "A sandbar shark joins you.",
+ "A silky shark joins you.",
+ "A silvertip shark joins you.",
+ "A sliteye shark joins you.",
+ "A speartooth shark joins you.",
+ "A spinner shark joins you.",
+ "A spot-tail shark joins you.",
+ "A mako shark joins you.",
+ "A tiger shark joins you.",
+ "A tawny shark joins you.",
+ "A white shark joins you.",
+ "A zebra shark joins you.",
+ ],
+ multiOutcomes: [
+ "A whole bunch of sharks join you.",
+ "That's a lot of sharks.",
+ "The shark community grows!",
+ "More sharks! MORE SHARKS!",
+ "Sharks for the masses. Mass sharks.",
+ "A shiver of sharks! No, that's a legit name. Look it up.",
+ "A school of sharks!",
+ "A shoal of sharks!",
+ "A frenzy of sharks!",
+ "A gam of sharks! Yes, that's correct.",
+ "A college of sharks! They're a little smarter than a school.",
+ ],
+ helpText: "Recruit a shark to help catch more fish.",
+ }, // end of creature code
+ getManta: {
+ name: "Hire ray",
+ effect: {
+ resource: {
+ ray: 1,
+ },
+ },
+ cost: [{ resource: "fish", costFunction: "linear", priceIncrease: 15 }],
+ max: "ray",
+ prereq: {
+ resource: {
+ shark: 5,
+ },
+ },
+ outcomes: [
+ "These guys seem to be kicking up a lot of sand!",
+ "A spotted eagle ray joins you.",
+ "A manta ray joins you.",
+ "A stingray joins you.",
+ "A clownnose ray joins you.",
+ "A bluespotted maskray joins you.",
+ "A bluntnose stingray joins you.",
+ "A oman masked ray joins you.",
+ "A bulls-eye electric ray joins you.",
+ "A shorttailed electric ray joins you.",
+ "A bentfin devil ray joins you.",
+ "A lesser electric ray joins you.",
+ "A cortez electric ray joins you.",
+ "A feathertail stingray joins you.",
+ "A thornback ray joins you.",
+ "A giant shovelnose ray joins you.",
+ "A pacific cownose ray joins you.",
+ "A bluespotted ribbontail ray joins you.",
+ "A marbled ribbontail ray joins you.",
+ "A blackspotted torpedo ray joins you.",
+ "A marbled torpedo ray joins you.",
+ "A atlantic torpedo ray joins you.",
+ "A panther torpedo ray joins you.",
+ "A spotted torpedo ray joins you.",
+ "A ocellated torpedo joins you.",
+ "A caribbean torpedo joins you.",
+ "A striped stingaree joins you.",
+ "A sparesly-spotted stingaree joins you.",
+ "A kapala stingaree joins you.",
+ "A common stingaree joins you.",
+ "A eastern fiddler ray joins you.",
+ "A bullseye stingray joins you.",
+ "A round stingray joins you.",
+ "A yellow stingray joins you.",
+ "A cortez round stingray joins you.",
+ "A porcupine ray joins you.",
+ "A sepia stingaree joins you.",
+ "A banded stingaree joins you.",
+ "A spotted stingaree joins you.",
+ "A sea pancake joins you.",
+ ],
+ multiOutcomes: [
+ "A whole bunch of rays join you.",
+ "That's a lot of rays.",
+ "The ray conspiracy grows!",
+ "I can't even deal with all of these rays.",
+ "More rays more rays more more more.",
+ "A school of rays!",
+ "A fever of rays! Yes, seriously. Look it up.",
+ "A whole lotta rays!",
+ "The sand is just flying everywhere!",
+ "So many rays.",
+ ],
+ helpText: "Hire a ray to help collect fish. They might kick up some sand from the seabed.",
+ }, // end of creature code
+ getCrab: {
+ name: "Acquire crab",
+ effect: {
+ resource: {
+ crab: 1,
+ },
+ },
+ cost: [{ resource: "fish", costFunction: "linear", priceIncrease: 10 }],
+ max: "crab",
+ prereq: {
+ resource: {
+ shark: 10,
+ ray: 4,
+ },
+ },
+ outcomes: [
+ "A crab starts sifting shiny things out of the sand.",
+ "A bering hermit joins you.",
+ "A blackeye hermit joins you.",
+ "A butterfly crab joins you.",
+ "A dungeness crab joins you.",
+ "A flattop crab joins you.",
+ "A greenmark hermit joins you.",
+ "A golf-ball crab joins you.",
+ "A graceful crab joins you.",
+ "A graceful decorator crab joins you.",
+ "A graceful kelp crab joins you.",
+ "A green shore crab joins you.",
+ "A heart crab joins you.",
+ "A helmet crab joins you.",
+ "A longhorn decorator crab joins you.",
+ "A maroon hermit joins you.",
+ "A moss crab joins you.",
+ "A northern kelp crab joins you.",
+ "A orange hairy hermit joins you.",
+ "A purple shore crab joins you.",
+ "A pygmy rock crab joins you.",
+ "A puget sound king crab joins you.",
+ "A red rock crab joins you.",
+ "A scaled crab joins you.",
+ "A sharpnose crab joins you.",
+ "A spiny lithoid crab joins you.",
+ "A widehand hermit joins you.",
+ "A umbrella crab joins you.",
+ ],
+ multiOutcomes: [
+ "A lot of crabs join you.",
+ "CRABS EVERYWHERE",
+ "Crabs. Crabs. Crabs!",
+ "Feels sort of crab-like around here.",
+ "A cast of crabs!",
+ "A dose of crabs!",
+ "A cribble of crabs! Okay, no, that one's made up.",
+ "So many crabs.",
+ "I'm sorry to say, but you have crabs. Everywhere.",
+ ],
+ helpText: "Hire a crab to find things that sharks and rays overlook.",
+ }, // end of creature code
+ getScientist: {
+ name: "Train science shark",
+ effect: {
+ resource: {
+ scientist: 1,
+ },
+ },
+ cost: [
+ { resource: "shark", costFunction: "constant", priceIncrease: 1 },
+ { resource: "crystal", costFunction: "linear", priceIncrease: 20 },
+ ],
+ max: "scientist",
+ prereq: {
+ resource: {
+ crystal: 20,
+ shark: 1,
+ },
+ },
+ outcomes: [
+ "Doctor Shark, coming right up!",
+ "A scientist shark is revealed!",
+ "After many painful years of study, a shark that has developed excellent skills in making excuses-- er, in science!",
+ "PhD approved!",
+ "Graduation complete!",
+ "A new insight drives a new shark to take up the cause of science!",
+ ],
+ multiOutcomes: [
+ "The training program was a success!",
+ "Look at all this science!",
+ "Building a smarter, better shark!",
+ "Beakers! Beakers underwater! It's madness!",
+ "Let the science commence!",
+ "Underwater clipboards! No I don't know how that works either!",
+ "Careful teeth record the discoveries!",
+ ],
+ helpText: "Train a shark in the fine art of research and the science of, well, science.",
+ }, // end of job code
+ getNurse: {
+ name: "Train nurse shark",
+ effect: {
+ resource: {
+ nurse: 1,
+ },
+ },
+ cost: [
+ { resource: "shark", costFunction: "constant", priceIncrease: 1 },
+ { resource: "fish", costFunction: "linear", priceIncrease: 100 },
+ ],
+ max: "nurse",
+ prereq: {
+ resource: {
+ shark: 1,
+ },
+ upgrade: ["biology"],
+ },
+ outcomes: [
+ "A nurse shark is ready!",
+ "Shark manufacturer primed.",
+ "Nurse shark trained.",
+ "Medical exam passed! Nurse shark is go!",
+ ],
+ multiOutcomes: [
+ "More sharks are on the way soon.",
+ "Shark swarm begins!",
+ "There will be no end to the sharks!",
+ "Sharks forever!",
+ "The sharks will never end. The sharks are eternal.",
+ "More sharks to make more sharks to make more sharks...",
+ ],
+ helpText: "Remove a shark from fish duty and set them to shark making duty.",
+ }, // end of breeder code
+ getLaser: {
+ name: "Equip laser ray",
+ effect: {
+ resource: {
+ laser: 1,
+ },
+ },
+ cost: [
+ { resource: "ray", costFunction: "constant", priceIncrease: 1 },
+ { resource: "crystal", costFunction: "linear", priceIncrease: 50 },
+ ],
+ max: "laser",
+ prereq: {
+ resource: {
+ ray: 1,
+ },
+ upgrade: ["laserRays"],
+ },
+ outcomes: [
+ "Laser ray online!",
+ "Laser ray! With a laser ray! It's laser ray, with a laaaaaser raaaay!",
+ "Laser ray.",
+ "Ray suited up with a laaaaaaser!",
+ "Ray lasered. To use a laser. Not the subject of a laser.",
+ ],
+ multiOutcomes: [
+ "Boil the seabed!",
+ "Churn the sand to crystal!",
+ "Laser ray armada in position!",
+ "Ray crystal processing initiative is growing stronger every day!",
+ "Welcome to the future! The future is lasers!",
+ ],
+ helpText: "Remove a ray from sand detail and let them fuse sand into raw crystal.",
+ }, // end of job code
+ getMaker: {
+ name: "Instruct a ray maker",
+ effect: {
+ resource: {
+ maker: 1,
+ },
+ },
+ cost: [
+ { resource: "ray", costFunction: "constant", priceIncrease: 1 },
+ { resource: "fish", costFunction: "linear", priceIncrease: 300 },
+ ],
+ max: "maker",
+ prereq: {
+ resource: {
+ ray: 1,
+ },
+ upgrade: ["rayBiology"],
+ },
+ outcomes: [
+ "More rays lets you get more rays which you can then use to get more rays.",
+ "The ray singularity begins!",
+ "A ray maker is ready.",
+ "Looks like you gave them quite the ray maker blow! 'Them' being the intangible enemy that is lacking in resources.",
+ "The ray seems concerned, but obliges. The mission has been given.",
+ ],
+ multiOutcomes: [
+ "All these makers. What are they making? What is it for? Oh. It's rays, and it's probably for sand or something.",
+ "More ray makers means more rays. Do you understand what that means?! Do you?! It means more rays. Good. On the same page, then.",
+ "Rapidly breeding aquatic wildlife is probably a severe ecological hazard. Good thing this isn't Earth's oceans, probably!",
+ "Have you ever thought about what the rays wanted? Because this might have been what they wanted after all.",
+ "MORE LASER RAYS FOR THE LASER ARMY-- oh. Well, this is good too.",
+ ],
+ helpText: "Remove a ray from sand business and let them concentrate on making more rays.",
+ }, // end of breeder code
+ getMudskipper: {
+ name: "Liberate mudskipper",
+ effect: {
+ resource: {
+ mudskipper: 1,
+ },
+ },
+ cost: [
+ { resource: "fish", costFunction: "linear", priceIncrease: 1 },
+ ],
+ max: "mudskipper",
+ prereq: {
+ upgrade: ["mudskipperContact"],
+ },
+ outcomes: [
+ "An atlantic mudskipper joins you.",
+ "A barred mudskipper joins you.",
+ "A common mudskipper joins you.",
+ "A Pearse’s mudskipper joins you.",
+ "A great blue spotted mudskipper joins you.",
+ ],
+ multiOutcomes: [
+ "Yessss! More woooodddd!!",
+ "These will certainly be useful...",
+ "Heh. Look at how scared they are.",
+ "Do you think we’re being too hard on them?",
+ "We’re doing them a favour.",
+ "What, they think we’re gonna eat them?",
+ ],
+ helpText: "Liberate a mudskipper from its boring old life and command it to retrieve driftwood for you.",
+ }, // end of creature code
+ getCaracara: {
+ name: "Convince caracara",
+ effect: {
+ resource: {
+ caracara: 1,
+ },
+ },
+ cost: [
+ { resource: "driftwood", costFunction: "linear", priceIncrease: 5 },
+ ],
+ max: "caracara",
+ prereq: {
+ upgrade: ["raiderTruce"],
+ },
+ outcomes: [
+ "A striated caracara joins you.",
+ "A caracara awaits your command. Haughtily.",
+ "The caracara flies off with a task.",
+ "It gives you a strange look before it leaves.",
+ "The caracara accidentally sheds a feather as it lifts off.",
+ ],
+ multiOutcomes: [
+ "They await you in flocks.",
+ "They blot out the sun.",
+ "They cast a shadow upon all as they fly.",
+ "Their presence commands respect from all but us.",
+ "You know what, they're kinda like sharks when you think about it.",
+ ],
+ helpText: "Convince a caracara from the surface to retrieve crystals.",
+ }, // end of creature code
+
+ // CRAB JOBS /////////////////////////////////
+ getStabilizer: {
+ name: "Provide crab stabilizer",
+ effect: {
+ resource: {
+ stabilizer: 1,
+ },
+ },
+ cost: [
+ { resource: "crab", costFunction: "linear", priceIncrease: 1 },
+ { resource: "seagrass", costFunction: "linear", priceIncrease: 2 },
+ { resource: "coral", costFunction: "linear", priceIncrease: 4 },
+ ],
+ max: "stabilizer",
+ prereq: {
+ resource: {
+ crab: 1,
+ coral: 4,
+ seagrass: 2,
+ },
+ upgrade: ["agriculture"],
+ },
+ outcomes: [
+ "/*to be written in future*/",
+ ],
+ multiOutcomes: [
+ "/*to be written in future*/",
+ ],
+ helpText: "Provide a crab with coral and seagrass to plant.",
+ },
+ getBrood: {
+ name: "Form crab brood",
+ effect: {
+ resource: {
+ brood: 1,
+ },
+ },
+ cost: [
+ { resource: "crab", costFunction: "constant", priceIncrease: 20 },
+ { resource: "fish", costFunction: "linear", priceIncrease: 200 },
+ ],
+ max: "brood",
+ prereq: {
+ resource: {
+ crab: 1,
+ },
+ upgrade: ["crabBiology"],
+ },
+ outcomes: [
+ "A bunch of crabs pile together into some sort of weird cluster.",
+ "Crab team, assemble! FORM THE CRAB BROOD!",
+ "[This message has been censored for reasons of being mostly really gross.]",
+ "Eggs, eggs everywhere, but never stop and think.",
+ "Writhing crab pile. Didn't expect those words next to each other today, did you.",
+ "The crab brood is a rarely witnessed phenomenon, due to being some strange behaviour of crabs that have been driven to seek crystals for reasons only they understand.",
+ ],
+ multiOutcomes: [
+ "The broods grow. The swarm rises.",
+ "All these crabs are probably a little excessive. ...is what I could say, but I'm going to say this instead. MORE CRABS.",
+ "A sea of crabs on the bottom of the sea. Clickity clackity.",
+ "Snip snap clack clack burble burble crabs crabs crabs crabs.",
+ "More crabs are always a good idea. Crystals aren't cheap.",
+ "The broods swell in number. The sharks are uneasy, but the concern soon passes.",
+ ],
+ helpText: "Meld several crabs into a terrifying, incomprehensible crab-producing brood cluster.",
+ }, // end of breeder code
+
+ // MUDSKIPPER JOBS ///////////////////////////
+ getBurrow: {
+ name: "Dig mudskipper burrow",
+ effect: {
+ resource: {
+ burrow: 1,
+ },
+ },
+ cost: [
+ { resource: "mudskipper", costFunction: "constant", priceIncrease: 3 },
+ { resource: "fish", costFunction: "linear", priceIncrease: 15 },
+ { resource: "sand", costFunction: "linear", priceIncrease: 12 },
+ ],
+ max: "burrow",
+ prereq: {
+ resource: {
+ mudskipper: 1,
+ },
+ upgrade: ["mudskipperBurrowing"],
+ },
+ outcomes: [
+ "//*to be written in future*//",
+ ],
+ multiOutcomes: [
+ "//*to be written in future*//",
+ ],
+ helpText: "Allow a mudskipper to dig a burrow to do some weird flailing or something.",
+ }, // end of job code
+ getMentor: {
+ name: "Train mudskipper mentor",
+ effect: {
+ resource: {
+ mentor: 1,
+ },
+ },
+ cost: [
+ { resource: "mudskipper", costFunction: "constant", priceIncrease: 1 },
+ { resource: "science", costFunction: "linear", priceIncrease: 15 },
+ { resource: "hardbark", costFunction: "linear", priceIncrease: 4 },
+ ],
+ max: "mentor",
+ prereq: {
+ resource: {
+ mudskipper: 1,
+ },
+ upgrade: ["puppetTeaching"],
+ },
+ outcomes: [
+ "//*to be written in future*//",
+ ],
+ multiOutcomes: [
+ "//*to be written in future*//",
+ ],
+ helpText: "Teach a mudskipper techniques on puppetwork, so that it may pass on its knowledge.",
+ }, // end of job code
+
+ // CARACARA JOBS ///////////////////////////
+ getRetrievalDuo: {
+ name: "Pair retrieval duo",
+ effect: {
+ resource: {
+ retrievalDuo: 1,
+ },
+ },
+ cost: [
+ { resource: "mudskipper", costFunction: "constant", priceIncrease: 1 },
+ { resource: "caracara", costFunction: "linear", priceIncrease: 1 },
+ { resource: "crystal", costFunction: "linear", priceIncrease: 5 },
+ ],
+ max: "retrievalDuo",
+ prereq: {
+ resource: {
+ caracara: 1,
+ mudskipper: 1,
+ },
+ upgrade: ["beyondwalkerPairing"],
+ },
+ outcomes: [
+ "//*to be written in future*//",
+ ],
+ multiOutcomes: [
+ "//*to be written in future*//",
+ ],
+ helpText: "Leave an armoured mudskipper on a platform for a caracara to take and search for driftwood.",
+ }, // end of job code
+ getConnoisseur: {
+ name: "Employ connoisseur",
+ effect: {
+ resource: {
+ connoisseur: 1,
+ },
+ },
+ cost: [
+ { resource: "caracara", costFunction: "constant", priceIncrease: 1 },
+ { resource: "seagrass", costFunction: "linear", priceIncrease: 5 },
+ ],
+ max: "connoisseur",
+ prereq: {
+ resource: {
+ caracara: 1,
+ seagrass: 5,
+ },
+ upgrade: ["seagrassAttention"],
+ },
+ outcomes: [
+ "//*to be written in future*//",
+ ],
+ multiOutcomes: [
+ "//*to be written in future*//",
+ ],
+ helpText: "Get a caracara interested in seagrass to walk along shores laden with it.",
+ }, // end of job code
+
+ // SHARK MACHINES //////////////////////////
+ getCrystalMiner: {
+ name: "Build crystal miner",
+ effect: {
+ resource: {
+ crystalMiner: 1,
+ },
+ },
+ cost: [
+ {
+ resource: "crystal",
+ costFunction: "linear",
+ get priceIncrease() {
+ return 100 - 50 * SharkGame.Aspects.amorphousAssembly.level;
+ },
+ },
+ {
+ resource: "sand",
+ costFunction: "linear",
+ get priceIncrease() {
+ return 200 - 100 * SharkGame.Aspects.amorphousAssembly.level;
+ },
+ },
+ { resource: "sharkonium", costFunction: "linear", priceIncrease: 25 },
+ ],
+ max: "crystalMiner",
+ prereq: {
+ resource: {
+ sharkonium: 25,
+ },
+ upgrade: ["automation"],
+ },
+ outcomes: [
+ "Crystal miner activated.",
+ "Crystal miner constructed.",
+ "Mining machine online.",
+ "Construction complete.",
+ "Carve rock. Remove sand. Retrieve target.",
+ ],
+ multiOutcomes: [
+ "The machines rise.",
+ "The miners dig.",
+ "The crystal shall be harvested.",
+ "Crystal miners are complete.",
+ ],
+ helpText: "Construct a machine to automatically harvest crystals efficiently.",
+ }, // end of machine code
+ getSandDigger: {
+ name: "Build sand digger",
+ effect: {
+ resource: {
+ sandDigger: 1,
+ },
+ },
+ cost: [
+ {
+ resource: "sand",
+ costFunction: "linear",
+ get priceIncrease() {
+ return 500 - 250 * SharkGame.Aspects.amorphousAssembly.level;
+ },
+ },
+ { resource: "sharkonium", costFunction: "linear", priceIncrease: 150 },
+ ],
+ max: "sandDigger",
+ prereq: {
+ resource: {
+ sharkonium: 150,
+ },
+ upgrade: ["automation"],
+ },
+ outcomes: [
+ "Sand digger constructed.",
+ "Sand digger reaches into the seabed.",
+ "The digger begins to shuffle sand into its machine maw. Rays dart away.",
+ "The machine is online.",
+ "The machine acts immediately, shovelling sand.",
+ ],
+ multiOutcomes: [
+ "The machines increase in number.",
+ "The diggers devour.",
+ "All sand must be gathered.",
+ "The rays are concerned.",
+ "Devour the sands. Consume.",
+ "Giant machines blot out our sun.",
+ ],
+ helpText: "Construct a machine to automatically dig up sand efficiently.",
+ }, // end of machine code
+ getFishMachine: {
+ name: "Build fish machine",
+ effect: {
+ resource: {
+ fishMachine: 1,
+ },
+ },
+ cost: [{ resource: "sharkonium", costFunction: "linear", priceIncrease: 100 }],
+ max: "fishMachine",
+ prereq: {
+ resource: {
+ sharkonium: 100,
+ },
+ upgrade: ["automation"],
+ },
+ outcomes: [
+ "Fish machine activated.",
+ "Fish machine constructed.",
+ "Fishing machine online.",
+ "Construction complete.",
+ "The quarry moves. But the machine is faster.",
+ ],
+ multiOutcomes: [
+ "One day there will be no fish left. Only the machines.",
+ "Today the shark is flesh. Tomorrow, machine.",
+ "Your metal servants can sate the hunger. The hunger for fish.",
+ "The fishing machines are more efficient than the sharks. But they aren't very smart.",
+ "Automated fishing.",
+ "The power of many, many sharks, in many, many devices.",
+ ],
+ helpText: "Construct a machine to automatically gather fish efficiently.",
+ }, // end of machine code
+ getAutoTransmuter: {
+ name: "Build auto-transmuter",
+ effect: {
+ resource: {
+ autoTransmuter: 1,
+ },
+ },
+ cost: [
+ {
+ resource: "crystal",
+ costFunction: "linear",
+ get priceIncrease() {
+ return 100 - 50 * SharkGame.Aspects.amorphousAssembly.level;
+ },
+ },
+ { resource: "sharkonium", costFunction: "linear", priceIncrease: 100 },
+ ],
+ max: "autoTransmuter",
+ prereq: {
+ resource: {
+ sharkonium: 100,
+ },
+ upgrade: ["engineering"],
+ },
+ outcomes: [
+ "Auto-transmuter activated.",
+ "Auto-transmuter constructed.",
+ "Transmutation machine online.",
+ "Construction complete.",
+ "Provide inputs. Only the output matters.",
+ ],
+ multiOutcomes: [
+ "Auto-transmuters are prepared.",
+ "The difference between science and magic is reliable application.",
+ "All is change.",
+ "Change is all.",
+ "The machines know many secrets, yet cannot speak of them.",
+ ],
+ helpText: "Construct a machine to automatically and efficiently transmute sand and crystal to sharkonium.",
+ }, // end of machine code
+
+ // MUDSKIPPER PUPPETS //////////////////////
+ getCoralPicker: {
+ name: "Assemble coral picker",
+ effect: {
+ resource: {
+ coralPicker: 1,
+ },
+ },
+ cost: [
+ { resource: "hardbark", costFunction: "linear", priceIncrease: 50 },
+ { resource: "seagrass", costFunction: "linear", priceIncrease: 10 },
+ { resource: "crab", costFunction: "linear", priceIncrease: 1 },
+ ],
+ max: "coralCollector",
+ prereq: {
+ resource: {
+ hardbark: 50,
+ },
+ upgrade: ["puppetAssembly"],
+ },
+ outcomes: [
+ "//*to be written in future*//",
+ ],
+ multiOutcomes: [
+ "//*to be written in future*//",
+ ],
+ helpText: "Put together a crablike puppet to harvest coral with serrated claws.",
+ }, // end of machine code
+ getShoreQueller: {
+ name: "Assemble shore queller",
+ effect: {
+ resource: {
+ shoreQueller: 1,
+ },
+ },
+ cost: [
+ { resource: "hardbark", costFunction: "linear", priceIncrease: 75 },
+ { resource: "crystal", costFunction: "linear", priceIncrease: 50 },
+ { resource: "seagrass", costFunction: "linear", priceIncrease: 15 },
+ { resource: "shark", costFunction: "linear", priceIncrease: 1 },
+ ],
+ max: "shoreQueller",
+ prereq: {
+ resource: {
+ hardbark: 75,
+ },
+ upgrade: ["puppetAssembly", "laserRays"],
+ },
+ outcomes: [
+ "//*to be written in future*//",
+ ],
+ multiOutcomes: [
+ "//*to be written in future*//",
+ ],
+ helpText: "Put together a wormlike puppet to plant seagrass and laser up rough sand.",
+ }, // end of machine code
+ getDriftwoodSnarer: {
+ name: "Assemble driftwood snarer",
+ effect: {
+ resource: {
+ driftwoodSnarer: 1,
+ },
+ },
+ cost: [
+ { resource: "hardbark", costFunction: "linear", priceIncrease: 25 },
+ { resource: "seagrass", costFunction: "linear", priceIncrease: 25 },
+ { resource: "ray", costFunction: "linear", priceIncrease: 1 },
+ ],
+ max: "driftwoodSnarer",
+ prereq: {
+ resource: {
+ hardbark: 25,
+ seagrass: 15,
+ },
+ upgrade: ["puppetAssembly"],
+ },
+ outcomes: [
+ "//*to be written in future*//",
+ ],
+ multiOutcomes: [
+ "//*to be written in future*//",
+ ],
+ helpText: "Put together a raylike puppet to catch driftwood in a seagrass net.",
+ }, // end of machine code
+ getHardbarkSmith: {
+ name: "Assemble hardbark smith",
+ effect: {
+ resource: {
+ hardbarkSmith: 1,
},
},
- cost: [{ resource: "fish", costFunction: "linear", priceIncrease: 15 }],
- max: "squid",
+ cost: [
+ { resource: "hardbark", costFunction: "linear", priceIncrease: 50 },
+ { resource: "sharkonium", costFunction: "linear", priceIncrease: 25 },
+ { resource: "seagrass", costFunction: "linear", priceIncrease: 15 },
+ { resource: "mudskipper", costFunction: "linear", priceIncrease: 1 },
+ ],
+ max: "hardbarkSmith",
prereq: {
- upgrade: ["civilContact"],
+ resource: {
+ hardbark: 50,
+ sharkonium: 25,
+ },
+ upgrade: ["puppetAssembly"],
},
outcomes: [
- "A giant squid joins you.",
- "A bush-club squid joins you.",
- "A comb-finned squid joins you.",
- "A glass squid joins you.",
- "An armhook squid joins you.",
- "A jewel squid joins you.",
- "A scaled squid joins you.",
- "A big-fin squid joins you.",
- "A whip-lash squid joins you.",
- "A flying squid joins you.",
- "A hooked squid joins you.",
- "A glacial squid joins you.",
- "A fire squid joins you.",
- "A grass squid joins you.",
+ "//*to be written in future*//",
],
multiOutcomes: [
- "The squid join the frenzy, but stay close to the village.",
- "The squid are cooperative and obedient. They do as directed.",
- "A squiggle of squid! No, of course that's not real.",
- "You all. Hunting duty. Get on it.",
- "Squid are ready to hunt.",
- "The squid venture out in search of fish.",
- "The squid have no qualms about joining the frenzy.",
- "The squid offer their utmost respect.",
+ "//*to be written in future*//",
],
- helpText: "Enlist a squid to help us hunt down fish. Squid are used to the cold.",
- },
+ helpText: "Put together a clawed, orblike puppet to coat hardbark in a dish.",
+ }, // end of machine code
- getCrab: {
+ // UNIQUE //////////////////////
+ getSafeholdSentinel: {
+ name: "Repair Safehold Sentinel",
+ effect: {
+ resource: {
+ safeholdSentinel: 1,
+ },
+ },
+ cost: [
+ { resource: "hardbark", costFunction: "unique", priceIncrease: 250 },
+ { resource: "sharkonium", costFunction: "unique", priceIncrease: 25 },
+ { resource: "crystal", costFunction: "unique", priceIncrease: 5 },
+ ],
+ max: "safeholdSentinel",
prereq: {
resource: {
- shark: 6,
+ hardbark: 250,
+ sharkonium: 25,
+ crystal: 5,
},
+ upgrade: ["farExploration"],
},
- helpText: "Hire a crab to find things that sharks overlook.",
- },
-
- getUrchin: {
- name: "Attract urchin",
+ outcomes: [
+ "//*to be written in future*//",
+ ],
+ multiOutcomes: [
+ "//*to be written in future*//",
+ ],
+ helpText: "Repair the multi-armed thing above the big latch.",
+ }, // end of unique code
+ getBarrageBraver: {
+ ame: "Reconstruct Barrage Braver",
effect: {
resource: {
- urchin: 1,
+ barrageBraver: 1,
},
},
- cost: [{ resource: "kelp", costFunction: "linear", priceIncrease: 1 }],
- max: "urchin",
+ cost: [
+ { resource: "hardbark", costFunction: "unique", priceIncrease: 125 },
+ { resource: "sharkonium", costFunction: "unique", priceIncrease: 125 },
+ { resource: "crystal", costFunction: "unique", priceIncrease: 15 },
+ ],
+ max: "barrageBraver",
prereq: {
- upgrade: ["urchinAttraction"],
+ resource: {
+ hardbark: 125,
+ sharkonium: 125,
+ crystal: 15,
+ },
+ upgrade: ["taleHeeding"],
},
outcomes: [
- "A collector urchin joins you.",
- "A burrowing urchin joins you.",
- "A fire urchin joins you.",
- "A lance urchin joins you.",
- "A long-spined urchin joins you.",
- "A reef urchin joins you.",
- "A rock-boring urchin joins you.",
- "A pencil urchin joins you.",
- "A needle urchin joins you.",
- "A violet urchin joins you.",
- "A purple urchin joins you.",
- "A double-spined urchin joins you.",
- "A flower urchin joins you.",
+ "//*to be written in future*//",
],
multiOutcomes: [
- "ow ow ow spikes hurt",
- "The urchins join the frenzy. The frenzy keeps its distance.",
- "Prickly.",
- "A pile of sea urchins. A whole pile of them.",
- "The urchins, they're everywhere!",
- "How many urchins could we possibly need?",
- "The urchins go straight to harvesting kelp, and in the process, sand.",
- "And we're sure that we need urchins this badly?",
- "I wonder if these things can be weaponized...",
- "These aren't poisonous...Right?",
+ "//*to be written in future*//",
],
- helpText: "Attract an urchin who will gather kelp and sand. Urchins are used to the cold.",
- },
-
- // SHARK JOBS ////////////////////////////////////////////////////////////////////////////////
-
- getScientist: {},
-
- getNurse: {},
-
- // SQUID JOBS ////////////////////////////////////////////////////////////////////////////////
-
- getExtractionTeam: {
- // i consider this a squid job
- name: "Organize extraction team",
+ helpText: "Reconstruct the Barrage Braver of beyondwalker legend.",
+ }, // end of unique code
+ getGatemasterPuppet: {
+ ame: "Scavenge Gatemaster",
effect: {
resource: {
- extractionTeam: 1,
+ gatemasterPuppet: 1,
},
},
cost: [
- { resource: "crab", costFunction: "constant", priceIncrease: 1 },
- { resource: "squid", costFunction: "constant", priceIncrease: 1 },
- { resource: "kelp", costFunction: "linear", priceIncrease: 50 },
+ { resource: "hardbark", costFunction: "unique", priceIncrease: 250 },
+ { resource: "sharkonium", costFunction: "unique", priceIncrease: 25 },
+ { resource: "crystal", costFunction: "unique", priceIncrease: 5 },
],
- max: "extractionTeam",
+ max: "gatemasterPuppet",
prereq: {
- upgrade: ["assistedExtraction"],
+ resource: {
+ hardbark: 250,
+ sharkonium: 25,
+ crystal: 5,
+ },
+ upgrade: ["gateDiscovery"],
},
outcomes: [
- "Team assembled.",
- "Initiating teamwork.",
- "Cooperation commencing.",
- "The crab climbs onto the squid's head. Now, they are a team.",
- "Crab + Squid = Crystal???",
- "The squid's speed quickly makes up for the effect of the cold on the crab, and they zip into the distance.",
- "The squid straps the crab to itself with a band of kelp. That's one way, I guess.",
+ "//*to be written in future*//",
],
multiOutcomes: [
- "The method of cooperation varies, but the result is always the same.",
- "Some of these pairs have...unique strategies. That one has make a bundle with its kelp.",
- "The pairs dart off into the ocean.",
- "The teams form a loose group, which then moves in a general direction.",
- "Teamwork makes the dream work, or something.",
- "That's a lot of crystal.",
- "Has anyone ever stopped to consider why these things need kelp?",
+ "//*to be written in future*//",
],
- helpText: "Convince a squid and a crab to work together to gather crystals.",
- },
+ helpText: "Collect the scattered pieces of... whatever this is...",
+ }, // end of unique code
- getCollective: {
- name: "Assemble squid collective",
+ // PLACES /////////////////////
+ getSeagrassFarm: {
+ name: "Construct seagrass farm",
effect: {
resource: {
- collective: 1,
+ seagrassFarm: 1,
},
},
cost: [
- { resource: "squid", costFunction: "constant", priceIncrease: 10 },
- { resource: "fish", costFunction: "linear", priceIncrease: 1000 },
+ { resource: "seagrass", costFunction: "constant", priceIncrease: 1 },
+ { resource: "sand", costFunction: "linear", priceIncrease: 50 },
],
- max: "collective",
+ max: "seagrassFarm",
prereq: {
- upgrade: ["squidBiology"],
+ upgrade: ["agriculture"],
},
outcomes: [
- "The squid have been collected.",
- "The group congregates and begins doing whatever it is they do.",
- "A collective of squid collectively collects itself.",
- "I collect that this collective is collectively collected.",
- "Why is it not called a collection?",
- "A bunch of squid get together and do something or other.",
+ "Seagrass farm constructed, seagrass barn raised.",
+ "Now growing seagrass in this general location.",
+ "Sand tilled. Seagrass planted.",
+ "'Right here, this will be a farm!' And so it was.",
+ "Stabilizing the seabed one farm at a time!",
],
multiOutcomes: [
- "Collect the squid. Collect them.",
- "Collected a bunch of squid, I guess.",
- "Why do squid have to do everything as a team???",
- "I'm a bit concerned about future living space at this point.",
- "How many squid could possibly be needed to do this job??",
+ "Do we really need to till the sand to grow seagrass?",
+ "Grow, seagrass! Grow!",
+ "The connoisseurs are pleased.",
+ "Is anybody staffing these?",
+ "Farms are a-go.",
+ "Designated growing spots.",
+ "Imagine how much science must be in this place.",
],
- helpText: "Bring together a group of squid to produce even more squid.",
- },
-
- // CRAB JOB ////////////////////////////////////////////////////////////////////////////////
-
- getBrood: {},
-
- // URCHIN JOB ////////////////////////////////////////////////////////////////////////////////////
-
- getSpawner: {
- name: "Designate urchin spawner",
+ helpText: "Pick a spot and set up a seagrass farm there.",
+ }, // end of place code
+ getShoreCoralFarm: {
+ name: "Construct coral farm",
effect: {
resource: {
- spawner: 1,
+ coralFarm: 1,
},
},
cost: [
- { resource: "urchin", costFunction: "constant", priceIncrease: 1 },
- { resource: "kelp", costFunction: "linear", priceIncrease: 15 },
+ { resource: "coral", costFunction: "constant", priceIncrease: 1 },
+ { resource: "sand", costFunction: "linear", priceIncrease: 50 },
],
- max: "spawner",
+ max: "coralFarm",
prereq: {
- upgrade: ["urchinBiology"],
+ upgrade: ["agriculture"],
},
outcomes: [
- "Wait, so, run this process by me again real quick?",
- "The urchin stops collecting kelp.",
- "If urchins could talk, I'd want to know what they think of this change of profession.",
+ "Coral farm constructed, coral barn raised.",
+ "Now growing coral in this general location.",
+ "Sand tilled. Coral planted.",
+ "'Right here, this will be a farm!' And so it was.",
],
multiOutcomes: [
- "Hold on - more?",
- "Wait, who said we needed more?",
- "Did we not already have enough?",
- "At this rate, the entire sea floor will eventually fill up with urchins!",
- "Seriously, I can't look anywhere and NOT see more of them.",
- "I'm gonna wake up tomorrow covered in these things, I swear.",
- "I'm a bit concerned about future living space at this point.",
+ "Do we really need to till the sand to grow coral?",
+ "Grow, coral! Grow!",
+ "The stabilizers are pleased.",
+ "Is anybody staffing these?",
+ "Farms are a-go.",
+ "Designated growing spots.",
],
- helpText: "Tell an urchin to go make more urchins.",
- },
-
- // SHARK MACHINES ////////////////////////////////////////////////////////////////////////////////
-
- getCrystalMiner: {},
-
- getSandDigger: {},
-
- getFishMachine: {},
-
- getAutoTransmuter: {},
-
- getHeater: {
- name: "Build heater",
+ helpText: "Pick a spot and set up a coral farm there.",
+ }, // end of place code
+ getExchangeStation: {
+ name: "Set up exchange station",
effect: {
resource: {
- heater: 1,
+ exchangeStation: 1,
},
},
cost: [
- { resource: "sharkonium", costFunction: "linear", priceIncrease: 100 },
- {
- resource: "kelp",
- costFunction: "linear",
- get priceIncrease() {
- return 750 - 375 * SharkGame.Aspects.amorphousAssembly.level;
- },
- },
+ { resource: "driftwood", costFunction: "linear", priceIncrease: 50 },
+ { resource: "sharkonium", costFunction: "linear", priceIncrease: 25 },
+ { resource: "coral", costFunction: "linear", priceIncrease: 15 },
],
- max: "heater",
+ max: "exchangeStation",
prereq: {
- upgrade: ["artificialHeating"],
+ resource: {
+ driftwood: 50,
+ sharkonium: 25,
+ coral: 15,
+ },
+ upgrade: ["platformExpansion"],
},
outcomes: [
- "Heater activated.",
- "Heater constructed.",
- "Climate control online.",
- "Construction complete.",
- "Less-ice-inator is ready to go.",
+ "//*to be written in future*//",
],
multiOutcomes: [
- "The ice crawls toward us regardless.",
- "Are we fighting a hopeless cause?",
- "The machines extend our lives, but can they truly save us?",
- "The warmth. The warmth we desired so much.",
- "The frozen sea lives a little longer.",
- "This world dies slower.",
+ "//*to be written in future*//",
],
- get helpText() {
- return SharkGame.Upgrades.purchased.indexOf("rapidRecharging") > -1
- ? "Construct one of the machines we used to slow the formerly-advancing ice shelf. Not much use now."
- : "Construct a machine to slow down the advancing ice shelf.";
+ helpText: "Build an abovewater-extending station for the frenzy to use.",
+ }, // end of place code
+ getReceiverNode: {
+ name: "Construct receiver node",
+ effect: {
+ resource: {
+ receiverNode: 1,
+ },
},
- },
+ cost: [
+ { resource: "hardbark", costFunction: "linear", priceIncrease: 50 },
+ { resource: "sharkonium", costFunction: "linear", priceIncrease: 25 },
+ { resource: "crystal", costFunction: "linear", priceIncrease: 5 },
+ ],
+ max: "receiverNode",
+ prereq: {
+ resource: {
+ hardbark: 50,
+ sharkonium: 25,
+ crystal: 5,
+ },
+ upgrade: ["intelTowers"],
+ },
+ outcomes: [
+ "//*to be written in future*//",
+ ],
+ multiOutcomes: [
+ "//*to be written in future*//",
+ ],
+ helpText: "Build a tall spire for extra collection of intel.",
+ }, // end of place code
},
+
+ // ---------------------------------------------------
shrouded: {
catchFish: {},
@@ -3201,6 +4376,8 @@ SharkGame.HomeActions = {
getAutoTransmuter: {},
},
+
+ // ---------------------------------------------------
marine: {
catchFish: {},
@@ -3626,6 +4803,8 @@ SharkGame.HomeActions = {
helpText: "Modify a lobster to fuse calcinium with cool cyborg laser beams.", // This crustacean machine distributes lobster eggs for optimal hatching conditions.
},
},
+
+ // ---------------------------------------------------
volcanic: {
// FREEBIES ////////////////////////////////////////////////////////////////////////////////
@@ -3894,7 +5073,7 @@ SharkGame.HomeActions = {
},
getShoveler: {
- name: "Instruct a ray shoveler",
+ name: "Instruct shoveler ray",
effect: {
resource: {
shoveler: 1,
@@ -4284,6 +5463,8 @@ SharkGame.HomeActions = {
helpText: "Pick a spot and set up a coral farm there.",
},
},
+
+ // ---------------------------------------------------
tempestuous: {
catchFish: {},
@@ -4619,6 +5800,8 @@ SharkGame.HomeActionCategories = {
"getSquid",
"getUrchin",
"getBillfish",
+ "getMudskipper",
+ "getCaracara",
],
},
@@ -4653,6 +5836,10 @@ SharkGame.HomeActionCategories = {
"getBillfishExplorer",
"getBillfishMechanic",
"getStormgoer",
+ "getMentor",
+ "getConnoisseur",
+ "getStabilizer",
+ "getRetrievalDuo",
],
},
@@ -4670,6 +5857,7 @@ SharkGame.HomeActionCategories = {
"getCollective",
"getSpawner",
"getBillfishPair",
+ "getBurrow",
],
},
@@ -4693,6 +5881,7 @@ SharkGame.HomeActionCategories = {
"toggleAutoSmelt",
"smeltPorite",
"seagrassToScience",
+ "coatHardbark",
],
},
@@ -4726,16 +5915,25 @@ SharkGame.HomeActionCategories = {
"getSeabedStripper",
"getCalciniumConverter",
"getClamScavenger",
+ "getCoralPicker",
+ "getShoreQueller",
+ "getDriftwoodSnarer",
+ "getHardbarkSmith",
],
},
places: {
name: "Places",
- actions: ["getSpongeFarm", "getCoralFarm"],
+ actions: ["getSpongeFarm", "getCoralFarm", "getShoreCoralFarm", "getSeagrassFarm", "getExchangeStation", "getReceiverNode"],
},
unique: {
name: "Unique",
- actions: ["getChorus"],
+ actions: [
+ "getChorus",
+ "getSafeholdSentinel",
+ "getBarrageBraver",
+ "getGatemasterPuppet",
+ ],
},
};
diff --git a/js/data/homemessages.js b/js/data/homemessages.js
index e3f57386..0f41528c 100644
--- a/js/data/homemessages.js
+++ b/js/data/homemessages.js
@@ -515,11 +515,68 @@ SharkGame.HomeMessages = {
message: "A wave of heat washes over you, and the dingy complex comes back to life. The gate turns on.",
},
],
- /*
- {
+
+ shore: [
+ {
+ name: "shore-default",
+ message: "The surface of the water is painfully close, yet it stretches vast.
Looking into the distance, that seems the least of your problems.",
+ },
+ {
+ name: "shore-sandstorm-entry",
+ unlock: { upgrade: ["murkAssessment"] },
+ message: "The sandstorm sends thousands of grains of rough sand digging into your flesh. This was a bad idea.",
+ },
+ {
+ name: "shore-sandstorm-escape-attempt",
+ unlock: { upgrade: ["fleeBarrage"] },
+ message: "The sandstorm has stretched out endlessly. No matter how far you backtrack, it is there.",
+ },
+ {
+ name: "shore-sandstorm-escape-attempt-the-sequel",
+ unlock: { upgrade: ["justPushFurtherLol"] },
+ message: "At last, by going further into the sandstorm, you burst into a clear space of calm. But a wall of sand blocks your path.",
+ },
+ {
+ name: "shore-discover-driftwood",
+ unlock: { upgrade: ["crabDisappearance"] },
+ message: "You notice some long, branching brown things bobbing on the surface. Some sharks say it's flaky.",
+ },
+ {
+ name: "shore-add-mudskipper",
+ unlock: { upgrade: ["mudskipperContact"] },
+ message: "These tiny fish aren't very remarkable - but what they (skittishly) bring back is another matter.",
+ },
+ {
+ name: "shore-flaily-flail",
+ unlock: { totalResource: { burrow: 5 } },
+ message: "The mudskippers flail in their newly-dug burrows. They say their dance is traditional, as are their oral tales.",
+ },
+ {
+ name: "shore-stability-found",
+ unlock: { upgrade: ["agriculture"] },
+ message: "The stabilizers work diligently, eager to support a loose-laid world. Perhaps there is hope.",
+ },
+ {
+ name: "shore-hardbark-coated",
+ unlock: { upgrade: ["hardbarkCoating"] },
+ message: "The wood of the simple (yet strong) hardbark looks a dark blue under the crystal. It's a wonder how it ended up with weird brown fish.",
+ },
+ {
+ name: "shore-puppets-piloted",
+ unlock: { upgrade: ["puppetAssembly"] },
+ message: "The frenzy move the puppets from within. It is nothing like our shark machines. It is lifelike. Glitchless. But primitive.",
+ },
+ {
+ name: "shore-puppets-taught",
+ unlock: { upgrade: ["puppetTeaching"] },
+ message: "So many tricks. So many techniques. The puppets have become versatile tools fast.",
+ },
+ ],
+ /* stone: [
+ {
message:
"The jagged seafloor looks ancient, yet pristine.
Sponges thrive in great numbers on the rocks.",
- },
- */
+ },
+ ], */
},
};
diff --git a/js/data/modifiertypes.js b/js/data/modifiertypes.js
index 1144ddcf..567bbe13 100644
--- a/js/data/modifiertypes.js
+++ b/js/data/modifiertypes.js
@@ -383,6 +383,35 @@ SharkGame.ModifierTypes = {
return input;
},
},
+ addDriftwoodIncome: {
+ defaultValue: 0,
+ apply(current, degree, resource) {
+ if (!SharkGame.ResourceMap.get(resource).baseIncome) {
+ SharkGame.ResourceMap.get(resource).baseIncome = {};
+ }
+ if (!SharkGame.ResourceMap.get(resource).income) {
+ SharkGame.ResourceMap.get(resource).income = {};
+ }
+ const baseIncomes = SharkGame.ResourceMap.get(resource).baseIncome;
+ baseIncomes.driftwood = (baseIncomes.driftwood ? baseIncomes.driftwood : 0) + degree;
+ res.reapplyModifiers(resource, "driftwood");
+ return current + degree;
+ },
+ effectDescription(degree, resource, background) {
+ return `Add ${degree} ${sharktext.getResourceName("driftwood", false, false, background)}/s to ${sharktext.getResourceName(
+ resource,
+ false,
+ 69,
+ background,
+ )}`;
+ },
+ getEffect(_genDegree, _outDegree, _gen, _out) {
+ return 1;
+ },
+ applyToInput(input, _genDegree, _outDegree, _gen, _out) {
+ return input;
+ },
+ },
},
},
diff --git a/js/data/resourcetable.js b/js/data/resourcetable.js
index d193bfa0..9b6a2b51 100644
--- a/js/data/resourcetable.js
+++ b/js/data/resourcetable.js
@@ -1,5 +1,24 @@
"use strict";
SharkGame.ResourceTable = {
+
+ // SAVED FOR LATER
+
+ coralglass: { // machine-making material; archived from original game -- ThreeEels
+ name: "coralglass",
+ singleName: "coralglass",
+ desc: "null",
+ color: "#FDD5B4",
+ value: 70,
+ },
+
+ /* starfish: { // frenzy member; courtesy of my great irl friend -- ThreeEels
+ name: "starfish",
+ singleName: "starfish",
+ desc: "Obliviously cute - as long as you don't see their mouths.",
+ color: "#C2754A",
+ value: 3000,
+ }, */
+
// SPECIAL
numen: {
@@ -21,6 +40,8 @@ SharkGame.ResourceTable = {
switch (world.worldType) {
case "volcanic":
return "vents";
+ case "shore":
+ return "the sandstorm";
case "tempestuous":
return "the storm";
default:
@@ -31,6 +52,8 @@ SharkGame.ResourceTable = {
switch (world.worldType) {
case "volcanic":
return "vents";
+ case "shore":
+ return "the sandstorm";
case "tempestuous":
return "the storm";
default:
@@ -397,7 +420,7 @@ SharkGame.ResourceTable = {
fishMachine: {
name: "fish machines",
singleName: "fish machine",
- desc: "Indiscriminate hunter.",
+ desc: "Indiscriminate hunters.",
color: "#C9C7A7",
income: {
fish: 400,
@@ -496,15 +519,6 @@ SharkGame.ResourceTable = {
},
},
- // SAVED FOR LATER
-
- coralglass: {
- name: "coralglass",
- singleName: "coralglass",
- desc: "null",
- color: "#FDD5B4",
- },
-
// volcanic
shrimp: {
@@ -763,6 +777,200 @@ SharkGame.ResourceTable = {
color: "#5BD1A8",
},
+ // SHORE
+
+ stabilizer: { // my inner british english speaker is screaming blue murder --ThreeEels
+ name: "stabilizer crabs",
+ singleName: "stabilizer crab",
+ color: "#339966",
+ desc: "Devotion and dedication.",
+ income: {
+ coral: 0.5,
+ seagrass: 0.5,
+ },
+ },
+
+ mudskipper: {
+ name: "mudskippers",
+ singleName: "mudskipper",
+ color: "#4E3900",
+ desc: "The liberated prey.",
+ income: {
+ driftwood: 0.5,
+ },
+ jobs: ["burrow", "mentor"],
+ },
+
+ burrow: {
+ name: "mudskipper burrows",
+ singleName: "mudskipper burrow",
+ color: "#B38300",
+ desc: "A tiny hole for tiny allies to flail around in.",
+ income: {
+ mudskipper: 0.05,
+ },
+ },
+
+ driftwood: {
+ name: "driftwood",
+ singleName: "driftwood",
+ desc: "Buoyant detritus from the beyond.",
+ color: "#342D19",
+ },
+
+ hardbark: {
+ name: "hardbark",
+ singleName: "hardbark",
+ desc: "Pistons and mechanisms for the puppets.",
+ color: "#1F2F45",
+ },
+
+ intel: {
+ name: "intel",
+ singleName: "intel",
+ desc: "What the Braver knows.",
+ color: "#FFFFFF",
+ },
+
+ mentor: {
+ name: "puppet mentors",
+ singleName: "puppet mentor",
+ desc: "Learned mudskippers, teaching the puppets known techniques.",
+ color: "#CC6600",
+ },
+
+ caracara: {
+ name: "caracaras",
+ singleName: "caracara",
+ desc: "Prideful denizens of the beyond, harnessing sky like water.",
+ color: "#604020",
+ income: {
+ crystal: 1,
+ },
+ jobs: ["retrievalDuo", "connoisseur"],
+ },
+
+ retrievalDuo: {
+ name: "retrieval duos",
+ singleName: "retrieval duo",
+ desc: "A huffy pair of searchers, venturing further than ever before.",
+ color: "#cc9966",
+ },
+
+ connoisseur: {
+ name: "caracara connoisseurs",
+ singleName: "caracara connoisseur",
+ desc: "Uppity collectors of washed-up seagrass and coral.",
+ color: "#669900",
+ income: {
+ seagrass: 0.5,
+ coral: 0.5,
+ },
+ },
+
+ coralPicker: {
+ name: "coral pickers",
+ singleName: "coral picker",
+ desc: "Crablike puppets that saw at the coral with serrated claws.",
+ color: "#99004D",
+ income: {
+ coral: 3,
+ },
+ },
+
+ driftwoodSnarer: {
+ name: "driftwood snarers",
+ singleName: "driftwood snarer",
+ desc: "Drifting, raylike puppets collecting driftwood in their seagrass nets.",
+ color: "#333300",
+ income: {
+ driftwood: 2,
+ },
+ },
+
+ hardbarkSmith: {
+ name: "hardbark smiths",
+ singleName: "hardbark smith",
+ desc: "Clawed, orblike puppets that dip wood in molten crystal.",
+ color: "#00004D",
+ income: {
+ hardbark: 2,
+ crystal: -2,
+ },
+ },
+
+ shoreQueller: {
+ name: "shore quellers",
+ singleName: "shore queller",
+ desc: "Wormlike puppets marking shore borders with seagrass - and crystallisng the rest.",
+ color: "#CCCC00",
+ income: {
+ seagrass: 3,
+ crystal: 3,
+ },
+ },
+
+ safeholdSentinel: {
+ name: "Safehold Sentinel", // it's special. that's why it has caps. --ThreeEels
+ singleName: "Safehold Sentinel",
+ desc: "The warden of many arms.",
+ color: "#664D80",
+ income: {
+ roughSand: -5.5,
+ },
+ },
+
+ barrageBraver: {
+ name: "Barrage Braver",
+ singleName: "Barrage Braver",
+ desc: "The courageous one.",
+ color: "#773E22",
+ income: {
+ intel: 0.001,
+ },
+ },
+
+ gatemasterPuppet: {
+ name: "Gatemaster",
+ singleName: "Gatemaster",
+ desc: "It oversees its children and its home.",
+ color: "#99FFCC",
+ },
+
+ seagrassFarm: {
+ name: "seagrass farms",
+ singleName: "seagrass farm",
+ desc: "Flowing crops of many blades.",
+ color: "#00661A",
+ income: {
+ seagrass: 1.5,
+ },
+ },
+
+ exchangeStation: {
+ name: "exchange stations",
+ singleName: "exchange station",
+ desc: "A bustling hub of beyonderwalkers and seaborn.",
+ color: "#4D2600",
+ },
+
+ receiverNode: {
+ name: "receiver nodes",
+ singleName: "receiver node",
+ desc: "Spires to catch the intel.",
+ color: "#73568F",
+ income: {
+ intel: 1.5,
+ },
+ },
+
+ roughSand: {
+ name: "rough sand",
+ singleName: "rough sand",
+ desc: "Jagged grains that dig into our flesh.",
+ color: "#CC9900",
+ },
+
// SHROUDED
chimaera: {
@@ -858,7 +1066,7 @@ SharkGame.ResourceTable = {
investigator: {
name: "octopus investigators",
singleName: "octopus investigator",
- desc: "Curiousity is the seed of progress.",
+ desc: "Curiosity is the seed of progress.",
color: "#4c5cad",
income: {
science: 2,
@@ -947,6 +1155,7 @@ SharkGame.ResourceTable = {
chimaera: -0.001,
octopus: -0.005,
eel: -0.001,
+ mudskipper: -0.01,
nurse: -0.003,
maker: -0.003,
brood: -0.003,
@@ -974,6 +1183,7 @@ SharkGame.ResourceTable = {
collective: -0.001,
extractionTeam: -0.001,
spawner: -0.001,
+ burrow: -0.01,
},
forceIncome: true,
},
@@ -1188,6 +1398,26 @@ SharkGame.GeneratorIncomeAffectorsOriginal = {
brood: -0.001,
},
},
+ roughSand: {
+ multiply: {
+ shark: -0.005,
+ ray: -0.005,
+ crab: -0.005,
+ mudskipper: -0.005,
+ nurse: -0.005,
+ scientist: -0.005,
+ maker: -0.005,
+ laser: -0.005,
+ brood: -0.005,
+ stabilizer: -0.005,
+ burrow: -0.005,
+ mentor: -0.005,
+ },
+ exponentiate: {
+ coral: -0.05,
+ seagrass: -0.05,
+ },
+ },
tar: {
exponentiate: {
fishMachine: 0.99,
@@ -1207,6 +1437,32 @@ SharkGame.GeneratorIncomeAffectorsOriginal = {
fishMachine: 0.01,
},
},
+ mentor: {
+ multiply: {
+ coralCollector: 0.05,
+ hardbarkSmith: 0.05,
+ driftwoodSnarer: 0.05,
+ shoreQueller: 0.05,
+ },
+ },
+ gatemasterPuppet: {
+ multiply: {
+ coralCollector: 15,
+ hardbarkSmith: 15,
+ driftwoodSnarer: 15,
+ shoreQueller: 15,
+ },
+ },
+ exchangeStation: {
+ multiply: {
+ mudskipper: 0.75,
+ caracara: 0.75,
+ shark: 0.75,
+ ray: 0.75,
+ crab: 0.75,
+ retrievalDuo: 1.75,
+ },
+ },
// cool tooltip test crab
/* crab: {
exponentiate: {
@@ -1265,6 +1521,11 @@ SharkGame.ResourceIncomeAffectorsOriginal = {
algae: 0.02,
},
},
+ retrievalDuo: {
+ multiply: {
+ driftwood: 0.05,
+ },
+ },
/* shoveler: {
multiply: {
sand: 0.05,
@@ -1301,7 +1562,7 @@ SharkGame.ResourceCategories = {
harmful: {
name: "Harmful",
disposeMessage: ["Oh you'd like that, wouldn't you."],
- resources: ["tar", "ice"],
+ resources: ["tar", "ice", "roughSand"],
},
scientific: {
name: "Science",
@@ -1319,6 +1580,7 @@ SharkGame.ResourceCategories = {
"chart",
"map",
// "knowledge",
+ "intel",
],
},
magical: {
@@ -1345,7 +1607,7 @@ SharkGame.ResourceCategories = {
"Was it something they said?",
"Are you happy with what you've done?",
],
- resources: ["shark", "ray", "crab", "shrimp", "lobster", "dolphin", "whale", "chimaera", "octopus", "eel", "squid", "urchin", "billfish"],
+ resources: ["shark", "ray", "crab", "shrimp", "lobster", "dolphin", "whale", "chimaera", "octopus", "eel", "squid", "urchin", "billfish", "mudskipper", "caracara"],
},
animals: {
name: "Animals",
@@ -1380,6 +1642,7 @@ SharkGame.ResourceCategories = {
"seagrass",
// "stone",
// "gravel",
+ "driftwood",
],
},
processed: {
@@ -1392,7 +1655,7 @@ SharkGame.ResourceCategories = {
"The foundation of a modern shark frenzy, perhaps, but also sort of taking up all the space.",
"Let's hope we don't regret it.",
],
- resources: ["sharkonium", "coralglass", "delphinium", "spronge", "calcinium", "porite", "ancientPart", "junk", "filter"],
+ resources: ["sharkonium", "coralglass", "delphinium", "spronge", "calcinium", "porite", "ancientPart", "junk", "filter", "hardbark"],
},
breeders: {
name: "Breeders",
@@ -1403,7 +1666,7 @@ SharkGame.ResourceCategories = {
"You sure you want to disrupt this accelerated growth curve?",
"Back to a simpler life, maybe.",
],
- resources: ["nurse", "maker", "brood", "queen", "berrier", "biologist", "pit", "collective", "spawner", "billfishPair"],
+ resources: ["nurse", "maker", "brood", "queen", "berrier", "biologist", "pit", "collective", "spawner", "billfishPair", "burrow"],
},
specialists: {
name: "Specialists",
@@ -1442,7 +1705,12 @@ SharkGame.ResourceCategories = {
// "prospector",
// "shoveler",
// "miller",
- // "rockLobster",
+ // "rockLobster"
+ "stabilizer",
+ "mentor",
+ "retrievalDuo",
+ "connoisseur",
+ "stabilizer",
],
},
machines: {
@@ -1474,6 +1742,13 @@ SharkGame.ResourceCategories = {
// "coalescer",
// "crusher",
// "pulverizer",
+ "coralCollector",
+ "hardbarkSmith",
+ "shoreQueller",
+ "driftwoodSnarer",
+ "safeholdSentinel",
+ "barrageBraver",
+ "gatemasterPuppet",
],
},
places: {
@@ -1484,7 +1759,7 @@ SharkGame.ResourceCategories = {
"The location has been barred.",
"Alright everyone, pack it up! Get outta here!",
],
- resources: ["spongeFarm", "coralFarm"],
+ resources: ["spongeFarm", "coralFarm", "seagrassFarm", "exchangeStation", "receiverNode"],
},
special: {
name: "Special",
@@ -1551,6 +1826,18 @@ SharkGame.InternalCategories = {
name: "Billfish",
resources: ["billfish", "billfishExplorer", "billfishMechanic", "billfishPair"],
},
+ mudskippers: {
+ name: "Mudskippers",
+ resources: ["mudskipper", "burrow", "mentor"],
+ },
+ caracaras: {
+ name: "Caracaras",
+ resources: ["caracara", "retrievalDuo", "connoisseur"],
+ },
+ /* starfishes: {
+ name: "Starfish",
+ resources: ["starfish"],
+ }, */
sharkmachines: {
name: "Shark Machines",
resources: ["sharkonium", "fishMachine", "sandDigger", "crystalMiner", "skimmer", "autoTransmuter"],
@@ -1567,6 +1854,10 @@ SharkGame.InternalCategories = {
name: "Lobster Machines",
resources: ["calcinium", "seabedStripper", "calciniumConverter", "clamScavenger"],
},
+ mudskipperpuppets: {
+ name: "Mudskipper Puppets",
+ resources: ["hardbark", "coralPicker", "hardbarkSmith", "driftwoodSnarer", "shoreQueller", "safeholdSentinel", "barrageBraver", "gatemasterPuppet"],
+ },
basicmaterials: {
resources: ["fish", "sand", "crystal", "science", "junk"],
},
diff --git a/js/data/upgrades.js b/js/data/upgrades.js
index 826c7463..cb20e558 100644
--- a/js/data/upgrades.js
+++ b/js/data/upgrades.js
@@ -3953,7 +3953,7 @@ SharkGame.Upgrades = {
researchedMessage:
"We refuse to accept the narrative the billfish are pushing on us, but the scientists are adamant. They say they are literally just fish with big noses.",
effectDesc:
- "Billfish are four times more effective, and billfish pairs are available. I swear, our scientists must be losing it - these things are not fish, surely.",
+ "Billfish are four times more effective, and billfish pairs are available. I swear, our scientists must be losing it - these things are not fish, surely.", // says the also large fish
cost: {
science: 4000,
fish: 20000,
@@ -4527,4 +4527,679 @@ SharkGame.Upgrades = {
},
},
},
+ shore: {
+ template: {
+ name: "Upgrade Template",
+ desc: "This is the text in the lab button thingy...",
+ researchedMessage: "...and this is the one that appears in the log!",
+ effectDesc: "This one, however, is the text that goes next to the buttons.",
+ cost: { },
+ required: { },
+ effect: { },
+ },
+ murkAssessment: {
+ name: "Murk Assessment",
+ desc: "What is that sandy cloud? What does it do? We should go inside it.",
+ researchedMessage: "It's a sandstorm. The one where the rough grains of sand come from. To say it's torture is an understatement.",
+ effectDesc: "If we ever escape this... this barrage, we'll never go near it again.",
+ cost: {
+ shark: 10,
+ ray: 10,
+ crab: 5,
+ },
+ required: {
+ seen: ["sand", "roughSand"],
+ },
+ effect: {
+ resourceBoost: {
+ roughSand: 100,
+ },
+ },
+ },
+ fleeBarrage: {
+ name: "Flee Barrage",
+ desc: "We need to go back. This hurts.",
+ researchedMessage: "No. No, no, no, no, no. It's gone. It's covered.",
+ effectDesc: "Our previous location has been consumed by the sandstorm.",
+ cost: {
+ shark: 3,
+ ray: 3,
+ scientist: 3,
+ },
+ required: {
+ upgrades: ["murkAssessment"],
+ },
+ effect: {},
+ },
+ justPushFurtherLol: {
+ name: "Our Only Choice...",
+ desc: "...is to move forward.",
+ researchedMessage: "It worked. It worked. I can't believe it.",
+ effectDesc: "We burst into a clear space. It's wide, but disappointingly narrow.",
+ cost: {
+ scientist: 1,
+ shark: 1,
+ ray: 1,
+ },
+ required: {
+ upgrades: ["fleeBarrage"],
+ },
+ effect: {
+ resourceBoost: {
+ roughSand: -100,
+ },
+ events: ["shoreGiveCoral", "shoreGiveSeagrass"],
+ },
+ },
+ crabDisappearance: {
+ name: "Crab Disappearance",
+ desc: "The crabs keep on disappearing from sight, only to seemingly come back safe with more crystals. What's going on?",
+ researchedMessage: "We… we, uh… what’s the ‘beyond’?",
+ effectDesc:
+ "Crabs are now twice as effective at finding crystals - and they retrieve lots anyway.",
+ cost: {
+ science: 115,
+ crab: 5,
+ },
+ required: {
+ upgrades: ["crystalContainer", "seabedGeology"],
+ seen: ["crab", "crystal"],
+ },
+ effect: {
+ incomeMultiplier: {
+ crab: 2,
+ },
+ },
+ },
+ driftwoodAnalysis: {
+ name: "Driftwood Analysis",
+ desc: "These brittle brown things keep floating in the water above us. What are they?",
+ researchedMessage: "Apparently this ‘driftwood’ comes from ABOVE THE OCEAN. Is that even a place?? Is that why it’s so flaky???",
+ effectDesc: "Crabs can now retrieve driftwood on their excursions to the beyond.",
+ cost: {
+ science: 25,
+ },
+ required: {
+ upgrades: ["crabDisappearance"],
+ },
+ effect: {
+ addDriftwoodIncome: {
+ crab: 2,
+ },
+ },
+ },
+ mudskipperContact: {
+ name: "Mudskipper Contact",
+ desc: "So, they’re fish, but the one thing that stops us from eating them is that they can SURVIVE ABOVE WATER.",
+ researchedMessage: "After stating our business, the mudskippers hesitated for a while, before saying… we still don’t know what they mean.",
+ effectDesc:
+ "Mudskippers can now be recruited to retrieve objects from above the surface, as long as they stay moist.",
+ cost: {
+ science: 150,
+ driftwood: 10,
+ },
+ required: {
+ upgrades: ["driftwoodAnalysis"],
+ },
+ },
+ crystalBite: {
+ name: "Crystal Bite-Gear",
+ desc: "Bite the crystals we have into something to help biting!",
+ researchedMessage: "Weird teeth-wear has been developed, and sharks can now catch fish better as a result.",
+ effectDesc: "Sharks are twice as effective with their new biting gear. Turns out they work better outside the mouth!",
+ cost: {
+ science: 50,
+ fish: 100,
+ crystal: 5,
+ },
+ required: {
+ upgrades: ["justPushFurtherLol"],
+ },
+ effect: {
+ incomeMultiplier: {
+ shark: 2,
+ },
+ },
+ },
+ crystalSpade: {
+ name: "Crystal Spades",
+ desc: "Fashion strange harness-tools for the rays.",
+ researchedMessage: "The rays can now bother the sand more effectively, and dig up more sand now!",
+ effectDesc: "Rays are twice as effective with their specially adapted digging tools.",
+ cost: {
+ science: 50,
+ sand: 500,
+ crystal: 5,
+ },
+ required: {
+ upgrades: ["justPushFurtherLol"],
+ },
+ effect: {
+ incomeMultiplier: {
+ ray: 2,
+ },
+ },
+ },
+ crystalScoop: {
+ name: "Crystal Scoops",
+ desc: "Design funny looking holdy-things for the crabs!",
+ researchedMessage: "Our crabs used to brush aside the sand to look for crystals - now they can scoop it! Scoopy scoop.",
+ effectDesc:
+ "Crabs are twice as effective at digging for crystals. The crabs are overjoyed to hold these tiny tools with their tiny claws.",
+ cost: {
+ science: 50,
+ crystal: 10,
+ },
+ required: {
+ upgrades: ["justPushFurtherLol"],
+ },
+ effect: {
+ incomeMultiplier: {
+ crab: 2,
+ },
+ },
+ },
+ crystalContainer: {
+ name: "Crystal Containers",
+ desc: "Make weird bottle things from the crystals we have. Maybe useful??",
+ researchedMessage: "Well, things can go into these containers that aren't water. This makes science easier!",
+ effectDesc: "Scientists are twice as effective at making with the science.",
+ cost: {
+ science: 100,
+ crystal: 50,
+ },
+ required: {
+ upgrades: ["justPushFurtherLol"],
+ },
+ effect: {
+ incomeMultiplier: {
+ scientist: 2,
+ },
+ },
+ },
+ crystalArmour: {
+ name: "Crystal Armour",
+ desc: "Forge some armour for the useful fish.",
+ researchedMessage: "Mudskippers can work for us five times faster.",
+ effectDesc: "With the new moisture-retaining armour, mudskippers work five times faster.",
+ cost: {
+ science: 250,
+ crystal: 75,
+ },
+ required: {
+ upgrades: ["justPushFurtherLol", "mudskipperContact"],
+ },
+ effect: {
+ incomeMultiplier: {
+ mudskipper: 5,
+ },
+ },
+ }, // gosh that's a lot of crystals eh --ThreeEels
+ statsDiscovery: {
+ name: "Storage Caverns",
+ desc: "It's about time to start moving the stores we have to a better place. We've found one but it needs setting up.",
+ researchedMessage:
+ "All the goods we've acquired are now being stored and itemised in a mostly flooded cavern system. We're organized! Sort of!",
+ effectDesc: "By storing things in a centralised location, we now finally have an idea of what we're doing...sort of.",
+ cost: {
+ science: 150,
+ },
+ required: {
+ upgrades: ["crystalContainer"],
+ },
+ },
+ underwaterChemistry: {
+ name: "Underwater Chemistry",
+ desc: "With the weird bottles, we can now put things and other things into them and see what happens.",
+ researchedMessage: "Well, nothing useful was determined, but if we keep on doing it we make tremendous leaps for science!",
+ effectDesc: "Scientists are twice as effective with their new chemical insights.",
+ cost: {
+ science: 200,
+ crystal: 50,
+ },
+ required: {
+ upgrades: ["crystalContainer"],
+ },
+ effect: {
+ incomeMultiplier: {
+ scientist: 2,
+ },
+ },
+ },
+ seabedGeology: {
+ name: "Seabed Geology",
+ desc: "Study the bottom of the ocean to determine the rich, deep, juicy secrets it contains.",
+ researchedMessage: "Not only did we find a whole bunch of weird things, the rays found that there was more sand!",
+ effectDesc: "Rays are twice as effective with their understanding of the seabed and its varieties of sediment.",
+ cost: {
+ science: 250,
+ sand: 750,
+ },
+ required: {
+ upgrades: ["crystalContainer"],
+ },
+ effect: {
+ incomeMultiplier: {
+ ray: 2,
+ },
+ },
+ },
+ thermalVents: {
+ name: "Thermal Vents",
+ desc: "Investigate the boiling vents that just seem to keep on heating things up.",
+ researchedMessage: "This is a wondrous, unending source of heat! Something good must come from this.",
+ effectDesc: "A power source for future technologies has been discovered.",
+ cost: {
+ science: 300,
+ sand: 1000,
+ },
+ required: {
+ upgrades: ["seabedGeology"],
+ },
+ },
+ laserRays: {
+ name: "Laser Rays",
+ desc: "Using arcane shark mystery science, capture the heat of the vents for use by rays.",
+ researchedMessage: "The rays can now be granted gear that will let them fuse sand into crystal! Future!",
+ effectDesc: "Laser rays can now be geared up to burn the very sand to glassy crystal.",
+ cost: {
+ science: 100,
+ sand: 5000,
+ crystal: 100,
+ },
+ required: {
+ upgrades: ["thermalVents"],
+ },
+ },
+ transmutation: {
+ name: "Transmutation",
+ desc: "By heating things up and doing science things to them, maybe new things can be made!",
+ researchedMessage: "A new form of material has been discovered! It has been named after its discoverer, Dr. Sharkonium.",
+ effectDesc: "Enables transmutation of some random junk we have lying around into sharkonium, material of the future.",
+ cost: {
+ science: 4000,
+ crystal: 1500,
+ sand: 15000,
+ },
+ required: {
+ upgrades: ["thermalVents", "underwaterChemistry"],
+ },
+ },
+ automation: {
+ name: "Automation",
+ desc: "Using sharkonium, we can make things to do things so we don't have to do the things!",
+ researchedMessage: "Now we don't have to do all the work, machines can do it for us! Future!!",
+ effectDesc: "Machines can be built to supplement population duties. This is efficient.",
+ cost: {
+ science: 3500,
+ sharkonium: 250,
+ },
+ required: {
+ upgrades: ["transmutation"],
+ },
+ },
+ engineering: {
+ name: "Engineering",
+ desc: "The machines sort of suck. Let's make them better by learning how!",
+ researchedMessage: "The machines are twice as good now! We've figured out new designs in the process, too!",
+ effectDesc: "Machines are twice as effective. Auto-transmuters are now possible to create.",
+ cost: {
+ science: 5000,
+ sharkonium: 1750,
+ },
+ required: {
+ upgrades: ["automation"],
+ seen: ["fishMachine", "crystalMiner", "sandDigger"],
+ },
+ effect: {
+ incomeMultiplier: {
+ crystalMiner: 2,
+ fishMachine: 2,
+ sandDigger: 2,
+ },
+ },
+ },
+ recyclerDiscovery: {
+ name: "Recycler",
+ desc: "Check out the huge structure that consumed some of our fish and spat out some goo.",
+ researchedMessage:
+ "Well this thing is frankly terrifying. I wouldn't swim anywhere near the input holes if I were you. Maybe it'll help though!",
+ effectDesc: "The machine allows recycling of materials by virtue of a horrifying mechanical maw that consumes all that ventures near it. Future?",
+ cost: {
+ science: 75000,
+ sharkonium: 25000,
+ },
+ required: {
+ upgrades: ["engineering", "farExploration"],
+ },
+ },
+ iterativeDesign: {
+ name: "Iterative Design",
+ desc: "The machines are useful, but they could be better. Let's build new ones, from scratch!",
+ researchedMessage: "As it turns out, science is about learning from mistakes, or so the scientists say. About their own mistakes.",
+ effectDesc: "All shark machines run twice as fast. Again! Scientists are 4 times faster as well.",
+ cost: {
+ science: 15000,
+ sharkonium: 17500,
+ },
+ required: {
+ upgrades: ["engineering", "recyclerDiscovery"],
+ },
+ effect: {
+ incomeMultiplier: {
+ crystalMiner: 2,
+ fishMachine: 2,
+ sandDigger: 2,
+ autoTransmuter: 2,
+ skimmer: 2,
+ heater: 2,
+ scientist: 4,
+ },
+ },
+ },
+ superprocessing: {
+ name: "Superprocessing",
+ desc: "The recycler wasn't really meant for millions of fish at once. Seeing as that transaction is fairly common, we should probably do something about it.",
+ researchedMessage: "Eureka! If we make the big things bigger, and the grinders grindier, we can process way more material at once!",
+ effectDesc:
+ "The recycler's efficiency only starts dropping at 10 million material inserted at once, instead of 100 thousand. The base efficiency is now 100%.",
+ cost: {
+ science: 1e6,
+ sharkonium: 5e5,
+ junk: 1e6,
+ },
+ required: {
+ upgrades: ["iterativeDesign", "recyclerDiscovery"],
+ },
+ },
+ sunObservation: {
+ name: "Sun Observation",
+ desc: "We must determine what is with the weird glare on the surface of the water.",
+ researchedMessage: "Shark science has discovered the sun! It has also discovered that looking directly into the sun hurts.",
+ effectDesc:
+ "Stabilizer crabs are twice as effective. Is a suns worth many fish? We can see a sun, but where is it really? And what is it made of?",
+ cost: {
+ science: 7500,
+ },
+ required: {
+ upgrades: ["agriculture"],
+ },
+ effect: {
+ incomeMultiplier: {
+ stabilizer: 2,
+ },
+ },
+ },
+ biology: {
+ name: "Biology",
+ desc: "What is a shark? What is inside a shark, except for large amounts of fish?",
+ researchedMessage: "With a new understanding of their own biology, sharks can now specialise in the manufacture of new sharks.",
+ effectDesc:
+ "Sharks are twice as effective, and nurse sharks can be bought. Did you know shark eggs don't actually form just because a shark wills them to exist?",
+ cost: {
+ science: 600,
+ },
+ required: {
+ upgrades: ["underwaterChemistry", "agriculture"],
+ },
+ effect: {
+ incomeMultiplier: {
+ shark: 2,
+ },
+ },
+ },
+ crabBiology: {
+ name: "Crab Biology",
+ desc: "Crabs are a mystery. They keep to themselves and dig up crystals or tear up grass. What is even up with that? What ARE crabs??",
+ researchedMessage:
+ "It turns out crabs are friendly crustaceans that have revealed to the sharks the secrets of crab generation. It involves eggs, or something. Squirmy eggs.",
+ effectDesc:
+ "Crabs and stabilizer crabs are four and two times as effective, respectively, and crab broods are available. Crabs are alright but they are also sort of terrifying and weird. Good thing they're on our side!",
+ cost: {
+ science: 3500,
+ seagrass: 1750,
+ },
+ required: {
+ upgrades: ["biology"],
+ },
+ effect: {
+ incomeMultiplier: {
+ crab: 4,
+ stabilizer: 2,
+ },
+ },
+ },
+ rayBiology: {
+ name: "Ray Biology",
+ desc: "Though kindred to the sharks, we know so little about the rays. If only we could fix this. We need to bait a sand trap.",
+ researchedMessage:
+ "Apparently we could have just asked. We learned how rays make more rays. It's kinda similar to sharks, really, but rays.",
+ effectDesc:
+ "Rays are four times as effective, and ray makers are available. We may never repair the shark-ray relations to their former state after how awkward this whole affair was.",
+ cost: {
+ science: 8000,
+ sand: 25000,
+ },
+ required: {
+ upgrades: ["biology"],
+ },
+ effect: {
+ incomeMultiplier: {
+ ray: 4,
+ },
+ },
+ },
+ agriculture: {
+ name: "Stabilization",
+ desc: "The rays and crabs have noticed something strange about the sand around these colourful growths...",
+ researchedMessage: "The mudskippers suggested something from their oral tales called a 'farm'. It's... surprisingly useful.",
+ effectDesc: "Seagrass farms and coral farms are now available.",
+ cost: {
+ sand: 5000,
+ seagrass: 15,
+ coral: 15,
+ },
+ required: {
+ upgrades: ["seabedGeology"],
+ seen: ["sand", "roughSand"],
+ },
+ }, // prev name: stabilization
+ xenobiology: {
+ name: "Xenobiology",
+ desc: "This seagrass stuff is mostly just green or whatever, but what are these THINGS growing on it?",
+ researchedMessage: "Flowers! What does that even mean!? Further research required. It could be such a benefit for science!",
+ effectDesc: "We can now dissect seagrass flowers to further the cause of science.",
+ cost: {
+ science: 1250,
+ seagrass: 500,
+ },
+ required: {
+ upgrades: ["agriculture"],
+ seen: ["seagrass"],
+ },
+ },
+ mudskipperBurrowing: {
+ name: "Mudskipper Burrowing",
+ desc: "The mudskippers want to tell us something. We will, of course, heed.",
+ researchedMessage: "Mudskipper burrows are now a thing. They do a lot of flailing in it. But they're happier now.",
+ effectDesc: "Mudskipper burrows can be dug. Now happier, mudskippers work two times faster.",
+ cost: { fish: 5 },
+ required: {
+ upgrades: ["mudskipperContact", "seabedGeology"],
+ },
+ effect: {
+ incomeMultiplier: {
+ mudskipper: 2,
+ },
+ },
+ },
+ hardbarkCoating: {
+ name: "Hardbark Coating",
+ desc: "Apparently, our sharkonium may have been mentioned in mudskipper tale.",
+ researchedMessage: "Hardbark can now be made... it has a use, but the 'models' aren't 'ready'.",
+ effectDesc: "Hardbark coating is now possible. Their use... not yet.",
+ cost: {
+ science: 1500,
+ hardbark: 25,
+ },
+ required: {
+ upgrades: ["driftwoodAnalysis", "automation"],
+ seen: ["driftwood", "crystal"],
+ },
+ },
+ puppetAssembly: {
+ name: "Puppet Assembly",
+ desc: "The mudskippers say they've refined their models.",
+ researchedMessage: "Mudskipper puppets can be piloted! They insist on calling them 'puppets', though...",
+ effectDesc: "Mudskipper puppets can be constructed and piloted.",
+ cost: {
+ science: 1500,
+ hardbark: 25,
+ },
+ required: {
+ upgrades: ["driftwoodAnalysis", "hardbarkCoating"],
+ seen: ["laser"],
+ },
+ },
+ fixModels: {
+ name: "Fix Models",
+ desc: "They're not done???",
+ researchedMessage: "Well... they've been 'refined'.",
+ effectDesc: "Mudskipper puppets are five times as effective.",
+ cost: {
+ hardbark: 500,
+ science: 15000,
+ },
+ required: {
+ upgrades: ["puppetAssembly"],
+ },
+ effect: {
+ incomeMultiplier: {
+ coralCollector: 5,
+ seagrassSnarer: 5,
+ shoreQueller: 5,
+ hardbarkSmith: 5,
+ },
+ },
+ },
+ puppetTeaching: {
+ name: "Puppet Teaching",
+ desc: "The mudskippers (again) have something from their tales that could help with the puppets.",
+ researchedMessage: "Mudskippers can now be trained (for some reason) and become 'mentors'. Seems like a waste of science to me.",
+ effectDesc: "Puppet mentors can be trained.",
+ cost: {
+ mudskipper: 500,
+ science: 15000,
+ },
+ required: {
+ upgrades: ["fixModels"],
+ },
+ effect: {
+ incomeMultiplier: {
+ coralCollector: 5,
+ seagrassSnarer: 5,
+ shoreQueller: 5,
+ hardbarkSmith: 5,
+ },
+ },
+ },
+ exploration: {
+ name: "Tunnel Expedition",
+ desc: "Some of the frenzy has noticed something strange in the eastern regions.",
+ researchedMessage: "It's a tunnel in the sand wall. And it led to a massive latch at the end of it.",
+ effectDesc: "We have found a place where we can finally not get bombarded with rough sand. But what's beyond it?",
+ cost: { fish: 5 },
+ required: { upgrades: ["puppetTeaching"] },
+ effect: { },
+ }, // prev name: tunnelExpedition
+ farExploration: {
+ name: "Sentinel Repairing",
+ desc: "So, the thing above the latch. You know how its parts are scattered across the tunnel...?",
+ researchedMessage: "We managed to repair the sentinel. As soon as it started, it opened the latch for us.",
+ effectDesc: "The latch is open. We surged forth into the safehold.",
+ cost: { fish: 5 },
+ required: { upgrades: ["exploration"] },
+ effect: { },
+ }, // prev name: thingyRepairing
+ raiderTruce: {
+ name: "Raider Truce",
+ desc: "Someone keeps raiding us!!!",
+ researchedMessage: "We held up some fish as an offering. They were snatched from us, and... they came.",
+ effectDesc: "The mudskippers (and crabs) told us the 'raiders' are named caracaras, and are apparently very prideful.",
+ cost: { fish: 5 },
+ required: { upgrades: ["farExploration"] },
+ effect: { },
+ },
+ crystalTalons: {
+ name: "Crystal Talons",
+ desc: "The caracaras say that our 'seaborn' crystals are very good at breaking abovewater crystals.",
+ researchedMessage: "With their crystal talons, caracaras work way more efficiently now.",
+ effectDesc: "Their faces seemed expressionless. But their eyes were the same the sharks' with their bite-gear.",
+ cost: { fish: 5 },
+ required: { upgrades: ["raiderTruce"] },
+ effect: {
+ incomeBoost: {
+ caracara: 5,
+ },
+ },
+ },
+ beyondwalkerPairing: {
+ name: "Beyondwalker Pairing",
+ desc: "This is the text in the lab button thingy...",
+ researchedMessage: "...and this is the text that goes next to the buttons!",
+ effectDesc: "This one, however, appears in the log.",
+ cost: { fish: 5 },
+ required: { upgrades: ["crystalTalons"] },
+ effect: { },
+ },
+ platformExpansion: {
+ name: "Platform Expansion",
+ desc: "The frenzy that gathers around the retrieval teams' platforms do rather well...",
+ researchedMessage: "...and this is the text that goes next to the buttons!",
+ effectDesc: "This one, however, appears in the log.",
+ cost: { fish: 5 },
+ required: { upgrades: ["beyondwalkerPairing"] },
+ effect: { },
+ },
+ seagrassAttention: {
+ name: "Seagrass Attention",
+ desc: "This is the text in the lab button thingy...",
+ researchedMessage: "...and this is the text that goes next to the buttons!",
+ effectDesc: "This one, however, appears in the log.",
+ cost: { fish: 5, seagrass: 5 },
+ required: { upgrades: ["raiderTruce"] },
+ effect: { },
+ },
+ taleHeeding: {
+ name: "Tale Heeding",
+ desc: "This is the text in the lab button thingy...",
+ researchedMessage: "...and this is the text that goes next to the buttons!",
+ effectDesc: "This one, however, appears in the log.",
+ cost: { fish: 5 },
+ required: { upgrades: ["platformExpansion"] },
+ effect: { },
+ },
+ intelTowers: {
+ name: "Intel Towers",
+ desc: "This is the text in the lab button thingy...",
+ researchedMessage: "...and this is the text that goes next to the buttons!",
+ effectDesc: "This one, however, appears in the log.",
+ cost: { fish: 5 },
+ required: { upgrades: ["taleHeeding"] },
+ effect: { },
+ },
+ // firstLog: {},
+ // secondLog: {},
+ // thirdLog: {},
+ gateDiscovery: {
+ name: "Gatemaster Scavenging",
+ desc: "This is the text in the lab button thingy...",
+ researchedMessage: "...and this is the text that goes next to the buttons!",
+ effectDesc: "This one, however, appears in the log.",
+ cost: { fish: 5 },
+ required: { upgrades: ["intelTowers"] },
+ effect: { },
+ },
+ // fullStability: {},
+ },
};
diff --git a/js/data/worldtypes.js b/js/data/worldtypes.js
index 1e26e359..084a6e64 100644
--- a/js/data/worldtypes.js
+++ b/js/data/worldtypes.js
@@ -355,6 +355,58 @@ SharkGame.WorldTypes = {
sharkonium: 1,
},
},
+ shore: { // please note this worldtype code is very much WIP
+ name: "Shore",
+ vagueDesc: "Feels shallow.",
+ desc: "A shallow, lapping beachfront.",
+ shortDesc: "small sandy",
+ foresight: {
+ vagueLongDesc: "This place is so shallow.",
+ longDesc: "A lapping, sandy ocean, creeping upon the shores.",
+ missing: ["kelp", "seaApple", "planter"],
+ present: ["mudskipper", "driftwood", "hardbark", "coral", "seagrass", "caracara"],
+ tip: "Not all is as it seems. Respect the brown fish that survive the beyond.",
+ },
+ entry: "You enter a low-strung sandy sea, just over tall enough for you to fit. It's clear water on all sides, except for behind you...",
+ style: "shore",
+ includedResources: [
+ "basics",
+ "coral",
+ "driftwood",
+ "intel",
+ "seagrass",
+ "sharks",
+ "rays",
+ "crab",
+ "brood",
+ "stabilizer",
+ "mudskippers",
+ "caracaras",
+ "basicmaterials",
+ "sharkmachines",
+ "mudskipperpuppets",
+ "coralFarm",
+ "seagrassFarm",
+ "exchangeStation",
+ "receiverNode",
+ ],
+ absentResources: ["kelp", "seaApple"],
+ modifiers: [
+ { type: "multiplier", modifier: "planetaryIncomeMultiplier", resource: "crab", amount: 1 },
+ { type: "multiplier", modifier: "planetaryResourceBoost", resource: "sand", amount: 2.5 },
+ { type: "multiplier", modifier: "planetaryIncome", resource: "roughSand", amount: 1 },
+ ],
+ gateType: "slots",
+ gateCosts: {
+ fish: 1e5,
+ crystal: 2e5,
+ driftwood: 5e3,
+ coral: 3e5,
+ seagrass: 2e5,
+ hardbark: 2e5,
+ gatemasterPuppet: 1,
+ },
+ },
stone: {
name: "Stone",
desc: "A world unweathered by ocean currents. It has no natural sand.",
diff --git a/js/facts.js b/js/facts.js
index d806c4f5..8575ed85 100644
--- a/js/facts.js
+++ b/js/facts.js
@@ -93,6 +93,9 @@ SharkGame.FunFacts = {
tempestuous: {
messages: ["'Tempestuous' does not mean stormy. It means emotionally turbulent. But it's close enough."],
},
+ shore: {
+ messages: [],
+ },
},
resourceBased: {
@@ -185,6 +188,18 @@ SharkGame.FunFacts = {
"Swordfish are not a group of fish, they are a single species: Xiphias gladius.",
"Swordfish, spearfish, and marlins are part of a larger group of fish called billfish (the group featured in this game), of which there are only 12 species.",
],
+ mudskipper: [
+ "Unlike sharks and rays, mudskippers have bones.",
+ "The mudskipper species Periophthalmus Modestus takes care of their eggs in air pockets inside mud burrows, and floods the burrow to hatch them.",
+ "Some species of muskipper eat debris, making them detritivores, while other species are carnivores.",
+ "After a mudskipper lays their eggs, the mother normally leaves them to be guarded by the father.",
+ "Much like amphibians, mudskippers can breathe through their skin when wet.",
+ ],
+ caracara: [
+ "Yes, I know they're birds. It was suggested that they could be replaced with starfish, but people didn't like that.",
+ "There are multiple species of caracara in real life, but the only one here is the striated caracara, because it's the smartest.",
+ "It is is pronounced KA-ruh-KAH-ruh, not KA-ruh-KA-ruh.",
+ ],
seaApple: [
"Sea apples are a type of sea cucumber. They feed on debris and detritus.",
"Sea apples are in no way actually attracted to kelp. The apples in this game are weird.",
@@ -219,6 +234,13 @@ SharkGame.FunFacts = {
"Calcinium is a very versatile material. Cooled quickly, it is a brittle ceramic - but cooled slowly, it's a rigid plastic. The lobsters make use of both methods.",
"While calcinium looks like meringue, it most probably doesn't taste anything like.",
],
+ hardbark: [
+ "To a human, hardbark looks like a dark blue stick covered in a thick layer of light-blue-tinted resin or glass. To the frenzy, it looks like a shiny rod of wood.",
+ "Hardbark is actually quite strong, courtesy of the crystal it's coated in. It clinks like glass.",
+ "No, hardbark does not taste like a blue raspberry lollipop, and NO, YOU CANNOT EAT IT--",
+ "You. Do. Not. Know. HOW MANY TYPOS. I have made. Trying to spell. Hardbark.",
+ "You might be wondering why the stick doesn't appear brown. That's because its developer couldn't find a mix between brown and light blue.",
+ ],
laser: [
"Sharks with lasers were overdone, okay? 'Laser ray' is a pun, so it's obviously superior.",
"Sand probably does not actually fuse into magic crystals. Unless you count glass.",
@@ -262,6 +284,12 @@ SharkGame.FunFacts = {
"In the real world, the ocean floor is not always sand. The deep ocean usually has much finer sediment.",
"Sand gets transported very long distances by ocean currents. The longer it takes to travel to its destination beach, the finer the sand will be.",
],
+ driftwood: [
+ "According to Norse mythology, the first two humans were made out of driftwood. Whatever Norse is. And humans.",
+ "The frenzy never burns driftwood as fuel, as the combustion releases toxic and long-lasting substances into the air.",
+ "Driftwood is often used by several animals, both aquatic and terrestrial, as shelter and food.",
+ "In the beyond, driftwood can be found in abundance as simple 'wood', but only driftwood has the right composition for hardbark.", // according to the caracaras.
+ ],
ancientPart: [
"What do they do? We still aren't sure.",
"These parts would probably remind a person of train parts. To a shark, they just look like nothing.",
diff --git a/js/gateway.js b/js/gateway.js
index 090f7c23..a6efe57f 100644
--- a/js/gateway.js
+++ b/js/gateway.js
@@ -6,7 +6,7 @@ SharkGame.Gateway = {
transitioning: false,
selectedWorld: "",
- allowedWorlds: ["abandoned", "haven", "frigid", "shrouded", "marine", "volcanic", "tempestuous"],
+ allowedWorlds: ["abandoned", "haven", "frigid", "shrouded", "marine", "volcanic", "tempestuous", "shore"],
completedWorlds: [],
@@ -1228,6 +1228,9 @@ SharkGame.Gateway.PresenceFeelings = {
algae: "something slimy?",
seagrass: "some plants?",
billfish: "resolute survivalists?",
+ driftwood: "floaty things?",
+ mudskipper: "unusual prey?",
+ caracara: "otherworldly soarers?",
};
SharkGame.Gateway.Messages = {
@@ -1250,7 +1253,7 @@ SharkGame.Gateway.Messages = {
"How quickly do you travel through worlds?",
"You are becoming familiar with this.",
"Back so soon?",
- "Welcome back, to the space between spaces.",
+ "Welcome back, to the space between spaces.", // THE WORLD BETWEEN WORLDS FROM STAR WARS NO WAY --ThreeEels
],
},
{
@@ -1338,6 +1341,15 @@ SharkGame.Gateway.Messages = {
"Do you wonder who the squid look up to?",
"Do you wonder who built the great machine?",
],
+ shore: [
+ "Who do you think the mudskippers told stories about?",
+ "Do you wonder who built the safehold?",
+ "How did you find the birds? Strange? Prideful? Or... kindred?",
+ "The puppets... do you see what they do when no-one is looking?",
+ "The mudskippers were not as safe before you came.",
+ "Who do you think appeared in caracara legends?",
+ "You have proven endurance by outlasting the torturous storm.",
+ ],
},
loss: [
"No matter. You will succeed in the future, no doubt.",
diff --git a/js/main.js b/js/main.js
index a837d090..c470ffa0 100644
--- a/js/main.js
+++ b/js/main.js
@@ -104,12 +104,15 @@ $.extend(SharkGame, {
"Curse of the Shark",
"Have I Played These Sharks Before?",
"Hollow Shark: Shark Song",
+ "Last Shark Standing",
+ "Sharkjago: Masters of Sharkjitsu",
+ "Shark: Galactic Ad-shark-tures", // this was a bad spin on 'Spore: Galactic Adventures' --ThreeEels
],
GAME_NAME: null,
ACTUAL_GAME_NAME: "Shark Game",
VERSION: "20250127a",
ORIGINAL_VERSION: 0.71,
- VERSION_NAME: "The Tempetuous Update",
+ VERSION_NAME: "The Shore Update", // Put "The Chaotic Shore Update" if both oceans come out at around the same time - ThreeEels
EPSILON: 1e-6, // floating point comparison is a joy
BIGGEST_SAFE_NUMBER: 1000000000000,
MAX: 1e300,
diff --git a/js/puns.js b/js/puns.js
new file mode 100644
index 00000000..6cd5fbf0
--- /dev/null
+++ b/js/puns.js
@@ -0,0 +1,188 @@
+// this puns.js is a wip. it runs on the facts.js code so there's most likely going to be bugs. --ThreeEels
+// suggested by base4 (spencers145) in 2021, initiated by ThreeEels in Jan 2026.
+
+SharkGame.Puns = {
+ dilutedResources: ["shark", "ray", "crab", "fish"], // dilute these while not in starter to keep the bad puns fresher
+
+ showPun() {
+ log.addMessage(this.getPun());
+ },
+
+ getPun() {
+ const pool = this.getPool();
+ return SharkGame.choose(pool);
+ },
+
+ getPool() {
+ const pool = [];
+ const currentWorld = world.worldType;
+ if (
+ this.worldBased[currentWorld] &&
+ (!this.worldBased[currentWorld].areRequirementsMet || this.worldBased[currentWorld].areRequirementsMet())
+ ) {
+ _.each(this.worldBased[currentWorld].messages, (pun) => {
+ pool.push(sharktext.boldString("Pun: ") + `${pun}`);
+ });
+ }
+
+ let anyAvailableResource = false;
+ $.each(this.resourceBased, (resource, puns) => {
+ // purposefully dilute some puns if we are not on the starter world
+ // I want these facts to be more likely relevant than not
+ if (world.doesResourceExist(resource) && res.getTotalResource(resource)) {
+ anyAvailableResource = true;
+ if (!this.dilutedResources.includes(resource) || currentWorld === "start" || Math.random() < 0.25) {
+ _.each(puns, (pun) => {
+ pool.push(
+ sharktext.boldString(
+ `${sharktext.getResourceName(
+ resource,
+ false,
+ 1,
+ SharkGame.Log.isNextMessageEven()
+ ? sharkcolor.getVariableColor("--color-dark")
+ : sharkcolor.getVariableColor("--color-med"),
+ )} pun: `,
+ ) + `${pun}`,
+ );
+ });
+ }
+ }
+ });
+
+ if (anyAvailableResource) {
+ // only 10% chance to include the 'default' facts
+ // this is because those facts are seen all over the place
+ // they would end up diluting the world-specific and resource-specific facts
+ //
+ // also acts as a failsafe in case there are no other facts to display
+ if (Math.random() < 0.1 || pool.length === 0) {
+ _.each(this.default, (pun) => {
+ pool.push(sharktext.boldString("Pun: ") + `${pun}`);
+ });
+ }
+ return pool;
+ } else {
+ return ["Pun: New puns are unlocked with new resources. Keep playing to unlock some!"];
+ }
+ },
+
+ worldBased: {
+ frigid: {
+ messages: ["Did you hear about the urchin's pride on its cold resilience? It felt n-ice!"],
+ },
+ volcanic: {
+ messages: [
+ "Placeholder :D",
+ ],
+ areRequirementsMet() {
+ return SharkGame.Upgrades.purchased.includes("thermalVents");
+ },
+ },
+ shrouded: {},
+ abandoned: {
+ messages: ["Placeholder :D"],
+ },
+ haven: {
+ messages: ["Placeholder :D"],
+ areRequirementsMet() {
+ return SharkGame.Upgrades.purchased.includes("sunObservation");
+ },
+ },
+ marine: {},
+ tempestuous: {
+ messages: ["Placeholder :D"],
+ },
+ shore: {
+ messages: [],
+ },
+ },
+
+ resourceBased: {
+ fish: [
+ "What did the fish detective say on the scene of crime? 'Somethinh smells fishy!",
+ "After one of your sharks ate a clownfish, do you know what he said?
'This tastes like it’s depressed and tired of constantly being seen as a joke!'",
+ ],
+ crystal: [
+ "Placeholder :D",
+ ],
+ sand: [
+ "Placeholder :D",
+ ],
+ kelp: [
+ "Placeholder :D",
+ ],
+ driftwood: [
+ "Placeholder :D",
+ ],
+ seagrass: [
+ "Placeholder :D",
+ ],
+ coral: [
+ "Placeholder :D",
+ ],
+ sponge: [
+ "Placeholder :D",
+ ],
+ tar: [
+ "Placeholder :D",
+ ],
+ ice: [
+ "Placeholder :D",
+ ],
+ roughSand: [
+ "Placeholder :D",
+ ],
+ shark: [
+ "Placeholder :D",
+ ],
+ ray: [
+ "Placeholder :D",
+ ],
+ crab: [
+ "Placeholder :D",
+ ],
+ octopus: [
+ "Placeholder :D",
+ ],
+ dolphin: [
+ "Placeholder :D",
+ ],
+ whale: [
+ "Placeholder :D",
+ ],
+ urchin: [
+ "Placeholder :D",
+ ],
+ squid: [
+ "Placeholder :D",
+ ],
+ lobster: [
+ "Placeholder :D",
+ ],
+ shrimp: [
+ "The shrimp traitor was surrounded. He couldn’t scampi away this time.",
+ "An eel went to a restaurant and ordered some rice. He was confused. A shrimp had fried this rice?
He then remembered that shrimp are actually decent cooks.",
+ ],
+ eel: [
+ "An eel went to a restaurant and ordered some rice. He was confused. A shrimp had fried this rice?
He then remembered that shrimp are actually decent cooks.",
+ ],
+ chimaera: [
+ "Placeholder :D",
+ ],
+ billfish: [
+ "Placeholder :D",
+ ],
+ mudskipper: [
+ "Placeholder :D",
+ ],
+ caracara: [
+ "Placeholder :D",
+ ],
+
+ },
+
+ default: [
+ "Placeholder :D",
+ ],
+};
diff --git a/js/tabs/cheatdevice.js b/js/tabs/cheatdevice.js
index 37e85b37..522baccd 100644
--- a/js/tabs/cheatdevice.js
+++ b/js/tabs/cheatdevice.js
@@ -768,6 +768,12 @@ SharkGame.CheatsAndDebug = {
world.worldResources.get("extractionTeam").exists = false;
res.setResource("extractionTeam", 0);
res.setTotalResource("extractionTeam", 0);
+ world.worldResources.get("stormgoer").exists = false;
+ res.setResource("stormgoer", 0);
+ res.setTotalResource("stormgoer", 0);
+ world.worldResources.get("stabilizer").exists = false;
+ res.setResource("stabilizer", 0);
+ res.setTotalResource("stabilizer", 0);
res.reconstructResourcesTable();
if (world.worldType === "start") {
delete SharkGame.HomeActions.generated.default.getCrab;
@@ -775,12 +781,16 @@ SharkGame.CheatsAndDebug = {
delete SharkGame.HomeActions.generated.default.getPlanter;
delete SharkGame.HomeActions.generated.default.getCollector;
delete SharkGame.HomeActions.generated.default.getExtractionTeam;
+ delete SharkGame.HomeActions.generated.default.getStormgoer;
+ delete SharkGame.HomeActions.generated.default.getStabilizer;
} else {
delete SharkGame.HomeActions.generated[world.worldType].getCrab;
delete SharkGame.HomeActions.generated[world.worldType].getBrood;
delete SharkGame.HomeActions.generated[world.worldType].getPlanter;
delete SharkGame.HomeActions.generated[world.worldType].getCollector;
delete SharkGame.HomeActions.generated[world.worldType].getExtractionTeam;
+ delete SharkGame.HomeActions.generated[world.worldType].getStormgoer;
+ delete SharkGame.HomeActions.generated[world.worldType].getStabilizer;
}
SharkGame.TabHandler.setUpTab();
return "Rolled a fourteen. What are you talking about? Crabs aren't real. There were never crabs to begin with.";
diff --git a/js/titlebar.js b/js/titlebar.js
index fd096bb5..32cabc06 100644
--- a/js/titlebar.js
+++ b/js/titlebar.js
@@ -54,6 +54,14 @@ SharkGame.TitleBar = {
},
},
+ punsLink: {
+ name: "pun",
+ main: false,
+ onClick() {
+ SharkGame.Puns.showPun();
+ },
+ },
+
changelogLink: {
name: "changelog",
main: false,
diff --git a/js/util.js b/js/util.js
index 35e56756..fedb8587 100644
--- a/js/util.js
+++ b/js/util.js
@@ -141,6 +141,9 @@ SharkGame.TextUtil = {
"arcana",
"calcinium",
"seagrass",
+ "driftwood",
+ "hardbark",
+ "roughSand",
].includes(name)
) {
return "";
@@ -172,6 +175,9 @@ SharkGame.TextUtil = {
"kelp",
"calcinium",
"seagrass",
+ "driftwood",
+ "hardbark",
+ "roughSand",
].includes(name) ||
amount === 1
) {
diff --git a/styles/style.scss b/styles/style.scss
index cbe45540..6352df94 100644
--- a/styles/style.scss
+++ b/styles/style.scss
@@ -38,6 +38,13 @@ $color-med: #2e4372;
$color-dark: #152a55;
$color-darker: #061639;
+//shore theme
+$color-lighter-shore: #ffdf80; //potential other shade: #284d00*
+$color-light-shore: #ffd24d;
+$color-med-shore: #ffbf00;
+$color-dark-shore: #cc9900;
+$color-darker-shore: #997300;
+
//shrouded theme
$color-lighter-shrouded: #22bec3;
$color-light-shrouded: #302d39;
@@ -230,6 +237,14 @@ $sidebar-width: 25%;
--color-darker: #{$color-darker-haven};
--color-title: #{rgba(color.channel($color-med-haven, 'red', $space: rgb), color.channel($color-med-haven, 'green', $space: rgb), color.channel($color-med-haven, 'blue', $space: rgb), 0.2)};
}
+ &.shore {
+ --color-lighter: #{$color-lighter-shore};
+ --color-light: #{$color-light-shore};
+ --color-med: #{$color-med-shore};
+ --color-dark: #{$color-dark-shore};
+ --color-darker: #{$color-darker-shore};
+ --color-title: #{rgba(color.channel($color-med-shore, 'red', $space: rgb), color.channel($color-med-shore, 'green', $space: rgb), color.channel($color-med-shore, 'blue', $space: rgb), 0.2)};
+ }
&.shrouded {
--color-lighter: #{$color-lighter-shrouded};
--color-light: #{$color-light-shrouded};