+ {{if data.beaker}}
+ {{:data.reagentAmount}}u / {{:data.reagentMax}}u
+ {{:helper.displayBar(data.reagentAmount, data.reagentMax, data.reagentMin, 'good', null, 'displayBarBeaker')}}
+ {{else}}
+ ERRR%
+ {{:helper.displayBar(data.reagentAmount, data.reagentMax, data.reagentMin, 'good', null, 'displayBarBeaker')}}
+ {{/if}}
+
+
+
Sensor Readings:
+ {{if data.occupied}}
+
+
+ Instability:
+
+
+ {{if data.instability}}
+ {{:data.instability}}%
+ {{else}}
+ ERRR% Please contact your local technician for assistance.
+ {{/if}}
+
+
+ Occupant Health:
+
+
+ {{if data.occupantHealth}}
+ {{:data.occupantHealth}}/{{:data.occupantHealthMax}}
+ {{else}}
+
ERRR% Please contact your local technician for assistance.
+ {{/if}}
+ {{else}}
+
+
+ Injector is not occupied.
+
+ {{/if}}
+
+
+
+
+
Controls:
+
+ {{:helper.link('Eject Beaker', 'eject', {'eject_beaker' : 1})}} {{:helper.link('Eject Occupant', 'eject', {'eject_occupant' : 1})}} {{:helper.link('Inject Occupant', 'syringe', {'inject_target' : 1})}}
+
+
+
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/xenobio_editor.tmpl b/nano/templates/xenobio_editor.tmpl
new file mode 100644
index 0000000000..d16b3df6b6
--- /dev/null
+++ b/nano/templates/xenobio_editor.tmpl
@@ -0,0 +1,57 @@
+
+
+{{if data.activity}}
+ Scanning...
+{{else}}
+
Buffered Genetic Data
+ {{if data.disk}}
+
+
+ Source:
+
+
+ {{:data.sourceName}}
+
+
+ Gene decay:
+
+
+ {{if data.degradation <= 100}}
+ {{:data.degradation}}%
+ {{else}}
+ FURTHER AMENDMENTS NONVIABLE
+ {{/if}}
+
+
+ Locus:
+
+
+ {{:data.locus}}
+
+ {{:helper.link('Eject Disk', 'circle-arrow-e', {'eject_disk' : 1}, null)}}
+
+ {{else}}
+
No disk loaded.
+ {{/if}}
+
Loaded Material
+ {{if data.loaded}}
+
+
+ Target:
+
+
+ {{:data.loaded}}
+
+ {{if data.degradation <= 100}}
+ {{:helper.link('Apply Gene Mods', 'gear', {'apply_gene' : 1}, null)}}
+ {{/if}}
+ {{:helper.link('Eject Target', 'circle-arrow-e', {'eject_xeno' : 1}, null)}}
+
+ {{else}}
+
No target organism loaded
+ {{/if}}
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/xenobio_isolator.tmpl b/nano/templates/xenobio_isolator.tmpl
new file mode 100644
index 0000000000..3bc855a457
--- /dev/null
+++ b/nano/templates/xenobio_isolator.tmpl
@@ -0,0 +1,74 @@
+
+
+{{if data.activity}}
+ Scanning...
+{{else}}
+
Buffered Genetic Data
+ {{if data.hasGenetics}}
+
+
+ Source:
+
+
+ {{:data.sourceName}}
+
+
+ Gene decay:
+
+
+ {{:data.degradation}}%
+
+
+ {{if data.disk}}
+ {{for data.geneMasks}}
+
+
+ {{:value.mask}}
+
+
+ {{:helper.link('Extract', 'circle-arrow-s', {'get_gene' : value.tag}, null)}}
+
+
+ {{empty}}
+
Data error. Genetic record corrupt.
+ {{/for}}
+
+
+ {{:helper.link('Eject Loaded Disk', 'circle-arrow-e', {'eject_disk' : 1}, null)}}
+ {{:helper.link('Clear Genetic Buffer', 'gear', {'clear_buffer' : 1}, null)}}
+
+ {{else}}
+
No disk inserted.
+ {{/if}}
+ {{else}}
+
No data buffered.
+ {{if data.disk}}
+
+
+ {{:helper.link('Eject Loaded Disk', 'circle-arrow-e', {'eject_disk' : 1}, null)}}
+
+ {{else}}
+
No disk inserted.
+ {{/if}}
+ {{/if}}
+
Loaded Material
+ {{if data.loaded}}
+
+
+ Product loaded:
+
+
+ {{:data.loaded}}
+
+
+ {{:helper.link('Process Genome', 'gear', {'scan_genome' : 1}, null)}}{{:helper.link('Eject Product', 'circle-arrow-e', {'eject_product' : 1}, null)}}
+
+
+ {{else}}
+
No biologocial sample loaded.
+ {{/if}}
+{{/if}}
\ No newline at end of file
diff --git a/polaris.dme b/polaris.dme
index e47f97da6e..c09bd6af43 100644
--- a/polaris.dme
+++ b/polaris.dme
@@ -1894,6 +1894,22 @@
#include "code\modules\virus2\helpers.dm"
#include "code\modules\virus2\isolator.dm"
#include "code\modules\virus2\items_devices.dm"
+#include "code\modules\xenobio2\_xeno_setup.dm"
+#include "code\modules\xenobio2\controller.dm"
+#include "code\modules\xenobio2\machinery\core_extractor.dm"
+#include "code\modules\xenobio2\machinery\gene_manipulators.dm"
+#include "code\modules\xenobio2\machinery\injector.dm"
+#include "code\modules\xenobio2\machinery\injector_computer.dm"
+#include "code\modules\xenobio2\machinery\slime_replicator.dm"
+#include "code\modules\xenobio2\mob\xeno procs.dm"
+#include "code\modules\xenobio2\mob\xeno.dm"
+#include "code\modules\xenobio2\mob\xeno_product.dm"
+#include "code\modules\xenobio2\mob\slime\slime life.dm"
+#include "code\modules\xenobio2\mob\slime\slime procs.dm"
+#include "code\modules\xenobio2\mob\slime\slime.dm"
+#include "code\modules\xenobio2\mob\slime\slime_core.dm"
+#include "code\modules\xenobio2\mob\slime\slime_monkey.dm"
+#include "code\modules\xenobio2\tools\slime_handling_tools.dm"
#include "code\modules\xgm\xgm_gas_data.dm"
#include "code\modules\xgm\xgm_gas_mixture.dm"
#include "code\unit_tests\loadout_tests.dm"