mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-09 16:07:40 +00:00
citadelification
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,27 +0,0 @@
|
||||
<ui-display title='Acclimator'>
|
||||
|
||||
<ui-section>
|
||||
<span> Current Temperature - {{data.chem_temp}} </span> <br/>
|
||||
<span> Target Temperature - </span> <ui-button action='set_target_temperature'>{{data.target_temperature}}</ui-button> <br/>
|
||||
<span> Acceptable Temperature Difference - </span> <ui-button action='set_allowed_temperature_difference'>{{data.allowed_temperature_difference}}</ui-button>
|
||||
</ui-section>
|
||||
|
||||
</ui-display>
|
||||
<ui-display title='Status'>
|
||||
|
||||
<ui-section>
|
||||
|
||||
<span> Maximum Volume - <ui-button action='change_volume'>{{data.max_volume}}</ui-button> <ui-button action='reset_volume'>Reset</ui-button></span>
|
||||
<span> Current Operation - {{data.acclimate_state}} </span> <br/>
|
||||
<span> Current status: {{data.emptying ? "Emptying" : "Filling"}} </span>
|
||||
|
||||
{{#if data.enabled}}
|
||||
<ui-button state='selected' action='turn_on'>On</ui-button>
|
||||
<ui-button action='turn_off'>Off</ui-button>
|
||||
{{else}}
|
||||
<ui-button action='turn_on'>On</ui-button>
|
||||
<ui-button state='selected' action='turn_off'>Off</ui-button>
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
|
||||
</ui-display>
|
||||
@@ -27,3 +27,19 @@
|
||||
<ui-button icon='{{data.unres_direction & 2 ? "check-square-o" : "square-o"}}' style='{{data.unres_direction & 2 ? "selected" : null}}' action='direc_set' params='{"unres_direction": "2"}'>South</ui-button>
|
||||
<ui-button icon='{{data.unres_direction & 8 ? "check-square-o" : "square-o"}}' style='{{data.unres_direction & 8 ? "selected" : null}}' action='direc_set' params='{"unres_direction": "8"}'>West</ui-button>
|
||||
</ui-display>
|
||||
|
||||
<style>
|
||||
table {
|
||||
width: 100%;
|
||||
border-spacing: 2px;
|
||||
}
|
||||
th {
|
||||
text-align: left;
|
||||
}
|
||||
td {
|
||||
vertical-align: top;
|
||||
}
|
||||
td .button {
|
||||
margin-top: 4px
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
&.airlock_electronics
|
||||
table
|
||||
width: 100%
|
||||
border-spacing: 2px
|
||||
th
|
||||
text-align: left
|
||||
td
|
||||
vertical-align: top
|
||||
.button
|
||||
margin-top: 4px
|
||||
@@ -27,7 +27,7 @@
|
||||
{{data.inputting ? "Injecting": "Off"}}</ui-button>
|
||||
</ui-section>
|
||||
<ui-section label='Input Rate'>
|
||||
<ui-button icon='pencil' action='rate'>{{Math.round(adata.inputRate)}} L/s</ui-button>
|
||||
<span>{{Math.fixed(adata.inputRate)}} L/s</span>
|
||||
</ui-section>
|
||||
<ui-section label='Output Regulator'>
|
||||
<ui-button icon='{{data.outputting ? "power-off" : "close"}}' style='{{data.outputting ? "selected" : null}}' action='output'>
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<ui-display title='Cargo'>
|
||||
<ui-section label='Shuttle'>
|
||||
{{#if data.docked && !data.requestonly}}
|
||||
@@ -33,29 +34,25 @@
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
<ui-tabs tabs='{{tabs}}'>
|
||||
{{#each data.supplies}}
|
||||
<tab name='{{name}}'>
|
||||
<ui-button tooltip='Pay with your bank account instead of the cargo budget. Costs 10% extra for handling fees.' tooltip-side='right'
|
||||
icon='{{data.self_paid ? "check-square-o" : "square-o"}}' action='toggleprivate'>Buy privately</ui-button>
|
||||
{{#each packs}}
|
||||
<ui-section label='{{name}}' candystripe nowrap>
|
||||
{{#if small_item}}
|
||||
<div class='content'>Small Item</div>
|
||||
{{else}}
|
||||
<div class='content'> </div>
|
||||
{{/if}}
|
||||
{{#if access}}
|
||||
<div class='content'>Restrictions Apply</div>
|
||||
{{else}}
|
||||
<div class='content'> </div>
|
||||
{{/if}}
|
||||
<ui-button tooltip='{{desc}}' tooltip-side='left' action='add' params='{"id": "{{id}}"}'>{{data.self_paid ? Math.round(cost*1.1) : cost}} Credits</ui-button>
|
||||
{{#if !data.requestonly}}
|
||||
<ui-display title='Cart' button>
|
||||
{{#partial button}}
|
||||
<ui-button icon='close' state='{{data.cart.length ? null : "disabled"}}' action='clear'>Clear</ui-button>
|
||||
{{/partial}}
|
||||
{{#each data.cart}}
|
||||
<ui-section candystripe nowrap>
|
||||
<div class='content'>#{{id}}</div>
|
||||
<div class='content'>{{object}}</div>
|
||||
<div class='content'>{{cost}} Credits</div>
|
||||
<div class='content'>
|
||||
<ui-button icon='minus' action='remove' params='{"id": "{{id}}"}'/>
|
||||
</div>
|
||||
</ui-section>
|
||||
{{else}}
|
||||
<span>Nothing in Cart</span>
|
||||
{{/each}}
|
||||
</tab>
|
||||
{{/each}}
|
||||
</ui-tabs>
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
<ui-display title='Requests' button>
|
||||
{{#partial button}}
|
||||
{{#if !data.requestonly}}
|
||||
@@ -80,25 +77,14 @@
|
||||
<span>No Requests</span>
|
||||
{{/each}}
|
||||
</ui-display>
|
||||
{{#if !data.requestonly}}
|
||||
<ui-display title='Cart' button>
|
||||
{{#partial button}}
|
||||
<ui-button icon='close' state='{{data.cart.length ? null : "disabled"}}' action='clear'>Clear</ui-button>
|
||||
{{/partial}}
|
||||
{{#each data.cart}}
|
||||
<ui-section candystripe nowrap>
|
||||
<div class='content'>#{{id}}</div>
|
||||
<div class='content'>{{object}}</div>
|
||||
<div class='content'>{{cost}} Credits</div>
|
||||
<div class='content'>
|
||||
<ui-button icon='minus' action='remove' params='{"id": "{{id}}"}'/>
|
||||
</div>
|
||||
{{#if paid}}
|
||||
<div class='content'><b>(Paid privately)</b></div>
|
||||
{{/if}}
|
||||
<ui-tabs tabs='{{tabs}}'>
|
||||
{{#each data.supplies}}
|
||||
<tab name='{{name}}'>
|
||||
{{#each packs}}
|
||||
<ui-section label='{{name}}' candystripe right>
|
||||
<ui-button tooltip='{{desc}}' tooltip-side='left' action='add' params='{"id": "{{id}}"}'>{{cost}} Credits</ui-button>
|
||||
</ui-section>
|
||||
{{else}}
|
||||
<span>Nothing in Cart</span>
|
||||
{{/each}}
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
</tab>
|
||||
{{/each}}
|
||||
</ui-tabs>
|
||||
|
||||
@@ -1,42 +1,14 @@
|
||||
<script>
|
||||
component.exports = {
|
||||
data: {
|
||||
upperCaseWrapper(lowercased) {
|
||||
return lowercased.toUpperCase();
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<ui-display title='Status'>
|
||||
<ui-section label='Energy'>
|
||||
<ui-bar min='0' max='{{data.maxEnergy}}' value='{{data.energy}}'>{{Math.fixed(adata.energy)}} Units</ui-bar>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
|
||||
{{#if data.recordingRecipe && true}}
|
||||
<ui-notice>
|
||||
<span class='fa fa-circle'></span> <span>Recording</span>
|
||||
</ui-notice>
|
||||
<ui-display>
|
||||
<ui-subdisplay>
|
||||
{{#each data.recordingRecipe: chemical}}
|
||||
<ui-section label='{{chemical.replace(/\b\w/, upperCaseWrapper)}}'><span>{{adata.recordingRecipe[chemical]}}</span></ui-section>
|
||||
{{/each}}
|
||||
</ui-subdisplay>
|
||||
<ui-section>
|
||||
<ui-button icon='floppy-o' action='save_recording'>Save</ui-button>
|
||||
<ui-button icon='ban' action='cancel_recording'>Cancel</ui-button>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
|
||||
<ui-display title='Saved Recipes' button>
|
||||
<ui-section>
|
||||
<ui-button icon='plus' action='record_recipe' state='{{data.recordingRecipe ? "disabled" : null}}'>Record Recipe</ui-button>
|
||||
<ui-button icon='minus' action='clear_recipes' state='{{data.recordingRecipe ? "disabled" : null}}'>Clear Recipes</ui-button>
|
||||
{{#each data.recipes: recipe_name}}
|
||||
<ui-button grid icon='tint' action='dispense_recipe' params='{"recipe": "{{recipe_name}}"}'>{{recipe_name}}</ui-button>
|
||||
<ui-button icon='plus' action='add_recipe'>Add Recipe</ui-button>
|
||||
<ui-button icon='minus' action='clear_recipes'>Clear Recipes</ui-button>
|
||||
{{#each data.recipes}}
|
||||
<ui-button grid icon='tint' action='dispense_recipe' params='{"recipe": "{{contents}}"}'>{{recipe_name}}</ui-button>
|
||||
{{/each}}
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
@@ -55,13 +27,14 @@
|
||||
<ui-display title='Beaker' button>
|
||||
{{#partial button}}
|
||||
{{#each data.beakerTransferAmounts}}
|
||||
<ui-button icon='minus' action='remove' params='{"amount": {{.}}}' state='{{data.recordingRecipe ? "disabled" : null}}'>{{.}}</ui-button>
|
||||
<ui-button icon='minus' action='remove' params='{"amount": {{.}}}'>{{.}}</ui-button>
|
||||
{{/each}}
|
||||
<ui-button icon='eject' state='{{data.isBeakerLoaded ? null : "disabled"}}' action='eject'>Eject</ui-button>
|
||||
{{/partial}}
|
||||
<ui-section label='Contents'>
|
||||
{{#if data.isBeakerLoaded}}
|
||||
<span>{{Math.round(adata.beakerCurrentVolume)}}/{{data.beakerMaxVolume}} Units</span>
|
||||
<span>pH: {{Math.round(adata.beakerCurrentpH*adata.partRating)/adata.partRating}}</span>
|
||||
<br/>
|
||||
{{#each adata.beakerContents}}
|
||||
<span class='highlight' intro-outro='fade'>{{Math.fixed(volume, 2)}} units of {{name}}</span><br/>
|
||||
|
||||
@@ -17,8 +17,13 @@
|
||||
{{#if data.isBeakerLoaded}}
|
||||
<span>Temperature: {{Math.round(adata.currentTemp)}} K</span>
|
||||
<br />
|
||||
<span>pH: {{Math.round(adata.currentpH*adata.partRating)/adata.partRating}}</span>
|
||||
<br />
|
||||
{{#each adata.beakerContents}}
|
||||
<span class='highlight' intro-outro='fade'>{{Math.fixed(volume, 2)}} units of {{name}}</span><br/>
|
||||
<span class='highlight' intro-outro='fade'>{{Math.fixed(volume, 2)}} units of {{name}}</span><br />
|
||||
{{#if data.showPurity}}
|
||||
<span class='highlight' intro-outro='fade'>Purity: {{Math.fixed(purity, 2)}}</span><br />
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<span class='bad'>Beaker Empty</span>
|
||||
{{/each}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{#if data.screen == "home"}}
|
||||
{{#if data.screen == "home"}}
|
||||
<ui-display title='Beaker' button>
|
||||
<ui-button icon='{{data.isBeakerLoaded ? "Eject" : "close"}}'
|
||||
style='{{data.isBeakerLoaded ? "selected" : null}}'
|
||||
@@ -17,7 +17,7 @@
|
||||
<ui-button action='transferToBuffer' params='{"id": "{{id}}", "amount": 10}'>10</ui-button>
|
||||
<ui-button action='transferToBuffer' params='{"id": "{{id}}", "amount": 1000}'>All</ui-button>
|
||||
<ui-button action='transferToBuffer' params='{"id": "{{id}}", "amount": -1}'>Custom</ui-button>
|
||||
<ui-button action='analyze' params='{"id": "{{id}}"}'>Analyze</ui-button>
|
||||
<ui-button action='analyzeBeak' params='{"id": "{{id}}"}'>Analyze</ui-button>
|
||||
</div>
|
||||
</ui-section>
|
||||
{{else}}
|
||||
@@ -41,7 +41,7 @@
|
||||
<ui-button action='transferFromBuffer' params='{"id": "{{id}}", "amount": 10}'>10</ui-button>
|
||||
<ui-button action='transferFromBuffer' params='{"id": "{{id}}", "amount": 1000}'>All</ui-button>
|
||||
<ui-button action='transferFromBuffer' params='{"id": "{{id}}", "amount": -1}'>Custom</ui-button>
|
||||
<ui-button action='analyze' params='{"id": "{{id}}"}'>Analyze</ui-button>
|
||||
<ui-button action='analyzeBuff' params='{"id": "{{id}}"}'>Analyze</ui-button>
|
||||
</div>
|
||||
</ui-section>
|
||||
{{/each}}
|
||||
@@ -60,6 +60,7 @@
|
||||
{{else}}
|
||||
<span class='average'>No Pillbottle</span>
|
||||
{{/if}}
|
||||
|
||||
<br/>
|
||||
<ui-button action='createPill' params='{"many": 0}' state='{{data.bufferContents ? null : "disabled"}}' >Create Pill (max 50µ)</ui-button>
|
||||
<br/>
|
||||
@@ -74,6 +75,17 @@
|
||||
<ui-button action='createBottle' params='{"many": 0}' state='{{data.bufferContents ? null : "disabled"}}' >Create Bottle (max 30µ)</ui-button>
|
||||
<br/>
|
||||
<ui-button action='createBottle' params='{"many": 1}' state='{{data.bufferContents ? null : "disabled"}}' >Dispense Buffer to Bottles</ui-button>
|
||||
<br/>
|
||||
<br/>
|
||||
<ui-button action='createVial' params='{"many": 0}' state='{{data.bufferContents ? null : "disabled"}}' >Create Hypo Vial (max 60µ)</ui-button>
|
||||
<br/>
|
||||
<ui-button action='createVial' params='{"many": 1}' state='{{data.bufferContents ? null : "disabled"}}' >Dispense Buffer to Hypo vials </ui-button>
|
||||
<br/>
|
||||
<br/>
|
||||
<ui-button action='createDart' params='{"many": 0}' state='{{data.bufferContents ? null : "disabled"}}' >Create SmartDart (max 20µ)</ui-button>
|
||||
<br/>
|
||||
<ui-button action='createDart' params='{"many": 1}' state='{{data.bufferContents ? null : "disabled"}}' >Create Multiple SmartDarts </ui-button>
|
||||
<br/>
|
||||
|
||||
</ui-display>
|
||||
|
||||
@@ -105,6 +117,29 @@
|
||||
<span class='highlight'>Addiction Threshold: </span>
|
||||
<span class='content'>{{data.analyzeVars.addicD}}</span>
|
||||
<br/>
|
||||
{{#if data.fermianalyze}}
|
||||
<span class='highlight'>Minumum Reaction Temperature: </span>
|
||||
<span class='content'>{{data.analyzeVars.minTemp}}K</span>
|
||||
<br/>
|
||||
<span class='highlight'>Optimal Reaction Temperature: </span>
|
||||
<span class='content'>{{data.analyzeVars.maxTemp}}K</span>
|
||||
<br/>
|
||||
<span class='highlight'>Explosion Reaction Temperature: </span>
|
||||
<span class='content'>{{data.analyzeVars.eTemp}}K</span>
|
||||
<br/>
|
||||
<span class='highlight'>Optimal reaction pH: </span>
|
||||
<span class='content'>{{data.analyzeVars.pHpeak}}</span>
|
||||
<br/>
|
||||
<span class='highlight'>Current Purity: </span>
|
||||
<span class='content'>{{data.analyzeVars.purityF}}</span>
|
||||
<br/>
|
||||
<span class='highlight'>Inverse Purity Threshold: </span>
|
||||
<span class='content'>{{data.analyzeVars.inverseRatioF}}</span>
|
||||
<br/>
|
||||
<span class='highlight'>Explosion Purity Threshold: </span>
|
||||
<span class='content'>{{data.analyzeVars.purityE}}</span>
|
||||
<br/>
|
||||
{{/if}}
|
||||
<br/>
|
||||
<ui-button action='goScreen' params='{"screen": "home"}'>Back</ui-button>
|
||||
</ui-display>
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
<ui-display title='Pill Press' button>
|
||||
<ui-display title='Pill Size'>
|
||||
<span> Current Pill Volume: </span> <ui-button action='change_pill_size'>{{data.pill_size}}</ui-button>
|
||||
</ui-display>
|
||||
<ui-display title='Cosmetic'>
|
||||
<span> Pill Name: </span> <ui-button action='change_pill_name'>{{data.pill_name}}</ui-button> <br>
|
||||
{{#each data.pill_styles}}
|
||||
<ui-button state='{{id==data.pill_style ? "selected" : null}}' action='change_pill_style' params='{"id": "{{id}}"}'>{{{htmltag}}}</ui-button>
|
||||
{{/each}}
|
||||
</ui-display>
|
||||
</ui-display>
|
||||
@@ -1,6 +0,0 @@
|
||||
<ui-display title='Splitter' button>
|
||||
<ui-section>
|
||||
<ui-button action='set_amount' params='{"target": "straight"}'>Straight {{data.straight}}</ui-button>
|
||||
<ui-button action='set_amount' params='{"target": "side"}'>Side {{data.side}}</ui-button>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
@@ -1,20 +0,0 @@
|
||||
<ui-display title='Left' button>
|
||||
<ui-section>
|
||||
{{#each data.left}}
|
||||
<ui-button action='remove' params='{"which":"left","reagent":"{{.}}"}'>{{.}}</ui-button>
|
||||
{{/each}}
|
||||
</ui-section>
|
||||
<ui-section>
|
||||
<ui-button action='add' params='{"which":"left"}'>Add filter</ui-button>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
<ui-display title='Right' button>
|
||||
<ui-section>
|
||||
{{#each data.right}}
|
||||
<ui-button action='remove' params='{"which":"right","reagent":"{{.}}"}'>{{.}}</ui-button>
|
||||
{{/each}}
|
||||
</ui-section>
|
||||
<ui-section>
|
||||
<ui-button action='add' params='{"which":"right"}'>Add filter</ui-button>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
43
tgui/src/interfaces/clockwork_slab.ract
Normal file
43
tgui/src/interfaces/clockwork_slab.ract
Normal file
@@ -0,0 +1,43 @@
|
||||
<ui-display>
|
||||
<ui-button action='toggle'>{{data.recollection ? "Recital":"Recollection"}}</ui-button>
|
||||
</ui-display>
|
||||
{{#if data.recollection}}
|
||||
<ui-display>
|
||||
{{{data.rec_text}}}
|
||||
{{#each data.recollection_categories}}
|
||||
<br><ui-button action='rec_category' params='{"category": "{{name}}"}'>{{{name}}} - {{{desc}}}</ui-button>
|
||||
{{/each}}
|
||||
{{{data.rec_section}}}
|
||||
{{{data.rec_binds}}}
|
||||
</ui-display>
|
||||
{{else}}
|
||||
<ui-display title='Power' button>
|
||||
<ui-section>
|
||||
{{{data.power}}}
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
<ui-display>
|
||||
<ui-section>
|
||||
<ui-button state='{{data.selected == "Driver" ? "selected" : null}}' action='select' params='{"category": "Driver"}'>Driver</ui-button>
|
||||
<ui-button state='{{data.selected == "Script" ? "selected" : null}}' action='select' params='{"category": "Script"}'>Scripts</ui-button>
|
||||
<ui-button state='{{data.selected == "Application" ? "selected" : null}}' action='select' params='{"category": "Application"}'>Applications</ui-button>
|
||||
<br>{{{data.tier_info}}}
|
||||
</ui-section>
|
||||
<ui-section>
|
||||
{{{data.scripturecolors}}}
|
||||
</ui-section><hr>
|
||||
<ui-section>
|
||||
{{#each data.scripture}}
|
||||
<div><ui-button tooltip='{{{tip}}}' tooltip-side='right' action='recite' params='{"category": "{{type}}"}'>Recite {{{required}}}</ui-button>
|
||||
{{#if quickbind}}
|
||||
{{#if bound}}
|
||||
<ui-button action='bind' params='{"category": "{{type}}"}'>Unbind {{{bound}}}</ui-button>
|
||||
{{else}}
|
||||
<ui-button action='bind' params='{"category": "{{type}}"}'>Quickbind</ui-button>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{{name}}} {{{descname}}} {{{invokers}}}</div>
|
||||
{{/each}}
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
49
tgui/src/interfaces/dogborg_sleeper.ract
Normal file
49
tgui/src/interfaces/dogborg_sleeper.ract
Normal file
@@ -0,0 +1,49 @@
|
||||
<ui-display title='Occupant'>
|
||||
<ui-section label='Occupant'>
|
||||
<span>{{data.occupant.name ? data.occupant.name : "No Occupant"}}</span>
|
||||
</ui-section>
|
||||
{{#if data.items}}
|
||||
<ui-section label='Items in storage'>
|
||||
<span>{{data.items}}</span>
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
{{#if data.occupied}}
|
||||
<ui-section label='State'>
|
||||
<span class='{{data.occupant.statstate}}'>{{data.occupant.stat}}</span>
|
||||
</ui-section>
|
||||
<ui-section label='Health'>
|
||||
<ui-bar min='{{data.occupant.minHealth}}' max='{{data.occupant.maxHealth}}' value='{{data.occupant.health}}'
|
||||
state='{{data.occupant.health >= 0 ? "good" : "average"}}'>{{Math.round(adata.occupant.health)}}</ui-bar>
|
||||
</ui-section>
|
||||
{{#each [{label: "Brute", type: "bruteLoss"}, {label: "Respiratory", type: "oxyLoss"}, {label: "Toxin", type: "toxLoss"}, {label: "Burn", type: "fireLoss"}]}}
|
||||
<ui-section label='{{label}}'>
|
||||
<ui-bar min='0' max='{{data.occupant.maxHealth}}' value='{{data.occupant[type]}}' state='bad'>{{Math.round(adata.occupant[type])}}</ui-bar>
|
||||
</ui-section>
|
||||
{{/each}}
|
||||
<ui-section label='Cells'>
|
||||
<span class='{{data.occupant.cloneLoss ? "bad" : "good"}}'>{{data.occupant.cloneLoss ? "Damaged" : "Healthy"}}</span>
|
||||
</ui-section>
|
||||
<ui-section label='Brain'>
|
||||
<span class='{{data.occupant.brainLoss ? "bad" : "good"}}'>{{data.occupant.brainLoss ? "Abnormal" : "Healthy"}}</span>
|
||||
</ui-section>
|
||||
<ui-section label='Bloodstream'>
|
||||
{{#each adata.occupant.reagents}}
|
||||
<span class='highlight' intro-outro='fade'>{{Math.fixed(volume, 1)}} units of {{name}}</span><br/>
|
||||
{{else}}
|
||||
<span class='good'>Pure</span>
|
||||
{{/each}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
<ui-display title='Operations'>
|
||||
<ui-section label='Inject'>
|
||||
{{#each data.chem}}
|
||||
<ui-button icon='flask' state='{{data.occupied ? null : "disabled"}}' action='inject' params='{"chem": "{{id}}"}'>{{name}}</ui-button><br/>
|
||||
{{/each}}
|
||||
</ui-section>
|
||||
<ui-section label='Eject'>
|
||||
<ui-button icon='sign-out' action='eject'>Eject Contents</ui-button>
|
||||
</ui-section>
|
||||
<ui-section label='Self Cleaning'>
|
||||
<ui-button icon='recycle' action='cleaning'>Self-Clean Cycle</ui-button>
|
||||
</ui-display>
|
||||
50
tgui/src/interfaces/exofab - Copia.ract
Normal file
50
tgui/src/interfaces/exofab - Copia.ract
Normal file
@@ -0,0 +1,50 @@
|
||||
{{#if data.sync}}
|
||||
<ui-notice>
|
||||
Currently syncing with the database
|
||||
</ui-notice>
|
||||
{{else}}
|
||||
<ui-display title='Materials' button>
|
||||
{{#partial button}}
|
||||
<ui-button icon="eject" action="eject_all">Eject all</ui-button>
|
||||
<ui-button icon="toggle-{{data.show_materials ? 'off' : 'on'}}" action="toggle_materials_visibility">
|
||||
{{data.show_materials ? "Hide" : "Show"}}
|
||||
</ui-button>
|
||||
{{/partial}}
|
||||
{{#if data.show_materials}}
|
||||
<div class="display tabular">
|
||||
<section class="candystripe">
|
||||
<section class="cell"></section>
|
||||
<section class="cell">
|
||||
Mineral
|
||||
</section>
|
||||
<section class="cell">
|
||||
Amount
|
||||
</section>
|
||||
<section class="cell"></section>
|
||||
<section class="cell"></section>
|
||||
</section>
|
||||
{{#each data.all_materials}}
|
||||
<section class="candystripe">
|
||||
<section class="cell">
|
||||
{{name}}
|
||||
</section>
|
||||
<section class="cell">
|
||||
{{amount}}
|
||||
</section>
|
||||
<section class="cell">
|
||||
<ui-button icon="eject">Release amount</ui-button>
|
||||
</section>
|
||||
<section class="cell" style='width: 40px;'>
|
||||
<ui-button icon="eject">Release all</ui-button>
|
||||
</section>
|
||||
</section>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
<ui-display title='Categories'>
|
||||
{{#data.categories}}
|
||||
<ui-button>{{this}}</ui-button>
|
||||
{{/data.categories}}
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
@@ -1,56 +0,0 @@
|
||||
{{#if data.screen == "empty"}}
|
||||
<ui-notice>
|
||||
<p>No launchpad connected.</p>
|
||||
</ui-notice>
|
||||
{{elseif data.screen == "select"}}
|
||||
<ui-display title='Launchpad Selection'>
|
||||
{{#each data.launchpads}}
|
||||
<ui-button action='select_pad' params='{"id": "{{id}}"}' state='{{inactive ? "disabled" : null}}'>{{name}}</ui-button><br>
|
||||
{{/each}}
|
||||
</ui-display>
|
||||
{{elseif data.screen == "control"}}
|
||||
<ui-display title='Controls'>
|
||||
<ui-button icon="return" action='return'>Return</ui-button>
|
||||
{{#if data.pad_active}}
|
||||
<ui-section label="Launchpad">
|
||||
<span><b>{{data.pad_name}}</b></span><br>
|
||||
<ui-button icon="pencil" action='rename'>Rename</ui-button>
|
||||
<ui-button icon="remove" style="danger" action='remove'>Remove</ui-button>
|
||||
</ui-section>
|
||||
|
||||
<ui-section label='Set Target'>
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width:25px!important"><ui-button action='up-left'>↖</ui-button></td>
|
||||
<td style="width:25px!important; text-align:center"><ui-button action='up'>↑</ui-button></td>
|
||||
<td style="width:25px!important; text-align:right"><ui-button action='up-right'>↗</ui-button></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:25px!important"><ui-button action='left' style="width:35px!important">←</ui-button></td>
|
||||
<td style="width:25px!important; text-align:center"><ui-button action='reset'>R</ui-button></td>
|
||||
<td style="width:25px!important; text-align:right"><ui-button action='right'>→</ui-button></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width:25px!important"><ui-button action='down-left'>↙</ui-button></td>
|
||||
<td style="width:25px!important; text-align:center"><ui-button action='down'>↓</ui-button></td>
|
||||
<td style="width:25px!important; text-align:right"><ui-button action='down-right'>↘</ui-button></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr>
|
||||
<ui-button action='manual_x'>Set X</ui-button><ui-button action='manual_y'>Set Y</ui-button>
|
||||
</ui-section>
|
||||
<ui-section label='Current Target'>
|
||||
<span>{{data.abs_y}} {{data.north_south}}</span><br>
|
||||
<span>{{data.abs_x}} {{data.east_west}}</span>
|
||||
</ui-section>
|
||||
<ui-section label='Activate'>
|
||||
<ui-button action='launch' tooltip='Teleport everything on the pad to the target.' tooltip-side='down'>Launch</ui-button>
|
||||
<ui-button action='pull' tooltip='Teleport everything from the target to the pad.' tooltip-side='down'>Pull</ui-button>
|
||||
</ui-section>
|
||||
{{else}}
|
||||
<ui-notice>
|
||||
<p>Launchpad not responding.</p>
|
||||
</ui-notice>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
@@ -24,9 +24,13 @@
|
||||
<ui-bar min='0' max='{{adata.recharge_port.mech.maxhealth}}' value='{{adata.recharge_port.mech.health}}'state='{{mechHealthState(adata.recharge_port.mech.health)}}'>{{Math.round(adata.recharge_port.mech.health)}}/{{adata.recharge_port.mech.maxhealth}}</ui-bar>
|
||||
</ui-section>
|
||||
{{#if data.recharge_port.mech.cell}}
|
||||
{{#if data.recharge_port.mech.cell.critfail}}
|
||||
<ui-section label='Power'><span class='bad'>Cell Critical Failure</span></ui-section>
|
||||
{{else}}
|
||||
<ui-section label='Power'>
|
||||
<ui-bar min='0' max='{{adata.recharge_port.mech.cell.maxcharge}}' value='{{adata.recharge_port.mech.cell.charge}}'state='{{mechChargeState(adata.recharge_port.mech.cell.charge)}}'>{{Math.round(adata.recharge_port.mech.cell.charge)}}/{{Math.round(adata.recharge_port.mech.cell.maxcharge)}}</ui-bar>
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<ui-section label='Power'><span class='bad'>Cell Missing</span></ui-section>
|
||||
{{/if}}
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
<ui-display title='Health kiosk'>
|
||||
<ui-section>Greetings, valued nanotransen employee. Insert {{data.kiosk_cost}} Credits to begin health analysis.</ui-section>
|
||||
<ui-section>
|
||||
<ui-button icon='power-off' state='{{data.active_status ? null : 'disabled'}}' action='beginScan'>Begin Scan (Cost: {{data.kiosk_cost}} Credits)</ui-button><br/>
|
||||
</ui-section>
|
||||
{{#if data.active_status == 0}}
|
||||
<ui-section title='Medical Report'>
|
||||
<ui-section label='Patient name'>
|
||||
{{data.patient_name}}.
|
||||
</ui-section>
|
||||
<ui-section label='Brute'>
|
||||
<ui-bar min='0' max='100' value='{{data.brute_health}}' state={{"bad"}}> {{Math.round(data.brute_health)}}%</ui-bar>
|
||||
</ui-section>
|
||||
<ui-section label='Burn'>
|
||||
<ui-bar min='0' max='100' value='{{data.burn_health}}' state={{"bad"}}> {{Math.round(data.burn_health)}}%</ui-bar>
|
||||
</ui-section>
|
||||
<ui-section label='Toxin'>
|
||||
<ui-bar min='0' max='100' value='{{data.toxin_health}}' state="bad"}}> {{Math.round(data.toxin_health)}}%</ui-bar>
|
||||
</ui-section>
|
||||
<ui-section label='Suffocation'>
|
||||
<ui-bar min='0' max='100' value='{{data.suffocation_health}}' state="bad"}}> {{Math.round(data.suffocation_health)}}%</ui-bar>
|
||||
</ui-section>
|
||||
{{#if data.adv_active_status == 0}}
|
||||
<ui-section label='Cellular'>
|
||||
<ui-bar min='0' max='100' value='{{data.clone_health}}' state="bad"}}> {{Math.round(data.clone_health)}}%</ui-bar>
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
<ui-section label='Patient status'>
|
||||
{{data.patient_status}}
|
||||
</ui-section>
|
||||
<ui-section label='Disease status'>
|
||||
{{data.patient_illness}}
|
||||
</ui-section>
|
||||
{{#if data.adv_active_status == 0}}
|
||||
<ui-section label='Brain status'>
|
||||
<span class='{{data.brain_damage <= 20 ? "good" : "bad"}}'>{{data.brain_health}}</span>
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
{{#if data.upgrade_active_status == 0}}
|
||||
<span></span>
|
||||
<ui-section label ='Patient pre-existing conditions'>
|
||||
{{data.trauma_status}}
|
||||
</ui-section>
|
||||
<ui-section label ='Radiation status'>
|
||||
{{data.rad_status}} Target is <span class='{{data.rad_value <= 100 ? "good" : "bad"}}'>{{Math.round(data.rad_value)}}% irradiated.</span>
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
@@ -1,4 +1,43 @@
|
||||
<ui-display title='Nanite Chamber Console'>
|
||||
<ui-display title='Program Disk'>
|
||||
{{#if data.has_disk}}
|
||||
<ui-button icon='eject' action='eject'>Eject Disk</ui-button><br>
|
||||
{{#if data.has_program}}
|
||||
<ui-section label='Program Name'>{{data.disk.name}}</ui-section>
|
||||
<ui-section label='Description'>{{data.disk.desc}}</ui-section>
|
||||
<ui-section label='Activation Status'>{{data.disk.activated ? "Active" : "Inactive" }}</ui-section>
|
||||
{{#if data.disk.activation_delay}}
|
||||
<ui-section label='Activation Delay'>{{data.disk.activation_delay}}</ui-section>
|
||||
{{/if}}
|
||||
{{#if data.disk.timer}}
|
||||
<ui-section label='Timer'>{{data.disk.timer}}</ui-section>
|
||||
<ui-section label='Timer Type '>{{data.disk.timer_type}}</ui-section>
|
||||
{{/if}}
|
||||
{{#if data.disk.activation_code}}
|
||||
<ui-section label='Activation Code'>{{data.disk.activation_code}}</ui-section>
|
||||
{{/if}}
|
||||
{{#if data.disk.deactivation_code}}
|
||||
<ui-section label='Deactivation Code'>{{data.disk.deactivation_code}}</ui-section>
|
||||
{{/if}}
|
||||
{{#if data.disk.kill_code}}
|
||||
<ui-section label='Kill Code'>{{data.disk.kill_code}}</ui-section>
|
||||
{{/if}}
|
||||
{{#if data.disk.trigger_code}}
|
||||
<ui-section label='Trigger Code'>{{data.disk.trigger_code}}</ui-section>
|
||||
{{/if}}
|
||||
{{#if data.disk.has_extra_settings}}
|
||||
{{#each data.disk.extra_settings}}
|
||||
<ui-section label='{{name}}'>{{value}}</ui-section>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<ui-notice>No program detected.</ui-notice>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<ui-notice>Insert disk.</ui-notice>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
<br>
|
||||
{{#if data.status_msg}}
|
||||
<ui-notice>{{data.status_msg}}</ui-notice>
|
||||
{{else}}
|
||||
@@ -10,16 +49,20 @@
|
||||
<ui-section><ui-button icon='syringe' action='nanite_injection'>Implant Nanites</ui-button></ui-section>
|
||||
{{else}}
|
||||
<ui-display title='Nanites'>
|
||||
{{#if data.has_disk}}
|
||||
<ui-button icon='download' action='add_program'>Install Program From Disk</ui-button><br>
|
||||
<br>
|
||||
{{/if}}
|
||||
<ui-section>
|
||||
<ui-section label='Nanite Volume'>{{data.nanite_volume}}</ui-section>
|
||||
<ui-section label='Growth Rate'>{{data.regen_rate}}</ui-section>
|
||||
<ui-section label='Safety Threshold'>{{data.safety_threshold}} <ui-button icon='pencil' action='set_safety'>Set</ui-button> </ui-section>
|
||||
<ui-section label='Cloud ID'>{{data.cloud_id ? data.cloud_id : "No Cloud" }} <ui-button icon='pencil' action='set_cloud'>Set</ui-button> </ui-section>
|
||||
</ui-section>
|
||||
<ui-button icon='delete' style='danger' action='remove_nanites'>Destroy Nanites</ui-button>
|
||||
<ui-display title='Programs'>
|
||||
{{#each data.mob_programs}}
|
||||
<ui-display title='{{name}}' button>
|
||||
<ui-button icon='minus' action='remove_program' params='{"program_id": "{{id}}"}'>Uninstall</ui-button>
|
||||
<ui-section label='Description'>{{desc}}</ui-section>
|
||||
{{#if data.scan_level >= 2}}
|
||||
<ui-section label='Activation Status'>{{activated ? "Active" : "Inactive" }}</ui-section>
|
||||
@@ -27,33 +70,19 @@
|
||||
{{#if can_trigger}}
|
||||
<ui-section label='Trigger Cost'>{{trigger_cost}}</ui-section>
|
||||
<ui-section label='Trigger Cooldown'>{{trigger_cooldown}} seconds</ui-section>
|
||||
{{#if timer_trigger_delay}}
|
||||
<ui-section label='Trigger Delay'>{{timer_trigger_delay}} seconds</ui-section>
|
||||
{{/if}}
|
||||
{{#if timer_trigger}}
|
||||
<ui-section label='Trigger Repeat Timer'>{{timer_trigger}} seconds</ui-section>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{#if timer_restart}}
|
||||
<ui-section label='Restart Timer'>{{timer_restart}} seconds</ui-section>
|
||||
{{/if}}
|
||||
{{#if timer_shutdown}}
|
||||
<ui-section label='Shutdown Timer'>{{timer_shutdown}} seconds</ui-section>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{#if data.scan_level >= 3}}
|
||||
{{#if activation_delay}}
|
||||
<ui-section label='Activation Delay'>{{activation_delay}}</ui-section>
|
||||
{{/if}}
|
||||
{{#if timer}}
|
||||
<ui-section label='Timer'>{{timer}}</ui-section>
|
||||
<ui-section label='Timer Type'>{{timer_type}}</ui-section>
|
||||
{{/if}}
|
||||
{{#if has_extra_settings}}
|
||||
{{#each extra_settings}}
|
||||
<ui-section label='{{name}}'>{{value}}</ui-section>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
{{#if has_rules}}
|
||||
<ui-section label='Rules'>
|
||||
{{#each rules}}
|
||||
{{display}} <br>
|
||||
{{/each}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{#if data.scan_level >= 4}}
|
||||
{{#if activation_code}}
|
||||
@@ -68,12 +97,7 @@
|
||||
{{#if trigger_code}}
|
||||
<ui-section label='Trigger Code'>{{trigger_code}}</ui-section>
|
||||
{{/if}}
|
||||
{{#if has_rules}}
|
||||
<ui-section label='Rules'>
|
||||
{{#each rules}}
|
||||
{{display}}<br>
|
||||
{{/each}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
|
||||
@@ -7,17 +7,12 @@
|
||||
<ui-section label='Program Name'>{{data.disk.name}}</ui-section>
|
||||
<ui-section label='Description'>{{data.disk.desc}}</ui-section>
|
||||
<ui-section label='Activation Status'>{{data.disk.activated ? "Active" : "Inactive" }}</ui-section>
|
||||
{{#if data.disk.timer_trigger_delay}}
|
||||
<ui-section label='Trigger Delay'>{{data.disk.timer_trigger_delay}} seconds</ui-section>
|
||||
{{#if data.disk.activation_delay}}
|
||||
<ui-section label='Activation Delay'>{{data.disk.activation_delay}}</ui-section>
|
||||
{{/if}}
|
||||
{{#if data.disk.timer_trigger}}
|
||||
<ui-section label='Trigger Repeat Timer'>{{data.disk.timer_trigger}} seconds</ui-section>
|
||||
{{/if}}
|
||||
{{#if data.disk.timer_restart}}
|
||||
<ui-section label='Restart Timer'>{{data.disk.timer_restart}} seconds</ui-section>
|
||||
{{/if}}
|
||||
{{#if data.disk.timer_shutdown}}
|
||||
<ui-section label='Shutdown Timer'>{{data.disk.timer_shutdown}} seconds</ui-section>
|
||||
{{#if data.disk.timer}}
|
||||
<ui-section label='Timer'>{{data.disk.timer}}</ui-section>
|
||||
<ui-section label='Timer Type '>{{data.disk.timer_type}}</ui-section>
|
||||
{{/if}}
|
||||
{{#if data.disk.activation_code}}
|
||||
<ui-section label='Activation Code'>{{data.disk.activation_code}}</ui-section>
|
||||
@@ -67,9 +62,6 @@
|
||||
<h3>{{name}}</h3>
|
||||
<div style="float:right">
|
||||
<ui-button icon='minus-circle' action='remove_program' style='danger' params='{"program_id": "{{id}}"}'>Uninstall</ui-button>
|
||||
{{#if data.disk.can_rule}}
|
||||
<ui-button icon='ruler' action='add_rule' params='{"program_id": "{{id}}"}'>Add Rule from Disk</ui-button>
|
||||
{{/if}}
|
||||
</div>
|
||||
</ui-section>
|
||||
<ui-section>
|
||||
@@ -77,22 +69,16 @@
|
||||
<ui-section label='Activation Status'>{{activated ? "Active" : "Inactive" }}</ui-section>
|
||||
<ui-section label='Nanites Consumed'>{{use_rate}}/s</ui-section>
|
||||
{{#if can_trigger}}
|
||||
<ui-section label='Trigger Cost'>{{trigger_cost}}</ui-section>
|
||||
<ui-section label='Trigger Cooldown'>{{trigger_cooldown}} seconds</ui-section>
|
||||
{{#if timer_trigger_delay}}
|
||||
<ui-section label='Trigger Delay'>{{timer_trigger_delay}} seconds</ui-section>
|
||||
<ui-section label='Trigger Cost'>{{trigger_cost}}/s</ui-section>
|
||||
<ui-section label='Trigger Cooldown'>{{trigger_cooldown}}/s</ui-section>
|
||||
{{/if}}
|
||||
{{#if timer_trigger}}
|
||||
<ui-section label='Trigger Repeat Timer'>{{timer_trigger}} seconds</ui-section>
|
||||
{{#if activation_delay}}
|
||||
<ui-section label='Activation Delay'>{{activation_delay}}</ui-section>
|
||||
{{/if}}
|
||||
{{#if timer}}
|
||||
<ui-section label='Timer'>{{timer}}</ui-section>
|
||||
<ui-section label='Timer Type '>{{timer_type}}</ui-section>
|
||||
{{/if}}
|
||||
{{#if timer_restart}}
|
||||
<ui-section label='Restart Timer'>{{timer_restart}} seconds</ui-section>
|
||||
{{/if}}
|
||||
{{#if timer_shutdown}}
|
||||
<ui-section label='Shutdown Timer'>{{timer_shutdown}} seconds</ui-section>
|
||||
{{/if}}
|
||||
|
||||
{{#if activation_code}}
|
||||
<ui-section label='Activation Code'>{{activation_code}}</ui-section>
|
||||
{{/if}}
|
||||
@@ -110,13 +96,6 @@
|
||||
<ui-section label='{{name}}'>{{value}}</ui-section>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
{{#if has_rules}}
|
||||
<ui-section label='Rules'>
|
||||
{{#each rules}}
|
||||
{{display}} (<ui-button icon='minus-circle' action='remove_rule' style='danger' params='{"program_id": "{{program_id}}", "rule_id": "{{id}}"}'>Remove</ui-button>)<br>
|
||||
{{/each}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
{{/each}}
|
||||
</ui-display>
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
<ui-display title='Nanite Control'>
|
||||
{{#if data.locked}}
|
||||
<ui-notice>The interface is locked.</ui-notice>
|
||||
{{else}}
|
||||
<ui-button icon='lock' action='lock'>Lock Interface</ui-button>
|
||||
<ui-button icon='save' action='comm_save'>Save Current Setting</ui-button>
|
||||
<ui-section label='Comm Code'>
|
||||
<span>{{data.comm_code}}</span>
|
||||
<ui-button icon='pencil' action='set_comm_code'>Set</ui-button>
|
||||
</ui-section>
|
||||
<ui-section label='Message'>
|
||||
{{data.comm_message}}
|
||||
<br>
|
||||
<ui-button icon='pencil' action='set_message'>Set</ui-button>
|
||||
</ui-section>
|
||||
{{#if data.mode == "Relay"}}
|
||||
<ui-section label='Relay Code'>
|
||||
<span>{{data.relay_code}}</span>
|
||||
<ui-button icon='pencil' action='set_relay_code'>Set</ui-button>
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
<ui-section label='Signal Mode'>
|
||||
<span>{{data.mode}}</span>
|
||||
<br>
|
||||
<ui-button action='select_mode' params='{"mode": "Off"}'>Off</ui-button>
|
||||
<ui-button action='select_mode' params='{"mode": "Local"}'>Local</ui-button>
|
||||
<ui-button action='select_mode' params='{"mode": "Targeted"}'>Targeted</ui-button>
|
||||
<ui-button action='select_mode' params='{"mode": "Area"}'>Area</ui-button>
|
||||
<ui-button action='select_mode' params='{"mode": "Relay"}'>Relay</ui-button>
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
<ui-display title='Saved Settings'>
|
||||
{{#each data.saved_settings}}
|
||||
<ui-button icon='load' action='comm_load' params='{"save_id": "{{id}}"}'>{{name}}</ui-button>
|
||||
{{#if !data.locked}}
|
||||
<ui-button icon='remove' action='remove_save' params='{"save_id": "{{id}}"}'>Remove</ui-button>
|
||||
{{/if}}
|
||||
<br>
|
||||
{{/each}}
|
||||
</ui-display>
|
||||
@@ -28,12 +28,9 @@
|
||||
</ui-section>
|
||||
|
||||
<ui-section label='Settings'>
|
||||
<ui-button icon='pencil' action='set_restart_timer'></ui-button> Restart Timer: {{data.timer_restart}} seconds<br>
|
||||
<ui-button icon='pencil' action='set_shutdown_timer'></ui-button> Shutdown Timer: {{data.timer_shutdown}} seconds<br>
|
||||
{{#if data.can_trigger}}
|
||||
<ui-button icon='pencil' action='set_trigger_timer'></ui-button> Trigger Repeat Timer: {{data.timer_trigger}} seconds<br>
|
||||
<ui-button icon='pencil' action='set_timer_trigger_delay'></ui-button> Trigger Delay: {{data.timer_trigger_delay}} seconds<br>
|
||||
{{/if}}
|
||||
<ui-button icon='pencil' action='set_activation_delay'></ui-button> Activation Delay: {{data.activation_delay}} <br>
|
||||
<ui-button icon='pencil' action='set_timer'></ui-button> Timer: {{data.timer}} <br>
|
||||
<ui-button icon='pencil' action='set_timer_type'></ui-button> Timer Type: {{data.timer_type}} <br>
|
||||
</ui-section>
|
||||
|
||||
<ui-section label='Codes'>
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
This machine only accepts ore. Gibtonite and Slag are not accepted.
|
||||
</ui-section>
|
||||
<ui-section>
|
||||
Current unclaimed points: {{data.unclaimedPoints}}
|
||||
Current unclaimed credits: {{data.unclaimedPoints}}
|
||||
<ui-button action='Claim'>
|
||||
Claim Points
|
||||
Claim
|
||||
</ui-button>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{{#if data.mode == 1}}
|
||||
<ui-display title='Beaker' button>
|
||||
{{#partial button}}
|
||||
<ui-button icon='remove' state='{{data.has_beaker && !data.beaker_empty ? null : "disabled"}}' action='empty_eject_beaker'>
|
||||
Empty and Eject
|
||||
<ui-button icon='remove' state='{{data.has_beaker ? null : "disabled"}}' action='empty_eject_beaker'>
|
||||
Empty and eject
|
||||
</ui-button>
|
||||
<ui-button icon='trash' state='{{data.has_beaker && !data.beaker_empty ? null : "disabled"}}' action='empty_beaker'>
|
||||
<ui-button icon='trash' state='{{data.has_beaker ? null : "disabled"}}' action='empty_beaker'>
|
||||
Empty
|
||||
</ui-button>
|
||||
<ui-button icon='eject' state='{{data.has_beaker ? null : "disabled"}}' action='eject_beaker'>
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
<script>
|
||||
component.exports = {
|
||||
computed: {
|
||||
stackPercentState () {
|
||||
const charge = this.get('data.stack_percent')
|
||||
if (charge > 50) return 'good'
|
||||
else if (charge > 15) return 'average'
|
||||
else return 'bad'
|
||||
},
|
||||
sheetsAmount (){
|
||||
const amount = this.get('data.sheets')
|
||||
if (amount > 5) return 'good'
|
||||
else if (amount > 0) return 'average'
|
||||
else return 'bad'
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
{{#if !data.anchored}}
|
||||
<ui-notice>
|
||||
<span>Generator not anchored.</span>
|
||||
</ui-notice>
|
||||
{{/if}}
|
||||
|
||||
<ui-display title='Status'>
|
||||
<ui-section label='Power switch'>
|
||||
{{#if data.active}}
|
||||
<ui-button icon='power-off' style='selected' action='toggle_power'>On</ui-button>
|
||||
{{else}}
|
||||
<ui-button icon='close' state='{{data.ready_to_boot ? null : "disabled"}}' action='toggle_power'>Off</ui-button>
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
<ui-section label='{{data.sheet_name}} sheets'>
|
||||
<span class='{{sheetsAmount}}'>{{data.sheets}}</span>
|
||||
{{#if data.sheets >= 1}}
|
||||
<ui-button action='eject' state='{{data.active ? "disabled" : null}}'>Eject</ui-button>
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
<ui-section label='Current sheet level'>
|
||||
<ui-bar min='0' max='100' value='{{data.stack_percent}}' state='{{stackPercentState}}'>{{Math.fixed(adata.stack_percent)}}%</ui-bar>
|
||||
</ui-section>
|
||||
<ui-section label='Heat level'>
|
||||
{{#if data.current_heat < 100}}
|
||||
<span class="good">Nominal</span>
|
||||
{{elseif data.current_heat < 200}}
|
||||
<span class="average">Caution</span>
|
||||
{{else}}
|
||||
<span class="bad">DANGER</span>
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
|
||||
<ui-display title='Output'>
|
||||
<ui-section label='Current output'>
|
||||
{{data.power_output}}
|
||||
</ui-section>
|
||||
<ui-section label='Adjust output'>
|
||||
<ui-button icon='minus' action='lower_power'>{{data.power_generated}}</ui-button>
|
||||
<ui-button icon='plus' action='higher_power'>{{data.power_generated}}</ui-button>
|
||||
</ui-section>
|
||||
<ui-section label='Power available'>
|
||||
<span class='{{data.connected ? null : 'bad'}}'>{{data.connected ? data.power_available : "Unconnected" }}</span>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
@@ -1,10 +0,0 @@
|
||||
<ui-display title='Reaction Chamber' button>
|
||||
<ui-section>
|
||||
{{#each data.reagents: reagent}}
|
||||
<span>{{reagent}} : {{data.reagents[reagent]}}</span>
|
||||
<ui-button action='remove' params='{"chem": {{reagent}}}'>Remove</ui-button><br>
|
||||
{{/each}}
|
||||
<ui-button action='add'>Add</ui-button><br>
|
||||
</ui-section>
|
||||
<span> Current status: {{data.emptying ? "Emptying" : "Filling"}} </span>
|
||||
</ui-display>
|
||||
43
tgui/src/interfaces/reagentgrinder.ract
Normal file
43
tgui/src/interfaces/reagentgrinder.ract
Normal file
@@ -0,0 +1,43 @@
|
||||
{{#if data.processing}}
|
||||
<ui-notice>
|
||||
<span>The grinder is currently processing and cannot be used.</span>
|
||||
</ui-notice>
|
||||
{{/if}}
|
||||
<ui-display title='Processing Chamber' button>
|
||||
{{#partial button}}
|
||||
<ui-button icon='eject' state='{{(data.operating == 0) && data.contents ? null : "disabled"}}' action='eject'>Eject Contents</ui-button>
|
||||
{{/partial}}
|
||||
<ui-section label='Grinding'>
|
||||
<span class='{{data.operating ? "average" : "good"}}'>{{data.operating ? "Busy" : "Ready"}}</span>
|
||||
<ui-button icon='refresh' state='{{(data.operating == 0) && data.contents ? null : "disabled"}}' action='grind'>Activate</ui-button>
|
||||
</ui-section>
|
||||
<ui-section label='Contents'>
|
||||
{{#if data.contents}}
|
||||
{{#each adata.contentslist}}
|
||||
<span class='highlight' intro-outro='fade'>The {{name}}</span><br/>
|
||||
{{else}}
|
||||
<span>No Contents</span>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
<span>No Contents</span>
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
<ui-display title='Container' button>
|
||||
{{#partial button}}
|
||||
<ui-button icon='eject' state='{{(data.operating == 0) && data.isBeakerLoaded ? null : "disabled"}}' action='detach'>Detach</ui-button>
|
||||
{{/partial}}
|
||||
<ui-section label='Reagents'>
|
||||
{{#if data.isBeakerLoaded}}
|
||||
<span>{{Math.round(adata.beakerCurrentVolume)}}/{{data.beakerMaxVolume}} Units</span>
|
||||
<br/>
|
||||
{{#each adata.beakerContents}}
|
||||
<span class='highlight' intro-outro='fade'>{{Math.fixed(volume, 2)}} units of {{name}}</span><br/>
|
||||
{{else}}
|
||||
<span class='bad'>Container Empty</span>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
<span class='average'>No Container</span>
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
@@ -1,95 +0,0 @@
|
||||
<div style>
|
||||
<span style="float:left;">
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 1}'>1</ui-button></span>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 2}'>2</ui-button></span>
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 3}'>3</ui-button></span>
|
||||
<br>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 4}'>4</ui-button></span>
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 5}'>5</ui-button></span>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 6}'>6</ui-button></span>
|
||||
<br>
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 7}'>7</ui-button></span>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 8}'>8</ui-button></span>
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 9}'>9</ui-button></span>
|
||||
<br>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 10}'>10</ui-button></span>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 11}'>11</ui-button></span>
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 12}'>12</ui-button></span>
|
||||
<br>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 13}'>13</ui-button></span>
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 14 }'>14</ui-button></span>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 15}'>15</ui-button></span>
|
||||
<br>
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 16}'>16</ui-button></span>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 17}'>17</ui-button></span>
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 18}'>18</ui-button></span>
|
||||
<br>
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 19}'>19</ui-button></span>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 20}'>20</ui-button></span>
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 21}'>21</ui-button></span>
|
||||
<br>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 22}'>22</ui-button></span>
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 23}'>23</ui-button></span>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 24}'>24</ui-button></span>
|
||||
<br>
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 25}'>25</ui-button></span>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 26}'>26</ui-button></span>
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 27}'>27</ui-button></span>
|
||||
<br>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 28}'>28</ui-button></span>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 29}'>29</ui-button></span>
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 30}'>30</ui-button></span>
|
||||
<br>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 31}'>31</ui-button></span>
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 32}'>32</ui-button></span>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 33}'>33</ui-button></span>
|
||||
<br>
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 34}'>34</ui-button></span>
|
||||
<span class="number black"><ui-button action='ChangeBetType' params='{"type": 35}'>35</ui-button></span>
|
||||
<span class="number red"><ui-button action='ChangeBetType' params='{"type": 36}'>36</ui-button></span>
|
||||
</span>
|
||||
<span style="float:left; margin-top:40px;">
|
||||
<ui-button class="image_button" action='ChangeBetType' params='{"type": "s1-18"}'><span class="roulette32x72 low"></ui-button>
|
||||
<br>
|
||||
<ui-button class="image_button" action='ChangeBetType' params='{"type": "even"}'><span class="roulette32x72 even"></ui-button>
|
||||
<br>
|
||||
<ui-button class="image_button" action='ChangeBetType' params='{"type": 0}'><span class="roulette32x72 zero"></ui-button>
|
||||
<br>
|
||||
<ui-button class="image_button" action='ChangeBetType' params='{"type": "odd"}'><span class="roulette32x72 odd"></ui-button>
|
||||
<br>
|
||||
<ui-button class="image_button" action='ChangeBetType' params='{"type": "s19-36"}'><span class="roulette32x72 high"></ui-button>
|
||||
</span>
|
||||
<span style="float:left; margin-top:160px;">
|
||||
<ui-button class="image_button" action='ChangeBetType' params='{"type": "red"}'><span class="roulette32x72 red"></span></ui-button>
|
||||
<br>
|
||||
<ui-button class="image_button" action='ChangeBetType' params='{"type": "black"}'><span class="roulette32x72 black"></span></ui-button>
|
||||
</span>
|
||||
|
||||
<div style="text-align:right;">
|
||||
<span class="roulette64x64 nano"></span>
|
||||
</div>
|
||||
<span class="display" style="float:right;">
|
||||
<div>
|
||||
House balance: {{data.HouseBalance}}₵
|
||||
<br>
|
||||
Account balance: {{data.AccountBalance}}₵
|
||||
<br>
|
||||
Current bet: {{data.BetAmount}}₵ on {{data.BetType}}
|
||||
</div>
|
||||
<div class="amount" style="text-align:center;">
|
||||
<ui-button action='ChangeBetAmount' params='{"amount": 10}'>Bet 10₵</ui-button>
|
||||
<br>
|
||||
<ui-button action='ChangeBetAmount' params='{"amount": 50}'>Bet 50₵</ui-button>
|
||||
<br>
|
||||
<ui-button action='ChangeBetAmount' params='{"amount": 100}'>Bet 100₵</ui-button>
|
||||
<br>
|
||||
<ui-button action='ChangeBetAmount' params='{"amount": 250}'>Bet 250₵</ui-button>
|
||||
<br>
|
||||
<ui-button action='ChangeBetAmount' params='{"amount": 500}'>Bet 500₵</ui-button>
|
||||
<br>
|
||||
<ui-button action='ChangeBetAmountCustom' >Bet a custom amount</ui-button>
|
||||
<br>
|
||||
<ui-button action='anchor'>{{data.IsAnchored ? "Unbolt" : "Bolt"}}</ui-button>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
@@ -1,55 +0,0 @@
|
||||
&.roulette
|
||||
|
||||
.number .button
|
||||
width 32px
|
||||
height 32px
|
||||
font-size 16px
|
||||
margin 4px
|
||||
margin-left 2px
|
||||
border none
|
||||
color white
|
||||
|
||||
.number.red
|
||||
button-color-normal = #AA1818
|
||||
button-color-selected = #CFBA47
|
||||
@import "util/*"
|
||||
@import "components/*"
|
||||
|
||||
.number.black
|
||||
button-color-normal = #1A1A1A
|
||||
@import "util/*"
|
||||
@import "components/*"
|
||||
|
||||
.image_button
|
||||
color none
|
||||
width 32px
|
||||
height 72px
|
||||
font-size 16px
|
||||
margin 4px
|
||||
padding 0px
|
||||
border none
|
||||
|
||||
.amount
|
||||
.button
|
||||
height 32px
|
||||
font-size 16px
|
||||
margin 4px
|
||||
color white
|
||||
width 90%
|
||||
margin-top 8px
|
||||
border-style ridge
|
||||
border-color #06541f
|
||||
button-color-normal = #146630
|
||||
@import "util/*"
|
||||
@import "components/*"
|
||||
|
||||
.display
|
||||
padding 4px
|
||||
margin 8px
|
||||
width 200px
|
||||
border-style ridge
|
||||
color white
|
||||
background-color #097a2d
|
||||
border-color #06541f
|
||||
|
||||
|
||||
@@ -16,14 +16,6 @@
|
||||
{{/each}}
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
{{#if data.category == 3}}
|
||||
<ui-display title='Color'>
|
||||
{{#each data.paint_colors}}
|
||||
<ui-button state='{{@key == data.selected_color ? "selected" : null}}'
|
||||
action='color' params='{"paint_color": {{@key}}}'>{{@key}}</ui-button>
|
||||
{{/each}}
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
<ui-display title='Utilities'>
|
||||
<ui-button icon='{{data.mode & 1 ? "check-square-o" : "square-o"}}'
|
||||
action='mode' params='{"mode": 1}'>Build</ui-button>
|
||||
@@ -36,8 +28,7 @@
|
||||
action='mode' params='{"mode": 8}'>Paint</ui-button>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
{{#if data.locked == 0}}
|
||||
<ui-display title='Category'>
|
||||
<ui-display title='Category'>
|
||||
<ui-section>
|
||||
<ui-button icon='{{data.category == 0 ? "check-square-o" : "square-o"}}' state='{{data.category <= 0 ? "selected" : null}}'
|
||||
action='category' params='{"category": 0}'>Atmospherics</ui-button>
|
||||
@@ -46,9 +37,7 @@
|
||||
<ui-button icon='{{data.category == 2 ? "check-square-o" : "square-o"}}' state='{{data.category == 2 ? "selected" : null}}'
|
||||
action='category' params='{"category": 2}'>Transit Tubes</ui-button>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
{{#if data.category == 0}}
|
||||
{{#if data.category == 0}}
|
||||
<ui-section label='Piping Layer'>
|
||||
<ui-button state='{{data.piping_layer == 1 ? "selected" : null}}' action='piping_layer'
|
||||
params='{"piping_layer": 1}'>1</ui-button>
|
||||
@@ -57,21 +46,8 @@
|
||||
<ui-button state='{{data.piping_layer == 3 ? "selected" : null}}' action='piping_layer'
|
||||
params='{"piping_layer": 3}'>3</ui-button>
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
{{#if data.category == 3}}
|
||||
<ui-section label='Ducting Layer'>
|
||||
<ui-button state='{{data.ducting_layer == 1 ? "selected" : null}}' action='ducting_layer'
|
||||
params='{"ducting_layer": 1}'>1</ui-button>
|
||||
<ui-button state='{{data.ducting_layer == 2 ? "selected" : null}}' action='ducting_layer'
|
||||
params='{"ducting_layer": 2}'>2</ui-button>
|
||||
<ui-button state='{{data.ducting_layer == 4 ? "selected" : null}}' action='ducting_layer'
|
||||
params='{"ducting_layer": 4}'>3</ui-button>
|
||||
<ui-button state='{{data.ducting_layer == 8 ? "selected" : null}}' action='ducting_layer'
|
||||
params='{"ducting_layer": 8}'>4</ui-button>
|
||||
<ui-button state='{{data.ducting_layer == 16 ? "selected" : null}}' action='ducting_layer'
|
||||
params='{"ducting_layer": 16}'>5</ui-button>
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
{{#each data.categories}}
|
||||
<ui-display title='{{cat_name}}'>
|
||||
{{#each recipes}}
|
||||
|
||||
6
tgui/src/interfaces/rpd/colorsel.ract
Normal file
6
tgui/src/interfaces/rpd/colorsel.ract
Normal file
@@ -0,0 +1,6 @@
|
||||
<ui-display title='Color'>
|
||||
{{#each data.paint_colors}}
|
||||
<ui-button state='{{selected ? "selected" : null}}' action='color'
|
||||
params='{"paint_color": {{color_name}}}'>{{color_name}}</ui-button>
|
||||
{{/each}}
|
||||
</ui-display>
|
||||
10
tgui/src/interfaces/rpd/dirsel.ract
Normal file
10
tgui/src/interfaces/rpd/dirsel.ract
Normal file
@@ -0,0 +1,10 @@
|
||||
<ui-display title='Direction'>
|
||||
{{#each data.preview_rows}}
|
||||
<ui-section>
|
||||
{{#each previews}}
|
||||
<ui-button state='{{selected ? "selected" : null}}' action='setdir'
|
||||
params='{"dir": {{dir}}, "flipped": {{flipped}}}'><img src='pipe.{{dir}}.{{icon_state}}.png' title='{{dir_name}}'/></ui-button>
|
||||
{{/each}}
|
||||
</ui-section>
|
||||
{{/each}}
|
||||
</ui-display>
|
||||
@@ -1,19 +0,0 @@
|
||||
<ui-display title='Scanner Gate'>
|
||||
<ui-section label='Scan Mode'><ui-button icon='pencil' action='set_mode'></ui-button> {{data.scan_mode}}</ui-section>
|
||||
{{#if data.scan_mode == "Disease"}}
|
||||
<ui-section label='Disease Severity'><ui-button icon='pencil' action='set_disease_threshold'></ui-button> {{data.disease_threshold}}</ui-section>
|
||||
{{/if}}
|
||||
{{#if data.scan_mode == "Nanites"}}
|
||||
<ui-section label='Cloud ID'><ui-button icon='pencil' action='set_nanite_cloud'></ui-button> {{data.nanite_cloud}}</ui-section>
|
||||
{{/if}}
|
||||
{{#if data.scan_mode == "Species"}}
|
||||
<ui-section label='Target Species'><ui-button icon='pencil' action='set_target_species'></ui-button> {{data.target_species}}</ui-section>
|
||||
{{/if}}
|
||||
{{#if data.scan_mode == "Hygiene"}}
|
||||
<ui-section label='Hygiene Level'><ui-button icon='pencil' action='set_target_hygiene'></ui-button> {{data.target_hygiene}}</ui-section>
|
||||
{{/if}}
|
||||
{{#if data.scan_mode == "Nutrition"}}
|
||||
<ui-section label='Nutrition Level'><ui-button icon='pencil' action='set_target_nutrition'></ui-button> {{data.target_nutrition}}</ui-section>
|
||||
{{/if}}
|
||||
<ui-section><ui-button tooltip='If inverted, the gate will detect all entities that do NOT meet the set requirements.' tooltip-side='right' action='toggle_reverse'>{{data.reverse ? "Inverted Scan" : "Regular Scan" }}</ui-button></ui-section>
|
||||
</ui-display>
|
||||
@@ -15,12 +15,29 @@
|
||||
<ui-bar min='0' max='{{data.occupant.maxHealth}}' value='{{data.occupant[type]}}' state='bad'>{{Math.round(adata.occupant[type])}}</ui-bar>
|
||||
</ui-section>
|
||||
{{/each}}
|
||||
{{#if data.occupant.blood}}
|
||||
<ui-section label='Blood'>
|
||||
<ui-section label='Volume'>
|
||||
<ui-bar min='0' max='{{data.occupant.blood.maxBloodVolume}}' value='{{data.occupant.blood.currentBloodVolume}}' state='{{data.occupant.blood.currentBloodVolume <= data.occupant.blood.dangerBloodVolume ? "bad" : "good"}}'>{{& data.occupant.blood.currentBloodVolume <= data.occupant.blood.dangerBloodVolume ? "<b>LOW</b>" : "OK"}} - {{Math.round(data.occupant.blood.currentBloodVolume)}} cl</ui-bar>
|
||||
</ui-section>
|
||||
<ui-section label='Type'>
|
||||
<span class='highlight'>{{data.occupant.blood.bloodType}}</span>
|
||||
</ui-section>
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
<ui-section label='Cells'>
|
||||
<span class='{{data.occupant.cloneLoss ? "bad" : "good"}}'>{{data.occupant.cloneLoss ? "Damaged" : "Healthy"}}</span>
|
||||
</ui-section>
|
||||
<ui-section label='Brain'>
|
||||
<span class='{{data.occupant.brainLoss ? "bad" : "good"}}'>{{data.occupant.brainLoss ? "Abnormal" : "Healthy"}}</span>
|
||||
</ui-section>
|
||||
{{#if data.occupant.failing_organs}}
|
||||
<ui-section label='Failing Organs'>
|
||||
{{#each data.occupant.failing_organs}}
|
||||
<span class='bad'> {{name}} </span>
|
||||
{{/each}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
<ui-section label='Bloodstream'>
|
||||
{{#each adata.occupant.reagents}}
|
||||
<span class='highlight' intro-outro='fade'>{{Math.fixed(volume, 1)}} units of {{name}}</span><br/>
|
||||
@@ -34,9 +51,89 @@
|
||||
<ui-section label='Door'>
|
||||
<ui-button icon='{{data.open ? "unlock" : "lock"}}' action='door'>{{data.open ? "Open" : "Closed"}}</ui-button>
|
||||
</ui-section>
|
||||
<ui-section label='Inject'>
|
||||
{{#each data.chems}}
|
||||
<ui-button icon='flask' state='{{data.occupied && allowed ? null : "disabled"}}' action='inject' params='{"chem": "{{id}}"}'>{{name}}</ui-button><br/>
|
||||
|
||||
<ui-section label='Synthesize'>
|
||||
{{#each data.synthchems}}
|
||||
<ui-button grid state='{{synth_allowed ? null : "disabled"}}' action='synth' params='{"chem": "{{id}}"}'>{{name}}</ui-button>
|
||||
{{/each}}
|
||||
</ui-section>
|
||||
|
||||
<ui-section label='Inject'>
|
||||
<div class="display tabular">
|
||||
<section class="candystripe">
|
||||
<section class="compressedcell">
|
||||
Name
|
||||
</section>
|
||||
|
||||
<section class="compressedcell">
|
||||
Volume
|
||||
</section>
|
||||
|
||||
{{#if data.efficiency >= 4}}
|
||||
<section class="compressedcell">
|
||||
<span>Purity</span>
|
||||
</section>
|
||||
{{/if}}
|
||||
|
||||
{{#if data.efficiency >= 3}}
|
||||
<section class="compressedcell">
|
||||
</section>
|
||||
{{/if}}
|
||||
|
||||
{{#if data.efficiency >= 2}}
|
||||
<section class="compressedcell">
|
||||
</section>
|
||||
{{/if}}
|
||||
|
||||
<section class="compressedcell">
|
||||
</section>
|
||||
|
||||
<section class="compressedcell">
|
||||
</section>
|
||||
|
||||
</section>
|
||||
{{#each data.chems}}
|
||||
<section class="candystripe">
|
||||
<section class="compressedcell">
|
||||
<span><b>{{name}}</b></span>
|
||||
</section>
|
||||
|
||||
<section class="compressedcell" align='center'>
|
||||
<span>{{vol}}u</span>
|
||||
</section>
|
||||
|
||||
{{#if data.efficiency >= 4}}
|
||||
<section class="compressedcell" align='center'>
|
||||
<span>{{purity}}</span>
|
||||
</section>
|
||||
{{/if}}
|
||||
|
||||
{{#if data.efficiency >= 3}}
|
||||
<section class="compressedcell">
|
||||
<ui-button state='{{data.occupied && allowed ? null : "disabled"}}' action='inject' params='{"chem": "{{id}}", "volume": 1}'>1</ui-button>
|
||||
</section>
|
||||
{{/if}}
|
||||
|
||||
{{#if adata.efficiency >= 2}}
|
||||
<section class="compressedcell">
|
||||
<ui-button state='{{data.occupied && allowed ? null : "disabled"}}' action='inject' params='{"chem": "{{id}}", "volume": 5}'>5</ui-button>
|
||||
</section>
|
||||
{{/if}}
|
||||
|
||||
<section class="compressedcell">
|
||||
<ui-button state='{{data.occupied && allowed ? null : "disabled"}}' action='inject' params='{"chem": "{{id}}", "volume": 10}'>10</ui-button>
|
||||
</section>
|
||||
|
||||
<section class="compressedcell">
|
||||
<ui-button action='purge' params='{"chem": "{{id}}"}'>Purge</ui-button><br/>
|
||||
</section>
|
||||
|
||||
</section>
|
||||
{{/each}}
|
||||
</div>
|
||||
</ui-section>
|
||||
<ui-section label='Capacity'>
|
||||
<ui-bar min=0 max='{{data.tot_capacity}}' value='{{data.current_vol}}'
|
||||
state='{{data.current_vol}}'>{{data.current_vol}}</ui-bar>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
{{/if}}
|
||||
{{#if data.uv_active}}
|
||||
<ui-notice>
|
||||
<span>Contents are being decontaminated. Please wait.</span>
|
||||
<span>Contents are being disinfected. Please wait.</span>
|
||||
</ui-notice>
|
||||
{{else}}
|
||||
<ui-display title='Storage' button>
|
||||
@@ -35,7 +35,7 @@
|
||||
action='dispense' params='{"item": "storage"}'>{{data.storage || "Empty"}}</ui-button>
|
||||
</ui-section>
|
||||
{{else}}
|
||||
<ui-button icon='recycle' state='{{data.occupied && data.safeties ? "disabled" : null}}' action='uv'>Decontaminate</ui-button>
|
||||
<ui-button icon='recycle' state='{{data.occupied && data.safeties ? "disabled" : null}}' action='uv'>Disinfect</ui-button>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
|
||||
@@ -1,148 +0,0 @@
|
||||
<link rel='ractive' href='./ntosheader.ract'>
|
||||
<ntosheader/>
|
||||
|
||||
<ui-display>
|
||||
<div style="position:relative;">
|
||||
{{#if data.error}}
|
||||
<div style="position:absolute; width=75%; margin:auto; padding:5px; top:2px; background-color: black; border: 1px solid #750000; text-align:center; z-index: 5000;">
|
||||
<div style="color:white; font-weight: bold; font-style: italic; margin-bottom: 10px">
|
||||
{{data.error}}
|
||||
</div>
|
||||
<div style="text-align:center; margin-bottom:3px">
|
||||
<ui-button action='PRG_clear_error'>Confirm</ui-button>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if data.logged_in}}
|
||||
{{#if data.page == "CONTRACTS"}}
|
||||
<div style="position:absolute; top:2px; right:2px">
|
||||
<ui-button action='PRG_contractor_hub'><div style="padding-top:6px; padding-bottom:3px"><i class="fas fa-satellite-dish fa-3x"></i></div></ui-button>
|
||||
</div>
|
||||
<div style="text-align:center">
|
||||
<h1>Welcome Agent...</h1>
|
||||
<br>
|
||||
<h3>Current status: Onboard {{data.station_name}}.</h3>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
We've identified potentional high-value targets that are currently
|
||||
assigned to your mission area. They are believed to hold valuable information
|
||||
which could be of immediate importance to our organisation.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Listed below are all of the contracts available to you. You are to bring the
|
||||
specified target to the designated drop-off, and contact us via this uplink. We will send
|
||||
a specialised extraction unit to put the body into.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
We want targets alive - but we will sometimes pay slight amounts if they're not, you just won't
|
||||
recieve the shown bonus. You can redeem your payment through this uplink in the form of raw telecrystals,
|
||||
which can be put into your regular Syndicate uplink to purchase whatever you may need. We provide you with
|
||||
these crystals the moment you send the target up to us, which can be collected at anytime through this system.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Targets extracted will be ransomed back to the station once their use to us is fulfilled, with us providing
|
||||
you a small percentage cut. You may want to be mindful of them identifying you when they come back.
|
||||
We provide you with the standard contractor loadout, which will help cover your identity.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You have {{data.redeemable_tc}} TC to redeem. <ui-button action='PRG_redeem_TC'>Collect</ui-button>
|
||||
</p>
|
||||
{{#if data.ongoing_contract}}
|
||||
<div style="text-align:center; margin-bottom:3px">
|
||||
<ui-button action='PRG_call_extraction' {{#if extraction_enroute}}state="disabled"{{/if}}>Call Extraction</ui-button>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<table style="text-align:center;" border="2" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<th>Target</th>
|
||||
<th>Payment</th>
|
||||
<th>Drop-Off</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
|
||||
{{#each data.contracts}}
|
||||
{{#if data.ongoing_contract}}
|
||||
{{#if status == 2 || status == 3 || status == 4}}
|
||||
<tr>
|
||||
<td>
|
||||
<div>{{target}}</div>
|
||||
<div>({{target_rank}})</div>
|
||||
</td>
|
||||
<td>{{payout}} (+{{payout_bonus}}) TC</td>
|
||||
<td>{{dropoff}}</td>
|
||||
<td><ui-button action='PRG_contract_abort' {{#if extraction_enroute}}state="disabled"{{/if}} params='{"contract_id": "{{id}}"}'>Cancel</ui-button></td>
|
||||
</tr>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{#if status != 5 && status != 6}}
|
||||
<tr>
|
||||
<td>
|
||||
<div>{{target}}</div>
|
||||
<div>({{target_rank}})</div>
|
||||
</td>
|
||||
<td>{{payout}} (+{{payout_bonus}}) TC</td>
|
||||
<td>{{dropoff}}</td>
|
||||
<td><ui-button action='PRG_contract-accept' params='{"contract_id": "{{id}}"}'>Accept</ui-button></td>
|
||||
</tr>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
|
||||
</table>
|
||||
{{#if data.ongoing_contract}}
|
||||
<div style="text-align:center;">
|
||||
<ui-display title='Dropoff Locator'>
|
||||
Current Location: {{data.current_location}}
|
||||
<br>
|
||||
Dropoff Location: {{data.dropoff_direction}}
|
||||
</ui-display>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<div style="position:absolute; top:2px; left:2px"><ui-button action='PRG_hub_back'><i class="fas fa-arrow-left"></i> Back</ui-button></div>
|
||||
<div style="position:absolute; top:2px; right:2px">Contractor Rep: {{data.contract_rep}}</div>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<p style="text-align: center">
|
||||
The items available on the Hub are available only to contractors. They are bought using Contractor Rep, with two Rep being given on the completion of a contract.
|
||||
</p>
|
||||
|
||||
<div class="margin-top: 10px">
|
||||
{{#each data.contractor_hub_items}}
|
||||
{{#if limited != 0}}
|
||||
<div style="margin-top:10px; border: 1px solid white">
|
||||
<div style="text-align:center; margin-top:5px; margin-bottom:3px">
|
||||
{{name}}{{#if cost != 0}} - {{cost}} Rep{{/if}}
|
||||
</div>
|
||||
<div style="text-align:center; margin-top: 10px">
|
||||
<i class="fas {{item_icon}} fa-3x"></i>
|
||||
</div>
|
||||
<div style="text-align:center; padding:15px">
|
||||
<p>{{desc}}</p>
|
||||
</div>
|
||||
<div style="text-align:center; margin-bottom:5px">
|
||||
<ui-button action='buy_hub' params='{"item": "{{name}}", "cost": "{{cost}}"}'>{{#if limited != -1}}Purchase - {{limited}} remaining{{else}}Purchase{{/if}}</ui-button>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<div style="text-align:center">
|
||||
<ui-button action='PRG_login'>Assign</ui-button><br>
|
||||
{{#if data.error}}
|
||||
{{data.error}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</ui-display>
|
||||
@@ -1,12 +0,0 @@
|
||||
<ui-display title='Select' button>
|
||||
<ui-section>
|
||||
{{#each data.possible_amounts}}
|
||||
<ui-button icon='plus' state='{{data.amount == . ? "selected" : null}}' action='amount' params='{"target": {{.}}}'>{{.}}</ui-button>
|
||||
{{/each}}
|
||||
</ui-section>
|
||||
<ui-section>
|
||||
{{#each data.chemicals}}
|
||||
<ui-button grid icon='tint' state='{{data.current_reagent == id ? "selected" : null}}' action='select' params='{"reagent": "{{id}}"}'>{{title}}</ui-button>
|
||||
{{/each}}
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
@@ -12,14 +12,14 @@
|
||||
action='power'>{{data.on ? "On": "Off"}}</ui-button>
|
||||
</ui-section>
|
||||
<ui-section label='Target Temperature'>
|
||||
<ui-button icon='fast-backward' state='{{data.target == data.min ? "disabled" : null}}'
|
||||
<ui-button icon='fast-backward' style='{{data.target == data.min ? "disabled" : null}}'
|
||||
action='target' params='{"adjust": -20}'/>
|
||||
<ui-button icon='backward' state='{{data.target == data.min ? "disabled" : null}}'
|
||||
<ui-button icon='backward' style='{{data.target == data.min ? "disabled" : null}}'
|
||||
action='target' params='{"adjust": -5}'/>
|
||||
<ui-button icon='pencil' action='target' params='{"target": "input"}'>{{Math.fixed(adata.target, 2)}}</ui-button>
|
||||
<ui-button icon='forward' state='{{data.target == data.max ? "disabled" : null}}'
|
||||
<ui-button icon='forward' style='{{data.target == data.max ? "disabled" : null}}'
|
||||
action='target' params='{"adjust": 5}'/>
|
||||
<ui-button icon='fast-forward' state='{{data.target == data.max ? "disabled" : null}}'
|
||||
<ui-button icon='fast-forward' style='{{data.target == data.max ? "disabled" : null}}'
|
||||
action='target' params='{"adjust": 20}'/>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
<ui-display>
|
||||
<ui-section label='Charge'>
|
||||
<ui-bar min='0' max='{{data.max}}' value='{{data.stored}}'>{{Math.fixed(data.stored/1000)}}/{{data.max/1000}} kW</ui-bar>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
<ui-display>
|
||||
<ui-section label='Lock status'>
|
||||
<ui-button state='{{data.stored < data.max ? "disabled" : null}}' action='togglelock'>{{data.doorstatus ? "Locked" : "Unlocked"}}</ui-button>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
56
tgui/src/interfaces/vr_sleeper.ract
Normal file
56
tgui/src/interfaces/vr_sleeper.ract
Normal file
@@ -0,0 +1,56 @@
|
||||
<script>
|
||||
component.exports = {
|
||||
data: {
|
||||
healthState(health) {
|
||||
let maxhealth = this.get('data.vr_avatar.maxhealth')
|
||||
if(health > (maxhealth/1.5)) return 'good'
|
||||
else if(health > (maxhealth/3)) return 'average'
|
||||
else return 'bad'
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<ui-display>
|
||||
{{#if data.emagged}}
|
||||
<ui-notice>
|
||||
<span>Safety restraints disabled.</span>
|
||||
</ui-notice>
|
||||
{{/if}}
|
||||
{{#if data.vr_avatar}}
|
||||
<ui-display title='Virtual Avatar'>
|
||||
<ui-section label='Name'>
|
||||
{{data.vr_avatar.name}}
|
||||
</ui-section>
|
||||
{{#if data.isliving}}
|
||||
<ui-section label='Status'>
|
||||
{{data.vr_avatar.status}}
|
||||
</ui-section>
|
||||
<ui-section label='Health'>
|
||||
<ui-bar min='0' max='{{adata.vr_avatar.maxhealth}}' value='{{adata.vr_avatar.health}}' state='{{healthState(adata.vr_avatar.health)}}'>{{Math.round(adata.vr_avatar.health)}}/{{adata.vr_avatar.maxhealth}}</ui-bar>
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
{{else}}
|
||||
<ui-display title='Virtual Avatar'>
|
||||
No Virtual Avatar detected
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
<ui-display title='VR Commands'>
|
||||
<ui-button icon='{{data.toggle_open ? "times" : "plus"}}' action='toggle_open'>
|
||||
{{data.toggle_open ? "Close" : "Open"}} the VR Sleeper
|
||||
</ui-button>
|
||||
{{#if data.isoccupant}}
|
||||
<ui-button icon='signal' action='vr_connect'>
|
||||
Connect to VR
|
||||
</ui-button>
|
||||
{{/if}}
|
||||
{{#if data.vr_avatar}}
|
||||
<ui-button icon='ban' action='delete_avatar'>
|
||||
Delete Virtual Avatar
|
||||
</ui-button>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
</ui-display>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user