User:H0lySquirr3l: Difference between revisions

From VORE Station Wiki
Jump to navigation Jump to search
(Created page with "Writing is an integral part to paperwork and writing books! If you want to write an official department memo, or a good looking book, you're gonna have to know how to write it...")
 
No edit summary
(19 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Writing is an integral part to paperwork and writing books! If you want to write an official department memo, or a good looking book, you're gonna have to know how to write it.
{{wip}}
= WIP IC Station Events Page. =
Listed below should be a collection of the chronicles of Virgo station. We would like to implore you to offer any information you can about the shift to shit action of the station. From a first hand accounts with evidence to a simple vague rumor would be more than appreciated.


To properly understand this, you need a basic grasp of BBCode or HTML. But don't worry, even if you don't know either, just try copy pasting the examples and replacing the text with your own! Once you're comfortable with that, try experimenting with what works together and how.
== Timeline of Adephagi station operations. ==


==Writing==
== '''2550:''' ==
Writing is performed on paper using any standard writing utensil.


*'''Pens''' come in a few different colors, black or blue by default, and some departments are provided with red pens. Pens have a variety of functions!
=== 2557''':''' ===
*'''Crayons''' work much like pens, except that they are always bold, and lack the list, horizontal rule, and small tags.
An [[Exodus-class]] space station is purchased from an orbital shipyard in [[Tau Ceti]], and is shipped to the Virgo-Erigone system.


==Formatting Paper==
'''January:''' The NSS Adephagia begins operation as the first [[Map|Virgo Orbital Research Establishment]] (VORE-1) with [[Kessmia Mills]] as its first Captain. It is minimally crewed with only some heads of staff, even excluding a Head of Security.


===Signature===
'''February:''' VORE-1's crew exceeds 20 people for the first time.
To sign your name, use the [sign] tag. Remember that '''if you use the [sign] tag, your signature is unique and cannot be forged in most cases.'''
<pre>Your signature: [sign]</pre>


===Field===
'''March:''' An engineer from VORE-1 is knocked into orbit during an asteroid storm. He survives his injuries and ends up aboard the derelict remains of the Virgo Research Outpost, where he finds evidence of a conspiracy to kill the station's inhabitants, and that the alleged meteor storm was nothing but a cover-up. NanoTrasen blames Lead Supervisor Townes for the deaths and subsequent cover-up. SolGov issues a warrant for Townes's arrest. Townes disappears into hiding.
To insert a field from which you can start writing (instead of just using the bottom of the paper), use the [field] tag.
<pre>Reason for Request: [field]</pre>


===New Lines===
'''April:''' During a company celebration of VORE-1's success, James Townes returns from hiding alongside sympathizers from the Syndicate, and hijacks the NDV Brutus. In response, Captain [[Harmony Prechtl]] leads [[Operation Magnum]], which results in the death of former Colonel Townes.
New lines can be created by using the [br] tag. Without this, anything you write will continue on the same line until it reaches the end of the page.
<pre>text above
[br]
text below</pre>


===Bold===
'''May:''' VORE-1 is intentionally destroyed in a [[Standard Operating Procedure#Code Delta - Imminent Destruction|code Delta]] nuclear detonation by Captain [[Jeremiah Acacius]] during an emergency caused by a xenobio slime infestation that got out of control and attained a hivemind-like sentience. VORE-2 is purchased and shipped in two weeks later, and replaces VORE-1. It is also an Exodus-class station, but with some modernization upgrades.
To make text bold, enclose it within the [b] and [/b] tags.
<pre>[b]This text is going to be bold.[/b] This text is not.</pre>


===Italics===
'''October:''' A crew from VG-Box outpost in the [[Tau Ceti]] system are somehow flown thousands of light years off course to the VORE-2 by mistake. [[The Red October Riot]] occurs, resulting in the complete loss of the VG-Box crew. The reason for the erroneous redirect to NSS Adephagia remains a mystery to this day. A memorial plaque is put up outside the VORE-1 bar in the aftermath of the incident.
To italicize text, enclose it within the [i] and [/i] tags.
<pre>[i]This text is italicized.[/i] This text is not.</pre>


===Underlining===
'''December:''' [[Tal]] is annexed under SolGov's control, granting [[Sol Central]] passports to Sergals, and later Nevareans. These two races begin leaving Vilous to work for various corporations  and businesses, including NanoTrasen.
To underline text, enclose it within the [u] and [/u] tags.
<pre>[u]This text is underlined.[/u] This text is not.</pre>


===Centering===
=== 2558''':''' ===
To center text, enclose it with the [center] and [/center] tags.
[[The Redspace Crisis]] takes place. Between May and October, anomalous space-time rifts begin to appear in the Virgo-Erigone system, unleashing deadly creatures that terrorize the station's crew. A researcher aboard VORE-2 named [[Kisuke Gema]] spearheads research of the anomalies, and discovers a new field of inter-dimensional physics which becomes known as [[Redspace]].
<nowiki>[center]Type the center tags onto the paper like this![/center]</nowiki>


===Lists===
'''October:''' The Redspace Crisis ends with the destruction of a cultist citadel ship designed to open a massive gateway to the hellish creatures that had been invading the system. Captain [[Jeremiah Acacius]] is awarded the [[Medals|Medal of Exceptional Heroism]] by NanoTrasen for his role in the assault on the Citadel ship. Redspace anomalies in the sector decline sharply. Kisuke Gema is awarded with an honorary doctorate by the NanoTrasen Institute of Technology. He becomes the youngest member of the corporation with a doctorate.A lone image of the assault captured from the ships security system.
Create a list by using the [list] and [/list] tags. For every entry in your list, add a [*] in front of your entry.
[[File:Final_Assault,_From_Operation_"REDSPACE_CRISIS".png|link=File:Final_Assault,_From_Operation_%22REDSPACE_CRISIS%22.png|alt=A lone image of the assault captured from the ships security system.|left|thumb|200x200px|A lone image of the final assault during the Redspace Crisis, captured from the ships security system.]]
For example;
[list][*]Bullet one.[*]Bullet two.[/list]


===Large Text===
'''November:''' [[Chase Monroe]] re-emerges from a portal through time, appearing on the station.
Make text larger, enclose it within the [large] and [/large] tags. Large text like this can be used for emphasis or for titles.
<pre>[large]This text is much larger[/large] than this text.</pre>


===Small Text===
=== 2559''':''' ===
To shrink text, enclose it with the [small] and [/small] tags.
'''Feb:'''  The [[Space Nazi Incident]] begins. The USDF Jörmungandr is hijacked by an extremist organization called [[The Fourth Reich]], which is commanded by Adolf Hitler look-alike who claims to have escaped 20th century Germany on Earth via time travel.
Shrunken text can be used to fit more information onto your paper.
<pre>[small]This text is very small![/small] This text is normal-sized.</pre>


===Horizontal rules===
'''May:''' Chase Monroe and several V.O.R.E. crew members board a Nazi vessel threatening the Tajaran homeworld of Meralar with a planet-destroying [[Singularity]] Bomb. Chase Monroe activates the bomb prematurely aboard the ship in order to destroy it, and is killed in the implosion. Chase Monroe refused to have himself clone-scanned at any point prior to the incident, so his death was permanent. He is posthumously awarded the [[Medal|Medal of Extraordinary Heroism]]. NanoTrasen has created a documentary holofilm surrounding the exploits of Chase Monroe and the crew of the Adephagi. footage showcases the mission to investigate Syndicate-Nazi relations, the death of Sgt Chase Monroe, the Nazi retaliation and the 21 gun salute at Monroe's funeral. '''[https://youtu.be/qH0jmOSSyaU Sgt Monroe's Last Stand]'''
To add a horizontal rule, use the [hr] tag.
<pre>text above
[hr]
text below</pre>


===NT Logo===
'''June:''' USDF Admiral [[Glenn Pink]] conscripts V.O.R.E. crew members to aid in the recapture of his flagship, the USDF Jörmungandr. [[Operation Wolf Hunt]] brings an end to the Space Nazi Incident, and 'Hitler' is killed. ONI agents confiscate the body of the Nazi leader shortly afterwards.
To add the NT logo, use the [logo] tag.
<pre>NanoTrasen Logo: [logo]</pre>


Editor's Note: All instances referencing Sol Government should be removed. The [[Virgo-Erigone]] system is not bound by Sol laws. [[NanoTrasen]] makes the laws in that frontier space.
'''December:''' The VORE-2 is retired and demolished in favor of VORE-3, which is an asteroid colony based on the blueprints of the [[Northern Star]] in the [[Vir]] system. Technical issues plague its deployment. NanoTrasen brings in a pair of experts from [[Kitsuhana Heavy Industries]] to oversee the technical development of the new station, which results in these issues being resolved.


==== '''Footnotes:''' ====
Disciple of the Honk Mother [[Chuckles LeFuck]], performed a miracle of the weird. Compressing themselves out of existence through traveling up their own Ass. His last words being ''"CATCH YOU ON THE FLIPSIDE!"''


== 2560: ==


=== 2560: ===
'''January:''' Kitsuhana Heavy Industries sells [[Guide to Resleeving|Resleeving]] technology to NanoTrasen, intended to replace traditional flash-cloning. Medical trials of the new technology begin on VORE-3.


==Sample Forms==
The role of Captain is retired from use aboard NanoTrasen facilities in favor of the term Station Administrator, and later, [[Colony Director]].
These are some samples of possible paperwork that might be used around the station. You can use these, or make your own, as well. It's not required to use any of these, or anything like it, but many players will.


===Head of Personnel: Additional Access===
=== 2561: ===
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
'''October:''' VORE-3 is decommissioned in favor of the tether on Virgo-3B, which is opened for operation, and is designated as the NSB Adephagia (VORE-4).
This is a form for a Head of Personnel to give to a crewmember who is requesting additional access.
<div class="mw-collapsible-content"><pre>
[center][b][i]Additional Access Application Form[/b][/i][br]
Name: [field][br]
Rank: [field][br]
[i][b] NanoTrasen Virgo Orbital Research Establishment [/i][/b][/center][br]
[hr][br]
Requested Access: [field][br]
[br]
Reason(s): [field][br][br]
Signature: [field][br][br]
[hr]
[center][b]Authorization[/b][br]
Name: [field][br]
Rank: [field][br][br][/center]
If authorized, please sign here, [field], and stamp the document with the Department Stamp.[br][br]
Guidelines that must be followed. If they are not followed, this form is void and illegal.[br]
[list][*]The department in which the requester is requesting access must first be contacted, and the chief (acting or otherwise) must have been talked to and have authorized this request.[*]If any criminal activity is done with the help of this extra access, this form will be immediately void and unlawful.[*]If the chief of the affected department wishes this form void, this form is immediately void and unlawful.[/list]
[br][hr][br]


'''September:''' The [[Auream Imperium]] reveals its self to humanity, arriving in the Virgo-Erigone system under the command of Livius Thraun. However, conspiracies claim that ONI had known about the Imperium long before their public appearance.
</pre></div></div>


===Head of Personnel: Job Transfer===
The terrorist organization 'Humanity First' has claimed responsibility for the attempted assassination of SolGov and Imperial VIPs during a first contact summit. but despite the incident, negotiations went off without further issues.
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
This is for a Head of Personnel to give to a crewmember who is requesting that their job be changed.
<div class="mw-collapsible-content"><pre>


[center][b][i]Transfer Request Form[/b][/i][br]
===2562:=== 
Name: [field][br]
A Tesla engine prototype is built onto NSB Adephagia. Several accidents occur, causing insurance rates for the station to rise dramatically.
Rank: [field][br]
[i][b]NanoTrasen Virgo Orbital Research Establishment[/b][/i][/center]
[hr][br]
From department: [field][br]
To department: [field][br][br]
Requested Position: [field][br][br]
Reason(s): [field][br][br]
Signature: [field][br][br]
[hr]
[center][b]Authorization[/b][br]
Transferring department head: [field][br]
Receiving department head: [field][br]
Head of Personnel: [field][br][br][/center]
If authorized, please sign above and stamp the document with the Department Stamp.[br][br]
Guidelines that must be followed. If they are not followed, this form is void and illegal.[br]
[list][*]All department heads must agree to the transfer before transfer can take place.
[*]If the transferred has been transferred for an invalid or illegal reason, this form is immediately void and unlawful.
[*]In the event a relevant head of staff retracts his or her approval for this transfer, this form is immediately void and unlawful.[/list]
[br][hr][br]
</pre></div></div>


===Head of Personnel: Demotion Record===
===2563:===
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
'''October:''' A high priority package containing a previously unknown alien species made its way to Virgo. After a struggle and disposal of the creature, an unknown disease infected a number of crewmembers. This disease seemed to cause deep genetic changes in its hosts, It was later called the [[Blood Moon Disease]]!


This if for a Head of Personnel to give to a crewmember who has been summarily demoted by a head of staff.


<div class="mw-collapsible-content"><pre>


[center][b][i]Termination of Assignment Record[/b][/i][br]
'''Footnotes:'''
Name: [field][br]
Position: [field][br]
[i][b] NanoTrasen Virgo Orbital Research Establishment [/i][/b][/center]
[hr][br]
Terminated Employee: [field][br]
Terminated from the assignment of: [field][br]
[br]
Reason for Termination: [field][br][br]
[hr]
[center][b]Authorization[/b][br]
Name: [field][br]
Rank: [field][br][br][/center]
If authorized, please sign here, [field], and stamp the document with the Department Stamp.[br][br]
Guidelines that must be followed. If they are not followed, this form is void and illegal.[br]
[list][*]The department in which the terminated has been terminated must first be contacted, and the chief (acting or otherwise) of the department must have been consulted and have authorized a termination.
[*]If the terminated has been removed from his or her position for an invalid or illegal reason, this form is immediately void and unlawful.
[*]In the event a relevant head of staff retracts his or her approval for this assignment termination, this form is immediately void and unlawful.[/list]
[br][hr][br]


</pre></div></div>


===Robotics: Cyborgification===
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
This is for a cyborgification or AI assimilation procedure on a living crewmember.
<div class="mw-collapsible-content"><pre>
[center][b]Cyborgification Contract[/b][br]
Name: [field][br]
Rank: [field][br]
[b][i] NanoTrasen Virgo Orbital Research Establishment [/b][/i][/center][hr]
I, undersigned, hereby agree to willingly undergo a Regulation Lobotimization with intention of cyborgification or AI assimilation, and I am aware of all the consequences of such act. I also understand that this operation may be irreversible, and that my employment contract will be terminated.[hr]
Signature of Subject: [field][br][br]
Signature of Captain or Commanding Officer: [field][br][br]
Stamp below with the Captains or Commanding Officers stamp:
</pre></div></div>


===Medical: Prescription===
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
A form for prescribing patients medicines that they can then pick up later.
<div class="mw-collapsible-content"><pre>
[center][large][b]NSS Vore Medical Department[/b][/large][/center]
[br]
[large][u]Prescription[/u]:[/large][br] [field]
[br][br][hr]
[u]For[/u]: [field] [br]
[u]Assignment[/u]: [field] [br]
[hr]
[u]Prescribing Doctor[/u]: [field] [br]
[u]Date[/u]: [field] [br]
[hr]
[u]Pharmacist[/u]: [field] [br][br]
[small]This prescription will not be refilled except under written authorization.[/small]
</pre></div></div>


===Research: Equipment Loan===
<!-- TOC depth:6 withLinks:1 updateOnSave:0 orderedList:0 -->
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
This is a form for the loaning of prototypes from R&D to other departments, usually equipment or experimental weapons.
<div class="mw-collapsible-content"><pre>
[b]Equipment Loan[/b][br]
[hr][br]
The following item(s) are considered experimental. NanoTrasen can not be held responsible for injury sustained during the use of the item(s). The receiver must use the following item(s) only for their intended purpose. The receiver must not share these items with any other person(s) without direct approval of NanoTrasen command staff. [br]
[br]
Item(s) loaned:[br]
[field][br]
[br]
Name of receiver: [field][br]
Name of crew member loaning the item(s): [field][br]
[br]
Note: Please make sure this form is stamped bellow the line by related head of staff before the end of one standard work week. [br]
[hr][br]
</pre></div></div>
===Security: Incident Report===
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
This is for security to use after making an arrest or fining a crew member for a crime, usually given to the warden after being filled out.
<div class="mw-collapsible-content"><pre>


[center][b][u]Security Incident Report[/b][/u][/center][br]
- [NanoUI](#nanoui)
[hr]
- [Introduction](#introduction)
[br]
- [Components](#components)
[small][i]To be filled out by Officer on duty responding to the Incident. Report must be signed and submitted until the end of the shift![/i][/small][br]
- [`ui_interact()`](#ui_interact)
[br]
- [`Topic()`](#topic)
[b]Offense/Incident Type: [/b][field][br]
- [Template (doT)](#template-dot)
[b]Location: [/b][field][br]
- [Helpers](#helpers)
[b]Reporting Officer: [/b][field][br]
- [Link](#link)
[b]Assisting Officer(s): [/b][br]
- [displayBar](#displayBar)
[field][br]
- [doT](#dot)
[b]Personnel involved in Incident: [/b][br]
- [Styling](#styling)
[small][i](V-Victim, S-Suspect, W-Witness, M-Missing, A-Arrested, RP-Reporting Person, D-Deceased)[/i][/small][br]
- [Contributing](#contributing)
[field][br]
[hr]
[b]Description of Items/Property: [/b][br]
[small][i](D-Damaged, E-Evidence, L-Lost, R-Recovered, S-Stolen)[/i][/small][br]
[field][br]
[hr]
[b][u]Narrative: [/u][/b][br]
[field][br]
[hr]
[b]Reporting Officer's Signature: [/b][field][br]
[hr]
</pre></div></div>


===Internal Affairs: Agent Report===
<!-- /TOC -->
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
# NanoUI
Internal Affairs Agent report.
<div class="mw-collapsible-content"><pre>


[center][b][i]Internal Affairs Report[/b][/i]
## Introduction
Agent: [field]
Subject in Question: [field]
[i][b] NanoTrasen Virgo Orbital Research Establishment [/i][/b][/center][hr]
[b]Incident: [/b][field]
[b]Location(s): [/b][field]
[b]Personnel involved in Incident: [/b][field]
[hr]
[b]Narrative: [/b]
[field]
[hr]
[b]Agent Signature: [/b][field]
[hr]
[b]Notes: [/b][field]


Stamp below:
### Credit goes to Neersighted of /tg/station for the styling and large chunks of content of this README.
</pre></div></div>


===Internal Affairs: Complaint===
NanoUI is one of the three primary user interface libraries currently in use
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
on Polaris (browse(), /datum/browser, NanoUI). It is the most complex of the three,
but offers quite a few advantages, most notably in default features.
Internal Affairs Agent report version 2.
<div class="mw-collapsible-content"><pre>


[large][b][center]NANOTRASEN STATION VORE[/b][/center][/large]
NanoUI adds a `ui_interact()` proc to all atoms, which, ideally, should be called
[i][center]INTERNAL INVESTIGATION REPORT[/i][/center][hr]
via `interact()`; However, the current standardized layout is `ui_interact()` being
Type of Complaint: [field]
directly called from anywhere in the atom, generally `attack_hand()` or `attack_self()`.
Complainant: [field]
The `ui_interact()` proc should not contain anything but NanoUI data and code.
Time of occurrence: [field]
Location of occurrence: [field]
Employee(s) involved: [field]


Details of Complaint: [field][hr]
Here is a simple example from
How received: [field]
[poolcontroller.dm @ ParadiseSS13/Paradise](https://github.com/ParadiseSS13/Paradise/blob/master/code/game/machinery/poolcontroller.dm).
Complaint investigated by: [field]
Reviewed by: [field]


Reviewer Comment: [field]
```
    /obj/machinery/poolcontroller/attack_hand(mob/user)
        ui_interact(user)


Signature: [field]
    /obj/machinery/poolcontroller/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
</pre></div></div>
        var/data[0]


===Security: Sol Government Paperwork===
        data["currentTemp"] = temperature
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
        data["emagged"] = emagged
        data["TempColor"] = temperaturecolor
Sol Government Crime Report


<div class="mw-collapsible-content"><pre>
        ui = SSnano.try_update_ui(user, src, ui_key, ui, data, force_open)
[large][b][center]Sol. Gov Official Document[/b][/center][/large]
        if(!ui)
[i][center]NANOTRASEN STATION EXODUS[/i][/center]
            ui = new(user, src, ui_key, "poolcontroller.tmpl", "Pool Controller Interface", 520, 410)
[center][small]Sol Government Crime Report[/small][/center][hr]
            ui.set_initial_data(data)
            ui.open()
```


Suspect name: [field]
Crimes committed: [field]
Time of occurrence: [field]
Location(s) of occurrence: [field]
Persons involved: [field]


Details of Crime: [field]
Evidence of Crime: [field]
Arresting officer: [field]
Arresting officer Signature: [field]
</pre></div></div>


<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
## Components


Sol Government High Crime Report
### `ui_interact()`
<div class="mw-collapsible-content"><pre>
[large][b][center]Sol. Gov Official Document[/b][/center][/large]
[i][center]NANOTRASEN STATION EXODUS[/i][/center]
[center][small]Sol Government High Crime Report[/small][/center][hr]


Suspect name: [field]
The `ui_interact()` proc is used to open a NanoUI (or update it if already open).
Crimes committed: [field]
As NanoUI will call this proc to update your UI, you should include the data list
Time of occurrence: [field]
within it. On /tg/station, this is handled via `get_ui_data()`, however, as it would
Location(s) of occurrence: [field]
take quite a long time to convert every single one of the 100~ UI's to using such a method,
Persons involved: [field]
it is instead just directly created within `ui_interact()`.


Details of Crime: [field]
The parameters for `try_update_ui` and `/datum/nanoui/New()` are documented in
Evidence of Crime: [field]
the code [here](https://github.com/PolarisSS13/Polaris/tree/master/code/modules/nano).
Arresting officer: [field]
Reviewing officer: [field]


Reviewer Comment: [field]
For:  
`/datum/nanoui/New(nuser, nsrc_object, nui_key, ntemplate_filename, ntitle = 0, nwidth = 0, nheight = 0, var/atom/nref = null, var/datum/nanoui/master_ui = null, var/datum/topic_state/state = default_state)`
Most of the parameters are fairly self explanatory.
- `nuser` is the person who gets to see the UI window
- `nsrc_obj` is the thing you want to call Topic() on
- `nui_key` should almost always be `main`
- `ntemplate_filename` is the filename with `.tmpl` extension in /nano/templates/
- `ntitle` is what you want to show at the top of the UI window
- `nwidth` is the width of the new window
- `nheight` is the height of the new window
- `nref` is used for onclose()
- `master_ui` is used for UIs that have multiple children, see code for examples
- And finally, `state`.


Arresting officer Signature: [field]
The most interesting parameter here is `state`, which allows the object to choose the
Reviewing officer Signature: [field]
checks that allow the UI to be interacted with.
</pre></div></div>


===Medical: Medical Guidelines===
The default state (`default_state`) checks that the user is alive, conscious,
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
and within a few tiles. It allows universal access to silicons. Other states
exist, and may be more appropriate for different interfaces. For example,
`physical_state` requires the user to be nearby, even if they are a silicon.
`inventory_state` checks that the user has the object in their first-level
(not container) inventory, this is suitable for devices such as radios;
`admin_state` checks that the user is an admin (good for admin tools).


This is a form for Medical Guidelines. Feel free to add something.
```
    /obj/item/the/thing/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, force_open = 0)
        var/data[0]


<div class="mw-collapsible-content"><pre>
        ui = SSnano.try_update_ui(user, src, ui_key, ui, data, force_open = force_open)
[center][b]Virgo Orbital Research Establishment
        if(!ui)
[logo]
            ui = new(user, src, ui_key, "template_name_here.tmpl", title, width, height)
[large][u]Medical Department Guidelines[/u][/large][/b][/center][hr]
            ui.set_initial_data(data)
            ui.open()
```


[hr][br]
### `Topic()`
[center][b]Golden rule:[/b][/center] [center]Keep communications up at all times on the Medical Channel and report all patient treatments, Prescriptions Et cetera![/center][br]
[hr][br]
[b]Guidelines[/b][br]
[*] As a Medical doctor you are not required to do the chems, No. But you are required to at least do the basic chems. Two bottles are enough. This includes:
Dylovene, Dermaline, Biracidine, Dexalin Plus.[br]
[*]As a chemist however, you are required to do the advanced chems as well.[br]
[*]Maintain equipment in peak condition at all times.[br]
[*]Stay calm under all circumstances, Patients tend to get nervous if their doctor is nervous.[br]
[*]Each treatment should be added to the patients medical records![br]
[*][b]Always[/b] lock Medical lockers & logout of Medical terminals after each use.[br]
[*]Never forget the Hippocratic oath.[br]
[*]Non-Disclosure Policy. We are not allowed to give out information about our patients. That includes the reason of their death. Special circumstances can change that. Read the Medical SoP ( Standard Operating Procedure ).[br]
[*]If the Virology lab is being used, Notify your fellow employee's on the medical channel.[br]
[*]Respect the chain of command! The Chief Medical Officer outranks you. The captain outranks the CMO. That does not mean that the Captain can ignore the Non-Disclosure Policy.[br]
[*]Just because you are a Nurse, Surgeon or Emergency Physician, doesn't mean that you are not required to treat patients.[br]
[*][b]Prioritize Patients:[/b] minor damage can be treated later. ( Sometimes you should apply Spacecilin though, to avoid infections). More important cases take priority.[br]
[*]Maintain proper manners! As a Medical Doctor of 'Nanotrasen' You must maintain a proper uniform appearance.[br]
[*]Always have your Medical Belt filled with some basic chems at the very least. Not being equipped properly are grounds for a demotion.[br]
[*]Going to cryo with Gear will result in a [b]suspension[/b] from the Medical team. [b][[But seriously try to take your gear off, We’ll understand if it was an emergency but try to not cryo with gear]].[/b][br]
[*]The front desk of the Medbay doesn't /have/ to be manned at all times. The crew has headsets for a reason. That doesn't mean it shouldn't be manned at all times.[br]
[*]Wash your hands before you do surgery. Wear latex gloves and a sterile mask. Wash those too.[br]
[*]Personal Note: Under my command, You should keep your medical belt equipped. Including your hud. I understand if you not much is going on and you're doing whatever you do. But if I see someone walking in as the shift started. Not getting equipped and heading out already, I'll fire you without a warning.[br]
[small][i]Credits for this go to Lassara Faaira'Nrezi[/i][/small]
</pre></div></div>


==Prettier Sample Forms==
`Topic()` handles input from the UI. Typically you will recieve some data from
These are improved and consistent sample forms, created by user Vorrarkul because they contain more information and utilize more formatting than the above samples.
a button press, or pop up a input dialog to take a numerical value from the
user. Sanity checking is useful here, as `Topic()` is trivial to spoof with
arbitrary data.


===Any Department: Experiment Waiver===
The `Topic()` interface is just the same as with more conventional,
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
stringbuilder-based UIs, and this needs little explanation.


A standard, generic waiving of rights to be given to crew members undergoing unusual procedures. Use creatively- er, I mean responsibly. Don't forget to fill out what they are agreeing to!
```
    /obj/item/weapon/tank/Topic(href, href_list)
        if(..())
            return 1


<div class="mw-collapsible-content"><pre>
        if(href_list["dist_p"])
[center][b]Virgo Orbital Research Establishment
            if(href_list["dist_p"] == "custom")
[logo]
                var/custom = input(usr, "What rate do you set the regulator to? The dial reads from 0 to [TANK_MAX_RELEASE_PRESSURE].") as null|num
[large][u]Experiment Waiver[/u][/large][/b][/center][hr][small][i]To be filled out by the employee volunteering for testing. All sections are required to be filled out. This waiver must be signed and submitted before any experiments may be conducted.[/i][/small]
                if(isnum(custom))
                    href_list["dist_p"] = custom
                    .()
            else if(href_list["dist_p"] == "reset")
                distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE
            else if(href_list["dist_p"] == "min")
                distribute_pressure = TANK_MIN_RELEASE_PRESSURE
            else if(href_list["dist_p"] == "max")
                distribute_pressure = TANK_MAX_RELEASE_PRESSURE
            else
                distribute_pressure = text2num(href_list["dist_p"])
            distribute_pressure = min(max(round(distribute_pressure), TANK_MIN_RELEASE_PRESSURE), TANK_MAX_RELEASE_PRESSURE)
        if(href_list["stat"])
            if(istype(loc,/mob/living/carbon))
                var/mob/living/carbon/location = loc
                if(location.internal == src)
                    location.internal = null
                    location.internals.icon_state = "internal0"
                    usr << "<span class='notice'>You close the tank release valve.</span>"
                    if(location.internals)
                        location.internals.icon_state = "internal0"
                else
                    if(location.wear_mask && (location.wear_mask.flags & MASKINTERNALS))
                        location.internal = src
                        usr << "<span class='notice'>You open \the [src] valve.</span>"
                        if(location.internals)
                            location.internals.icon_state = "internal1"
                    else
                        usr << "<span class='warning'>You need something to connect to \the [src]!</span>"
```


[b]Volunteering Employee:[/b] [field]
### Template (doT)
[b][u]Experiment Details:[/u][/b]
[field]
[b]Volunteer Role:[/b] [field]


[hr][b][u]Agreement Details:[/u][/b]
NanoUI templates are written in a customized version of
I, undersigned, [field]
[doT](https://olado.github.io/doT/index.html),
a Javascript template engine. Data is accessed from the `data` object,
configuration (not used in pratice) from the `config` object, and template
helpers are accessed from the `helper` object.


[hr][b]Volunteering Employee's Signature:[/b] [field]
It is worth explaining that Polaris's version of doT uses custom syntax
[b]Overseeing Head of Staff's Signature:[/b] [field]
for the templates. The `?` operator is split into `if`, `else if parameter`, and `else`,
[b]Date of Signature:[/b] [date]
instead of `?`, `?? paramater`, `??`, and the `=` operator is replaced with `:`. Refer
[small][i]Use 'sign' enclosed by brackets to create a signature.
to the chart below for a full comparison.
This form must be stamped below the line by the overseeing head of staff before the end of one standard work week.[/i][/small]
[hr]
</pre></div></div>


===Colony Director: Department Inspection Report===
#### Helpers
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">


Created by Marie(MatchaFrappe) following the style of Vorrarkul. This form is used to show how adequately the departments are doing. Fax it to CentComm. Receive a moderate reply. Realize you could have done something better with your time, CD.
##### Link


<div class="mw-collapsible-content"><pre>
`{{:helpers.link(text, icon, {'parameter': true}, status, class, id)}}`
[center][b]Virgo Orbital Research Establishment
[logo]
[large][u]Department Inspection Report[/u][/large][/b][/center][hr][small][i]To be filled out by the Colony/Acting Director. All sections are required to be filled out. This report must be signed before submitted to CentComm.[/i][/small]


[center][b][u]Security[/u][/b][/center]
Used to create a link (button), which will pass its parameters to `Topic()`.


[b]Efficacy:[/b] [field]
* Text: The text content of the link/button
[b]Professionalism:[/b] [field]
* Icon: The icon shown to the left of the link (http://fontawesome.io/)
[b]Cleanliness:[/b] [field]
* Parameters: The values to be passed to `Topic()`'s `href_list`.
[b]Synergy:[/b] [field]
* Status: `null` for clickable, a class for selected/unclickable.
* Class: Styling to apply to the link.
* ID: Sets the element ID.


[b]Notes:[/b] [field]
Status and Class have almost the same effect. However, changing a link's status
from `null` to something else makes it unclickable, while setting a custom Class
does not.


[center][b][u]Engineering[/u][/b][/center]
Ternary operators are often used to avoid writing many `if` statements.
For example, depending on if a value in `data` is true or false we can set a
button to clickable or selected:


[b]Efficacy:[/b] [field]
`{{:helper.link('Close', 'lock', {'stat': 1}, data.valveOpen ? null : 'selected')}}`
[b]Professionalism:[/b] [field]
[b]Cleanliness:[/b] [field]
[b]Synergy:[/b] [field]


[b]Notes:[/b] [field]
Available classes/statuses are:


[center][b][u]Medical[/u][/b][/center]
* null (normal)
* selected
* disabled
* yellowButton
* redButton
* linkDanger


[b]Efficacy:[/b] [field]
##### displayBar
[b]Professionalism:[/b] [field]
[b]Cleanliness:[/b] [field]
[b]Synergy:[/b] [field]


[b]Notes:[/b] [field]
`{{:helpers.displayBar(value, min, max, class, text)}}`


[center][b][u]Science[/u][/b][/center]
Used to create a bar, to display a numerical value visually. Min and Max default
to 0 and 100, but you can change them to avoid doing your own percent calculations.


[b]Efficacy:[/b] [field]
* Value: Defaults to a percentage but can be a straight number if Min/Max are set
[b]Professionalism:[/b] [field]
* Min: The minimum value (left hand side) of the bar
[b]Cleanliness:[/b] [field]
* Max: The maximum value (right hand side) of the bar
[b]Synergy:[/b] [field]
* Class: The color of the bar (null/normal, good, average, bad)
* Text: The text label for the data contained in the bar (often just number form)


[b]Notes:[/b] [field]
As with buttons, ternary operators are quite useful:


[center][b][u]Cargo[/u][/b][/center]
`{{:helper.bar(data.tankPressure, 0, 1013, (data.tankPressure > 200) ? 'good' : ((data.tankPressure > 100) ? 'average' : 'bad'))}}`


[b]Efficacy:[/b] [field]
[b]Professionalism:[/b] [field]
[b]Cleanliness:[/b] [field]
[b]Synergy:[/b] [field]


[b]Notes:[/b] [field]
#### doT


[center][b][u]Civilian Services[/u][/b][/center]
doT is a simple template language, with control statements mixed in with
regular HTML and interpolation expressions.


[b]Efficacy:[/b] [field]
However, Polaris uses a custom version with a different syntax. Refer
[b]Professionalism:[/b] [field]
to the chart below for the differences.
[b]Cleanliness:[/b] [field]
[b]Synergy:[/b] [field]


[b]Notes:[/b] [field]
Operator    |  doT      |    equiv        |
|-----------|------------|-------------------|
|Conditional| ?          | if                |
|          | ??        | else              |
|          | ?? (param) | else if(param)  |
|Interpolate| =          | :                 |
|^ + Encode | !          | >                |
|Evaluation | #          | #                |
|Defines    | ## #      | ## #              |
|Iteration  | ~ (param)  | for (param)      |


Here is a simple example from tanks, checking if a variable is true:


[hr][b]Colony/Acting Director's Signature:[/b] [sign]
```
[b]Date of Signature:[/b] [date]
    {{if data.maskConnected}}
[small][i]Use 'sign' enclosed by brackets to create a signature.
        <span>The regulator is connected to a mask.</span>
This form must be stamped below the line by the Colony/Acting Director before the end of one standard work week.[/i][/small]
    {{else if}}
[hr]
        <span>The regulator is not connected to a mask.</span>
</pre></div></div>
    {{/if}}
```


===Head of Personnel: Additional Access Request===
The doT tutorial is [here](https://olado.github.io/doT/tutorial.html).
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">


This form is to be handed out to crew members seeking additional access. For job transfers or promotions, please see Transfer of Assignment.
__Print Tag__
- The print tag outputs the given expression as text to the UI.


<div class="mw-collapsible-content"><pre>
`{{:data.variable}}`
[center][b]Virgo Orbital Research Establishment
`{{:functioncall()}}`
[logo]
[large][u]Additional Access Request[/u][/large][/b][/center][hr][small][i]To be filled out by the requesting employee. All sections are required to be filled out. This report must be signed and submitted before any additional access may be authorized.[/i][/small]


[b]Requesting Employee:[/b] [field]
(with escape):
[b]Requested Access:[/b] [field]
[b][u]Relevant Credentials:[/u][/b]
[field]
[b][u]Reason for Request:[/u][/b]
[field]


[hr][b]Requesting Employee's Signature:[/b] [field]
`{{>expression }}`
[b]Employee's Head of Staff's Signature:[/b] [field]
[b]Accessed Department's Head of Staff's Signature:[/b] [field]
[b]Head of Personnel's Signature:[/b] [field]
[b]Date of Signature:[/b] [date]
[small][i]Use 'sign' enclosed by brackets to create a signature.
This form must be stamped below the line by the requesting employee's head of staff, the accessed department's head of staff, and the Head of Personnel before the end of one standard work week.[/i][/small]
[hr]
</pre></div></div>


===Head of Personnel: Demotion of Assignment===
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">


This form is to be handed to heads of staff who wish to demote or terminate one of their subordinates.
__If Tag__
- The if tag displays content conditionally based on the provided expression being true.
- When combined with the else tag the if tag can also show content if the provided expression is false.
- The else tag can optionally have an expression provided (e.g. "`{{else expression2}}`"), giving it "elseif" functionality.


<div class="mw-collapsible-content"><pre>
`{{if expression}} <expression true content> {{/if}}`
[center][b]Virgo Orbital Research Establishment
`{{if expression}} <expression true content> {{else}} <expression false content> {{/if}}`
[logo]
`{{if expression1}} <expression1 true content> {{else expression2}} <expression2 true content> {{/if}}`
[large][u]Demotion of Assignment[/u][/large][/b][/center][hr][small][i]To be filled out by the requesting head of staff. Only the Captain or a direct superior to the employee being demoted may submit this form. All sections are required to be filled out. This report must be signed, stamped, and submitted before any demotions may be authorized.[/i][/small]


[b]Demoted Employee:[/b] [field]
__For Tag__
[b]Previous Assignment:[/b] [field]
- Loop through entries in an array; it can be associative (with keys) or numerical indexed, but you have to use some special syntax for assocative lists.
[b]New Assignment:[/b] [field]
- Each time the `for` tag iterates though the array it sets a variable (default "value") to the data of the current entry (another variable, default "index", contains the index). An example of this is using the print tag to print the contents (e.g. `{{:value.key1}}` and `{{:value.key2}}`).
[b][u]Reason for Demotion:[/u][/b]
- If combined with an `empty` tag the for tag can display content when the array is empty.
[field]


[hr][b]Requesting Head of Staff's Signature:[/b] [field]
Indexed:
[b]Head of Personnel's Signature:[/b] [field]
`{{for array}} <list entry content> {{/for}}`
[b]Date of Signature:[/b] [date]
`{{for array}} <list entry content> {{empty}} <empty list content> {{/for}}`
[small][i]Use 'sign' enclosed by brackets to create a signature.
This form must be stamped below the line by requesting head of staff before the demotion may be authorized.[/i][/small]
[hr]
</pre></div></div>


===Head of Personnel: Transfer of Assignment===
Associative:
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
`{{for object:key:index}} <key, value> {{/for}}`


This form is meant to be handed to crew members seeking a job change, or promotion.


<div class="mw-collapsible-content"><pre>
__Inclusion Tag__
[center][b]Virgo Orbital Research Establishment
- Include the contents of another template which has been added to the ui.
[logo]
`{{#def.atmosphericScan}}`
[large][u]Transfer of Assignment[/u][/large][/b][/center][hr][small][i]To be filled out by the requesting employee. All sections are required to be filled out. This report must be signed and submitted before any transfers may be authorized.[/i][/small]


[b]Requesting Employee:[/b] [field]
- You first must have added a template to the ui server side in your DM code:
[b]Current Assignment:[/b] [field]
`ui.add_template("atmosphericScan", "atmospheric_scan.tmpl")`
[b]Requested Assignment:[/b] [field]
[b][u]Relevant Credentials:[/u][/b]
[field]
[b][u]Reason for Request:[/u][/b]
[field]


[hr][b]Requesting Employee's Signature:[/b] [field]
- Then you can reference it in the main template. The tag will be replaced by the contents of the named template.  All tags in the named template are evaluated as normal.
[b]Current Head of Staff's Signature:[/b] [field]
[b]Requested Head of Staff's Signature:[/b] [field]
[b]Head of Personnel's Signature:[/b] [field]
[b]Date of Signature:[/b] [date]
[small][i]Use 'sign' enclosed by brackets to create a signature.
This form must be stamped below the line by the current head of staff, requested head of staff, and the Head of Personnel before the end of one standard work week.[/i][/small]
[hr]
</pre></div></div>


===Internal Affairs: Internal Affairs Complaint===
#### Styling
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
/tg/station has standardized styling, with specific article tags, and headers, and sections.
However, as the templates are already horrifying unstandardized, Polaris does not have any
particular styling standards.


This form is to be filled out by crew members who have a bone to pick with their coworkers- up to and including their superior.
The only real requirement is that it, A. Looks alrightish, and B. Functions properly. Try
 
to avoid snowflaking anything into the main CSS file, please.
<div class="mw-collapsible-content"><pre>
[center][b]Virgo Orbital Research Establishment
[logo]
[large][u]Internal Affairs Complaint[/u][/large][/b][/center][hr][small][i]To be filled out by the complaining employee. Only one subject may be complained about per form. Fill out as many sections as possible. This report must be signed and submitted before the end of the shift.[/i][/small]
 
[b]Complainant:[/b] [field]
[b]Investigating Agent:[/b] [field]
[b][u]Witness(es):[/u][/b]
[field]
 
[hr][b]Subject:[/b] [field]
[b]Incident(s):[/b] [field]
[b][u]Evidence:[/u][/b]
[field]
[b][u]Details:[/u][/b]
[field]
 
[hr][b][u]Investigating Agent's Comments:[/u][/b]
[field]
 
[hr][b]Complainant's Signature:[/b] [field]
[b]Investigating Agent's Signature:[/b] [field]
[b]Date of Signature:[/b] [date]
[small][i]Use 'sign' enclosed by brackets to create a signature.
This form must be stamped below the line by internal affairs before the end of one standard work week.[/i][/small]
[hr]
</pre></div></div>
 
===Internal Affairs: Internal Affairs Report===
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
 
This is the one to be used by the Agent themselves, after investigating and gathering evidence against someone who has broken the rrrrrules.
 
<div class="mw-collapsible-content"><pre>
[center][b]Virgo Orbital Research Establishment
[logo]
[large][u]Internal Affairs Report[/u][/large][/b][/center][hr][small][i]To be filled out by an internal affairs agent investigating the incident. Fill out as many sections as possible. This report must be signed and submitted before the end of the shift.[/i][/small]
 
[b]Investigating Agent:[/b] [field]
[b][u]Witness(es):[/u][/b]
[field]
 
[hr][b]Subject(s):[/b] [field]
[b]Incident(s):[/b] [field]
[b][u]Evidence:[/u][/b]
[field]
[b][u]Details:[/u][/b]
[field]
 
[hr][b][u]Comments:[/u][/b]
[field]
 
[hr][b]Investigating Agent's Signature:[/b] [field]
[b]Date of Signature:[/b] [date]
[small][i]Use 'sign' enclosed by brackets to create a signature.
This form must be stamped below the line by internal affairs before the end of one standard work week.[/i][/small]
[hr]
</pre></div></div>
 
===Medical (Chemist): Medical Prescription Request===
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
 
This is to be handed out to people requesting prescriptions- typically seen used for those roleplaying medical conditions.
 
<div class="mw-collapsible-content"><pre>
[center][b]Virgo Orbital Research Establishment
[logo]
[large][u]Medical Prescription Request[/u][/large][/b][/center][hr][small][i]To be filled out by the requesting employee. All sections are required to be filled out. This report must be signed and submitted before any medicines may be distributed.[/i][/small]
 
[b]Requesting Employee:[/b] [field]
[b]Requested Medication:[/b] [field]
[b][u]Reason for Prescription:[/u][/b]
[field]
 
[hr][b]Requesting Employee's Signature:[/b] [field]
[b]Chemist's Signature:[/b] [field]
[b]Date of Signature:[/b] [date]
[small][i]Use 'sign' enclosed by brackets to create a signature.
This form must be stamped below the line by the Chief Medical Officer before the end of one standard work week.[/i][/small]
[hr]
</pre></div></div>
 
===Medical (Psychiatrist): Psychiatric Evaluation===
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
 
This form is to help supplement psychiatric roleplay, and be filled out after a therapy session by the psychiatrist.
 
<div class="mw-collapsible-content"><pre>
[center][b]Virgo Orbital Research Establishment
[logo]
[large][u]Psychiatric Evaluation[/u][/large][/b][/center][hr][small][i]To be filled out by the psychiatrist. Fill out as many sections as possible. This report must be signed and submitted before the end of one standard work week.[/i][/small]
 
[b]Psychiatrist:[/b] [field]
[b]Patient and Occupation:[/b] [field]
 
[hr][b][u]Concerns:[/u][/b]
[field]
[b][u]Evaluation:[/u][/b]
[field]
[b][u]Conclusion:[/u][/b]
[field]
 
[hr][b][u]Comments:[/u][/b]
[field]
 
[hr][b]Psychiatrist's Signature:[/b] [field]
[b]Date of Signature:[/b] [date]
[small][i]Use 'sign' enclosed by brackets to create a signature.
This form must be stamped below the line by the Chief Medical Officer before the end of one standard work week.[/i][/small]
[hr]
</pre></div></div>
 
===Medical: Resleeve Request===
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
 
This form is for crew members to request a new body- presumably after designing their sparkledog in the Body Designer console.
 
<div class="mw-collapsible-content"><pre>
[center][b]Virgo Orbital Research Establishment
[logo]
[large][u]Resleeve Request[/u][/large][/b][/center][hr][small][i]To be filled out by the requesting employee. All sections are required to be filled out. This report must be signed and submitted before any resleeving may be performed.[/i][/small]
 
[b]Requesting Employee:[/b] [field]
[b][u]Reason for Resleeve:[/u][/b]
[field]
[b][u]Requested Conduct Regarding Old Sleeve:[/u][/b]
[field]
 
[hr][b]Requesting Employee's Signature:[/b] [field]
[b]Medical Doctor's Signature:[/b] [field]
[b]Date of Signature:[/b] [date]
[small][i]Use 'sign' enclosed by brackets to create a signature.
This form must be stamped below the line by the Chief Medical Officer before the end of one standard work week.[/i][/small]
[hr]
</pre></div></div>
 
===Science: Research Equipment Request===
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
 
This form is to be handed to employees asking for advanced items from Research & Development, and held by R&D until they return the item; if they return it that is.
 
<div class="mw-collapsible-content"><pre>
[center][b]Virgo Orbital Research Establishment
[logo]
[large][u]Research Equipment Request[/u][/large][/b][/center][hr][small][i]To be filled out by the requesting employee. All sections are required to be filled out. This report must be signed and submitted before any equipment may be distributed.[/i][/small]
 
[b]Requesting Employee:[/b] [field]
[b][u]Requested Equipment:[/u][/b]
[field]
[b]Reason for Request:[/b] [field]
 
[hr][b]Requesting Employee's Signature:[/b] [field]
[b]Distributing Researcher's Signature:[/b] [field]
[b]Date of Signature:[/b] [date]
[b]Time of Distribution:[/b] [field]
[small][i]Use 'sign' enclosed by brackets to create a signature. Use 'time' enclosed by brackets to print the current station time.[/i][/small]
 
[hr][small][i]To be filled out by the employee returning the equipment.[/i][/small]
[b]Returning Employee's Signature:[/b] [field]
[b]Receiving Researcher's Signature:[/b] [field]
[b]Time of Return:[/b] [field]
[small][i]Use 'sign' enclosed by brackets to create a signature. Use 'time' enclosed by brackets to print the current station time.
This form must be stamped below the line by the Research Director before the end of one standard work week.[/i][/small]
[hr]
</pre></div></div>
 
===Security (Warden): Armory Equipment Request===
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
 
This form is meant to be handed to officers by the warden when armory equipment is requested. This form can be bypassed in emergencies, but is otherwise useful for keeping track of which officer is responsible for which item.
 
<div class="mw-collapsible-content"><pre>
[center][b]Virgo Orbital Research Establishment
[logo]
[large][u]Armory Equipment Request[/u][/large][/b][/center][hr][small][i]To be filled out by the requesting officer. All sections are required to be filled out. This report must be signed and submitted before any equipment may be distributed.[/i][/small]
 
[b]Requesting Officer:[/b] [field]
[b][u]Requested Equipment:[/u][/b]
[field]
[b]Reason for Request:[/b] [field]
 
[hr][b]Requesting Officer's Signature:[/b] [field]
[b]Warden's Signature:[/b] [field]
[b]Date of Signature:[/b] [date]
[b]Time of Distribution:[/b] [field]
[small][i]Use 'sign' enclosed by brackets to create a signature. Use 'time' enclosed by brackets to print the current station time.[/i][/small]
 
[hr][small][i]To be filled out by the officer returning the equipment.[/i][/small]
[b]Returning Officer's Signature:[/b] [field]
[b]Warden's Signature:[/b] [field]
[b]Time of Return:[/b] [field]
[small][i]Use 'sign' enclosed by brackets to create a signature. Use 'time' enclosed by brackets to print the current station time.
This form must be stamped below the line by the Head of Security before the end of one standard work week.[/i][/small]
[hr]
</pre></div></div>
 
===Security (Head of Security): Notification of Injunction===
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
 
An injunction is an equitable remedy in the form of a court order that compels a party to do or refrain from specific acts. In-game, this can be interpreted as a 'stop working until the investigation is complete because we don't want you disappearing to the mining asteroid' order.
 
<div class="mw-collapsible-content"><pre>
[center][b]Virgo Orbital Research Establishment
[logo]
[large][u]Notification of Injunction[/u][/large][/b][/center][hr][small][i]To be filled out by the Head of Security. All sections are required to be filled out.[/i][/small]
 
[b]Injuncted Employee:[/b] [field]
[b]Injunction Duration:[/b] [field]
[b]Charge:[/b] [field]
[b][u]Details:[/u][/b]
[field]
 
[hr][b]Head of Security's Signature:[/b] [field]
[b]Injuncted Employee's Signature:[/b] [field]
[b]Date of Signature:[/b] [date]
[small][i]Use 'sign' enclosed by brackets to create a signature.
This form must be stamped below the line by the Head of Security before the end of the shift.[/i][/small]
[hr]
</pre></div></div>
 
===Security: Search Warrant===
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
 
This form is meant for the head of security to hand to officers when confronting a crew member suspected of carrying contraband.
 
<div class="mw-collapsible-content"><pre>
[center][b]Virgo Orbital Research Establishment
[logo]
[large][u]Search Warrant[/u][/large][/b][/center][hr][small][i]To be filled out by the Head of Security. All sections are required to be filled out.[/i][/small]
 
[b]Searched Employee:[/b] [field]
[b]Suspected Crime(s):[/b] [field]
[b][u]Details:[/u][/b]
[field]
 
[hr][b]Searching Officer:[/b] [field]
[b][u]Items Discovered:[/u][/b]
[field]
[b][u]Details:[/u][/b]
[field]
 
[hr][b]Head of Security's Signature:[/b] [field]
[b]Searching Officer's Signature[/b] [field]
[b]Date of Signature:[/b] [date]
[small][i]Use 'sign' enclosed by brackets to create a signature.
This form must be stamped below the line by the Head of Security before the end of the shift.[/i][/small]
[hr]
</pre></div></div>
 
===Security: Security Incident Report===
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%">
 
This form is meant for officers to fill out after arresting and processing suspects.
 
<div class="mw-collapsible-content"><pre>
[center][b]Virgo Orbital Research Establishment
[logo]
[large][u]Security Incident Report[/u][/large][/b][/center][hr][small][i]To be filled out by an officer responding to the incident. Fill out as many sections as possible. This report must be signed and submitted before the end of the shift.[/i][/small]
 
[b]Reporting Officer:[/b] [field]
[b][u]Assisting Officer(s):[/u][/b]
[field]
 
[hr][b]Suspect(s):[/b] [field]
[b]Crime(s):[/b] [field]
[b][u]Evidence:[/u][/b]
[field]
[b][u]Details:[/u][/b]
[field]
[b]Sentence:[/b] [field]
 
[hr][b][u]Comments:[/u][/b]
[field]
 
[hr][b]Reporting Officer's Signature:[/b] [field]
[b]Date of Signature:[/b] [date]
[small][i]Use 'sign' enclosed by brackets to create a signature.
This form must be stamped below the line by the Head of Security before the end of one standard work week.[/i][/small]
[hr]
</pre></div></div>
 
[[Category:Guides]]

Revision as of 15:01, 16 May 2020

This section or article is being updated. Certain details are subject to change. You can help this by contributing.

WIP IC Station Events Page.

Listed below should be a collection of the chronicles of Virgo station. We would like to implore you to offer any information you can about the shift to shit action of the station. From a first hand accounts with evidence to a simple vague rumor would be more than appreciated.

Timeline of Adephagi station operations.

2550:

2557:

An Exodus-class space station is purchased from an orbital shipyard in Tau Ceti, and is shipped to the Virgo-Erigone system.

January: The NSS Adephagia begins operation as the first Virgo Orbital Research Establishment (VORE-1) with Kessmia Mills as its first Captain. It is minimally crewed with only some heads of staff, even excluding a Head of Security.

February: VORE-1's crew exceeds 20 people for the first time.

March: An engineer from VORE-1 is knocked into orbit during an asteroid storm. He survives his injuries and ends up aboard the derelict remains of the Virgo Research Outpost, where he finds evidence of a conspiracy to kill the station's inhabitants, and that the alleged meteor storm was nothing but a cover-up. NanoTrasen blames Lead Supervisor Townes for the deaths and subsequent cover-up. SolGov issues a warrant for Townes's arrest. Townes disappears into hiding.

April: During a company celebration of VORE-1's success, James Townes returns from hiding alongside sympathizers from the Syndicate, and hijacks the NDV Brutus. In response, Captain Harmony Prechtl leads Operation Magnum, which results in the death of former Colonel Townes.

May: VORE-1 is intentionally destroyed in a code Delta nuclear detonation by Captain Jeremiah Acacius during an emergency caused by a xenobio slime infestation that got out of control and attained a hivemind-like sentience. VORE-2 is purchased and shipped in two weeks later, and replaces VORE-1. It is also an Exodus-class station, but with some modernization upgrades.

October: A crew from VG-Box outpost in the Tau Ceti system are somehow flown thousands of light years off course to the VORE-2 by mistake. The Red October Riot occurs, resulting in the complete loss of the VG-Box crew. The reason for the erroneous redirect to NSS Adephagia remains a mystery to this day. A memorial plaque is put up outside the VORE-1 bar in the aftermath of the incident.

December: Tal is annexed under SolGov's control, granting Sol Central passports to Sergals, and later Nevareans. These two races begin leaving Vilous to work for various corporations and businesses, including NanoTrasen.

2558:

The Redspace Crisis takes place. Between May and October, anomalous space-time rifts begin to appear in the Virgo-Erigone system, unleashing deadly creatures that terrorize the station's crew. A researcher aboard VORE-2 named Kisuke Gema spearheads research of the anomalies, and discovers a new field of inter-dimensional physics which becomes known as Redspace.

October: The Redspace Crisis ends with the destruction of a cultist citadel ship designed to open a massive gateway to the hellish creatures that had been invading the system. Captain Jeremiah Acacius is awarded the Medal of Exceptional Heroism by NanoTrasen for his role in the assault on the Citadel ship. Redspace anomalies in the sector decline sharply. Kisuke Gema is awarded with an honorary doctorate by the NanoTrasen Institute of Technology. He becomes the youngest member of the corporation with a doctorate.A lone image of the assault captured from the ships security system.

A lone image of the assault captured from the ships security system.
A lone image of the final assault during the Redspace Crisis, captured from the ships security system.

November: Chase Monroe re-emerges from a portal through time, appearing on the station.

2559:

Feb: The Space Nazi Incident begins. The USDF Jörmungandr is hijacked by an extremist organization called The Fourth Reich, which is commanded by Adolf Hitler look-alike who claims to have escaped 20th century Germany on Earth via time travel.

May: Chase Monroe and several V.O.R.E. crew members board a Nazi vessel threatening the Tajaran homeworld of Meralar with a planet-destroying Singularity Bomb. Chase Monroe activates the bomb prematurely aboard the ship in order to destroy it, and is killed in the implosion. Chase Monroe refused to have himself clone-scanned at any point prior to the incident, so his death was permanent. He is posthumously awarded the Medal of Extraordinary Heroism. NanoTrasen has created a documentary holofilm surrounding the exploits of Chase Monroe and the crew of the Adephagi. footage showcases the mission to investigate Syndicate-Nazi relations, the death of Sgt Chase Monroe, the Nazi retaliation and the 21 gun salute at Monroe's funeral. Sgt Monroe's Last Stand

June: USDF Admiral Glenn Pink conscripts V.O.R.E. crew members to aid in the recapture of his flagship, the USDF Jörmungandr. Operation Wolf Hunt brings an end to the Space Nazi Incident, and 'Hitler' is killed. ONI agents confiscate the body of the Nazi leader shortly afterwards.

December: The VORE-2 is retired and demolished in favor of VORE-3, which is an asteroid colony based on the blueprints of the Northern Star in the Vir system. Technical issues plague its deployment. NanoTrasen brings in a pair of experts from Kitsuhana Heavy Industries to oversee the technical development of the new station, which results in these issues being resolved.

Footnotes:

Disciple of the Honk Mother Chuckles LeFuck, performed a miracle of the weird. Compressing themselves out of existence through traveling up their own Ass. His last words being "CATCH YOU ON THE FLIPSIDE!"

2560:

2560:

January: Kitsuhana Heavy Industries sells Resleeving technology to NanoTrasen, intended to replace traditional flash-cloning. Medical trials of the new technology begin on VORE-3.

The role of Captain is retired from use aboard NanoTrasen facilities in favor of the term Station Administrator, and later, Colony Director.

2561:

October: VORE-3 is decommissioned in favor of the tether on Virgo-3B, which is opened for operation, and is designated as the NSB Adephagia (VORE-4).

September: The Auream Imperium reveals its self to humanity, arriving in the Virgo-Erigone system under the command of Livius Thraun. However, conspiracies claim that ONI had known about the Imperium long before their public appearance.

The terrorist organization 'Humanity First' has claimed responsibility for the attempted assassination of SolGov and Imperial VIPs during a first contact summit. but despite the incident, negotiations went off without further issues.

2562:

A Tesla engine prototype is built onto NSB Adephagia. Several accidents occur, causing insurance rates for the station to rise dramatically.

2563:

October: A high priority package containing a previously unknown alien species made its way to Virgo. After a struggle and disposal of the creature, an unknown disease infected a number of crewmembers. This disease seemed to cause deep genetic changes in its hosts, It was later called the Blood Moon Disease!


Footnotes:



- [NanoUI](#nanoui) - [Introduction](#introduction) - [Components](#components) - [`ui_interact()`](#ui_interact) - [`Topic()`](#topic) - [Template (doT)](#template-dot) - [Helpers](#helpers) - [Link](#link) - [displayBar](#displayBar) - [doT](#dot) - [Styling](#styling) - [Contributing](#contributing)

  1. NanoUI
    1. Introduction
      1. Credit goes to Neersighted of /tg/station for the styling and large chunks of content of this README.

NanoUI is one of the three primary user interface libraries currently in use on Polaris (browse(), /datum/browser, NanoUI). It is the most complex of the three, but offers quite a few advantages, most notably in default features.

NanoUI adds a `ui_interact()` proc to all atoms, which, ideally, should be called via `interact()`; However, the current standardized layout is `ui_interact()` being directly called from anywhere in the atom, generally `attack_hand()` or `attack_self()`. The `ui_interact()` proc should not contain anything but NanoUI data and code.

Here is a simple example from [poolcontroller.dm @ ParadiseSS13/Paradise](https://github.com/ParadiseSS13/Paradise/blob/master/code/game/machinery/poolcontroller.dm).

```

   /obj/machinery/poolcontroller/attack_hand(mob/user)
       ui_interact(user)
   /obj/machinery/poolcontroller/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
       var/data[0]
       data["currentTemp"] = temperature
       data["emagged"] = emagged
       data["TempColor"] = temperaturecolor
       ui = SSnano.try_update_ui(user, src, ui_key, ui, data, force_open)
       if(!ui)
           ui = new(user, src, ui_key, "poolcontroller.tmpl", "Pool Controller Interface", 520, 410)
           ui.set_initial_data(data)
           ui.open()

```


    1. Components
      1. `ui_interact()`

The `ui_interact()` proc is used to open a NanoUI (or update it if already open). As NanoUI will call this proc to update your UI, you should include the data list within it. On /tg/station, this is handled via `get_ui_data()`, however, as it would take quite a long time to convert every single one of the 100~ UI's to using such a method, it is instead just directly created within `ui_interact()`.

The parameters for `try_update_ui` and `/datum/nanoui/New()` are documented in the code [here](https://github.com/PolarisSS13/Polaris/tree/master/code/modules/nano).

For: `/datum/nanoui/New(nuser, nsrc_object, nui_key, ntemplate_filename, ntitle = 0, nwidth = 0, nheight = 0, var/atom/nref = null, var/datum/nanoui/master_ui = null, var/datum/topic_state/state = default_state)` Most of the parameters are fairly self explanatory.

- `nuser` is the person who gets to see the UI window
- `nsrc_obj` is the thing you want to call Topic() on
- `nui_key` should almost always be `main`
- `ntemplate_filename` is the filename with `.tmpl` extension in /nano/templates/
- `ntitle` is what you want to show at the top of the UI window
- `nwidth` is the width of the new window
- `nheight` is the height of the new window
- `nref` is used for onclose()
- `master_ui` is used for UIs that have multiple children, see code for examples
- And finally, `state`.

The most interesting parameter here is `state`, which allows the object to choose the checks that allow the UI to be interacted with.

The default state (`default_state`) checks that the user is alive, conscious, and within a few tiles. It allows universal access to silicons. Other states exist, and may be more appropriate for different interfaces. For example, `physical_state` requires the user to be nearby, even if they are a silicon. `inventory_state` checks that the user has the object in their first-level (not container) inventory, this is suitable for devices such as radios; `admin_state` checks that the user is an admin (good for admin tools).

```

   /obj/item/the/thing/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, force_open = 0)
       var/data[0]
       ui = SSnano.try_update_ui(user, src, ui_key, ui, data, force_open = force_open)
       if(!ui)
           ui = new(user, src, ui_key, "template_name_here.tmpl", title, width, height)
           ui.set_initial_data(data)
           ui.open()

```

      1. `Topic()`

`Topic()` handles input from the UI. Typically you will recieve some data from a button press, or pop up a input dialog to take a numerical value from the user. Sanity checking is useful here, as `Topic()` is trivial to spoof with arbitrary data.

The `Topic()` interface is just the same as with more conventional, stringbuilder-based UIs, and this needs little explanation.

```

   /obj/item/weapon/tank/Topic(href, href_list)
       if(..())
           return 1
       if(href_list["dist_p"])
           if(href_list["dist_p"] == "custom")
               var/custom = input(usr, "What rate do you set the regulator to? The dial reads from 0 to [TANK_MAX_RELEASE_PRESSURE].") as null|num
               if(isnum(custom))
                   href_list["dist_p"] = custom
                   .()
           else if(href_list["dist_p"] == "reset")
               distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE
           else if(href_list["dist_p"] == "min")
               distribute_pressure = TANK_MIN_RELEASE_PRESSURE
           else if(href_list["dist_p"] == "max")
               distribute_pressure = TANK_MAX_RELEASE_PRESSURE
           else
               distribute_pressure = text2num(href_list["dist_p"])
           distribute_pressure = min(max(round(distribute_pressure), TANK_MIN_RELEASE_PRESSURE), TANK_MAX_RELEASE_PRESSURE)
       if(href_list["stat"])
           if(istype(loc,/mob/living/carbon))
               var/mob/living/carbon/location = loc
               if(location.internal == src)
                   location.internal = null
                   location.internals.icon_state = "internal0"
                   usr << "You close the tank release valve."
                   if(location.internals)
                       location.internals.icon_state = "internal0"
               else
                   if(location.wear_mask && (location.wear_mask.flags & MASKINTERNALS))
                       location.internal = src
                       usr << "You open \the [src] valve."
                       if(location.internals)
                           location.internals.icon_state = "internal1"
                   else
                       usr << "You need something to connect to \the [src]!"

```

      1. Template (doT)

NanoUI templates are written in a customized version of [doT](https://olado.github.io/doT/index.html), a Javascript template engine. Data is accessed from the `data` object, configuration (not used in pratice) from the `config` object, and template helpers are accessed from the `helper` object.

It is worth explaining that Polaris's version of doT uses custom syntax for the templates. The `?` operator is split into `if`, `else if parameter`, and `else`, instead of `?`, `?? paramater`, `??`, and the `=` operator is replaced with `:`. Refer to the chart below for a full comparison.

        1. Helpers
          1. Link

`{{:helpers.link(text, icon, {'parameter': true}, status, class, id)}}`

Used to create a link (button), which will pass its parameters to `Topic()`.

  • Text: The text content of the link/button
  • Icon: The icon shown to the left of the link (http://fontawesome.io/)
  • Parameters: The values to be passed to `Topic()`'s `href_list`.
  • Status: `null` for clickable, a class for selected/unclickable.
  • Class: Styling to apply to the link.
  • ID: Sets the element ID.

Status and Class have almost the same effect. However, changing a link's status from `null` to something else makes it unclickable, while setting a custom Class does not.

Ternary operators are often used to avoid writing many `if` statements. For example, depending on if a value in `data` is true or false we can set a button to clickable or selected:

`{{:helper.link('Close', 'lock', {'stat': 1}, data.valveOpen ? null : 'selected')}}`

Available classes/statuses are:

  • null (normal)
  • selected
  • disabled
  • yellowButton
  • redButton
  • linkDanger
          1. displayBar

`Helpers.displayBar(value, min, max, class, text)`

Used to create a bar, to display a numerical value visually. Min and Max default to 0 and 100, but you can change them to avoid doing your own percent calculations.

  • Value: Defaults to a percentage but can be a straight number if Min/Max are set
  • Min: The minimum value (left hand side) of the bar
  • Max: The maximum value (right hand side) of the bar
  • Class: The color of the bar (null/normal, good, average, bad)
  • Text: The text label for the data contained in the bar (often just number form)

As with buttons, ternary operators are quite useful:

`{{:helper.bar(data.tankPressure, 0, 1013, (data.tankPressure > 200) ? 'good' : ((data.tankPressure > 100) ? 'average' : 'bad'))}}`


        1. doT

doT is a simple template language, with control statements mixed in with regular HTML and interpolation expressions.

However, Polaris uses a custom version with a different syntax. Refer to the chart below for the differences.

Operator | doT | equiv | |-----------|------------|-------------------| |Conditional| ? | if | | | ?? | else | | | ?? (param) | else if(param) | |Interpolate| = | : | |^ + Encode | ! | > | |Evaluation | # | # | |Defines | ## # | ## # | |Iteration | ~ (param) | for (param) |

Here is a simple example from tanks, checking if a variable is true:

```

   Template:If data.maskConnected
       The regulator is connected to a mask.
   Template:Else if
       The regulator is not connected to a mask.
   User:H0lySquirr3l/if

```

The doT tutorial is [here](https://olado.github.io/doT/tutorial.html).

__Print Tag__ - The print tag outputs the given expression as text to the UI.

`Data.variable` `Functioncall()`

(with escape):

`{{>expression }}`


__If Tag__ - The if tag displays content conditionally based on the provided expression being true. - When combined with the else tag the if tag can also show content if the provided expression is false. - The else tag can optionally have an expression provided (e.g. "`Template:Else expression2`"), giving it "elseif" functionality.

`Template:If expression <expression true content> User:H0lySquirr3l/if` `Template:If expression <expression true content> Template:Else <expression false content> User:H0lySquirr3l/if` `Template:If expression1 <expression1 true content> Template:Else expression2 <expression2 true content> User:H0lySquirr3l/if`

__For Tag__ - Loop through entries in an array; it can be associative (with keys) or numerical indexed, but you have to use some special syntax for assocative lists. - Each time the `for` tag iterates though the array it sets a variable (default "value") to the data of the current entry (another variable, default "index", contains the index). An example of this is using the print tag to print the contents (e.g. `Value.key1` and `Value.key2`). - If combined with an `empty` tag the for tag can display content when the array is empty.

Indexed: `Template:For array <list entry content> User:H0lySquirr3l/for` `Template:For array <list entry content> Template:Empty <empty list content> User:H0lySquirr3l/for`

Associative: `Template:For object:key:index <key, value> User:H0lySquirr3l/for`


__Inclusion Tag__ - Include the contents of another template which has been added to the ui. `{{#def.atmosphericScan}}`

- You first must have added a template to the ui server side in your DM code: `ui.add_template("atmosphericScan", "atmospheric_scan.tmpl")`

- Then you can reference it in the main template. The tag will be replaced by the contents of the named template. All tags in the named template are evaluated as normal.

        1. Styling

/tg/station has standardized styling, with specific article tags, and headers, and sections. However, as the templates are already horrifying unstandardized, Polaris does not have any particular styling standards.

The only real requirement is that it, A. Looks alrightish, and B. Functions properly. Try to avoid snowflaking anything into the main CSS file, please.