mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-12 07:35:31 +01:00
more font tag replacements (#17123)
* more font tag replacements * few more * more span conversion (#9) --------- Co-authored-by: Nadyr <41974248+Darlantanis@users.noreply.github.com>
This commit is contained in:
@@ -226,6 +226,8 @@
|
||||
|
||||
#define span_massive(str) "<font size='7'>" + str + "</font>"
|
||||
|
||||
#define span_extramassive(str) "<font size='8'>" + str + "</font>"
|
||||
|
||||
#define span_narsie(str) "<font size='15'>" + str + "</font>"
|
||||
|
||||
#define span_cascade(str) "<span style='font-size:22pt'>" + str + "</span>"
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
#define VV_MARKED_DATUM "Marked Datum"
|
||||
#define VV_BITFIELD "Bitfield"
|
||||
|
||||
#define VV_MSG_MARKED "<br><font size='1' color='red'><b>Marked Object</b></font>"
|
||||
#define VV_MSG_EDITED "<br><font size='1' color='red'><b>Var Edited</b></font>"
|
||||
#define VV_MSG_DELETED "<br><font size='1' color='red'><b>Deleted</b></font>"
|
||||
#define VV_MSG_MARKED "<br>" + span_small(span_red(span_bold("Marked Object")))
|
||||
#define VV_MSG_EDITED "<br>" + span_small(span_red(span_bold("Var Edited")))
|
||||
#define VV_MSG_DELETED "<br>" + span_small(span_red(span_bold("Deleted")))
|
||||
|
||||
#define VV_NORMAL_LIST_NO_EXPAND_THRESHOLD 50
|
||||
#define VV_SPECIAL_LIST_NO_EXPAND_THRESHOLD 150
|
||||
|
||||
@@ -261,7 +261,7 @@
|
||||
name = M.name
|
||||
|
||||
if(include_link && is_special_character(M) && highlight_special_characters)
|
||||
name = "<font color='#FFA500'>[name]</font>" //Orange
|
||||
name = span_orange("[name]") //Orange
|
||||
|
||||
. += "/([name])"
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ SUBSYSTEM_DEF(events)
|
||||
if(!report_at_round_end)
|
||||
return
|
||||
|
||||
to_chat(world, "<br><br><br><font size=3><b>Random Events This Round:</b></font>")
|
||||
to_chat(world, "<br><br><br>" + span_large(span_bold("Random Events This Round:")))
|
||||
for(var/datum/event/E in active_events|finished_events)
|
||||
var/datum/event_meta/EM = E.event_meta
|
||||
if(EM.name == "Nothing")
|
||||
|
||||
@@ -158,17 +158,17 @@ SUBSYSTEM_DEF(statpanels)
|
||||
target.obj_window.atoms_to_show += target.obj_window.examine_target
|
||||
START_PROCESSING(SSobj_tab_items, target.obj_window)
|
||||
refresh_client_obj_view(target)
|
||||
examine_update += "[target.examine_icon] <font size='5'>[description_holders["name"]]</font>" //The name, written in big letters.
|
||||
examine_update += "[target.examine_icon] " + span_giant("[description_holders["name"]]") //The name, written in big letters.
|
||||
examine_update += "[description_holders["desc"]]" //the default examine text.
|
||||
if(description_holders["info"])
|
||||
examine_update += "<font color='#084B8A'>" + span_bold("[replacetext(description_holders["info"], "\n", "<BR>")]") + "</font><br />" //Blue, informative text.
|
||||
examine_update += span_blue(span_bold("[replacetext(description_holders["info"], "\n", "<BR>")]")) + "<br />" //Blue, informative text.
|
||||
if(description_holders["interactions"])
|
||||
for(var/line in description_holders["interactions"])
|
||||
examine_update += "<font color='#084B8A'>" + span_bold("[line]") + "</font><br />"
|
||||
examine_update += span_blue(span_bold("[line]")) + "<br />"
|
||||
if(description_holders["fluff"])
|
||||
examine_update += "<font color='#298A08'>" + span_bold("[replacetext(description_holders["fluff"], "\n", "<BR>")]") + "</font><br />" //Green, fluff-related text.
|
||||
examine_update += span_green(span_bold("[replacetext(description_holders["fluff"], "\n", "<BR>")]")) + "<br />" //Green, fluff-related text.
|
||||
if(description_holders["antag"])
|
||||
examine_update += "<font color='#8A0808'>" + span_bold("[description_holders["antag"]]") + "</font><br />" //Red, malicious antag-related text
|
||||
examine_update += span_red(span_bold("[description_holders["antag"]]")) + "<br />" //Red, malicious antag-related text
|
||||
|
||||
target.stat_panel.send_message("update_examine", examine_update)
|
||||
|
||||
|
||||
@@ -103,18 +103,18 @@
|
||||
my_client.mob.mind.changeling.purchasePower(M, Thepower)
|
||||
|
||||
if(href_list["tutorial"])
|
||||
textbody = "<tr><th><font color='#c72121'><center>What am I?</center></font><br></th></tr>"
|
||||
textbody = "<tr><th><center>" + span_red("What am I?") + "</center><br></th></tr>"
|
||||
textbody += "<tr><td>"
|
||||
textbody += "<font color='#F7F7ED'>You are a changeling, a creature empowered with genetic-based abilities that change your body in bizarre ways."
|
||||
textbody += " It's probably best the crew doesn't know about your power -- at least not right away.</font><br><br>"
|
||||
textbody += "<font color='#F7F7ED'>What a changeling <i>is</i>, however, is up to you. Are you a strange alien impersonating crew? Are you a"
|
||||
textbody += " normal crewmember infected with a parasite? An experiment gone wrong? It's up to you to make the story.</font><br><br>"
|
||||
textbody += "<font color='#F7F7ED'>Of course, you need to know how it works to begin with.</font><br><br>"
|
||||
textbody += "<font color='#F7F7ED'>Your abilities cost chemicals that your body will slowly regenerate with varying speeds based on enhancements obtained."
|
||||
textbody += " There are a set of inherent abilities you will always have while the rest may be purchased through genomes.</font><br><br>"
|
||||
textbody += "<font color='#F7F7ED'>You may obtain more genomes if you find another changeling and absorb them, but this is not required. If you've found "
|
||||
textbody += "your abilities aren't to your liking, you have up to two re-adapts available, and these may be refilled by absorbing anyone -- including monkeys.</font><br><br>"
|
||||
textbody += "<font color='#F7F7ED'>Good luck and remember, killing isn't always the end goal.</font>"
|
||||
textbody += span_white("You are a changeling, a creature empowered with genetic-based abilities that change your body in bizarre ways.")
|
||||
textbody += span_white(" It's probably best the crew doesn't know about your power -- at least not right away.") + "<br><br>"
|
||||
textbody += span_white("What a changeling " + span_italics("is"), + " however, is up to you. Are you a strange alien impersonating crew? Are you a")
|
||||
textbody += span_white(" normal crewmember infected with a parasite? An experiment gone wrong? It's up to you to make the story.") + "<br><br>"
|
||||
textbody += span_white("Of course, you need to know how it works to begin with.") + "<br><br>"
|
||||
textbody += span_white("Your abilities cost chemicals that your body will slowly regenerate with varying speeds based on enhancements obtained.")
|
||||
textbody += span_white(" There are a set of inherent abilities you will always have while the rest may be purchased through genomes.") + "<br><br>"
|
||||
textbody += span_white("You may obtain more genomes if you find another changeling and absorb them, but this is not required. If you've found ")
|
||||
textbody += span_white("your abilities aren't to your liking, you have up to two re-adapts available, and these may be refilled by absorbing anyone -- including monkeys.") + "<br><br>"
|
||||
textbody += span_white("Good luck and remember, killing isn't always the end goal.")
|
||||
display()
|
||||
|
||||
/datum/managed_browser/changelingevolution/proc/generate_abilitylist(cat)
|
||||
@@ -149,17 +149,17 @@
|
||||
create_textbody(ability_list, catname, info)
|
||||
|
||||
/datum/managed_browser/changelingevolution/proc/create_textbody(ability_list, cat, catinfo)
|
||||
textbody = "<tr><th><font color='#c72121'><center>[cat] Skills</font><br></th></tr>"
|
||||
textbody += "<tr><td><font color='#F7F7ED'>[catinfo]</center></font><br><hr></td></tr>"
|
||||
textbody = "<tr><th><center>" + span_red("[cat] Skills") + "<br></th></tr>"
|
||||
textbody += "<tr><td>" + span_white("[catinfo]") + "</center><br><hr></td></tr>"
|
||||
for(var/A in ability_list)
|
||||
var/datum/power/changeling/powerdata = A
|
||||
textbody += "<tr><td><center><font color='#c72121'><b>[initial(powerdata.name)]</b></font><br></center>"
|
||||
textbody += "<font color='#F7F7ED'>[initial(powerdata.desc)]</font><br><br>"
|
||||
textbody += "<font color='#F7F7ED'><i>[powerdata.helptext]</i></font><br>"
|
||||
textbody += "<tr><td><center>" + span_red(span_bold("[initial(powerdata.name)]")) + "<br></center>"
|
||||
textbody += span_white("[initial(powerdata.desc)]") + "<br><br>"
|
||||
textbody += span_white(span_italics("[powerdata.helptext]")) + "<br>"
|
||||
if(powerdata.enhancedtext != "")
|
||||
textbody += "<font color='#F7F7ED'><b>WHEN ENHANCED: </b><i>[powerdata.enhancedtext]</i></font><br>"
|
||||
textbody += span_white(span_bold("WHEN ENHANCED: ") + span_italics("[powerdata.enhancedtext]")) + "<br>"
|
||||
if(powerdata in my_client.mob.mind.changeling.purchased_powers)
|
||||
textbody += "<center><font color='#F7F7ED'><i><b>This ability is already evolved!</b></i></font></center>"
|
||||
textbody += "<center>" + span_white(span_italics(span_bold("This ability is already evolved!"))) + "</center>"
|
||||
else if(cat != "Inherent")
|
||||
textbody += "<center>Cost: [powerdata.genomecost]</center>"
|
||||
textbody += "<center><a style='background-color:#c72121;' href='byond://?src=\ref[src];evolve=[A]'>Evolve</a></center>"
|
||||
|
||||
@@ -42,13 +42,12 @@ GENERAL_PROTECT_DATUM(/datum/managed_browser/feedback_form)
|
||||
/datum/managed_browser/feedback_form/get_html()
|
||||
var/list/dat = list("<html><body>")
|
||||
dat += "<center>"
|
||||
dat += "<font size='2'>"
|
||||
dat += "Here, you can write some feedback for the server.<br>"
|
||||
dat += "Note that HTML is NOT supported!<br>"
|
||||
dat += "Click the edit button to begin writing.<br>"
|
||||
var/dat_text = "Here, you can write some feedback for the server.<br>"
|
||||
dat_text += "Note that HTML is NOT supported!<br>"
|
||||
dat_text += "Click the edit button to begin writing.<br>"
|
||||
|
||||
dat += "Your feedback is currently [length(feedback_body)]/[MAX_FEEDBACK_LENGTH] letters long."
|
||||
dat += "</font>"
|
||||
dat_text += "Your feedback is currently [length(feedback_body)]/[MAX_FEEDBACK_LENGTH] letters long."
|
||||
dat += span_normal(dat_text)
|
||||
dat += "<hr>"
|
||||
|
||||
dat += "<h2>Preview</h2></center>"
|
||||
|
||||
+2
-2
@@ -357,10 +357,10 @@
|
||||
if(I in organs.implants)
|
||||
qdel(I)
|
||||
break
|
||||
to_chat(H, span_notice("<font size =3><B>Your loyalty implant has been deactivated.</B></font>"))
|
||||
to_chat(H, span_notice(span_large(span_bold("Your loyalty implant has been deactivated."))))
|
||||
log_admin("[key_name_admin(usr)] has de-loyalty implanted [current].")
|
||||
if("add")
|
||||
to_chat(H, span_danger("<font size =3>You somehow have become the recepient of a loyalty transplant, and it just activated!</font>"))
|
||||
to_chat(H, span_danger(span_large("You somehow have become the recepient of a loyalty transplant, and it just activated!")))
|
||||
H.implant_loyalty(override = TRUE)
|
||||
log_admin("[key_name_admin(usr)] has loyalty implanted [current].")
|
||||
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
dat += "<tr>"
|
||||
if(M)
|
||||
dat += "<td><a href='byond://?src=\ref[src];[HrefToken()];adminplayeropts=\ref[M]'>[M.real_name]/([player.key])</a>"
|
||||
if(!M.client) dat += " <i>(logged out)</i>"
|
||||
if(M.stat == DEAD) dat += " <b><font color=red>(DEAD)</font></b>"
|
||||
if(!M.client) dat += " " + span_italics("(logged out)")
|
||||
if(M.stat == DEAD) dat += " " + span_red(span_bold("(DEAD)"))
|
||||
dat += "</td>"
|
||||
dat += "<td>\[<A href='byond://?src=\ref[requester];[HrefToken()];adminplayeropts=\ref[M]'>PP</A>]\[<A href='byond://?src=\ref[requester];[HrefToken()];priv_msg=\ref[M]'>PM</A>\]\[<A href='byond://?src=\ref[requester];[HrefToken()];traitor=\ref[M]'>TP</A>\]</td>"
|
||||
else
|
||||
|
||||
@@ -107,7 +107,7 @@ var/datum/antagonist/cultist/cult
|
||||
to_chat(player.current, span_danger("An unfamiliar white light flashes through your mind, cleansing the taint of the dark-one and the memories of your time as his servant with it."))
|
||||
player.memory = ""
|
||||
if(show_message)
|
||||
player.current.visible_message("<FONT size = 3>[player.current] looks like they just reverted to their old faith!</FONT>")
|
||||
player.current.visible_message(span_large("[player.current] looks like they just reverted to their old faith!"))
|
||||
|
||||
/datum/antagonist/cultist/add_antagonist(var/datum/mind/player)
|
||||
. = ..()
|
||||
|
||||
+5
-4
@@ -656,15 +656,16 @@
|
||||
if(!isliving(src))
|
||||
custom_edit_name = "<a href='byond://?_src_=vars;[HrefToken()];datumedit=\ref[src];varnameedit=name'><b>[src]</b></a>"
|
||||
. += {"
|
||||
[custom_edit_name]
|
||||
<br><font size='1'>
|
||||
[custom_edit_name]<br>
|
||||
"}
|
||||
var/content = {"
|
||||
<a href='byond://?_src_=vars;[HrefToken()];rotatedatum=\ref[src];rotatedir=left'><<</a>
|
||||
<a href='byond://?_src_=vars;[HrefToken()];datumedit=\ref[src];varnameedit=dir'>[dir2text(dir)]</a>
|
||||
<a href='byond://?_src_=vars;[HrefToken()];rotatedatum=\ref[src];rotatedir=right'>>></a>
|
||||
</font>
|
||||
"}
|
||||
. += span_small(content)
|
||||
var/turf/T = get_turf(src)
|
||||
. += "<br><font size='1'>[ADMIN_COORDJMP(T)]</font>"
|
||||
. += "<br>" + span_small("[ADMIN_COORDJMP(T)]")
|
||||
|
||||
/atom/vv_edit_var(var_name, var_value)
|
||||
switch(var_name)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
message_admins("The apocalypse has begun! (this holiday event can be disabled by toggling events off within 60 seconds)")
|
||||
spawn(600)
|
||||
if(!CONFIG_GET(flag/allow_random_events)) return
|
||||
Show2Group4Delay(ScreenText(null,"<center><font color='red' size='8'>GAME OVER</font></center>"),null,150)
|
||||
Show2Group4Delay(ScreenText(null,"<center>" + span_red(span_extramassive("GAME OVER")) + "</center>"),null,150)
|
||||
for(var/i=1,i<=4,i++)
|
||||
spawn_dynamic_event()
|
||||
sleep(50)
|
||||
|
||||
@@ -122,12 +122,12 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
|
||||
if(0) //Functions
|
||||
var/dat = ""
|
||||
user.set_machine(src)
|
||||
dat += "<align='center'><b>Functions</b> | "
|
||||
dat += "<align='center'>" + span_bold("Functions") + " | "
|
||||
dat += "<a href='byond://?src=\ref[src];tab_choice=1'>Equipment</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];tab_choice=2'>Consumables</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];tab_choice=3'>Assistance</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];tab_choice=4'>Info</a></align><br>"
|
||||
dat += "You currently have a budget of <b>[budget]/[max_budget]</b>.<br><br>"
|
||||
dat += "You currently have a budget of " + span_bold("[budget]/[max_budget]") + ".<br><br>"
|
||||
dat += "<a href='byond://?src=\ref[src];refund_functions=1'>Refund Functions</a><br><br>"
|
||||
|
||||
dat += "[show_categories(ALL_SPELLS)] | [show_categories(OFFENSIVE_SPELLS)] | [show_categories(DEFENSIVE_SPELLS)] | \
|
||||
@@ -138,15 +138,15 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
|
||||
if(spell_tab != ALL_SPELLS && spell.category != spell_tab)
|
||||
continue
|
||||
dat += span_bold("[spell.name]") + "<br>"
|
||||
dat += "<i>[spell.desc]</i><br>"
|
||||
dat += span_italics("[spell.desc]") + "<br>"
|
||||
if(spell.spell_power_desc)
|
||||
dat += "<font color='purple'>Spell Power: [spell.spell_power_desc]</font><br>"
|
||||
dat += span_purple("Spell Power: [spell.spell_power_desc]") + "<br>"
|
||||
if(spell.enhancement_desc)
|
||||
dat += "<font color='blue'>Scepter Effect: [spell.enhancement_desc]</font><br>"
|
||||
dat += span_blue("Scepter Effect: [spell.enhancement_desc]") + "<br>"
|
||||
if(spell.cost <= budget)
|
||||
dat += "<a href='byond://?src=\ref[src];spell_choice=[spell.name]'>Purchase</a> ([spell.cost])<br><br>"
|
||||
else
|
||||
dat += "<font color='red'><b>Cannot afford!</b></font><br><br>"
|
||||
dat += span_red(span_bold("Cannot afford!")) + "<br><br>"
|
||||
user << browse("<html>[dat]</html>", "window=radio")
|
||||
onclose(user, "radio")
|
||||
if(1) //Equipment
|
||||
@@ -157,14 +157,14 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
|
||||
dat += "<a href='byond://?src=\ref[src];tab_choice=2'>Consumables</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];tab_choice=3'>Assistance</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];tab_choice=4'>Info</a></align><br>"
|
||||
dat += "You currently have a budget of <b>[budget]/[max_budget]</b>.<br><br>"
|
||||
dat += "You currently have a budget of " + span_bold("[budget]/[max_budget]") + ".<br><br>"
|
||||
for(var/datum/technomancer/equipment/E in equipment_instances)
|
||||
dat += span_bold("[E.name]") + "<br>"
|
||||
dat += "<i>[E.desc]</i><br>"
|
||||
dat += span_italics("[E.desc]") + "<br>"
|
||||
if(E.cost <= budget)
|
||||
dat += "<a href='byond://?src=\ref[src];item_choice=[E.name]'>Purchase</a> ([E.cost])<br><br>"
|
||||
else
|
||||
dat += "<font color='red'><b>Cannot afford!</b></font><br><br>"
|
||||
dat += span_red(span_bold("Cannot afford!")) + "<br><br>"
|
||||
user << browse("<html>[dat]</html>", "window=radio")
|
||||
onclose(user, "radio")
|
||||
if(2) //Consumables
|
||||
@@ -175,14 +175,14 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
|
||||
dat += span_bold("Consumables") + " | "
|
||||
dat += "<a href='byond://?src=\ref[src];tab_choice=3'>Assistance</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];tab_choice=4'>Info</a></align><br>"
|
||||
dat += "You currently have a budget of <b>[budget]/[max_budget]</b>.<br><br>"
|
||||
dat += "You currently have a budget of " + span_bold("[budget]/[max_budget]") + ".<br><br>"
|
||||
for(var/datum/technomancer/consumable/C in consumable_instances)
|
||||
dat += span_bold("[C.name]") + "<br>"
|
||||
dat += "<i>[C.desc]</i><br>"
|
||||
dat += span_italics("[C.desc]") + "<br>"
|
||||
if(C.cost <= budget)
|
||||
dat += "<a href='byond://?src=\ref[src];item_choice=[C.name]'>Purchase</a> ([C.cost])<br><br>"
|
||||
else
|
||||
dat += "<font color='red'><b>Cannot afford!</b></font><br><br>"
|
||||
dat += span_red(span_bold("Cannot afford!")) + "<br><br>"
|
||||
user << browse("<html>[dat]</html>", "window=radio")
|
||||
onclose(user, "radio")
|
||||
if(3) //Assistance
|
||||
@@ -193,14 +193,14 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
|
||||
dat += "<a href='byond://?src=\ref[src];tab_choice=2'>Consumables</a> | "
|
||||
dat += span_bold("Assistance") + " | "
|
||||
dat += "<a href='byond://?src=\ref[src];tab_choice=4'>Info</a></align><br>"
|
||||
dat += "You currently have a budget of <b>[budget]/[max_budget]</b>.<br><br>"
|
||||
dat += "You currently have a budget of " + span_bold("[budget]/[max_budget]") + ".<br><br>"
|
||||
for(var/datum/technomancer/assistance/A in assistance_instances)
|
||||
dat += span_bold("[A.name]") + "<br>"
|
||||
dat += "<i>[A.desc]</i><br>"
|
||||
dat += span_italics("[A.desc]") + "<br>"
|
||||
if(A.cost <= budget)
|
||||
dat += "<a href='byond://?src=\ref[src];item_choice=[A.name]'>Purchase</a> ([A.cost])<br><br>"
|
||||
else
|
||||
dat += "<font color='red'><b>Cannot afford!</b></font><br><br>"
|
||||
dat += span_red(span_bold("Cannot afford!")) + "<br><br>"
|
||||
user << browse("<html>[dat]</html>", "window=radio")
|
||||
onclose(user, "radio")
|
||||
if(4) //Info
|
||||
@@ -211,21 +211,21 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
|
||||
dat += "<a href='byond://?src=\ref[src];tab_choice=2'>Consumables</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];tab_choice=3'>Assistance</a> | "
|
||||
dat += span_bold("Info") + "</align><br>"
|
||||
dat += "You currently have a budget of <b>[budget]/[max_budget]</b>.<br><br>"
|
||||
dat += "You currently have a budget of " + span_bold("[budget]/[max_budget]") + ".<br><br>"
|
||||
dat += "<br>"
|
||||
dat += "<h1>Manipulation Core Owner's Manual</h1><br>"
|
||||
dat += "This brief entry in your catalog will try to explain what everything does. For starters, the thing you're \
|
||||
probably wearing on your back is known as a <b>Manipulation Core</b>, or just a 'Core'. It allows you to do amazing \
|
||||
things with almost no effort, depending on what <b>functions</b> you've purchased for it. Don't lose your core!<br>"
|
||||
probably wearing on your back is known as a " + span_bold("Manipulation Core") + ", or just a 'Core'. It allows you to do amazing \
|
||||
things with almost no effort, depending on what " + span_bold("functions") + " you've purchased for it. Don't lose your core!<br>"
|
||||
dat += "<br>"
|
||||
dat += "There are a few things you need to keep in mind as you use your Core to manipulate the universe. The core \
|
||||
requires a special type of <b>energy</b>, that is referred to as just 'Energy' in the catalog. All cores generate \
|
||||
requires a special type of " + span_bold("energy") + ", that is referred to as just 'Energy' in the catalog. All cores generate \
|
||||
their own energy, some more than others. Most functions require energy be spent in order to work, so make sure not \
|
||||
to run out in a critical moment. Besides waiting for your Core to recharge, you can buy certain functions which \
|
||||
do something to generate energy.<br>"
|
||||
dat += "<br>"
|
||||
dat += "The second thing you need to know is that awesome power over the physical world has consequences, in the form \
|
||||
of <b>Instability</b>. Instability is the result of your Core's energy being used to fuel it, and so little is \
|
||||
of " + span_bold("Instability") + ". Instability is the result of your Core's energy being used to fuel it, and so little is \
|
||||
understood about it, even among fellow Core owners, however it is almost always a bad thing to have. Instability will \
|
||||
'cling' to you as you use functions, with powerful functions creating lots of instability. The effects of holding onto \
|
||||
instability are generally harmless or mildly annoying at low levels, with effects such as sparks in the air or forced \
|
||||
@@ -235,7 +235,7 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
|
||||
dat += "Fortunately, all Cores come with a meter to tell you how much instability you currently hold. \
|
||||
Instability will go away on its own as time goes on. You can tell if you have instability by the characteristic \
|
||||
purple colored lightning that appears around something with instability lingering on it. High amounts of instability \
|
||||
may cause the object afflicted with it to glow a dark purple, which is often known simply as <b>Glow</b>, which spreads \
|
||||
may cause the object afflicted with it to glow a dark purple, which is often known simply as " + span_bold("Glow") + ", which spreads \
|
||||
the instability. You should stay far away from anyone afflicted by Glow, as they will be a danger to both themselves and \
|
||||
anything nearby. Multiple sources of Glow can perpetuate the glow for a very long time if they are not separated.<br>"
|
||||
dat += "<br>"
|
||||
@@ -260,9 +260,9 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
|
||||
a target of your choice.<br>"
|
||||
dat += "Some functions can have their abilities enhanced by a special rod called the Scepter of Enhancement. \
|
||||
If a function is able to be boosted with it, it will be shown underneath the description of the function as \
|
||||
<font color='blue'><i>'Scepter Effect:'</i></font>. Note that you must hold the scepter for it to work, so try to avoid losing it.<br>"
|
||||
" + span_blue(span_italics("'Scepter Effect:'")) + ". Note that you must hold the scepter for it to work, so try to avoid losing it.<br>"
|
||||
dat += "Functions can also be boosted with the core itself. A function that is able to benefit \
|
||||
from this will have <font color='purple'><i>'Spell Power:'</i></font> underneath. Different Cores have different \
|
||||
from this will have " + span_purple(span_italics("'Spell Power:'")) + " underneath. Different Cores have different \
|
||||
amounts of spell power.<br>"
|
||||
dat += "When a function refers to 'allies', it means you, your apprentices, currently controlled entities (with the \
|
||||
Control function), and friendly simple-minded entities that you've summoned with the Scepter of Enhancement.<br>"
|
||||
|
||||
@@ -92,4 +92,4 @@
|
||||
M.Paralyse(4)
|
||||
else
|
||||
M.make_jittery(50)
|
||||
to_chat(M, span_red("<font size='7'><b>HONK</b></font>"))
|
||||
to_chat(M, span_red(span_massive(span_bold("HONK"))))
|
||||
|
||||
@@ -519,8 +519,7 @@
|
||||
These diskettes are used to transfer genetic information between machines and profiles.
|
||||
A load/save dialog will become available in each profile if a disk is inserted.</p><br>
|
||||
<i>A good diskette is a great way to counter aforementioned genetic drift!</i><br>
|
||||
<br>
|
||||
<font size=1>This technology produced under license from Thinktronic Systems, LTD.</font>"}
|
||||
<br>"} + span_small("This technology produced under license from Thinktronic Systems, LTD.")
|
||||
|
||||
//SOME SCRAPS I GUESS
|
||||
/* EMP grenade/spell effect
|
||||
|
||||
@@ -409,18 +409,18 @@
|
||||
dat += "<br>You ran out of food and starved."
|
||||
if(emagged)
|
||||
user.nutrition = 0 //yeah you pretty hongry
|
||||
to_chat(user, span_danger("<font size=3>Your body instantly contracts to that of one who has not eaten in months. Agonizing cramps seize you as you fall to the floor.</font>"))
|
||||
to_chat(user, span_danger(span_large("Your body instantly contracts to that of one who has not eaten in months. Agonizing cramps seize you as you fall to the floor.")))
|
||||
if(fuel <= 0)
|
||||
dat += "<br>You ran out of fuel, and drift, slowly, into a star."
|
||||
if(emagged)
|
||||
var/mob/living/M = user
|
||||
M.adjust_fire_stacks(5)
|
||||
M.IgniteMob() //flew into a star, so you're on fire
|
||||
to_chat(user,span_danger("<font size=3>You feel an immense wave of heat emanate from \the [src]. Your skin bursts into flames.</font>"))
|
||||
to_chat(user,span_danger(span_large("You feel an immense wave of heat emanate from \the [src]. Your skin bursts into flames.")))
|
||||
dat += "<br><P ALIGN=Right><a href='byond://?src=\ref[src];menu=1'>OK...</a></P>"
|
||||
|
||||
if(emagged)
|
||||
to_chat(user, span_danger("<font size=3>You're never going to make it to Orion...</font>"))
|
||||
to_chat(user, span_danger(span_large("You're never going to make it to Orion...")))
|
||||
user.death()
|
||||
emagged = 0 //removes the emagged status after you lose
|
||||
gameStatus = ORION_STATUS_START
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
var/obj/item/paper/monitorkey/MK = new/obj/item/paper/monitorkey
|
||||
MK.loc = loc
|
||||
// Will help make emagging the console not so easy to get away with.
|
||||
MK.info += "<br><br><font color='red'>£%@%(*$%&(£&?*(%&£/{}</font>"
|
||||
MK.info += "<br><br>" + span_red("£%@%(*$%&(£&?*(%&£/{}")
|
||||
spawn(100*length(linkedServer.decryptkey)) UnmagConsole()
|
||||
temp = rebootmsg
|
||||
update_icon()
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
jobs_all += "<td weight='100'><a href='byond://?src=\ref[src];;assign=Custom'>Custom</a></td>"
|
||||
|
||||
counter = 0
|
||||
jobs_all += "</tr><tr><td><font color='#A50000'><b>Security</b></font></td>"//Red
|
||||
jobs_all += "</tr><tr><td>" + span_red(span_bold("Security")) + "</td>"//Red
|
||||
for(var/job in security_positions)
|
||||
counter++
|
||||
if(counter >= 6)
|
||||
@@ -49,7 +49,7 @@
|
||||
jobs_all += "<td height='20' weight='100'><a href='byond://?src=\ref[src];assign=[job]'>[replacetext(job, " ", " ")]</a></td>"
|
||||
|
||||
counter = 0
|
||||
jobs_all += "</tr><tr><td><font color='#FFA500'><b>Engineering</b></font></td>"//Orange
|
||||
jobs_all += "</tr><tr><td>" + span_orange(span_bold("Engineering")) + "</td>"//Orange
|
||||
for(var/job in engineering_positions)
|
||||
counter++
|
||||
if(counter >= 6)
|
||||
@@ -58,7 +58,7 @@
|
||||
jobs_all += "<td height='20' weight='100'><a href='byond://?src=\ref[src];assign=[job]'>[replacetext(job, " ", " ")]</a></td>"
|
||||
|
||||
counter = 0
|
||||
jobs_all += "</tr><tr height='20'><td><font color='#008000'><b>Medical</b></font></td>"//Green
|
||||
jobs_all += "</tr><tr height='20'><td>" + span_green(span_bold("Medical")) + "</td>"//Green
|
||||
for(var/job in medical_positions)
|
||||
counter++
|
||||
if(counter >= 6)
|
||||
@@ -67,7 +67,7 @@
|
||||
jobs_all += "<td weight='100'><a href='byond://?src=\ref[src];assign=[job]'>[replacetext(job, " ", " ")]</a></td>"
|
||||
|
||||
counter = 0
|
||||
jobs_all += "</tr><tr height='20'><td><font color='#800080'><b>Science</b></font></td>"//Purple
|
||||
jobs_all += "</tr><tr height='20'><td>" + span_purple(span_bold("Science")) + "</td>"//Purple
|
||||
for(var/job in science_positions)
|
||||
counter++
|
||||
if(counter >= 6)
|
||||
@@ -76,7 +76,7 @@
|
||||
jobs_all += "<td weight='100'><a href='byond://?src=\ref[src];assign=[job]'>[replacetext(job, " ", " ")]</a></td>"
|
||||
|
||||
counter = 0
|
||||
jobs_all += "</tr><tr height='20'><td><font color='#808080'><b>Civilian</b></font></td>"//Grey
|
||||
jobs_all += "</tr><tr height='20'><td>" + span_grey(span_bold("Civilian")) + "</td>"//Grey
|
||||
for(var/job in civilian_positions)
|
||||
counter++
|
||||
if(counter >= 6)
|
||||
@@ -124,7 +124,7 @@
|
||||
accesses += "<td style='width:14%' valign='top'>"
|
||||
for(var/A in get_region_accesses(i))
|
||||
if(A in writer.GetAccess())
|
||||
accesses += topic_link(src,"access=[A]","<font color='red'>[replacetext(get_access_desc(A), " ", " ")]</font>") + " "
|
||||
accesses += topic_link(src,"access=[A]",span_red("[replacetext(get_access_desc(A), " ", " ")]")) + " "
|
||||
else
|
||||
accesses += topic_link(src,"access=[A]",replacetext(get_access_desc(A), " ", " ")) + " "
|
||||
accesses += "<br>"
|
||||
@@ -185,7 +185,7 @@
|
||||
L += R
|
||||
for(var/R in sortList(L))
|
||||
crew += "[R]<br>"
|
||||
return "<tt><b>Crew Manifest:</b><br>Please use security record computer to modify entries.<br><br>[crew][topic_link(src,"print","Print")]<br><br>[topic_link(src,"mode=0","Access ID modification console.")]<br></tt>"
|
||||
return "<tt>" + span_bold("Crew Manifest:") + "<br>Please use security record computer to modify entries.<br><br>[crew][topic_link(src,"print","Print")]<br><br>[topic_link(src,"mode=0","Access ID modification console.")]<br></tt>"
|
||||
|
||||
// These are here partly in order to be overwritten by the centcom card computer code
|
||||
/datum/file/program/card_comp/proc/authenticate()
|
||||
@@ -336,7 +336,7 @@
|
||||
var/accesses = "<h5>[using_map.boss_name]:</h5>"
|
||||
for(var/A in get_all_centcom_access())
|
||||
if(A in writer.GetAccess())
|
||||
accesses += topic_link(src,"access=[A]","<font color='red'>[replacetext(get_centcom_access_desc(A), " ", " ")]</font>") + " "
|
||||
accesses += topic_link(src,"access=[A]",span_red("[replacetext(get_centcom_access_desc(A), " ", " ")]")) + " "
|
||||
else
|
||||
accesses += topic_link(src,"access=[A]",replacetext(get_centcom_access_desc(A), " ", " ")) + " "
|
||||
return accesses
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
t1 += "Access requirement is set to "
|
||||
t1 += one_access ? "<a style='color: green' href='byond://?src=\ref[src];one_access=1'>ONE</a><hr>" : "<a style='color: red' href='byond://?src=\ref[src];one_access=1'>ALL</a><hr>"
|
||||
|
||||
t1 += conf_access == null ? "<font color=red>All</font><br>" : "<a href='byond://?src=\ref[src];access=all'>All</a><br>"
|
||||
t1 += conf_access == null ? span_red("All") + "<br>" : "<a href='byond://?src=\ref[src];access=all'>All</a><br>"
|
||||
|
||||
t1 += "<br>"
|
||||
|
||||
|
||||
@@ -337,7 +337,7 @@
|
||||
|
||||
var/signature
|
||||
if(tgui_alert(user, "Would you like to add your signature?", "Signature", list("Yes","No")) == "Yes")
|
||||
signature = "<font face=\"Times New Roman\"><i>[user ? user.real_name : "Anonymous"]</i></font>"
|
||||
signature = "<font face=\"Times New Roman\">" + span_italics("[user ? user.real_name : "Anonymous"]") + "</font>"
|
||||
else
|
||||
signature = "<span class=\"paper_field\"></span>"
|
||||
|
||||
@@ -346,17 +346,17 @@
|
||||
visible_message(span_notice("[src] rattles and prints out a sheet of paper."))
|
||||
playsound(loc, 'sound/machines/printer.ogg', 50, 1)
|
||||
|
||||
P.info = "<U><font size=\"4\"><B><center> Releasing Virus </B></center></font></U>"
|
||||
P.info = span_underline(span_huge(span_bold("<center> Releasing Virus </center>")))
|
||||
P.info += "<HR>"
|
||||
P.info += "<U>Name of the Virus:</U> [D.name] <BR>"
|
||||
P.info += "<U>Symptoms:</U> [symtoms]<BR>"
|
||||
P.info += "<U>Spreads by:</U> [D.spread_text]<BR>"
|
||||
P.info += "<U>Cured by:</U> [D.cure_text]<BR>"
|
||||
P.info += span_underline("Name of the Virus:") + " [D.name] <BR>"
|
||||
P.info += span_underline("Symptoms:") + " [symtoms]<BR>"
|
||||
P.info += span_underline("Spreads by:") + " [D.spread_text]<BR>"
|
||||
P.info += span_underline("Cured by:") + " [D.cure_text]<BR>"
|
||||
P.info += "<BR>"
|
||||
P.info += "<U>Reason for releasing:</U> [reason]"
|
||||
P.info += span_underline("Reason for releasing:") + " [reason]"
|
||||
P.info += "<HR>"
|
||||
P.info += "The Virologist is responsible for any biohazards caused by the virus released.<BR>"
|
||||
P.info += "<U>Virologist's sign:</U> [signature]<BR>"
|
||||
P.info += span_underline("Virologist's sign:") + " [signature]<BR>"
|
||||
P.info += "If approved, stamp below with the Chief Medical Officer's stamp, and/or the Captain's stamp if required:"
|
||||
P.updateinfolinks()
|
||||
P.name = "Releasing Virus - [D.name]"
|
||||
|
||||
@@ -59,16 +59,15 @@
|
||||
marks += row["rank"]
|
||||
qdel(cquery)
|
||||
*/
|
||||
var/text = {"
|
||||
<font size=4><center>Report</center></font><br>
|
||||
<b><u>Name</u></b>: [mname]
|
||||
<b><u>Age</u></b>: [age]
|
||||
<b><u>Sex</u></b>: [gender]
|
||||
<b><u>DNA</u></b>: [dna]
|
||||
<b><u>Blood Type</u></b>: [bloodtype]
|
||||
<b><u>Fingerprint</u></b>: [fingerprint]
|
||||
|
||||
<b><u>Black Marks</u></b>:<br> "}
|
||||
var/text = "\
|
||||
" span_huge("center>Report</center>") + "<br>\
|
||||
" + span_bold(span_underline("Name")) + " : [mname]\
|
||||
" + span_bold(span_underline("Age")) + " : [age]\
|
||||
" + span_bold(span_underline("Sex")) + " : [gender]\
|
||||
" + span_bold(span_underline("DNA")) + " : [dna]\
|
||||
" + span_bold(span_underline("Blood Type")) + " : [bloodtype]\
|
||||
" + span_bold(span_underline("Fingerprint")) + " : [fingerprint]\
|
||||
" + span_bold(span_underline("Black Marks")) + " :<br> "
|
||||
for(var/A in marks)
|
||||
text += span_danger("[A]") + "<br>"
|
||||
to_chat(user, span_notice("You feel a sting as the scanner extracts some of your blood."))
|
||||
|
||||
@@ -255,7 +255,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
|
||||
if(inoperable(MAINT)) return
|
||||
if(screen == RCS_MESSAUTH)
|
||||
var/obj/item/card/id/T = O
|
||||
msgVerified = text("<font color='green'><b>Verified by [T.registered_name] ([T.assignment])</b></font>")
|
||||
msgVerified = span_green(span_bold("Verified by [T.registered_name] ([T.assignment])"))
|
||||
SStgui.update_uis(src)
|
||||
if(screen == RCS_ANNOUNCE)
|
||||
var/obj/item/card/id/ID = O
|
||||
@@ -270,7 +270,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
|
||||
if(inoperable(MAINT)) return
|
||||
if(screen == RCS_MESSAUTH)
|
||||
var/obj/item/stamp/T = O
|
||||
msgStamped = text("<font color='blue'><b>Stamped with the [T.name]</b></font>")
|
||||
msgStamped = span_blue(span_bold("Stamped with the [T.name]"))
|
||||
SStgui.update_uis(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -18,17 +18,17 @@
|
||||
|
||||
/obj/machinery/syndicate_beacon/attack_hand(var/mob/user as mob)
|
||||
user.set_machine(src)
|
||||
var/dat = "<font color=#005500><i>Scanning [pick("retina pattern", "voice print", "fingerprints", "dna sequence")]...<br>Identity confirmed,<br></i></font>"
|
||||
var/dat = span_darkgreen(span_italics("Scanning [pick("retina pattern", "voice print", "fingerprints", "dna sequence")]...<br>Identity confirmed,<br>"))
|
||||
if(ishuman(user) || isAI(user))
|
||||
if(is_special_character(user))
|
||||
dat += "<font color=#07700><i>Operative record found. Greetings, Agent [user.name].</i></font><br>"
|
||||
dat += span_darkgreen(span_italics("Operative record found. Greetings, Agent [user.name].<br>"))
|
||||
else if(charges < 1)
|
||||
dat += "<TT>Connection severed.</TT><BR>"
|
||||
else
|
||||
var/honorific = "Mr."
|
||||
if(user.gender == FEMALE)
|
||||
honorific = "Ms."
|
||||
dat += "<font color=red><i>Identity not found in operative database. What can the Syndicate do for you today, [honorific] [user.name]?</i></font><br>"
|
||||
dat += span_red(span_italics("Identity not found in operative database. What can the Syndicate do for you today, [honorific] [user.name]?<br>"))
|
||||
if(!selfdestructing)
|
||||
dat += "<br><br><A href='byond://?src=\ref[src];betraitor=1;traitormob=\ref[user]'>\"[pick("I want to switch teams.", "I want to work for you.", "Let me join you.", "I can be of use to you.", "You want me working for you, and here's why...", "Give me an objective.", "How's the 401k over at the Syndicate?")]\"</A><BR>"
|
||||
dat += temptext
|
||||
@@ -44,13 +44,13 @@
|
||||
return
|
||||
var/mob/M = locate(href_list["traitormob"])
|
||||
if(M.mind.special_role || jobban_isbanned(M, JOB_SYNDICATE))
|
||||
temptext = "<i>We have no need for you at this time. Have a pleasant day.</i><br>"
|
||||
temptext = span_italics("We have no need for you at this time. Have a pleasant day.") + "<br>"
|
||||
updateUsrDialog(usr)
|
||||
return
|
||||
charges -= 1
|
||||
switch(rand(1,2))
|
||||
if(1)
|
||||
temptext = "<font color=red><i><b>Double-crosser. You planned to betray us from the start. Allow us to repay the favor in kind.</b></i></font>"
|
||||
temptext = span_red(span_italics(span_bold("Double-crosser. You planned to betray us from the start. Allow us to repay the favor in kind.")))
|
||||
updateUsrDialog(usr)
|
||||
spawn(rand(50,200)) selfdestruct()
|
||||
return
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
|
||||
/obj/machinery/syndicate_beacon/virgo/attack_hand(var/mob/user)
|
||||
user.set_machine(src)
|
||||
var/dat = "<font color=#005500><i>Scanning [pick("retina pattern", "voice print", "fingerprints", "dna sequence")]...<br>Identity confirmed,<br></i></font>"
|
||||
var/dat = span_darkgreen(span_italics("Scanning [pick("retina pattern", "voice print", "fingerprints", "dna sequence")]...<br>Identity confirmed,<br>"))
|
||||
if(ishuman(user) || isAI(user))
|
||||
if(is_special_character(user))
|
||||
dat += "<font color=#07700><i>Operative record found. Greetings, Agent [user.name].</i></font><br>"
|
||||
dat += span_darkgreen(span_italics("Operative record found. Greetings, Agent [user.name].<br>"))
|
||||
else if(charges < 1)
|
||||
dat += "<TT>Connection severed.</TT><BR>"
|
||||
else
|
||||
var/honorific = "Mr."
|
||||
if(user.gender == FEMALE)
|
||||
honorific = "Ms."
|
||||
dat += "<font color=red><i>Identity not found in operative database. What can the Black Market do for you today, [honorific] [user.name]?</i></font><br>"
|
||||
dat += span_red(span_italics("Identity not found in operative database. What can the Black Market do for you today, [honorific] [user.name]?<br>"))
|
||||
if(!selfdestructing)
|
||||
dat += "<br><br><A href='byond://?src=\ref[src];betraitor=1;traitormob=\ref[user]'>\"[pick("Send me some supplies!", "Transfer supplies.")]\"</A><BR>"
|
||||
dat += temptext
|
||||
|
||||
@@ -149,7 +149,7 @@
|
||||
|
||||
if("scan")
|
||||
if(servers.len > 0)
|
||||
temp = "<font color = #D70B00>- FAILED: CANNOT PROBE WHEN BUFFER FULL -</font>"
|
||||
temp = span_red("- FAILED: CANNOT PROBE WHEN BUFFER FULL -")
|
||||
|
||||
else
|
||||
for(var/obj/machinery/telecomms/server/T in range(25, src))
|
||||
@@ -157,9 +157,9 @@
|
||||
servers.Add(T)
|
||||
|
||||
if(!servers.len)
|
||||
temp = "<font color = #D70B00>- FAILED: UNABLE TO LOCATE SERVERS IN \[[network]\] -</font>"
|
||||
temp = span_red("- FAILED: UNABLE TO LOCATE SERVERS IN \[[network]\] -")
|
||||
else
|
||||
temp = "<font color = #336699>- [servers.len] SERVERS PROBED & BUFFERED -</font>"
|
||||
temp = span_blue("- [servers.len] SERVERS PROBED & BUFFERED -")
|
||||
|
||||
screen = 0
|
||||
|
||||
@@ -197,14 +197,14 @@
|
||||
|
||||
if(newnet && ((usr in range(1, src)) || issilicon(usr)))
|
||||
if(length(newnet) > 15)
|
||||
temp = "<font color = #D70B00>- FAILED: NETWORK TAG STRING TOO LENGHTLY -</font>"
|
||||
temp = span_red("- FAILED: NETWORK TAG STRING TOO LENGHTLY -")
|
||||
|
||||
else
|
||||
|
||||
network = newnet
|
||||
screen = 0
|
||||
servers = list()
|
||||
temp = "<font color = #336699>- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -</font>"
|
||||
temp = span_blue("- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -")
|
||||
|
||||
updateUsrDialog(usr)
|
||||
return
|
||||
|
||||
@@ -54,7 +54,7 @@ var/global/datum/book_manager/book_mgr = new()
|
||||
establish_old_db_connection()
|
||||
|
||||
if(!SSdbcore.IsConnected())
|
||||
dat += "<font color=red><b>ERROR</b>: Unable to contact External Archive. Please contact your system administrator for assistance.</font>"
|
||||
dat += span_red(span_bold("ERROR") + ": Unable to contact External Archive. Please contact your system administrator for assistance.")
|
||||
else
|
||||
dat += {"<A href='byond://?our_comp=\ref[our_comp];[HrefToken()];orderbyid=1'>(Order book by SS<sup>13</sup>BN)</A><BR><BR>
|
||||
<table>
|
||||
|
||||
@@ -237,7 +237,7 @@
|
||||
/obj/mecha/combat/fighter/Bump(atom/obstacle)
|
||||
. = ..()
|
||||
if(istype(obstacle, /obj) || istype(obstacle, /turf))
|
||||
occupant_message("<B><FONT COLOR=red SIZE=+2>COLLISION ALERT!</B></FONT>")
|
||||
occupant_message(span_bolddanger(span_large("COLLISION ALERT!")))
|
||||
take_damage(20, "brute")
|
||||
playsound(src, 'sound/mecha/fighter/fighter_collision.ogg', 50)
|
||||
|
||||
|
||||
@@ -149,13 +149,32 @@
|
||||
t1 = "*dead*"
|
||||
else
|
||||
t1 = "Unknown"
|
||||
return {"<font color="[occupant.health > 50 ? "blue" : "red"]"><b>Health:</b> [occupant.health]% ([t1])</font><br />
|
||||
<font color="[occupant.bodytemperature > 50 ? "blue" : "red"]"><b>Core Temperature:</b> [src.occupant.bodytemperature-T0C]°C ([src.occupant.bodytemperature*1.8-459.67]°F)</font><br />
|
||||
<font color="[occupant.getBruteLoss() < 60 ? "blue" : "red"]"><b>Brute Damage:</b> [occupant.getBruteLoss()]%</font><br />
|
||||
<font color="[occupant.getOxyLoss() < 60 ? "blue" : "red"]"><b>Respiratory Damage:</b> [occupant.getOxyLoss()]%</font><br />
|
||||
<font color="[occupant.getToxLoss() < 60 ? "blue" : "red"]"><b>Toxin Content:</b> [occupant.getToxLoss()]%</font><br />
|
||||
<font color="[occupant.getFireLoss() < 60 ? "blue" : "red"]"><b>Burn Severity:</b> [occupant.getFireLoss()]%</font><br />
|
||||
"}
|
||||
var/text = ""
|
||||
var/entry = span_bold("Health:") + " [occupant.health]% ([t1])"
|
||||
text += occupant.health > 50 ? span_blue(entry) : span_red(entry)
|
||||
text += "<br />"
|
||||
|
||||
entry = span_bold("Core Temperature:") + " [src.occupant.bodytemperature-T0C]°C ([src.occupant.bodytemperature*1.8-459.67]°F)"
|
||||
text += occupant.bodytemperature > 50 ? span_blue(entry) : span_red(entry)
|
||||
text += "<br />"
|
||||
|
||||
entry = span_bold("Brute Damage:") + " [occupant.getBruteLoss()]%"
|
||||
text += occupant.getBruteLoss() < 60 ? span_blue(entry) : span_red(entry)
|
||||
text += "<br />"
|
||||
|
||||
entry = span_bold("Respiratory Damage:") + " [occupant.getOxyLoss()]%"
|
||||
text += occupant.getOxyLoss() < 60 ? span_blue(entry) : span_red(entry)
|
||||
text += "<br />"
|
||||
|
||||
entry = span_bold("Toxin Content:") + " [occupant.getToxLoss()]%"
|
||||
text += occupant.getToxLoss() < 60 ? span_blue(entry) : span_red(entry)
|
||||
text += "<br />"
|
||||
|
||||
entry = span_bold("Burn Severity:") + " [occupant.getFireLoss()]%"
|
||||
text += occupant.getFireLoss() < 60 ? span_blue(entry) : span_red(entry)
|
||||
text += "<br />"
|
||||
|
||||
return text
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/tool/sleeper/proc/get_occupant_reagents()
|
||||
if(occupant.reagents)
|
||||
|
||||
+17
-13
@@ -1587,8 +1587,8 @@
|
||||
V.show_message("The [W] bounces off [src.name] armor.", 1)
|
||||
*/
|
||||
else
|
||||
src.occupant_message("<font color='red'><b>[user] hits [src] with [W].</b></font>")
|
||||
user.visible_message("<font color='red'><b>[user] hits [src] with [W].</b></font>", "<font color='red'><b>You hit [src] with [W].</b></font>")
|
||||
src.occupant_message(span_boldwarning("[user] hits [src] with [W].")))
|
||||
user.visible_message(span_boldwarning("[user] hits [src] with [W]."))", span_boldwarning("You hit [src] with [W].")))
|
||||
src.take_damage(W.force,W.damtype)
|
||||
src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
|
||||
*/
|
||||
@@ -2200,11 +2200,11 @@
|
||||
/obj/mecha/proc/report_internal_damage()
|
||||
var/output = null
|
||||
var/list/dam_reports = list(
|
||||
"[MECHA_INT_FIRE]" = "<font color='red'><b>INTERNAL FIRE</b></font>",
|
||||
"[MECHA_INT_TEMP_CONTROL]" = "<font color='red'><b>LIFE SUPPORT SYSTEM MALFUNCTION</b></font>",
|
||||
"[MECHA_INT_TANK_BREACH]" = "<font color='red'><b>GAS TANK BREACH</b></font>",
|
||||
"[MECHA_INT_CONTROL_LOST]" = "<font color='red'><b>COORDINATION SYSTEM CALIBRATION FAILURE</b></font> - <a href='byond://?src=\ref[src];repair_int_control_lost=1'>Recalibrate</a>",
|
||||
"[MECHA_INT_SHORT_CIRCUIT]" = "<font color='red'><b>SHORT CIRCUIT</b></font>"
|
||||
"[MECHA_INT_FIRE]" = span_red(span_bold("INTERNAL FIRE")),
|
||||
"[MECHA_INT_TEMP_CONTROL]" = span_red(span_bold("LIFE SUPPORT SYSTEM MALFUNCTION")),
|
||||
"[MECHA_INT_TANK_BREACH]" = span_red(span_bold("GAS TANK BREACH")),
|
||||
"[MECHA_INT_CONTROL_LOST]" = span_red(span_bold("COORDINATION SYSTEM CALIBRATION FAILURE")) + " - <a href='byond://?src=\ref[src];repair_int_control_lost=1'>Recalibrate</a>",
|
||||
"[MECHA_INT_SHORT_CIRCUIT]" = span_red(span_bold("SHORT CIRCUIT"))
|
||||
)
|
||||
for(var/tflag in dam_reports)
|
||||
var/intdamflag = text2num(tflag)
|
||||
@@ -2212,7 +2212,7 @@
|
||||
output += dam_reports[tflag]
|
||||
output += "<br />"
|
||||
if(return_pressure() > WARNING_HIGH_PRESSURE)
|
||||
output += "<font color='red'><b>DANGEROUSLY HIGH CABIN PRESSURE</b></font><br />"
|
||||
output += span_red(span_bold("DANGEROUSLY HIGH CABIN PRESSURE")) + "<br />"
|
||||
return output
|
||||
|
||||
|
||||
@@ -2229,13 +2229,13 @@
|
||||
var/output = {"[report_internal_damage()]
|
||||
<b>Armor Integrity: </b>[AC?"[round(AC.integrity / AC.max_integrity * 100, 0.1)]%":span_warning("ARMOR MISSING")]<br>
|
||||
<b>Hull Integrity: </b>[HC?"[round(HC.integrity / HC.max_integrity * 100, 0.1)]%":span_warning("HULL MISSING")]<br>
|
||||
[integrity<30?"<font color='red'><b>DAMAGE LEVEL CRITICAL</b></font><br>":null]
|
||||
[integrity<30? span_red(span_bold("DAMAGE LEVEL CRITICAL")) + "<br>":null]
|
||||
<b>Chassis Integrity: </b> [integrity]%<br>
|
||||
<b>Powercell charge: </b>[isnull(cell_charge)?"No powercell installed":"[cell.percent()]%"]<br>
|
||||
<b>Air source: </b>[use_internal_tank?"Internal Airtank":"Environment"]<br>
|
||||
<b>Airtank pressure: </b>[tank_pressure]kPa<br>
|
||||
<b>Airtank temperature: </b>[tank_temperature]K|[tank_temperature - T0C]°C<br>
|
||||
<b>Cabin pressure: </b>[cabin_pressure>WARNING_HIGH_PRESSURE ? "<font color='red'>[cabin_pressure]</font>": cabin_pressure]kPa<br>
|
||||
<b>Cabin pressure: </b>[cabin_pressure>WARNING_HIGH_PRESSURE ? span_red("[cabin_pressure]"): cabin_pressure]kPa<br>
|
||||
<b>Cabin temperature: </b> [return_temperature()]K|[return_temperature() - T0C]°C<br>
|
||||
<b>Lights: </b>[lights?"on":"off"]<br>
|
||||
[src.dna?"<b>DNA-locked:</b><br> <span style='font-size:10px;letter-spacing:-1px;'>[src.dna]</span> \[<a href='byond://?src=\ref[src];reset_dna=1'>Reset</a>\]<br>":null]
|
||||
@@ -2381,7 +2381,7 @@
|
||||
var/a_name = get_access_desc(a)
|
||||
if(!a_name) continue //there's some strange access without a name
|
||||
output += "[a_name] - <a href='byond://?src=\ref[src];add_req_access=[a];user=\ref[user];id_card=\ref[id_card]'>Add</a><br>"
|
||||
output += "<hr><a href='byond://?src=\ref[src];finish_req_access=1;user=\ref[user]'>Finish</a> <font color='red'>(Warning! The ID upload panel will be locked. It can be unlocked only through Exosuit Interface.)</font>"
|
||||
output += "<hr><a href='byond://?src=\ref[src];finish_req_access=1;user=\ref[user]'>Finish</a> " + span_red("(Warning! The ID upload panel will be locked. It can be unlocked only through Exosuit Interface.)")
|
||||
output += "</body></html>"
|
||||
user << browse(output, "window=exosuit_add_access")
|
||||
onclose(user, "exosuit_add_access")
|
||||
@@ -2424,12 +2424,16 @@
|
||||
|
||||
/obj/mecha/proc/log_message(message as text,red=null)
|
||||
log.len++
|
||||
log[log.len] = list("time"=world.timeofday,"message"="[red?"<font color='red'>":null][message][red?"</font>":null]")
|
||||
if(red)
|
||||
message = span_red(message)
|
||||
log[log.len] = list("time"=world.timeofday,"message"=message)
|
||||
return log.len
|
||||
|
||||
/obj/mecha/proc/log_append_to_last(message as text,red=null)
|
||||
var/list/last_entry = src.log[src.log.len]
|
||||
last_entry["message"] += "<br>[red?"<font color='red'>":null][message][red?"</font>":null]"
|
||||
if(red)
|
||||
message = span_red(message)
|
||||
last_entry["message"] += "<br>" + message
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -241,10 +241,10 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
|
||||
|
||||
if(pai)
|
||||
dat += {"
|
||||
<b><font size='3px'>Personal AI Device</font></b><br><br>
|
||||
"} + span_bold("<font size='3px'>Personal AI Device</font>") + {"<br><br>
|
||||
<table class="request">
|
||||
<tr>
|
||||
<td><font size='5px'; color=[screen_color]><b>[pai.name]</b></font></td>
|
||||
<td><font size='5px'; color=[screen_color]>"} + span_bold("[pai.name]") + {"</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="request">Integrity: [pai.health]</td>
|
||||
@@ -297,7 +297,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
|
||||
"}
|
||||
else //</font></font>
|
||||
dat += span_bold("Radio Uplink") + "<br>"
|
||||
dat += "<font color=red><i>Radio firmware not loaded. Please install a pAI personality to load firmware.</i></font><br>"
|
||||
dat += span_red(span_italics("Radio firmware not loaded. Please install a pAI personality to load firmware.")) + "<br>"
|
||||
/* - //A button for instantly deleting people from the game is lame, especially considering that pAIs on our server tend to activate without a master.
|
||||
dat += {"
|
||||
<table>
|
||||
@@ -312,7 +312,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
|
||||
else
|
||||
if(looking_for_personality)
|
||||
dat += {"
|
||||
<b><font size='3px'>pAI Request Module</font></b><br><br>
|
||||
"} + span_bold("<font size='3px'>pAI Request Module</font>") + {"<br><br>
|
||||
<p>Requesting AI personalities from central database... If there are no entries, or if a suitable entry is not listed, check again later as more personalities may be added.</p>
|
||||
<img src='loading.gif' /> Searching for personalities<br><br>
|
||||
|
||||
@@ -326,7 +326,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
|
||||
"}
|
||||
else
|
||||
dat += {"
|
||||
<b><font size='3px'>pAI Request Module</font></b><br><br>
|
||||
"} + span_bold("<font size='3px'>pAI Request Module</font>") + {"<br><br>
|
||||
<p>No personality is installed.</p>
|
||||
<table>
|
||||
<tr>
|
||||
@@ -365,7 +365,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
|
||||
var/confirm = tgui_alert(usr, "Are you CERTAIN you wish to delete the current personality? This action cannot be undone.", "Personality Wipe", list("Yes", "No"))
|
||||
if(confirm == "Yes")
|
||||
for(var/mob/M in src)
|
||||
to_chat(M, "<font color = #ff0000><h2>You feel yourself slipping away from reality.</h2></font>")
|
||||
to_chat(M, span_red("<h2>You feel yourself slipping away from reality.</h2>"))
|
||||
to_chat(M, "<font color = #ff4d4d><h3>Byte by byte you lose your sense of self.</h3></font>")
|
||||
to_chat(M, "<font color = #ff8787><h4>Your mental faculties leave you.</h4></font>")
|
||||
to_chat(M, "<font color = #ffc4c4><h5>oblivion... </h5></font>")
|
||||
|
||||
@@ -386,7 +386,7 @@
|
||||
name = JOB_CLOWN + " action figure"
|
||||
desc = "A \"Space Life\" brand " + JOB_CLOWN + " action figure."
|
||||
icon_state = "clown"
|
||||
toysay = "<font face='comic sans ms'><b>Honk!</b></font>"
|
||||
toysay = "<font face='comic sans ms'>" + span_bold("Honk!") + "</font>"
|
||||
|
||||
/obj/item/toy/figure/corgi
|
||||
name = "Corgi action figure"
|
||||
|
||||
@@ -111,13 +111,13 @@
|
||||
if(0)
|
||||
damage_desc = "Unknown"
|
||||
if(1 to 5)
|
||||
damage_desc = "<font color='green'>negligible</font>"
|
||||
damage_desc = span_green("negligible")
|
||||
if(5 to 15)
|
||||
damage_desc = "<font color='green'>light</font>"
|
||||
damage_desc = span_green("light")
|
||||
if(15 to 30)
|
||||
damage_desc = "<font color='orange'>moderate</font>"
|
||||
damage_desc = span_orange("moderate")
|
||||
if(30 to 1000)
|
||||
damage_desc = "<font color='red'>severe</font>"
|
||||
damage_desc = span_red("severe")
|
||||
|
||||
if(!total_score) total_score = D.organs_scanned.len
|
||||
|
||||
|
||||
@@ -63,13 +63,12 @@
|
||||
var/dat = "<TT><b>Select an item:</b><br>"
|
||||
|
||||
if (contents.len == 0)
|
||||
dat += "<font color = 'red'>No seeds loaded!</font>"
|
||||
dat += span_red("No seeds loaded!")
|
||||
else
|
||||
for (var/O in item_quants)
|
||||
if(item_quants[O] > 0)
|
||||
var/N = item_quants[O]
|
||||
dat += "<FONT color = 'blue'><B>[capitalize(O)]</B>:"
|
||||
dat += " [N] </font>"
|
||||
dat += span_blue(span_bold("[capitalize(O)]") + ": [N] ")
|
||||
dat += "<a href='byond://?src=\ref[src];vend=[O]'>Vend</A>"
|
||||
dat += "<br>"
|
||||
|
||||
|
||||
@@ -136,18 +136,18 @@ GLOBAL_LIST_BOILERPLATE(all_tracking_implants, /obj/item/implant/tracking)
|
||||
return 1
|
||||
|
||||
/obj/item/implant/tracking/get_data()
|
||||
var/dat = {"<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> Tracking Beacon<BR>
|
||||
<b>Life:</b> 10 minutes after death of host<BR>
|
||||
<b>Important Notes:</b> None<BR>
|
||||
var/dat = {""} +span_bold("Implant Specifications:") + {"<BR>
|
||||
"} + span_bold("Name:") + {"Tracking Beacon<BR>
|
||||
"} + span_bold("Life:") + {"10 minutes after death of host<BR>
|
||||
"} + span_bold("Important Notes:") + {"None<BR>
|
||||
<HR>
|
||||
<b>Implant Details:</b> <BR>
|
||||
<b>Function:</b> Continuously transmits low power signal. Useful for tracking.<BR>
|
||||
<b>Special Features:</b><BR>
|
||||
<i>Neuro-Safe</i>- Specialized shell absorbs excess voltages self-destructing the chip if
|
||||
"} + span_bold("Implant Details:") + {"<BR>
|
||||
"} + span_bold("Function:") + {"Continuously transmits low power signal. Useful for tracking.<BR>
|
||||
"} + span_bold("Special Features:") + {"<BR>
|
||||
"} + span_italics("Neuro-Safe") + {"- Specialized shell absorbs excess voltages self-destructing the chip if
|
||||
a malfunction occurs thereby securing safety of subject. The implant will melt and
|
||||
disintegrate into bio-safe elements.<BR>
|
||||
<b>Integrity:</b> Gradient creates slight risk of being overcharged and frying the
|
||||
"} + span_bold("Integrity:") + {"Gradient creates slight risk of being overcharged and frying the
|
||||
circuitry. As a result neurotoxins can cause massive damage.<HR>
|
||||
Implant Specifics:<BR>"}
|
||||
return dat
|
||||
@@ -182,15 +182,15 @@ Implant Specifics:<BR>"}
|
||||
|
||||
/obj/item/implant/dexplosive/get_data()
|
||||
var/dat = {"
|
||||
<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> Robust Corp RX-78 Employee Management Implant<BR>
|
||||
<b>Life:</b> Activates upon death.<BR>
|
||||
<b>Important Notes:</b> Explodes<BR>
|
||||
"} + span_bold("Implant Specifications:") + {"<BR>
|
||||
"} + span_bold("Name:") + {"Robust Corp RX-78 Employee Management Implant<BR>
|
||||
"} + span_bold("Life:") + {"Activates upon death.<BR>
|
||||
"} + span_bold("Important Notes:") + {"Explodes<BR>
|
||||
<HR>
|
||||
<b>Implant Details:</b><BR>
|
||||
<b>Function:</b> Contains a compact, electrically detonated explosive that detonates upon receiving a specially encoded signal or upon host death.<BR>
|
||||
<b>Special Features:</b> Explodes<BR>
|
||||
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
|
||||
"} + span_bold("Implant Details:") + {"<BR>
|
||||
"} + span_bold("Function:") + {"Contains a compact, electrically detonated explosive that detonates upon receiving a specially encoded signal or upon host death.<BR>
|
||||
"} + span_bold("Special Features:") + {"Explodes<BR>
|
||||
"} + span_bold("Integrity:") + {"Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
|
||||
return dat
|
||||
|
||||
|
||||
@@ -221,15 +221,15 @@ Implant Specifics:<BR>"}
|
||||
|
||||
/obj/item/implant/explosive/get_data()
|
||||
var/dat = {"
|
||||
<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> Robust Corp RX-78 Intimidation Class Implant<BR>
|
||||
<b>Life:</b> Activates upon codephrase.<BR>
|
||||
<b>Important Notes:</b> Explodes<BR>
|
||||
"} + span_bold("Implant Specifications:") + {"<BR>
|
||||
"} + span_bold("Name:") + {"Robust Corp RX-78 Intimidation Class Implant<BR>
|
||||
"} + span_bold("Life:") + {"Activates upon codephrase.<BR>
|
||||
"} + span_bold("Important Notes:") + {"Explodes<BR>
|
||||
<HR>
|
||||
<b>Implant Details:</b><BR>
|
||||
<b>Function:</b> Contains a compact, electrically detonated explosive that detonates upon receiving a specially encoded signal or upon host death.<BR>
|
||||
<b>Special Features:</b> Explodes<BR>
|
||||
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
|
||||
"} + span_bold("Implant Details:") + {"<BR>
|
||||
"} + span_bold("Function:") + {"Contains a compact, electrically detonated explosive that detonates upon receiving a specially encoded signal or upon host death.<BR>
|
||||
"} + span_bold("Special Features:") + {"Explodes<BR>
|
||||
"} + span_bold("Integrity:") + {"Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
|
||||
return dat
|
||||
|
||||
/obj/item/implant/explosive/hear_talk(mob/M, list/message_pieces, verb)
|
||||
@@ -357,19 +357,19 @@ GLOBAL_LIST_BOILERPLATE(all_chem_implants, /obj/item/implant/chem)
|
||||
|
||||
/obj/item/implant/chem/get_data()
|
||||
var/dat = {"
|
||||
<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> Robust Corp MJ-420 Prisoner Management Implant<BR>
|
||||
<b>Life:</b> Deactivates upon death but remains within the body.<BR>
|
||||
<b>Important Notes: Due to the system functioning off of nutrients in the implanted subject's body, the subject<BR>
|
||||
will suffer from an increased appetite.</B><BR>
|
||||
"} + span_bold("Implant Specifications:") + {"<BR>
|
||||
"} + span_bold("Name:") + {"Robust Corp MJ-420 Prisoner Management Implant<BR>
|
||||
"} + span_bold("Life:") + {"Deactivates upon death but remains within the body.<BR>
|
||||
"} + span_bold("Important Notes: Due to the system functioning off of nutrients in the implanted subject's body, the subject") + {"<BR>
|
||||
"} + span_bold("will suffer from an increased appetite.") + {"<BR>
|
||||
<HR>
|
||||
<b>Implant Details:</b><BR>
|
||||
<b>Function:</b> Contains a small capsule that can contain various chemicals. Upon receiving a specially encoded signal<BR>
|
||||
"} + span_bold("Implant Details:") + {"<BR>
|
||||
"} + span_bold("Function:") + {"Contains a small capsule that can contain various chemicals. Upon receiving a specially encoded signal<BR>
|
||||
the implant releases the chemicals directly into the blood stream.<BR>
|
||||
<b>Special Features:</b>
|
||||
<i>Micro-Capsule</i>- Can be loaded with any sort of chemical agent via the common syringe and can hold 50 units.<BR>
|
||||
Special Features:
|
||||
"} + span_italics("Micro-Capsule") + {"- Can be loaded with any sort of chemical agent via the common syringe and can hold 50 units.<BR>
|
||||
Can only be loaded while still in its original case.<BR>
|
||||
<b>Integrity:</b> Implant will last so long as the subject is alive. However, if the subject suffers from malnutrition,<BR>
|
||||
"} + span_bold("Integrity:") + {"Implant will last so long as the subject is alive. However, if the subject suffers from malnutrition,<BR>
|
||||
the implant may become unstable and either pre-maturely inject the subject or simply break."}
|
||||
return dat
|
||||
|
||||
@@ -428,15 +428,15 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
|
||||
/obj/item/implant/loyalty/get_data()
|
||||
var/dat = {"
|
||||
<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> [using_map.company_name] Employee Management Implant<BR>
|
||||
<b>Life:</b> Ten years.<BR>
|
||||
<b>Important Notes:</b> Personnel injected with this device tend to be much more loyal to the company.<BR>
|
||||
"} + span_bold("Implant Specifications:") + {"<BR>
|
||||
"} + span_bold("Name:") + {"[using_map.company_name] Employee Management Implant<BR>
|
||||
"} + span_bold("Life:") + {"Ten years.<BR>
|
||||
"} + span_bold("Important Notes:") + {"Personnel injected with this device tend to be much more loyal to the company.<BR>
|
||||
<HR>
|
||||
<b>Implant Details:</b><BR>
|
||||
<b>Function:</b> Contains a small pod of nanobots that manipulate the host's mental functions.<BR>
|
||||
<b>Special Features:</b> Will prevent and cure most forms of brainwashing.<BR>
|
||||
<b>Integrity:</b> Implant will last so long as the nanobots are inside the bloodstream."}
|
||||
"} + span_bold("Implant Details:") + {"<BR>
|
||||
"} + span_bold("Function:") + {"Contains a small pod of nanobots that manipulate the host's mental functions.<BR>
|
||||
"} + span_bold("Special Features:") + {"Will prevent and cure most forms of brainwashing.<BR>
|
||||
"} + span_bold("Integrity:") + {"Implant will last so long as the nanobots are inside the bloodstream."}
|
||||
return dat
|
||||
|
||||
/obj/item/implant/loyalty/handle_implant(mob/M, target_zone = BP_TORSO)
|
||||
@@ -464,15 +464,15 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
|
||||
/obj/item/implant/adrenalin/get_data()
|
||||
var/dat = {"
|
||||
<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> Cybersun Industries Adrenalin Implant<BR>
|
||||
<b>Life:</b> Five days.<BR>
|
||||
<b>Important Notes:</b> <font color='red'>Illegal</font><BR>
|
||||
"} + span_bold("Implant Specifications:") + {"<BR>
|
||||
"} + span_bold("Name:") + {"Cybersun Industries Adrenalin Implant<BR>
|
||||
"} + span_bold("Life:") + {"Five days.<BR>
|
||||
"} + span_bold("Important Notes: ") + span_red("llegal") + {"<BR>
|
||||
<HR>
|
||||
<b>Implant Details:</b> Subjects injected with implant can activate a massive injection of adrenalin.<BR>
|
||||
<b>Function:</b> Contains nanobots to stimulate body to mass-produce Adrenalin.<BR>
|
||||
<b>Special Features:</b> Will prevent and cure most forms of brainwashing.<BR>
|
||||
<b>Integrity:</b> Implant can only be used three times before the nanobots are depleted."}
|
||||
"} + span_bold("Implant Details:") + {"Subjects injected with implant can activate a massive injection of adrenalin.<BR>
|
||||
"} + span_bold("Function:") + {"Contains nanobots to stimulate body to mass-produce adrenalin.<BR>
|
||||
"} + span_bold("Special Features:") + {"Will prevent and cure most forms of brainwashing.<BR>
|
||||
"} + span_bold("Integrity:") + {"Implant can only be used three times before the nanobots are depleted."}
|
||||
return dat
|
||||
|
||||
|
||||
@@ -503,15 +503,15 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
|
||||
/obj/item/implant/death_alarm/get_data()
|
||||
var/dat = {"
|
||||
<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> [using_map.company_name] \"Profit Margin\" Class Employee Lifesign Sensor<BR>
|
||||
<b>Life:</b> Activates upon death.<BR>
|
||||
<b>Important Notes:</b> Alerts crew to crewmember death.<BR>
|
||||
"} + span_bold("Implant Specifications:") + {"<BR>
|
||||
"} + span_bold("Name:") + {"[using_map.company_name] \"Profit Margin\" Class Employee Lifesign Sensor<BR>
|
||||
"} + span_bold("Life:") + {"Activates upon death.<BR>
|
||||
"} + span_bold("Important Notes:") + {"Alerts crew to crewmember death.<BR>
|
||||
<HR>
|
||||
<b>Implant Details:</b><BR>
|
||||
<b>Function:</b> Contains a compact radio signaler that triggers when the host's lifesigns cease.<BR>
|
||||
<b>Special Features:</b> Alerts crew to crewmember death.<BR>
|
||||
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
|
||||
"} + span_bold("Implant Details:") + {"<BR>
|
||||
"} + span_bold("Function:") + {"Contains a compact radio signaler that triggers when the host's lifesigns cease.<BR>
|
||||
"} + span_bold("Special Features:") + {"Alerts crew to crewmember death.<BR>
|
||||
"} + span_bold("Integrity:") + {"Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
|
||||
return dat
|
||||
|
||||
/obj/item/implant/death_alarm/process()
|
||||
@@ -588,15 +588,15 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
|
||||
/obj/item/implant/compressed/get_data()
|
||||
var/dat = {"
|
||||
<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> [using_map.company_name] \"Profit Margin\" Class Employee Lifesign Sensor<BR>
|
||||
<b>Life:</b> Activates upon death.<BR>
|
||||
<b>Important Notes:</b> Alerts crew to crewmember death.<BR>
|
||||
"} + span_bold("Implant Specifications:") + {"<BR>
|
||||
"} + span_bold("Name:") + {"[using_map.company_name] \"Profit Margin\" Class Employee Lifesign Sensor<BR>
|
||||
"} + span_bold("Life:") + {"Activates upon death.<BR>
|
||||
"} + span_bold("Important Notes:") + {"Alerts crew to crewmember death.<BR>
|
||||
<HR>
|
||||
<b>Implant Details:</b><BR>
|
||||
<b>Function:</b> Contains a compact radio signaler that triggers when the host's lifesigns cease.<BR>
|
||||
<b>Special Features:</b> Alerts crew to crewmember death.<BR>
|
||||
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
|
||||
"} + span_bold("Implant Details:") + {"<BR>
|
||||
"} + span_bold("Function:") + {"Contains a compact radio signaler that triggers when the host's lifesigns cease.<BR>
|
||||
"} + span_bold("Special Features:") + {"Alerts crew to crewmember death.<BR>
|
||||
"} + span_bold("Integrity:") + {"Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
|
||||
return dat
|
||||
|
||||
/obj/item/implant/compressed/trigger(emote, mob/source as mob)
|
||||
|
||||
@@ -29,15 +29,15 @@
|
||||
var/health_text = ""
|
||||
if(src.occupant)
|
||||
if(src.occupant.health <= -100)
|
||||
health_text = "<FONT color=red>Dead</FONT>"
|
||||
health_text = span_red("Dead")
|
||||
else if(src.occupant.health < 0)
|
||||
health_text = "<FONT color=red>[round(src.occupant.health,0.1)]</FONT>"
|
||||
health_text = span_red("[round(src.occupant.health,0.1)]")
|
||||
else
|
||||
health_text = "[round(src.occupant.health,0.1)]"
|
||||
|
||||
var/dat = span_bold("Implanter Status") + "<BR>"
|
||||
|
||||
dat += span_bold("Current occupant:") + " [src.occupant ? "<BR>Name: [src.occupant]<BR>Health: [health_text]<BR>" : "<FONT color=red>None</FONT>"]<BR>"
|
||||
dat += span_bold("Current occupant:") + " [src.occupant ? "<BR>Name: [src.occupant]<BR>Health: [health_text]<BR>" : span_red("None")]<BR>"
|
||||
dat += span_bold("Implants:") + " [src.implant_list.len ? "[implant_list.len]" : "<A href='byond://?src=\ref[src];replenish=1'>Replenish</A>"]<BR>"
|
||||
if(src.occupant)
|
||||
dat += "[src.ready ? "<A href='byond://?src=\ref[src];implant=1'>Implant</A>" : "Recharging"]<BR>"
|
||||
|
||||
@@ -49,22 +49,22 @@
|
||||
return
|
||||
|
||||
/obj/item/implant/freedom/post_implant(mob/source)
|
||||
source.mind.store_memory("Freedom implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate.", 0, 0)
|
||||
to_chat(source, "The implanted freedom implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate.")
|
||||
source.mind.store_memory("Freedom implant can be activated by using the [src.activation_emote] emote, " + span_bold("say *[src.activation_emote] ") + "to attempt to activate.", 0, 0)
|
||||
to_chat(source, "The implanted freedom implant can be activated by using the [src.activation_emote] emote, " + span_bold("say *[src.activation_emote]") + "to attempt to activate.")
|
||||
|
||||
/obj/item/implant/freedom/get_data()
|
||||
var/dat = {"
|
||||
<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> Freedom Beacon<BR>
|
||||
<b>Life:</b> optimum 5 uses<BR>
|
||||
<b>Important Notes:</b> <font color='red'>Illegal</font><BR>
|
||||
"} + span_bold("Implant Specifications:") + {"<BR>
|
||||
"} + span_bold("Name:") + {"Freedom Beacon<BR>
|
||||
"} + span_bold("Life:") + {"optimum 5 uses<BR>
|
||||
"} + span_bold("Important Notes:") + span_red("Illegal") + {"<BR>
|
||||
<HR>
|
||||
<b>Implant Details:</b> <BR>
|
||||
<b>Function:</b> Transmits a specialized cluster of signals to override handcuff locking
|
||||
"} + span_bold("Implant Details:") + {"<BR>
|
||||
"} + span_bold("Function:") + {"Transmits a specialized cluster of signals to override handcuff locking
|
||||
mechanisms<BR>
|
||||
<b>Special Features:</b><BR>
|
||||
<i>Neuro-Scan</i>- Analyzes certain shadow signals in the nervous system<BR>
|
||||
<b>Integrity:</b> The battery is extremely weak and commonly after injection its
|
||||
"} + span_bold("Special Features:") + {"<BR>
|
||||
"} + span_italics("Neuro-Scan") + {"- Analyzes certain shadow signals in the nervous system<BR>
|
||||
"} + span_bold("Integrity:") + {"The battery is extremely weak and commonly after injection its
|
||||
life can drive down to only 1 use.<HR>
|
||||
No Implant Specifics"}
|
||||
return dat
|
||||
|
||||
@@ -33,9 +33,9 @@
|
||||
<h2>Setting up the accelerator</h2>
|
||||
|
||||
<ol>
|
||||
<li><b>Wrench</b> all pieces to the floor</li>
|
||||
<li>Add <b>wires</b> to all the pieces</li>
|
||||
<li>Close all the panels with your <b>screwdriver</b></li>
|
||||
<li>"} + span_bold("Wrench") + {" all pieces to the floor</li>
|
||||
<li>Add "} + span_bold("wires") + {" to all the pieces</li>
|
||||
<li>Close all the panels with your "} + span_bold("screwdriver") + {"</li>
|
||||
</ol>
|
||||
|
||||
<h2>Using the accelerator</h2>
|
||||
@@ -44,7 +44,7 @@
|
||||
<li>Open the control panel</li>
|
||||
<li>Set the speed to 2</li>
|
||||
<li>Start firing at the singularity generator</li>
|
||||
<li><font color='red'><b>When the singularity reaches a large enough size so it starts moving on it's own set the speed down to 0, but don't shut it off</b></font></li>
|
||||
<li>"} + span_red(span_bold("When the singularity reaches a large enough size so it starts moving on it's own set the speed down to 0, but don't shut it off")) + {"</li>
|
||||
<li>Remember to wear a radiation suit when working with this machine... we did tell you that at the start, right?</li>
|
||||
</ol>
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
<li>Ensure the engine room has power. The blast doors and ejection platform are unresponsive without power.</li>
|
||||
<li>Press Engine Ventilatory Control button to open engine core blast door to space.</li>
|
||||
<li>Press Emergency Core Eject button to eject supermatter crystal. NOTE: Attempting crystal ejection while engine core vent is closed will result in ejection failure.</li>
|
||||
<li>In event of ejection failure, <i>pending</i></li>
|
||||
<li>In event of ejection failure, "} + span_italics("pending") + {"</li>
|
||||
</ol>
|
||||
</body>
|
||||
</html>"}
|
||||
@@ -181,7 +181,7 @@
|
||||
<li>Bolt down Telsa Coils and Grounding Rods</li>
|
||||
<li>Activate the Emitters</li>
|
||||
<li>Activate each of the Field Generators, then wait until the containment field has completely formed.</li>
|
||||
<li>Setup the Particle Accelerator (see our best seller <i>"Particle Accelerator User's Guide"</i>!) and activate it.</li>
|
||||
<li>Setup the Particle Accelerator (see our best seller "} + span_italics(""Particle Accelerator User's Guide"") + {"!) and activate it.</li>
|
||||
<li>After a short time the Telsa Generator will create an energy ball, being consumed in the process.</li>
|
||||
</ol>
|
||||
<br>
|
||||
@@ -190,7 +190,7 @@
|
||||
<li>Ensure that electrical protection and meson goggles are worn at all times while working in the engine room.</li>
|
||||
<li>Ensure that Telsa Coils and/or Grounding Rods are placed to safely collect or ground any and all shock.</li>
|
||||
<li>Ensure that all Emitters remain activated and have unobstructed lines of fire to the Field Generators.</li>
|
||||
<li>Do <b>not</b> let the Emitters run out of power.</li>
|
||||
<li>Do "} + span_bold("not") + {" let the Emitters run out of power.</li>
|
||||
</ol>
|
||||
<br>
|
||||
<h2>SHUTDOWN PROCEDURE</h2>
|
||||
@@ -203,7 +203,7 @@
|
||||
<ol>
|
||||
<li>Do not let it escape.</li>
|
||||
<li>Have someone ready to blame when it does escape.</li>
|
||||
<li>Buy our forthcoming manual "<i>Celebrity Grounding Rod Shelters of the Galaxy</i>"</li>
|
||||
<li>Buy our forthcoming manual ""} + span_italics("Celebrity Grounding Rod Shelters of the Galaxy") + {""</li>
|
||||
</ol>
|
||||
</body>
|
||||
</html>"}
|
||||
@@ -242,7 +242,7 @@
|
||||
<li>Configure the SMES, turn the PACMAN off before it explodes.</li>
|
||||
</ol>
|
||||
<br>
|
||||
<b>NOTES FOR NEWBIES</b>
|
||||
"} + span_bold("NOTES FOR NEWBIES") + {"
|
||||
<br>
|
||||
Anything touching the field will mess with its stability and eventually cause it to rupture. Rupturing is bad. Use the gyrotron to keep instability down if you're running the engine on unstable fuel.
|
||||
<br><br>
|
||||
@@ -276,27 +276,27 @@
|
||||
A power problem has made the entire station lose power? Could be station-wide wiring problems or illegal power sinks. In any case follow these steps:
|
||||
|
||||
<ol>
|
||||
<li><b><font color='red'>PANIC!</font></b></li>
|
||||
<li>Get your ass over to engineering! <b>QUICKLY!!!</b></li>
|
||||
<li>Get to the <b>Area Power Controller</b> which controls the power to the emitters.</li>
|
||||
<li>Swipe it with your <b>ID card</b> - if it doesn't unlock, continue with step 15.</li>
|
||||
<li>"} + span_bold(span_red("PANIC!")) + {"</li>
|
||||
<li>Get your ass over to engineering! "} + span_bold("QUICKLY!!!") + {"</li>
|
||||
<li>Get to the "} + span_bold("Area Power Controller") + {" which controls the power to the emitters.</li>
|
||||
<li>Swipe it with your "} + span_bold("ID card") + {" - if it doesn't unlock, continue with step 15.</li>
|
||||
<li>Open the console and disengage the cover lock.</li>
|
||||
<li>Pry open the APC with a <b>Crowbar.</b></li>
|
||||
<li>Take out the empty <b>power cell.</b></li>
|
||||
<li>Put in the new, <b>full power cell</b> - if you don't have one, continue with step 15.</li>
|
||||
<li>Quickly put on a <b>Radiation suit.</b></li>
|
||||
<li>Check if the <b>singularity field generators</b> withstood the down-time - if they didn't, continue with step 15.</li>
|
||||
<li>Pry open the APC with a "} + span_bold("Crowbar.") + {"</li>
|
||||
<li>Take out the empty "} + span_bold("power cell.") + {"</li>
|
||||
<li>Put in the new, "} + span_bold("full power cell") + {" - if you don't have one, continue with step 15.</li>
|
||||
<li>Quickly put on a "} + span_bold("Radiation suit.") + {"</li>
|
||||
<li>Check if the "} + span_bold("singularity field generators") + {" withstood the down-time - if they didn't, continue with step 15.</li>
|
||||
<li>Since disaster was averted you now have to ensure it doesn't repeat. If it was a powersink which caused it and if the engineering APC is wired to the same powernet, which the powersink is on, you have to remove the piece of wire which links the APC to the powernet. If it wasn't a powersink which caused it, then skip to step 14.</li>
|
||||
<li>Grab your crowbar and pry away the tile closest to the APC.</li>
|
||||
<li>Use the wirecutters to cut the wire which is connecting the grid to the terminal. </li>
|
||||
<li>Go to the bar and tell the guys how you saved them all. Stop reading this guide here.</li>
|
||||
<li><b>GET THE FUCK OUT OF THERE!!!</b></li>
|
||||
<li>"} + span_bold("GET THE FUCK OUT OF THERE!!!") + {"</li>
|
||||
</ol>
|
||||
|
||||
<h2>Shields get damaged</h2>
|
||||
|
||||
<ol>
|
||||
<li><b>GET THE FUCK OUT OF THERE!!! FORGET THE WOMEN AND CHILDREN, SAVE YOURSELF!!!</b></li>
|
||||
<li>"} + span_bold("GET THE FUCK OUT OF THERE!!! FORGET THE WOMEN AND CHILDREN, SAVE YOURSELF!!!") + {"</li>
|
||||
</ol>
|
||||
</body>
|
||||
</html>
|
||||
@@ -458,27 +458,27 @@
|
||||
<body>
|
||||
<center>
|
||||
<br>
|
||||
<span style='font-size: 12px;'><b>Weyland-Yutani - Building Better Worlds</b></span>
|
||||
<span style='font-size: 12px;'>"} + span_bold("Weyland-Yutani - Building Better Worlds") + {"</span>
|
||||
<h1>Autonomous Power Loader Unit \"Ripley\"</h1>
|
||||
</center>
|
||||
<h2>Specifications:</h2>
|
||||
<ul class="a">
|
||||
<li><b>Class:</b> Autonomous Power Loader</li>
|
||||
<li><b>Scope:</b> Logistics and Construction</li>
|
||||
<li><b>Weight:</b> 820kg (without operator and with empty cargo compartment)</li>
|
||||
<li><b>Height:</b> 2.5m</li>
|
||||
<li><b>Width:</b> 1.8m</li>
|
||||
<li><b>Top speed:</b> 5km/hour</li>
|
||||
<li><b>Operation in vacuum/hostile environment: Possible</b>
|
||||
<li><b>Airtank volume:</b> 500 liters</li>
|
||||
<li><b>Devices:</b>
|
||||
<li>"} + span_bold("Class:") + {" Autonomous Power Loader</li>
|
||||
<li>"} + span_bold("Scope:") + {" Logistics and Construction</li>
|
||||
<li>"} + span_bold("Weight:") + {" 820kg (without operator and with empty cargo compartment)</li>
|
||||
<li>"} + span_bold("Height:") + {" 2.5m</li>
|
||||
<li>"} + span_bold("Width:") + {" 1.8m</li>
|
||||
<li>"} + span_bold("Top speed:") + {" 5km/hour</li>
|
||||
<li>"} + span_bold("Operation in vacuum/hostile environment: Possible") + {"
|
||||
<li>"} + span_bold("Airtank volume:") + {" 500 liters</li>
|
||||
<li>"} + span_bold("Devices:") + {"
|
||||
<ul class="a">
|
||||
<li>Hydraulic clamp</li>
|
||||
<li>High-speed drill</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><b>Propulsion device:</b> Powercell-powered electro-hydraulic system</li>
|
||||
<li><b>Powercell capacity:</b> Varies</li>
|
||||
<li>"} + span_bold("Propulsion device:") + {" Powercell-powered electro-hydraulic system</li>
|
||||
<li>"} + span_bold("Powercell capacity:") + {" Varies</li>
|
||||
</ul>
|
||||
|
||||
<h2>Construction:</h2>
|
||||
@@ -538,9 +538,9 @@
|
||||
<h1>Science For Dummies</h1>
|
||||
So you want to further SCIENCE? Good man/woman/thing! However, SCIENCE is a complicated process even though it's quite easy. For the most part, it's a three step process:
|
||||
<ol>
|
||||
<li><b>Deconstruct</b> items in the Destructive Analyzer to advance technology or improve the design.</li>
|
||||
<li><b>Build</b> unlocked designs in the Protolathe and Circuit Imprinter.</li>
|
||||
<li><b>Repeat</b>!</li>
|
||||
<li>"} + span_bold("Deconstruct") + {" items in the Destructive Analyzer to advance technology or improve the design.</li>
|
||||
<li>"} + span_bold("Build") + {" unlocked designs in the Protolathe and Circuit Imprinter.</li>
|
||||
<li>"} + span_bold("Repeat") + {"!</li>
|
||||
</ol>
|
||||
|
||||
Those are the basic steps to furthering science. What do you do science with, however? Well, you have four major tools: R&D Console, the Destructive Analyzer, the Protolathe, and the Circuit Imprinter.
|
||||
@@ -553,7 +553,7 @@
|
||||
It also has a settings menu that lets you re-sync with nearby R&D devices (if they've become disconnected), lock the console from the unworthy,
|
||||
upload the data to all other R&D consoles in the network (all R&D consoles are networked by default), connect/disconnect from the network, and purge all data from the database.<br><br>
|
||||
|
||||
<b>NOTE:</b> The technology list screen, circuit imprinter, and protolathe menus are accessible by non-scientists. This is intended to allow 'public' systems for the plebians to utilize some new devices.
|
||||
"} + span_bold("NOTE:") + {" The technology list screen, circuit imprinter, and protolathe menus are accessible by non-scientists. This is intended to allow 'public' systems for the plebians to utilize some new devices.
|
||||
|
||||
<h2>Destructive Analyzer</h2>
|
||||
This is the source of all technology. Whenever you put a handheld object in it, it analyzes it and determines what sort of technological advancements you can discover from it. If the technology of the object is equal or higher then your current knowledge,
|
||||
@@ -979,21 +979,21 @@
|
||||
<li>Extend and anchor the nuclear device from its interface.</li>
|
||||
<li>Insert the nuclear authorisation disk into the slot.</li>
|
||||
<li>Type the numeric authorisation code into the keypad. This should have been provided.<br>
|
||||
<b>Note</b>: If you make a mistake, press R to reset the device.
|
||||
"} + span_bold("Note") + {": If you make a mistake, press R to reset the device.
|
||||
<li>Press the E button to log on to the device.</li>
|
||||
</ul><br>
|
||||
|
||||
You now have activated the device. To deactivate the buttons at anytime, for example when you've already prepped the bomb for detonation, remove the authentication disk OR press R on the keypad.<br><br>
|
||||
Now the bomb CAN ONLY be detonated using the timer. Manual detonation is not an option. Toggle off the SAFETY.<br>
|
||||
<b>Note</b>: You wouldn't believe how many SAARE Operatives with doctorates have forgotten this step.<br><br>
|
||||
"} + span_bold("Note") + {": You wouldn't believe how many SAARE Operatives with doctorates have forgotten this step.<br><br>
|
||||
|
||||
So use the - - and + + to set a detonation time between 5 seconds and 10 minutes. Then press the timer toggle button to start the countdown. Now remove the authentication disk so that the buttons deactivate.<br>
|
||||
<b>Note</b>: THE BOMB IS STILL SET AND WILL DETONATE<br><br>
|
||||
"} + span_bold("Note") + {": THE BOMB IS STILL SET AND WILL DETONATE<br><br>
|
||||
|
||||
Now before you remove the disk, if you need to move the bomb, you can toggle off the anchor, move it, and re-anchor.<br><br>
|
||||
|
||||
Remember the order:<br>
|
||||
<b>Disk, Code, Safety, Timer, Disk, RUN!</b><br><br>
|
||||
"} + span_bold("Disk, Code, Safety, Timer, Disk, RUN!") + {"<br><br>
|
||||
Intelligence Analysts believe that normal corporate procedure is for the Site Manager to secure the nuclear authentication disk.<br><br>
|
||||
|
||||
Good luck!
|
||||
@@ -1030,8 +1030,8 @@
|
||||
<li><a href="#Final">Final Checks</a></li>
|
||||
</ol><br>
|
||||
|
||||
<h1><a name="Foreword"><U><B>HOW TO NOT SUCK QUITE SO HARD AT ATMOSPHERICS</B></U></a></h1><BR>
|
||||
<I>Or: What the fuck does a "pressure regulator" do?</I><BR><BR>
|
||||
<h1><a name="Foreword">"} + span_underline(span_bold("HOW TO NOT SUCK QUITE SO HARD AT ATMOSPHERICS")) + {"</a></h1><BR>
|
||||
"} + span_italics("Or: What the fuck does a \"pressure regulator\" do?") + {"<BR><BR>
|
||||
|
||||
Alright. It has come to my attention that a variety of people are unsure of what a "pipe" is and what it does.
|
||||
Apparently, there is an unnatural fear of these arcane devices and their "gases." Spooky, spooky. So,
|
||||
@@ -1040,67 +1040,67 @@
|
||||
or something like that. Just what stuff does.<BR><BR>
|
||||
|
||||
|
||||
<h1><a name="Basic"><B>Basic Pipes</B></a></h1>
|
||||
<I>The boring ones.</I><BR>
|
||||
<h1><a name="Basic">"} + span_bold("Basic Pipes") + {"</a></h1>
|
||||
"} + span_italics("The boring ones.") + {"<BR>
|
||||
Most ordinary pipes are pretty straightforward. They hold gas. If gas is moving in a direction for some reason, gas will flow in that direction.
|
||||
That's about it. Even so, here's all of your wonderful pipe options.<BR>
|
||||
|
||||
<ul>
|
||||
<li><b>Straight pipes:</b> They're pipes. One-meter sections. Straight line. Pretty simple. Just about every pipe and device is based around this
|
||||
<li>"} + span_bold("Straight pipes:") + {" They're pipes. One-meter sections. Straight line. Pretty simple. Just about every pipe and device is based around this
|
||||
standard one-meter size, so most things will take up as much space as one of these.</li>
|
||||
<li><b>Bent pipes:</b> Pipes with a 90 degree bend at the half-meter mark. My goodness.</li>
|
||||
<li><b>Pipe manifolds:</b> Pipes that are essentially a "T" shape, allowing you to connect three things at one point.</li>
|
||||
<li><b>4-way manifold:</b> A four-way junction.</li>
|
||||
<li><b>Pipe cap:</b> Caps off the end of a pipe. Open ends don't actually vent air, because of the way the pipes are assembled, so, uh, use them to decorate your house or something.</li>
|
||||
<li><b>Manual valve:</b> A valve that will block off airflow when turned. Can't be used by the AI or cyborgs, because they don't have hands.</li>
|
||||
<li><b>Manual T-valve:</b> Like a manual valve, but at the center of a manifold instead of a straight pipe.</li><BR><BR>
|
||||
<li>"} + span_bold("Bent pipes:") + {" Pipes with a 90 degree bend at the half-meter mark. My goodness.</li>
|
||||
<li>"} + span_bold("Pipe manifolds:") + {" Pipes that are essentially a "T" shape, allowing you to connect three things at one point.</li>
|
||||
<li>"} + span_bold("4-way manifold:") + {" A four-way junction.</li>
|
||||
<li>"} + span_bold("Pipe cap:") + {" Caps off the end of a pipe. Open ends don't actually vent air, because of the way the pipes are assembled, so, uh, use them to decorate your house or something.</li>
|
||||
<li>"} + span_bold("Manual valve:") + {" A valve that will block off airflow when turned. Can't be used by the AI or cyborgs, because they don't have hands.</li>
|
||||
<li>"} + span_bold("Manual T-valve:") + {" Like a manual valve, but at the center of a manifold instead of a straight pipe.</li><BR><BR>
|
||||
</ul>
|
||||
|
||||
An important note here is that pipes are now done in three distinct lines - general, supply, and scrubber. You can move gases between these with a universal adapter. Use the correct position for the correct location.
|
||||
Connecting scrubbers to a supply position pipe makes you an idiot who gives everyone a difficult job. Insulated and HE pipes don't go through these positions.
|
||||
|
||||
<h1><a name="Insulated"><B>Insulated Pipes</B></a></h1>
|
||||
<li><I>Bent pipes:</I> Pipes with a 90 degree bend at the half-meter mark. My goodness.</li>
|
||||
<li><I>Pipe manifolds:</I> Pipes that are essentially a "T" shape, allowing you to connect three things at one point.</li>
|
||||
<li><I>4-way manifold:</I> A four-way junction.</li>
|
||||
<li><I>Pipe cap:</I> Caps off the end of a pipe. Open ends don't actually vent air, because of the way the pipes are assembled, so, uh. Use them to decorate your house or something.</li>
|
||||
<li><I>Manual Valve:</I> A valve that will block off airflow when turned. Can't be used by the AI or cyborgs, because they don't have hands.</li>
|
||||
<li><I>Manual T-Valve:</I> Like a manual valve, but at the center of a manifold instead of a straight pipe.</li><BR><BR>
|
||||
<h1><a name="Insulated">"} + span_bold("Insulated Pipes") + {"</a></h1>
|
||||
<li>"} + span_italics("Bent pipes:") + {" Pipes with a 90 degree bend at the half-meter mark. My goodness.</li>
|
||||
<li>"} + span_italics("Pipe manifolds:") + {" Pipes that are essentially a "T" shape, allowing you to connect three things at one point.</li>
|
||||
<li>"} + span_italics("4-way manifold:") + {" A four-way junction.</li>
|
||||
<li>"} + span_italics("Pipe cap:") + {" Caps off the end of a pipe. Open ends don't actually vent air, because of the way the pipes are assembled, so, uh. Use them to decorate your house or something.</li>
|
||||
<li>"} + span_italics("Manual Valve:") + {" A valve that will block off airflow when turned. Can't be used by the AI or cyborgs, because they don't have hands.</li>
|
||||
<li>"} + span_italics("Manual T-Valve:") + {" Like a manual valve, but at the center of a manifold instead of a straight pipe.</li><BR><BR>
|
||||
|
||||
<h1><a name="Insulated"><B>Insulated Pipes</B></a></h1><BR>
|
||||
<I>Special Public Service Announcement.</I><BR>
|
||||
<h1><a name="Insulated">"} + span_bold("Insulated Pipes") + {"</a></h1><BR>
|
||||
"} + span_italics("Special Public Service Announcement.") + {"<BR>
|
||||
Our regular pipes are already insulated. These are completely worthless. Punch anyone who uses them.<BR><BR>
|
||||
|
||||
<h1><a name="Devices"><B>Devices: </B></a></h1>
|
||||
<I>They actually do something.</I><BR>
|
||||
<h1><a name="Devices">"} + span_bold("Devices: ") + {"</a></h1>
|
||||
"} + span_italics("They actually do something.") + {"<BR>
|
||||
This is usually where people get frightened, afraid, and start calling on their gods and/or cowering in fear. Yes, I can see you doing that right now.
|
||||
Stop it. It's unbecoming. Most of these are fairly straightforward.<BR>
|
||||
|
||||
<ul>
|
||||
<li><b>Gas pump:</b> Take a wild guess. It moves gas in the direction it's pointing (marked by the red line on one end). It moves it based on pressure, the maximum output being 15000 kPa (kilopascals).
|
||||
<li>"} + span_bold("Gas pump:") + {" Take a wild guess. It moves gas in the direction it's pointing (marked by the red line on one end). It moves it based on pressure, the maximum output being 15000 kPa (kilopascals).
|
||||
Ordinary atmospheric pressure, for comparison, is 101.3 kPa, and the minimum pressure of room-temperature pure oxygen needed to not suffocate in a matter of minutes is 16 kPa
|
||||
(though 18 kPa is preferred when using internals with pure oxygen, for various reasons). A high-powered variant will move gas more quickly at the expense of consuming more power. Do not turn the distribution loop up to 15000 kPa.
|
||||
You will make engiborgs cry and the Chief Engineer will beat you.</li>
|
||||
<li><b>Pressure regulator:</b> These replaced the old passive gates. You can choose to regulate pressure by input or output, and regulate flow rate. Regulating by input means that when input pressure is above the limit, gas will flow.
|
||||
<li>"} + span_bold("Pressure regulator:") + {" These replaced the old passive gates. You can choose to regulate pressure by input or output, and regulate flow rate. Regulating by input means that when input pressure is above the limit, gas will flow.
|
||||
Regulating by output means that when pressure is below the limit, gas will flow. Flow rate can be controlled.</li>
|
||||
<li><b>Unary vent:</b> The basic vent used in rooms. It pumps gas into the room, but can't suck it back out. Controlled by the room's air alarm system.</li>
|
||||
<li><b>Scrubber:</b> The other half of room equipment. Filters air, and can suck it in entirely in what's called a "panic siphon." Activating a panic siphon without very good reason will kill someone. Don't do it.</li>
|
||||
<li><b>Meter:</b> A little box with some gauges and numbers. Fasten it to any pipe or manifold and it'll read you the pressure in it. Very useful.</li>
|
||||
<li><b>Gas mixer:</b> Two sides are input, one side is output. Mixes the gases pumped into it at the ratio defined. The side perpendicular to the other two is "node 2," for reference, on non-mirrored mixers..
|
||||
<li>"} + span_bold("Unary vent:") + {" The basic vent used in rooms. It pumps gas into the room, but can't suck it back out. Controlled by the room's air alarm system.</li>
|
||||
<li>"} + span_bold("Scrubber:") + {" The other half of room equipment. Filters air, and can suck it in entirely in what's called a "panic siphon." Activating a panic siphon without very good reason will kill someone. Don't do it.</li>
|
||||
<li>"} + span_bold("Meter:") + {" A little box with some gauges and numbers. Fasten it to any pipe or manifold and it'll read you the pressure in it. Very useful.</li>
|
||||
<li>"} + span_bold("Gas mixer:") + {" Two sides are input, one side is output. Mixes the gases pumped into it at the ratio defined. The side perpendicular to the other two is "node 2," for reference, on non-mirrored mixers..
|
||||
Output is controlled by flow rate. There is also an "omni" variant that allows you to set input and output sections freely..</li>
|
||||
<li><b>Gas filter:</b> Essentially the opposite of a gas mixer. One side is input. The other two sides are output. One gas type will be filtered into the perpendicular output pipe,
|
||||
<li>"} + span_bold("Gas filter:") + {" Essentially the opposite of a gas mixer. One side is input. The other two sides are output. One gas type will be filtered into the perpendicular output pipe,
|
||||
the rest will continue out the other side. Can also output from 0-4500 kPa. The "omni" vairant allows you to set input and output sections freely.</li>
|
||||
</ul>
|
||||
|
||||
<h1><a name="HES"><B>Heat Exchange Systems</B></a></h1>
|
||||
<I>Will not set you on fire.</I><BR>
|
||||
<h1><a name="HES">"} + span_bold("Heat Exchange Systems") + {"</a></h1>
|
||||
"} + span_italics("Will not set you on fire.") + {"<BR>
|
||||
These systems are used to only transfer heat between two pipes. They will not move gases or any other element, but will equalize the temperature (eventually). Note that because of how gases work (remember: pv=nRt),
|
||||
a higher temperature will raise pressure, and a lower one will lower temperature.<BR>
|
||||
|
||||
<li><I>Pipe:</I> This is a pipe that will exchange heat with the surrounding atmosphere. Place in fire for superheating. Place in space for supercooling.</li>
|
||||
<li><I>Bent pipe:</I> Take a wild guess.</li>
|
||||
<li><I>Junction:</I> The point where you connect your normal pipes to heat exchange pipes. Not necessary for heat exchangers, but necessary for H/E pipes/bent pipes.</li>
|
||||
<li><I>Heat exchanger:</I> These funky-looking bits attach to an open pipe end. Put another heat exchanger directly across from it, and you can transfer heat across two pipes without having to have the gases touch.
|
||||
<li>"} + span_italics("Pipe:") + {" This is a pipe that will exchange heat with the surrounding atmosphere. Place in fire for superheating. Place in space for supercooling.</li>
|
||||
<li>"} + span_italics("Bent pipe:") + {" Take a wild guess.</li>
|
||||
<li>"} + span_italics("Junction:") + {" The point where you connect your normal pipes to heat exchange pipes. Not necessary for heat exchangers, but necessary for H/E pipes/bent pipes.</li>
|
||||
<li>"} + span_italics("Heat exchanger:") + {" These funky-looking bits attach to an open pipe end. Put another heat exchanger directly across from it, and you can transfer heat across two pipes without having to have the gases touch.
|
||||
This normally shouldn't exchange with the ambient air, despite being totally exposed. Just don't ask questions.</li><BR>
|
||||
|
||||
That's about it for pipes. Go forth, armed with this knowledge, and try not to break, burn down, or kill anything. Please.
|
||||
@@ -1130,7 +1130,7 @@
|
||||
<body>
|
||||
|
||||
<h1><a name="Foreword">EVA Gear and You: Not Spending All Day Inside, 2nd Edition</a></h1>
|
||||
<I>Or: How not to suffocate because there's a hole in your shoes</I><BR>
|
||||
"} + span_italics("Or: How not to suffocate because there's a hole in your shoes") + {"<BR>
|
||||
|
||||
<h2><a name="Contents">Contents</a></h2>
|
||||
<ol>
|
||||
@@ -1152,7 +1152,7 @@
|
||||
Rather than oxygen, use a suit cooling unit. Many emergency equipment stores don't hold them, unfortunately, but dedicated EVA stores will. Be aware of your heat tolerances.<BR><BR>
|
||||
|
||||
<h2><a name="Softsuits">Softsuits and Emergency Equipment</a></h2>
|
||||
<I>The bulkiest things this side of Alpha Centauri</I><BR>
|
||||
"} + span_italics("The bulkiest things this side of Alpha Centauri") + {"<BR>
|
||||
These suits are the both grey ones that are stored in EVA and orange emergency suits in emergency lockers. They're the more simple to get on, but are also a lot bulkier, and provide less protection from environmental hazards such as radiation or physical impact.
|
||||
As Medical, Engineering, Security, and Mining all have voidsuits of their own, these don't see much use outside of emergencies. In an emergency, knowing how to put one on can save your life.<BR><BR>
|
||||
|
||||
@@ -1170,7 +1170,7 @@
|
||||
These suits tend to be wearable by most species. They're large and flexible. They might be pretty uncomfortable for some, though, so keep that in mind.<BR><BR>
|
||||
|
||||
<h2><a name="Voidsuits">Voidsuits</a></h2>
|
||||
<I>Heavy, uncomfortable, still the best option.</I><BR>
|
||||
"} + span_italics("Heavy, uncomfortable, still the best option.") + {"<BR>
|
||||
These suits come in many specialized varieties. The most common are engineering, atmospherics, security, medical, and mining varieties.
|
||||
These provide a lot more protection than the standard suits, and depending on the specialization, can offer different protections.
|
||||
For example, security suits have armor plating, engineering suits have radiation protection, and atmospherics suits are rated for extremely high temperatures.<BR><BR>
|
||||
@@ -1186,7 +1186,7 @@
|
||||
If a helmet is installed, you can skip it while putting the suit on, obviously. When deployed, it will deploy from the back of your neck, covering the head and sealing at the front.<BR><BR>
|
||||
|
||||
<h2><a name="Hardsuits">Hardsuits/Rigs</a></h2>
|
||||
<I>The fancy stuff.</I><BR>
|
||||
"} + span_italics("The fancy stuff.") + {"<BR>
|
||||
Proper hardsuits are the most complex sort of EVA equipment available, and blur the line between spacesuits and smaller exosuits. They're sometimes known as 'rigs' or 'powered armor'.
|
||||
These are the suits with the widest variety of uses, owing to the wide variety of equipment that can be installed on them. Like voidsuits, they come in different, specialized varieties, each one offering different protections and different equipment.
|
||||
Equipment that can be installed includes weapons, power tools, mining equipment, medical equipment, AI assistants, and more.<BR><BR>
|
||||
@@ -1199,7 +1199,7 @@
|
||||
The potential of a suit breach is always there, and the use of powered equipment raises it significantly.<BR><BR>
|
||||
|
||||
<h2><a name="Advice">Miscellaneous Advice</a></h2>
|
||||
<I>Pro tip: Safety first.</I><BR>
|
||||
"} + span_italics("Pro tip: Safety first.") + {"<BR>
|
||||
There's a lot of general advice that can be helpful for people who haven't taken a long-form instruction course. Much of this is going to be fairly obvious safety advice, but it's never bad to remind yourself of that.<BR><BR>
|
||||
|
||||
<ul>
|
||||
@@ -1211,7 +1211,7 @@
|
||||
</ul>
|
||||
|
||||
<h2><a name="Equipment">Modification Equipment</a></h2>
|
||||
<I>How to actually make voidsuits fit you.</I><BR>
|
||||
"} + span_italics("How to actually make voidsuits fit you.") + {"<BR>
|
||||
There's a variety of equipment that can modify hardsuits to fit species that can't fit into them, making life quite a bit easier.<BR><BR>
|
||||
|
||||
The first piece of equipment is a suit cycler. This is a large machine resembling the storage pods that are in place in some places. These are machines that will automatically tailor a suit to certain specifications.
|
||||
@@ -1274,20 +1274,20 @@
|
||||
Before you jump in to making the next Black Death, you need to understand what's what. When you pop a tray into the disease analyzer you'll get a paper listing quite a few<br>
|
||||
things about that virus!<br><br>
|
||||
|
||||
<b>Antigens</b><br>
|
||||
"} + span_bold("Antigens") + {"<br>
|
||||
The first thing you might notice on this analysis is the listed antigens of a virus. This, essentially, is what you need for cures. When a patient develops an antibody that<br>
|
||||
matches a disease's antigen, they'll be immune to the virus.<br><br>
|
||||
|
||||
<b>Transmission</b><br>
|
||||
"} + span_bold("Transmission") + {"<br>
|
||||
This will list one of three methods of transmission: airborne, contact, or blood. Airborne viruses will spread through the air, meaning if a patient is coughing or sneezing<br>
|
||||
it will spread quicker. Contactviruses need some sort of, well, contact. Blood on the floor, mucus, and vomit should all be cleaned up. Blood-transmission viruses will only<br>
|
||||
spread through actual blood contact, meaning an injection of the virus would be necessary to spread it.<br><br>
|
||||
|
||||
<b>Species</b><br>
|
||||
"} + span_bold("Species") + {"<br>
|
||||
Not all viruses are compatible with all species! This will list off what can be infected by a particular virus. This can be changed through splicing. In rare cases you will<br>
|
||||
get a virus that has infected crewmembers but cannot infect your lab monkeys. In these cases, you will likely have to splice different species data to safely make a cure.<br><br>
|
||||
|
||||
<b>Symptoms</b><br>
|
||||
"} + span_bold("Symptoms") + {"<br>
|
||||
This lists what all the virus does, along with the strength of the symptoms and their aggressiveness. A full list of symptoms and their stages can be found below.<br><br>
|
||||
|
||||
<h2>Protection</h2>
|
||||
@@ -1300,21 +1300,21 @@
|
||||
<li>One (1) box of sterile masks</li>
|
||||
<li>One (1) box of latex gloves</li>
|
||||
</ul><br>
|
||||
<b>Make sure to gear up appropriately and take precautions to not bring the virus out of the lab!</b><br><br>
|
||||
"} + span_bold("Make sure to gear up appropriately and take precautions to not bring the virus out of the lab!") + {"<br><br>
|
||||
What needs to be worn varies from race to race, as some species cannot be affected by a virus, but<br>
|
||||
precautions should always be taken to prevent accidentally carrying the virus out of containment.<br><br>
|
||||
|
||||
<h2>Machinery</h2>
|
||||
These are the types of machines that you will be expected to use in this department. Study them, know them, and make sure you use them correctly!<br><br>
|
||||
|
||||
<b>Antibody Scanner</b><br>
|
||||
"} + span_bold("Antibody Scanner") + {"<br>
|
||||
A device similar to a health analyzer, when scanned over a patient it will tell you any present antibodies in their bloodstream.<br><br>
|
||||
|
||||
<b>Pathogenic Isolator</b><br>
|
||||
"} + span_bold("Pathogenic Isolator") + {"<br>
|
||||
This device can be loaded with blood samples via a syringe. It will tell you if there is a present viral pathogen, and if so it can isolate the pathogen,<br>
|
||||
producing a virus dish for further research. This is the primary means of creating virus dishes.<br><br>
|
||||
|
||||
<b>Pathogenic Incubator</b><br>
|
||||
"} + span_bold("Pathogenic Incubator") + {"<br>
|
||||
One of the most important machines, you'll be sitting here a lot. Virus trays you produce will start small, and you will need to grow them to get anywhere.<br>
|
||||
Load it with virus food (diluted milk, found in a wall mounted dispenser nearby) as well as a virus dish and turn it on. It will slowly grow the virus<br>
|
||||
for analysis, splicing, or whatever other use you might find for it. It can also inject the virus into other chemicals (i.e. blood) which will allow you<br>
|
||||
@@ -1322,16 +1322,16 @@
|
||||
|
||||
Additionally, it can irradiate a virus dish to cause mutation. This randomly alters the syndromes, allowing you to collect new data.<br><br>
|
||||
|
||||
<b>Disease Analyser</b><br>
|
||||
"} + span_bold("Disease Analyser") + {"<br>
|
||||
Virus dishes may be placed into this machine after it has been incubated sufficiently. It will create a reading of the virus' symptoms, species targeted,<br>
|
||||
associated antibodies, and so on. It will also update the disease into the digital database, allowing it to be detected via Medical HUD or health analyzer.<br><br>
|
||||
|
||||
<b>Isolation Centrifuge</b><br>
|
||||
"} + span_bold("Isolation Centrifuge") + {"<br>
|
||||
Inserting a vial of blood into this machine will allow it to take a present pathogen or antibody, turning it into a pure virus or pure cure for your use.<br>
|
||||
It will automatically detect if either are in the blood sample, so it is useful for determining if a sample is infected. The sample will be reusable if creating<br>
|
||||
more of the virus, but will be expended upon creating antibodies.<br><br>
|
||||
|
||||
<b>Disease Splicer</b><br>
|
||||
"} + span_bold("Disease Splicer") + {"<br>
|
||||
As it's name implied, this machine is for splicing the disease symptoms and creating new viruses. Insert an analyzed virus sample to take a symptom which can<br>
|
||||
then be saved on a GNA disk (created by the machine), or use an existing disk on the machine to load up a symptom and splice it in.<br><br>
|
||||
|
||||
@@ -1340,7 +1340,7 @@
|
||||
and splicing. Keep in mind that infecting the whole station with a deadly virus is generally frowned upon in most societies, and even in an antagonistic role simply<br>
|
||||
infecting everyone with a very deadly virus is not ideal.<br><br>
|
||||
|
||||
<b>Obtaining a Sample</b><br>
|
||||
"} + span_bold("Obtaining a Sample") + {"<br>
|
||||
The first step to making your own virus is to find a virus to start tinkering with. There are two ways of doing this: grabbing the pre-spawned virus dish from the<br>
|
||||
freezer create in your laboratory, or taking a blood sample from an infected patient that you haven't cured yet and running it through the Pathogenic Isolator to<br>
|
||||
produce a virus dish.<br><br>
|
||||
@@ -1351,17 +1351,17 @@
|
||||
|
||||
Once that's all done, you're ready to start the real work.<br><br>
|
||||
|
||||
<b>Obtaining a Sample</b><br>
|
||||
"} + span_bold("Obtaining a Sample") + {"<br>
|
||||
Sometimes you just need to infect somebody. Usually, this is because you're doing some splicing work and want to make sure that you'll have some copies of a virus<br>
|
||||
in reserve for future study. Fortunately, the process of deliberately infecting patients, as well as creating backups of your viruses, is actually very simple.<br><br>
|
||||
|
||||
If you have a virus dish and wish to infect a patient, place the dish into the <b>Pathogenic Incubator</b> along with a beaker full of blood. Ideally, this is the<br>
|
||||
If you have a virus dish and wish to infect a patient, place the dish into the "} + span_bold("Pathogenic Incubator") + {" along with a beaker full of blood. Ideally, this is the<br>
|
||||
patient's (or test monkey's) blood, though anyone's will do in a pinch - just be aware of the possibility of blood rejection, and be ready to deal with it accordingly.<br>
|
||||
The incubator can inject a sample of the virus into the blood, which you can then inject into the patient to infect them. Alternatively, once a blood sample is infected<br>
|
||||
you may place it in either the <b>Pathogenic Isolator</b> or <b>Isolation Centrifuge</b> to make as many samples of that virus you need without destroying the sample.<br>
|
||||
you may place it in either the "} + span_bold("Pathogenic Isolator") + {" or "} + span_bold("Isolation Centrifuge") + {" to make as many samples of that virus you need without destroying the sample.<br>
|
||||
No infections necessary!<br><br>
|
||||
|
||||
<b>Splicing</b><br>
|
||||
"} + span_bold("Splicing") + {"<br>
|
||||
To understand splicing, you must know that every virus has 4 GNA strands, each of which is tied to one of the syndromes that it can manifest. Each syndrome, and thus each<br>
|
||||
strand, is ranked in order of its appearance when symptoms begin to manifest in a patient, and higher-ranked (and thus slower to appear) syndromes are likely to be more<br>
|
||||
powerful than lower-ranked ones. (1) is the lowest, first symptom to manifest, and (4) is the highest, final symptom to manifest.<br><br>
|
||||
@@ -1379,8 +1379,8 @@
|
||||
its buffer. This effectively allows you to give a virus any set of symptoms you want, so long as it follows the rules of the ranking. A rank (1) symptom can fill<br>
|
||||
any slot, while a (3) can only fill 3 and up, and a (4) can only be in the fourth slot.<br><br>
|
||||
|
||||
<b>Mutating</b><br>
|
||||
Sometimes you just don't have any of the symptoms you want. Fortunately, mutating a virus dish is very simple. Simply place a dish in the <b>Pathogenic Incubator</b><br>
|
||||
"} + span_bold("Mutating") + {"<br>
|
||||
Sometimes you just don't have any of the symptoms you want. Fortunately, mutating a virus dish is very simple. Simply place a dish in the "} + span_bold("Pathogenic Incubator") + {"<br>
|
||||
to get started and click 'add radiation'. This will fill up the radiation bar with each press. When the machine is on, this bar will slowly tick down as the radiation<br>
|
||||
is applied to the sample. For any significant mutation the radiation should be over 500k, meaning at least half the bar. When a mutation occurs -- and multiple<br>
|
||||
mutations can occur in a single sample -- there will be a ping from the machine. Once it's done growing and mutating, throw it into the analyzer and see what you got!<br><br>
|
||||
@@ -1404,12 +1404,12 @@
|
||||
the below, spacecillin can be used in a pinch to attempt to treat a virus if no virologist is present and someone decided to roll around in mucus. However this is not<br>
|
||||
guaranteed to work, and can in fact simply make the virus more resistant to spacecillin.<br><br>
|
||||
|
||||
<b>Quarantine</b><br>
|
||||
"} + span_bold("Quarantine") + {"<br>
|
||||
If you or a crew member becomes infected by a virus, your first concern should be to isolate them as quickly as possible to prevent the disease from spreading. Ideally,<br>
|
||||
this means getting the patient back to Virology and into a holding cell, but failing that, it's important to get them into an isolated room, shut the door, and keep anyone<br>
|
||||
else from entering. It is also important to clean up any blood, vomit, or mucus left behind by the patient, as it may spread the virus as well.<br><br>
|
||||
|
||||
<b>Antibodies</b><br>
|
||||
"} + span_bold("Antibodies") + {"<br>
|
||||
Now that your patient is safely hidden away where they can't infect people without your permission, you want to cure them. The basic idea behind that is to get them to start<br>
|
||||
synthesizing antibodies.<br><br>
|
||||
|
||||
@@ -1444,7 +1444,7 @@
|
||||
A stage 4 syndrome, however, cannot appear any earlier than stage 4.<br><br>
|
||||
|
||||
<table>
|
||||
<caption> <b>Syndromes</b> </caption>
|
||||
<caption> "} + span_bold("Syndromes") + {" </caption>
|
||||
<tr>
|
||||
<th scope="col"> Stage</th>
|
||||
<th scope="col"> Name</th>
|
||||
@@ -1453,7 +1453,7 @@
|
||||
<tr>
|
||||
<td> 1 </td>
|
||||
<td> Sneezing </td>
|
||||
<td> Makes the patient sneeze. <b>Spreads airborne disease!</b>
|
||||
<td> Makes the patient sneeze. "} + span_bold("Spreads airborne disease!") + {"
|
||||
</td></tr>
|
||||
<tr>
|
||||
<td> 1 </td>
|
||||
@@ -1463,7 +1463,7 @@
|
||||
<tr>
|
||||
<td> 1 </td>
|
||||
<td> Salivary Gland Stimulation </td>
|
||||
<td> Makes the patient drool. <b>Spreads the disease!</b>
|
||||
<td> Makes the patient drool. "} + span_bold("Spreads the disease!") + {"
|
||||
</td></tr>
|
||||
<tr>
|
||||
<td> 1 </td>
|
||||
@@ -1493,7 +1493,7 @@
|
||||
<tr>
|
||||
<td> 2 </td>
|
||||
<td> Vomiting </td>
|
||||
<td> Makes the patient vomit. <b>Spreads the disease!</b>
|
||||
<td> Makes the patient vomit. "} + span_bold("Spreads the disease!") + {"
|
||||
</td></tr>
|
||||
<tr>
|
||||
<td> 2 </td>
|
||||
@@ -1513,7 +1513,7 @@
|
||||
<tr>
|
||||
<td> 2 </td>
|
||||
<td> Severe Cough </td>
|
||||
<td> Causes coughing. <b>Spreads airborne disease!</b>
|
||||
<td> Causes coughing. "} + span_bold("Spreads airborne disease!") + {"
|
||||
</td></tr>
|
||||
<tr>
|
||||
<td> 2 </td>
|
||||
|
||||
@@ -304,7 +304,7 @@
|
||||
if(display_contents_with_number)
|
||||
for(var/datum/numbered_display/ND in display_contents)
|
||||
ND.sample_object.screen_loc = "[cx]:16,[cy]:16"
|
||||
ND.sample_object.maptext = "<font color='white'>[(ND.number > 1)? "[ND.number]" : ""]</font>"
|
||||
ND.sample_object.maptext = span_white("[(ND.number > 1)? "[ND.number]" : ""]")
|
||||
ND.sample_object.hud_layerise()
|
||||
var/atom/movable/storage_slot/SS = new(null, ND.sample_object)
|
||||
SS.screen_loc = ND.sample_object.screen_loc
|
||||
|
||||
@@ -98,7 +98,7 @@ Frequency:
|
||||
|
||||
src.temp += span_bold("You are at \[[sr.x],[sr.y],[sr.z]\]") + " in orbital coordinates.<BR><BR><A href='byond://?src=\ref[src];refresh=1'>Refresh</A><BR>"
|
||||
else
|
||||
src.temp += span_bold("<FONT color='red'>Processing Error:</FONT>") + " Unable to locate orbital position.<BR>"
|
||||
src.temp += span_bold(span_red("Processing Error:")) + " Unable to locate orbital position.<BR>"
|
||||
else
|
||||
if (href_list["freq"])
|
||||
src.frequency += text2num(href_list["freq"])
|
||||
|
||||
@@ -99,5 +99,5 @@
|
||||
|
||||
/obj/vehicle/proc/log_message(message as text,red=null)
|
||||
log.len++
|
||||
log[log.len] = list("time"=world.timeofday,"message"="[red?"<font color='red'>":null][message][red?"</font>":null]")
|
||||
log[log.len] = list("time"=world.timeofday,"message"="[red?span_red("[message]"):[message]]")
|
||||
return log.len
|
||||
|
||||
@@ -192,7 +192,7 @@
|
||||
to_chat(usr, "Cancelled")
|
||||
return
|
||||
|
||||
var/datum/db_query/update_query = SSdbcore.NewQuery("UPDATE erro_ban SET reason = '[value]', edits = CONCAT(edits,'- [eckey] changed ban reason from <cite><b>\\\"[reason]\\\"</b></cite> to <cite><b>\\\"[value]\\\"</b></cite><BR>') WHERE id = [banid]")
|
||||
var/datum/db_query/update_query = SSdbcore.NewQuery("UPDATE erro_ban SET reason = '[value]', edits = CONCAT(edits,'- [eckey] changed ban reason from <cite>" + span_bold("\\\"[reason]\\\"") + "</cite> to <cite>" + span_bold("\\\"[value]\\\"") + "</cite><BR>') WHERE id = [banid]")
|
||||
update_query.Execute()
|
||||
message_admins("[key_name_admin(usr)] has edited a ban for [pckey]'s reason from [reason] to [value]",1)
|
||||
qdel(update_query)
|
||||
@@ -290,18 +290,18 @@
|
||||
output += span_bold("Add custom ban:") + " (ONLY use this if you can't ban through any other method)"
|
||||
output += "<input type='hidden' name='src' value='\ref[src]'>"
|
||||
output += "<table width='100%'><tr>"
|
||||
output += "<td width='50%' align='right'><b>Ban type:</b><select name='dbbanaddtype'>"
|
||||
output += "<td width='50%' align='right'>" + span_bold("Ban type:") + "<select name='dbbanaddtype'>"
|
||||
output += "<option value=''>--</option>"
|
||||
output += "<option value='[BANTYPE_PERMA]'>PERMABAN</option>"
|
||||
output += "<option value='[BANTYPE_TEMP]'>TEMPBAN</option>"
|
||||
output += "<option value='[BANTYPE_JOB_PERMA]'>JOB PERMABAN</option>"
|
||||
output += "<option value='[BANTYPE_JOB_TEMP]'>JOB TEMPBAN</option>"
|
||||
output += "</select></td>"
|
||||
output += "<td width='50%' align='right'><b>Ckey:</b> <input type='text' name='dbbanaddckey'></td></tr>"
|
||||
output += "<tr><td width='50%' align='right'><b>IP:</b> <input type='text' name='dbbanaddip'></td>"
|
||||
output += "<td width='50%' align='right'><b>CID:</b> <input type='text' name='dbbanaddcid'></td></tr>"
|
||||
output += "<tr><td width='50%' align='right'><b>Duration:</b> <input type='text' name='dbbaddduration'></td>"
|
||||
output += "<td width='50%' align='right'><b>Job:</b><select name='dbbanaddjob'>"
|
||||
output += "<td width='50%' align='right'>" + span_bold("Ckey:") + " <input type='text' name='dbbanaddckey'></td></tr>"
|
||||
output += "<tr><td width='50%' align='right'>" + span_bold("IP:") + " <input type='text' name='dbbanaddip'></td>"
|
||||
output += "<td width='50%' align='right'>" + span_bold("CID:") + " <input type='text' name='dbbanaddcid'></td></tr>"
|
||||
output += "<tr><td width='50%' align='right'>" + span_bold("Duration:") + " <input type='text' name='dbbaddduration'></td>"
|
||||
output += "<td width='50%' align='right'>" + span_bold("Job:") + "<select name='dbbanaddjob'>"
|
||||
output += "<option value=''>--</option>"
|
||||
for(var/j in get_all_jobs())
|
||||
output += "<option value='[j]'>[j]</option>"
|
||||
@@ -323,13 +323,13 @@
|
||||
output += "</table>"
|
||||
|
||||
output += "<form method='GET' action='?src=\ref[src]'>[HrefTokenFormField()]"
|
||||
output += "<table width='60%'><tr><td colspan='2' align='left'><b>Search:</b>"
|
||||
output += "<table width='60%'><tr><td colspan='2' align='left'>" + span_bold("Search:") + ""
|
||||
output += "<input type='hidden' name='src' value='\ref[src]'></td></tr>"
|
||||
output += "<tr><td width='50%' align='right'><b>Ckey:</b> <input type='text' name='dbsearchckey' value='[playerckey]'></td>"
|
||||
output += "<td width='50%' align='right'><b>Admin ckey:</b> <input type='text' name='dbsearchadmin' value='[adminckey]'></td></tr>"
|
||||
output += "<tr><td width='50%' align='right'><b>IP:</b> <input type='text' name='dbsearchip' value='[playerip]'></td>"
|
||||
output += "<td width='50%' align='right'><b>CID:</b> <input type='text' name='dbsearchcid' value='[playercid]'></td></tr>"
|
||||
output += "<tr><td width='50%' align='right' colspan='2'><b>Ban type:</b><select name='dbsearchbantype'>"
|
||||
output += "<tr><td width='50%' align='right'>" + span_bold("Ckey:") + " <input type='text' name='dbsearchckey' value='[playerckey]'></td>"
|
||||
output += "<td width='50%' align='right'>" + span_bold("Admin ckey:") + " <input type='text' name='dbsearchadmin' value='[adminckey]'></td></tr>"
|
||||
output += "<tr><td width='50%' align='right'>" + span_bold("IP:") + " <input type='text' name='dbsearchip' value='[playerip]'></td>"
|
||||
output += "<td width='50%' align='right'>" + span_bold("CID:") + " <input type='text' name='dbsearchcid' value='[playercid]'></td></tr>"
|
||||
output += "<tr><td width='50%' align='right' colspan='2'>" + span_bold("Ban type:") + "<select name='dbsearchbantype'>"
|
||||
output += "<option value=''>--</option>"
|
||||
output += "<option value='[BANTYPE_PERMA]'>PERMABAN</option>"
|
||||
output += "<option value='[BANTYPE_TEMP]'>TEMPBAN</option>"
|
||||
@@ -360,11 +360,11 @@
|
||||
|
||||
output += "<table width='90%' bgcolor='#e3e3e3' cellpadding='5' cellspacing='0' align='center'>"
|
||||
output += "<tr>"
|
||||
output += "<th width='25%'><b>TYPE</b></th>"
|
||||
output += "<th width='20%'><b>CKEY</b></th>"
|
||||
output += "<th width='20%'><b>TIME APPLIED</b></th>"
|
||||
output += "<th width='20%'><b>ADMIN</b></th>"
|
||||
output += "<th width='15%'><b>OPTIONS</b></th>"
|
||||
output += "<th width='25%'>" + span_bold("TYPE") + "</th>"
|
||||
output += "<th width='20%'>" + span_bold("CKEY") + "</th>"
|
||||
output += "<th width='20%'>" + span_bold("TIME APPLIED") + "</th>"
|
||||
output += "<th width='20%'>" + span_bold("ADMIN") + "</th>"
|
||||
output += "<th width='15%'>" + span_bold("OPTIONS") + "</th>"
|
||||
output += "</tr>"
|
||||
|
||||
var/adminsearch = ""
|
||||
@@ -442,42 +442,42 @@
|
||||
var/typedesc =""
|
||||
switch(bantype)
|
||||
if("PERMABAN")
|
||||
typedesc = "<font color='red'><b>PERMABAN</b></font>"
|
||||
typedesc = span_red(span_bold("PERMABAN"))
|
||||
if("TEMPBAN")
|
||||
typedesc = span_bold("TEMPBAN") + "<br><font size='2'>([duration] minutes) [(unbanned || auto) ? "" : "(<a href=\"byond://?src=\ref[src];[HrefToken()];dbbanedit=duration;dbbanid=[banid]\">Edit</a>)"]<br>Expires [expiration]</font>"
|
||||
typedesc = span_bold("TEMPBAN") + "<br>" + span_normal("([duration] minutes) [(unbanned || auto) ? "" : "(<a href=\"byond://?src=\ref[src];[HrefToken()];dbbanedit=duration;dbbanid=[banid]\">Edit</a>)"]<br>Expires [expiration]")
|
||||
if("JOB_PERMABAN")
|
||||
typedesc = span_bold("JOBBAN") + "<br><font size='2'>([job])</font>"
|
||||
typedesc = span_bold("JOBBAN") + "<br>" + span_normal("([job])")
|
||||
if("JOB_TEMPBAN")
|
||||
typedesc = span_bold("TEMP JOBBAN") + "<br><font size='2'>([job])<br>([duration] minutes<br>Expires [expiration]</font>"
|
||||
typedesc = span_bold("TEMP JOBBAN") + "<br>" + span_normal("([job])<br>([duration] minutes<br>Expires [expiration]")
|
||||
|
||||
output += "<tr bgcolor='[dcolor]'>"
|
||||
output += "<td align='center'>[typedesc]</td>"
|
||||
output += "<td align='center'><b>[ckey]</b></td>"
|
||||
output += "<td align='center'>" + span_bold("[ckey]") + "</td>"
|
||||
output += "<td align='center'>[bantime]</td>"
|
||||
output += "<td align='center'><b>[ackey]</b></td>"
|
||||
output += "<td align='center'>" + span_bold("[ackey]") + "</td>"
|
||||
output += "<td align='center'>[(unbanned || auto) ? "" : span_bold("<a href=\"byond://?src=\ref[src];[HrefToken()];dbbanedit=unban;dbbanid=[banid]\">Unban</a>")]</td>"
|
||||
output += "</tr>"
|
||||
output += "<tr bgcolor='[dcolor]'>"
|
||||
output += "<td align='center' colspan='2' bgcolor=''><b>IP:</b> [ip]</td>"
|
||||
output += "<td align='center' colspan='3' bgcolor=''><b>CIP:</b> [cid]</td>"
|
||||
output += "<td align='center' colspan='2' bgcolor=''>" + span_bold("IP:") + " [ip]</td>"
|
||||
output += "<td align='center' colspan='3' bgcolor=''>" + span_bold("CIP:") + " [cid]</td>"
|
||||
output += "</tr>"
|
||||
output += "<tr bgcolor='[lcolor]'>"
|
||||
output += "<td align='center' colspan='5'><b>Reason: [(unbanned || auto) ? "" : "(<a href=\"byond://?src=\ref[src];[HrefToken()];dbbanedit=reason;dbbanid=[banid]\">Edit</a>)"]</b> <cite>\"[reason]\"</cite></td>"
|
||||
output += "<td align='center' colspan='5'>" + span_bold("Reason: [(unbanned || auto) ? "" : "(<a href=\"byond://?src=\ref[src];[HrefToken()];dbbanedit=reason;dbbanid=[banid]\">Edit</a>)"]") + " <cite>\"[reason]\"</cite></td>"
|
||||
output += "</tr>"
|
||||
if(edits)
|
||||
output += "<tr bgcolor='[dcolor]'>"
|
||||
output += "<td align='center' colspan='5'><b>EDITS</b></td>"
|
||||
output += "<td align='center' colspan='5'>" + span_bold("EDITS") + "</td>"
|
||||
output += "</tr>"
|
||||
output += "<tr bgcolor='[lcolor]'>"
|
||||
output += "<td align='center' colspan='5'><font size='2'>[edits]</font></td>"
|
||||
output += "<td align='center' colspan='5'>" + span_normal("[edits]") + "</td>"
|
||||
output += "</tr>"
|
||||
if(unbanned)
|
||||
output += "<tr bgcolor='[dcolor]'>"
|
||||
output += "<td align='center' colspan='5' bgcolor=''><b>UNBANNED by admin [unbanckey] on [unbantime]</b></td>"
|
||||
output += "<td align='center' colspan='5' bgcolor=''>" + span_bold("UNBANNED by admin [unbanckey] on [unbantime]") + "</td>"
|
||||
output += "</tr>"
|
||||
else if(auto)
|
||||
output += "<tr bgcolor='[dcolor]'>"
|
||||
output += "<td align='center' colspan='5' bgcolor=''><b>EXPIRED at [expiration]</b></td>"
|
||||
output += "<td align='center' colspan='5' bgcolor=''>" + span_bold("EXPIRED at [expiration]") + "</td>"
|
||||
output += "</tr>"
|
||||
output += "<tr>"
|
||||
output += "<td colspan='5' bgcolor='white'> </td>"
|
||||
|
||||
@@ -169,7 +169,7 @@ var/savefile/Banlist
|
||||
/datum/admins/proc/unbanpanel()
|
||||
var/count = 0
|
||||
var/dat
|
||||
//var/dat = "<HR><B>Unban Player:</B> <font color='blue'>(U) = Unban</font> , (E) = Edit Ban <font color='green'>(Total<HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 ></font>"
|
||||
//var/dat = "<HR>" + span_bold("Unban Player:") + " " + span_blue("(U) = Unban") + " , (E) = Edit Ban " + span_green("(Total<HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 >")
|
||||
Banlist.cd = "/base"
|
||||
for (var/A in Banlist.dir)
|
||||
count++
|
||||
@@ -189,7 +189,7 @@ var/savefile/Banlist
|
||||
dat += text("<tr><td><A href='byond://?src=[ref];[HrefToken()];unbanf=[key][id]'>(U)</A><A href='byond://?src=[ref];[HrefToken()];unbane=[key][id]'>(E)</A> Key: <B>[key]</B></td><td>ComputerID: <B>[id]</B></td><td>IP: <B>[ip]</B></td><td> [expiry]</td><td>(By: [by])</td><td>(Reason: [reason])</td></tr>")
|
||||
|
||||
dat += "</table>"
|
||||
dat = "<HR><B>Bans:</B> <FONT COLOR=blue>(U) = Unban , (E) = Edit Ban</FONT> - <FONT COLOR=green>([count] Bans)</FONT><HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 >[dat]"
|
||||
dat = "<HR>" + span_bold("Bans:") + " " + span_blue("(U) = Unban , (E) = Edit Ban") + " - " + span_green("([count] Bans)") + "<HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 >[dat]"
|
||||
usr << browse("<html>[dat]</html>", "window=unbanp;size=875x400")
|
||||
|
||||
//////////////////////////////////// DEBUG ////////////////////////////////////
|
||||
|
||||
+91
-91
@@ -46,20 +46,20 @@ var/global/floorIsLava = 0
|
||||
return
|
||||
|
||||
var/body = "<html><head><title>Options for [M.key]</title></head>"
|
||||
body += "<body>Options panel for <b>[M]</b>"
|
||||
body += "<body>Options panel for" + span_bold("[M]")
|
||||
if(M.client)
|
||||
body += " played by <b>[M.client]</b> "
|
||||
body += " played by " + span_bold("[M.client]")
|
||||
body += "\[<A href='byond://?src=\ref[src];[HrefToken()];editrights=show'>[M.client.holder ? M.client.holder.rank : "Player"]</A>\]"
|
||||
|
||||
if(isnewplayer(M))
|
||||
body += " <B>Hasn't Entered Game</B> "
|
||||
body += span_bold(" Hasn't Entered Game")
|
||||
else
|
||||
body += " \[<A href='byond://?src=\ref[src];[HrefToken()];revive=\ref[M]'>Heal</A>\] "
|
||||
|
||||
if(M.client)
|
||||
body += "<br><b>First connection:</b> [M.client.player_age] days ago"
|
||||
body += "<br><b>BYOND account created:</b> [M.client.account_join_date]"
|
||||
body += "<br><b>BYOND account age (days):</b> [M.client.account_age]"
|
||||
body += "<br>" + span_bold("First connection:") + "[M.client.player_age] days ago"
|
||||
body += "<br>" + span_bold("BYOND account created:") + "[M.client.account_join_date]"
|
||||
body += "<br>" + span_bold("BYOND account age (days):") + "[M.client.account_age]"
|
||||
|
||||
body += {"
|
||||
<br><br>\[
|
||||
@@ -68,8 +68,8 @@ var/global/floorIsLava = 0
|
||||
<a href='byond://?src=\ref[usr];[HrefToken()];priv_msg=\ref[M]'>PM</a> -
|
||||
<a href='byond://?src=\ref[src];[HrefToken()];subtlemessage=\ref[M]'>SM</a> -
|
||||
[admin_jump_link(M, src)]\] <br>
|
||||
<b>Mob type:</b> [M.type]<br>
|
||||
<b>Inactivity time:</b> [M.client ? "[M.client.inactivity/600] minutes" : "Logged out"]<br/><br/>
|
||||
"} + span_bold("Mob type:") + {"[M.type]<br>
|
||||
"} + span_bold("Inactivity time:") + {" [M.client ? "[M.client.inactivity/600] minutes" : "Logged out"]<br/><br/>
|
||||
<A href='byond://?src=\ref[src];[HrefToken()];boot2=\ref[M]'>Kick</A> |
|
||||
<A href='byond://?_src_=holder;[HrefToken()];warn=[M.ckey]'>Warn</A> |
|
||||
<A href='byond://?src=\ref[src];[HrefToken()];newban=\ref[M]'>Ban</A> |
|
||||
@@ -81,7 +81,7 @@ var/global/floorIsLava = 0
|
||||
body += "| <A href='byond://?src=\ref[src];[HrefToken()];sendtoprison=\ref[M]'>Prison</A> | "
|
||||
body += "\ <A href='byond://?src=\ref[src];[HrefToken()];sendbacktolobby=\ref[M]'>Send back to Lobby</A> | "
|
||||
var/muted = M.client.prefs.muted
|
||||
body += {"<br><b>Mute: </b>
|
||||
body += {"<br>"} + span_bold("Mute: ") + {"
|
||||
\[<A href='byond://?src=\ref[src];[HrefToken()];mute=\ref[M];mute_type=[MUTE_IC]'><font color='[(muted & MUTE_IC)?"red":"blue"]'>IC</font></a> |
|
||||
<A href='byond://?src=\ref[src];[HrefToken()];mute=\ref[M];mute_type=[MUTE_OOC]'><font color='[(muted & MUTE_OOC)?"red":"blue"]'>OOC</font></a> |
|
||||
<A href='byond://?src=\ref[src];[HrefToken()];mute=\ref[M];mute_type=[MUTE_LOOC]'><font color='[(muted & MUTE_LOOC)?"red":"blue"]'>LOOC</font></a> |
|
||||
@@ -92,7 +92,7 @@ var/global/floorIsLava = 0
|
||||
"}
|
||||
|
||||
body += {"<br><br>
|
||||
<A href='byond://?src=\ref[src];[HrefToken()];jumpto=\ref[M]'><b>Jump to</b></A> |
|
||||
<A href='byond://?src=\ref[src];[HrefToken()];jumpto=\ref[M]'>"} + span_bold("Jump to") + {"</A> |
|
||||
<A href='byond://?src=\ref[src];[HrefToken()];getmob=\ref[M]'>Get</A> |
|
||||
<A href='byond://?src=\ref[src];[HrefToken()];sendmob=\ref[M]'>Send To</A>
|
||||
<br><br>
|
||||
@@ -109,19 +109,19 @@ var/global/floorIsLava = 0
|
||||
|
||||
//Monkey
|
||||
if(issmall(M))
|
||||
body += "<B>Monkeyized</B> | "
|
||||
body += span_bold("Monkeyized") + " | "
|
||||
else
|
||||
body += "<A href='byond://?src=\ref[src];[HrefToken()];monkeyone=\ref[M]'>Monkeyize</A> | "
|
||||
|
||||
//Corgi
|
||||
if(iscorgi(M))
|
||||
body += "<B>Corgized</B> | "
|
||||
body += span_bold("Corgized") + " | "
|
||||
else
|
||||
body += "<A href='byond://?src=\ref[src];[HrefToken()];corgione=\ref[M]'>Corgize</A> | "
|
||||
|
||||
//AI / Cyborg
|
||||
if(isAI(M))
|
||||
body += "<B>Is an AI</B> "
|
||||
body += span_bold("Is an AI ")
|
||||
else if(ishuman(M))
|
||||
body += {"<A href='byond://?src=\ref[src];[HrefToken()];makeai=\ref[M]'>Make AI</A> |
|
||||
<A href='byond://?src=\ref[src];[HrefToken()];makerobot=\ref[M]'>Make Robot</A> |
|
||||
@@ -139,7 +139,7 @@ var/global/floorIsLava = 0
|
||||
// DNA2 - Admin Hax
|
||||
if(M.dna && iscarbon(M))
|
||||
body += "<br><br>"
|
||||
body += "<b>DNA Blocks:</b><br><table border='0'><tr><th> </th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th>"
|
||||
body += span_bold("DNA Blocks:") + "<br><table border='0'><tr><th> </th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th>"
|
||||
var/bname
|
||||
var/list/output_list = list()
|
||||
// Traitgenes more reliable way to check gene states
|
||||
@@ -174,7 +174,7 @@ var/global/floorIsLava = 0
|
||||
body += "</tr></table>"
|
||||
|
||||
body += {"<br><br>
|
||||
<b>Rudimentary transformation:</b><font size=2><br>These transformations only create a new mob type and copy stuff over. They do not take into account MMIs and similar mob-specific things. The buttons in 'Transformations' are preferred, when possible.</font><br>
|
||||
"} + span_bold("Rudimentary transformation:") + span_normal("<br>These transformations only create a new mob type and copy stuff over. They do not take into account MMIs and similar mob-specific things. The buttons in 'Transformations' are preferred, when possible.") + {"<br>
|
||||
<A href='byond://?src=\ref[src];[HrefToken()];simplemake=observer;mob=\ref[M]'>Observer</A> |
|
||||
\[ Xenos: <A href='byond://?src=\ref[src];[HrefToken()];simplemake=larva;mob=\ref[M]'>Larva</A>
|
||||
<A href='byond://?src=\ref[src];[HrefToken()];simplemake=human;species=Xenomorph Drone;mob=\ref[M]'>Drone</A>
|
||||
@@ -204,7 +204,7 @@ var/global/floorIsLava = 0
|
||||
<br>
|
||||
"}
|
||||
body += {"<br><br>
|
||||
<b>Other actions:</b>
|
||||
"} + span_bold("Other actions:") + {"
|
||||
<br>
|
||||
<A href='byond://?src=\ref[src];[HrefToken()];forcespeech=\ref[M]'>Forcesay</A>
|
||||
"}
|
||||
@@ -216,7 +216,7 @@ var/global/floorIsLava = 0
|
||||
<A href='byond://?src=\ref[src];[HrefToken()];tdomeobserve=\ref[M]'>Thunderdome Observer</A> |
|
||||
"}
|
||||
// language toggles
|
||||
body += "<br><br><b>Languages:</b><br>"
|
||||
body += "<br><br>" + span_bold("Languages:") + "<br>"
|
||||
var/f = 1
|
||||
for(var/k in GLOB.all_languages)
|
||||
var/datum/language/L = GLOB.all_languages[k]
|
||||
@@ -327,11 +327,11 @@ var/global/floorIsLava = 0
|
||||
if(news_network.wanted_issue)
|
||||
wanted_already = 1
|
||||
|
||||
dat+={"<HR><B>Feed Security functions:</B><BR>
|
||||
dat+={"<HR>"} + span_bold("Feed Security functions:") + {"<BR>
|
||||
<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_menu_wanted=1'>[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue</A>
|
||||
<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_menu_censor_story=1'>Censor Feed Stories</A>
|
||||
<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_menu_censor_channel=1'>Mark Feed Channel with [using_map.company_name] D-Notice (disables and locks the channel.</A>
|
||||
<BR><HR><A href='byond://?src=\ref[src];[HrefToken()];ac_set_signature=1'>The newscaster recognises you as:<BR> <FONT COLOR='green'>[src.admincaster_signature]</FONT></A>
|
||||
<BR><HR><A href='byond://?src=\ref[src];[HrefToken()];ac_set_signature=1'>The newscaster recognises you as:<BR>"} + span_green("[src.admincaster_signature]") + {"</A>
|
||||
"}
|
||||
if(1)
|
||||
dat+= "Station Feed Channels<HR>"
|
||||
@@ -340,9 +340,9 @@ var/global/floorIsLava = 0
|
||||
else
|
||||
for(var/datum/feed_channel/CHANNEL in news_network.network_channels)
|
||||
if(CHANNEL.is_admin_channel)
|
||||
dat+="<B><FONT style='BACKGROUND-COLOR: LightGreen'><A href='byond://?src=\ref[src];[HrefToken()];ac_show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A></FONT></B><BR>"
|
||||
dat+=span_bold("<FONT style='BACKGROUND-COLOR: LightGreen'><A href='byond://?src=\ref[src];[HrefToken()];ac_show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A></FONT>") + "<BR>"
|
||||
else
|
||||
dat+=span_bold("<A href='byond://?src=\ref[src];[HrefToken()];ac_show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null]<BR>")
|
||||
dat+=span_bold("<A href='byond://?src=\ref[src];[HrefToken()];ac_show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? (span_red("***")) : null]<BR>")
|
||||
dat+={"<BR><HR><A href='byond://?src=\ref[src];[HrefToken()];ac_refresh=1'>Refresh</A>
|
||||
<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_setScreen=[0]'>Back</A>
|
||||
"}
|
||||
@@ -350,17 +350,17 @@ var/global/floorIsLava = 0
|
||||
if(2)
|
||||
dat+={"
|
||||
Creating new Feed Channel...
|
||||
<HR><B><A href='byond://?src=\ref[src];[HrefToken()];ac_set_channel_name=1'>Channel Name</A>:</B> [src.admincaster_feed_channel.channel_name]<BR>
|
||||
<B><A href='byond://?src=\ref[src];[HrefToken()];ac_set_signature=1'>Channel Author</A>:</B> <FONT COLOR='green'>[src.admincaster_signature]</FONT><BR>
|
||||
<B><A href='byond://?src=\ref[src];[HrefToken()];ac_set_channel_lock=1'>Will Accept Public Feeds</A>:</B> [(src.admincaster_feed_channel.locked) ? ("NO") : ("YES")]<BR><BR>
|
||||
<HR>"} + span_bold("<A href='byond://?src=\ref[src];[HrefToken()];ac_set_channel_name=1'>Channel Name</A>:") + {" [src.admincaster_feed_channel.channel_name]<BR>
|
||||
"} + span_bold("<A href='byond://?src=\ref[src];[HrefToken()];ac_set_signature=1'>Channel Author</A>:") + {" "} + span_green("[src.admincaster_signature]") + {"<BR>
|
||||
"} + span_bold("<A href='byond://?src=\ref[src];[HrefToken()];ac_set_channel_lock=1'>Will Accept Public Feeds</A>:") + {" [(src.admincaster_feed_channel.locked) ? ("NO") : ("YES")]<BR><BR>
|
||||
<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_submit_new_channel=1'>Submit</A><BR><BR><A href='byond://?src=\ref[src];[HrefToken()];ac_setScreen=[0]'>Cancel</A><BR>
|
||||
"}
|
||||
if(3)
|
||||
dat+={"
|
||||
Creating new Feed Message...
|
||||
<HR><B><A href='byond://?src=\ref[src];[HrefToken()];ac_set_channel_receiving=1'>Receiving Channel</A>:</B> [src.admincaster_feed_channel.channel_name]<BR>
|
||||
<B>Message Author:</B> <FONT COLOR='green'>[src.admincaster_signature]</FONT><BR>
|
||||
<B><A href='byond://?src=\ref[src];[HrefToken()];ac_set_new_message=1'>Message Body</A>:</B> [src.admincaster_feed_message.body] <BR>
|
||||
<HR>"} + span_bold("<A href='byond://?src=\ref[src];[HrefToken()];ac_set_channel_receiving=1'>Receiving Channel</A>:") + {" [src.admincaster_feed_channel.channel_name]<BR>
|
||||
"} + span_bold("Message Author:") + {" "} + span_green("[src.admincaster_signature]") + {"<BR>
|
||||
"} + span_bold("<A href='byond://?src=\ref[src];[HrefToken()];ac_set_new_message=1'>Message Body</A>:") + {" [src.admincaster_feed_message.body] <BR>
|
||||
<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_submit_new_message=1'>Submit</A><BR><BR><A href='byond://?src=\ref[src];[HrefToken()];ac_setScreen=[0]'>Cancel</A><BR>
|
||||
"}
|
||||
if(4)
|
||||
@@ -374,34 +374,34 @@ var/global/floorIsLava = 0
|
||||
<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_setScreen=[0]'>Return</A><BR>
|
||||
"}
|
||||
if(6)
|
||||
dat+="<B><FONT COLOR='maroon'>ERROR: Could not submit Feed story to Network.</B></FONT><HR><BR>"
|
||||
dat+=span_bold(span_maroon("ERROR: Could not submit Feed story to Network.")) + "<HR><BR>"
|
||||
if(src.admincaster_feed_channel.channel_name=="")
|
||||
dat+="<FONT COLOR='maroon'>Invalid receiving channel name.</FONT><BR>"
|
||||
dat+=span_maroon("Invalid receiving channel name.") + "<BR>"
|
||||
if(src.admincaster_feed_message.body == "" || src.admincaster_feed_message.body == "\[REDACTED\]" || admincaster_feed_message.title == "")
|
||||
dat+="<FONT COLOR='maroon'>Invalid message body.</FONT><BR>"
|
||||
dat+=span_maroon("Invalid message body.") + "<BR>"
|
||||
dat+="<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_setScreen=[3]'>Return</A><BR>"
|
||||
if(7)
|
||||
dat+="<B><FONT COLOR='maroon'>ERROR: Could not submit Feed Channel to Network.</B></FONT><HR><BR>"
|
||||
dat+=span_bold(span_maroon("ERROR: Could not submit Feed Channel to Network.")) + "<HR><BR>"
|
||||
if(src.admincaster_feed_channel.channel_name =="" || src.admincaster_feed_channel.channel_name == "\[REDACTED\]")
|
||||
dat+="<FONT COLOR='maroon'>Invalid channel name.</FONT><BR>"
|
||||
dat+=span_maroon("Invalid channel name.") + "<BR>"
|
||||
var/check = 0
|
||||
for(var/datum/feed_channel/FC in news_network.network_channels)
|
||||
if(FC.channel_name == src.admincaster_feed_channel.channel_name)
|
||||
check = 1
|
||||
break
|
||||
if(check)
|
||||
dat+="<FONT COLOR='maroon'>Channel name already in use.</FONT><BR>"
|
||||
dat+=span_maroon("Channel name already in use.") + "<BR>"
|
||||
dat+="<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_setScreen=[2]'>Return</A><BR>"
|
||||
if(9)
|
||||
dat+="<B>[src.admincaster_feed_channel.channel_name]: </B><FONT SIZE=1>\[created by: <FONT COLOR='maroon'>[src.admincaster_feed_channel.author]</FONT>\]</FONT><HR>"
|
||||
dat+=span_bold("[src.admincaster_feed_channel.channel_name]: ") + span_small("\[created by: [span_maroon("[src.admincaster_feed_channel.author]")]\]") + "<HR>"
|
||||
if(src.admincaster_feed_channel.censored)
|
||||
dat+={"
|
||||
<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [using_map.company_name] D-Notice.<BR>
|
||||
"} + span_red(span_bold("ATTENTION: ")) + {"This channel has been deemed as threatening to the welfare of the station, and marked with a [using_map.company_name] D-Notice.<BR>
|
||||
No further feed story additions are allowed while the D-Notice is in effect.<BR><BR>
|
||||
"}
|
||||
else
|
||||
if( isemptylist(src.admincaster_feed_channel.messages) )
|
||||
dat+="<I>No feed messages found in channel...</I><BR>"
|
||||
dat+=span_italics("No feed messages found in channel...") + "<BR>"
|
||||
else
|
||||
var/i = 0
|
||||
for(var/datum/feed_message/MESSAGE in src.admincaster_feed_channel.messages)
|
||||
@@ -413,68 +413,68 @@ var/global/floorIsLava = 0
|
||||
pic_data+="<img src='tmp_photo[i].png' width = '180'><BR>"
|
||||
dat+= get_newspaper_content(MESSAGE.title, MESSAGE.body, MESSAGE.author,"#d4cec1", pic_data)
|
||||
dat+="<BR>"
|
||||
dat+="<FONT SIZE=1>\[Story by <FONT COLOR='maroon'>[MESSAGE.author] - [MESSAGE.time_stamp]</FONT>\]</FONT><BR>"
|
||||
dat+=span_small("\[Story by [span_maroon("[MESSAGE.author] - [MESSAGE.time_stamp]")]\]") + "<BR>"
|
||||
dat+={"
|
||||
<BR><HR><A href='byond://?src=\ref[src];[HrefToken()];ac_refresh=1'>Refresh</A>
|
||||
<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_setScreen=[1]'>Back</A>
|
||||
"}
|
||||
if(10)
|
||||
dat+={"
|
||||
<B>[using_map.company_name] Feed Censorship Tool</B><BR>
|
||||
<FONT SIZE=1>NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.<BR>
|
||||
Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.</FONT>
|
||||
"} + span_bold("[using_map.company_name] Feed Censorship Tool") + {"<BR>
|
||||
"} + span_small("NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.<BR>") + {"
|
||||
"} + span_small("Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.") + {"
|
||||
<HR>Select Feed channel to get Stories from:<BR>
|
||||
"}
|
||||
if(isemptylist(news_network.network_channels))
|
||||
dat+="<I>No feed channels found active...</I><BR>"
|
||||
dat+=span_italics("No feed channels found active...") + "<BR>"
|
||||
else
|
||||
for(var/datum/feed_channel/CHANNEL in news_network.network_channels)
|
||||
dat+="<A href='byond://?src=\ref[src];[HrefToken()];ac_pick_censor_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null]<BR>"
|
||||
dat+="<A href='byond://?src=\ref[src];[HrefToken()];ac_pick_censor_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? (span_red("***")) : null]<BR>"
|
||||
dat+="<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_setScreen=[0]'>Cancel</A>"
|
||||
if(11)
|
||||
dat+={"
|
||||
<B>[using_map.company_name] D-Notice Handler</B><HR>
|
||||
<FONT SIZE=1>A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's
|
||||
morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed
|
||||
stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.</FONT><HR>
|
||||
"} + span_bold("[using_map.company_name] D-Notice Handler") + {"<HR>
|
||||
"} + span_small("A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's") + {"
|
||||
"} + span_small("morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed") + {"
|
||||
"} + span_small("stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.") + {"<HR>
|
||||
"}
|
||||
if(isemptylist(news_network.network_channels))
|
||||
dat+="<I>No feed channels found active...</I><BR>"
|
||||
dat+=span_italics("No feed channels found active...") + "<BR>"
|
||||
else
|
||||
for(var/datum/feed_channel/CHANNEL in news_network.network_channels)
|
||||
dat+="<A href='byond://?src=\ref[src];[HrefToken()];ac_pick_d_notice=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null]<BR>"
|
||||
dat+="<A href='byond://?src=\ref[src];[HrefToken()];ac_pick_d_notice=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? (span_red("***")) : null]<BR>"
|
||||
|
||||
dat+="<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_setScreen=[0]'>Back</A>"
|
||||
if(12)
|
||||
dat+={"
|
||||
<B>[src.admincaster_feed_channel.channel_name]: </B><FONT SIZE=1>\[ created by: <FONT COLOR='maroon'>[src.admincaster_feed_channel.author]</FONT> \]</FONT><BR>
|
||||
<FONT SIZE=2><A href='byond://?src=\ref[src];[HrefToken()];ac_censor_channel_author=\ref[src.admincaster_feed_channel]'>[(src.admincaster_feed_channel.author=="\[REDACTED\]") ? ("Undo Author censorship") : ("Censor channel Author")]</A></FONT><HR>
|
||||
"} + span_bold("[src.admincaster_feed_channel.channel_name]: ") + span_small("\[ created by: [span_maroon("[src.admincaster_feed_channel.author]")] \]") + {"<BR>
|
||||
"} + span_normal("<A href='byond://?src=\ref[src];[HrefToken()];ac_censor_channel_author=\ref[src.admincaster_feed_channel]'>[(src.admincaster_feed_channel.author=="\[REDACTED\]") ? ("Undo Author censorship") : ("Censor channel Author")]</A>") + {"<HR>
|
||||
"}
|
||||
if( isemptylist(src.admincaster_feed_channel.messages) )
|
||||
dat+="<I>No feed messages found in channel...</I><BR>"
|
||||
dat+=span_italics("No feed messages found in channel...") + "<BR>"
|
||||
else
|
||||
for(var/datum/feed_message/MESSAGE in src.admincaster_feed_channel.messages)
|
||||
dat+={"
|
||||
-[MESSAGE.body] <BR><FONT SIZE=1>\[Story by <FONT COLOR='maroon'>[MESSAGE.author]</FONT>\]</FONT><BR>
|
||||
<FONT SIZE=2><A href='byond://?src=\ref[src];[HrefToken()];ac_censor_channel_story_body=\ref[MESSAGE]'>[(MESSAGE.body == "\[REDACTED\]") ? ("Undo story censorship") : ("Censor story")]</A> - <A href='byond://?src=\ref[src];[HrefToken()];ac_censor_channel_story_author=\ref[MESSAGE]'>[(MESSAGE.author == "\[REDACTED\]") ? ("Undo Author Censorship") : ("Censor message Author")]</A></FONT><BR>
|
||||
-[MESSAGE.body] <BR>"} + span_small("\[Story by [span_maroon("[MESSAGE.author]")]\]") + {"<BR>
|
||||
"} + span_normal("<A href='byond://?src=\ref[src];[HrefToken()];ac_censor_channel_story_body=\ref[MESSAGE]'>[(MESSAGE.body == "\[REDACTED\]") ? ("Undo story censorship") : ("Censor story")]</A> - <A href='byond://?src=\ref[src];[HrefToken()];ac_censor_channel_story_author=\ref[MESSAGE]'>[(MESSAGE.author == "\[REDACTED\]") ? ("Undo Author Censorship") : ("Censor message Author")]</A>") + {"<BR>
|
||||
"}
|
||||
dat+="<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_setScreen=[10]'>Back</A>"
|
||||
if(13)
|
||||
dat+={"
|
||||
<B>[src.admincaster_feed_channel.channel_name]: </B><FONT SIZE=1>\[ created by: <FONT COLOR='maroon'>[src.admincaster_feed_channel.author]</FONT> \]</FONT><BR>
|
||||
"} + span_bold("[src.admincaster_feed_channel.channel_name]: ") + span_small("\[ created by: [span_maroon("[src.admincaster_feed_channel.author]")] \]") + {"<BR>
|
||||
Channel messages listed below. If you deem them dangerous to the station, you can <A href='byond://?src=\ref[src];[HrefToken()];ac_toggle_d_notice=\ref[src.admincaster_feed_channel]'>Bestow a D-Notice upon the channel</A>.<HR>
|
||||
"}
|
||||
if(src.admincaster_feed_channel.censored)
|
||||
dat+={"
|
||||
<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [using_map.company_name] D-Notice.<BR>
|
||||
"} + span_red(span_bold("ATTENTION: ")) + {"This channel has been deemed as threatening to the welfare of the station, and marked with a [using_map.company_name] D-Notice.<BR>
|
||||
No further feed story additions are allowed while the D-Notice is in effect.<BR><BR>
|
||||
"}
|
||||
else
|
||||
if( isemptylist(src.admincaster_feed_channel.messages) )
|
||||
dat+="<I>No feed messages found in channel...</I><BR>"
|
||||
dat+=span_italics("No feed messages found in channel...") + "<BR>"
|
||||
else
|
||||
for(var/datum/feed_message/MESSAGE in src.admincaster_feed_channel.messages)
|
||||
dat+="-[MESSAGE.body] <BR><FONT SIZE=1>\[Story by <FONT COLOR='maroon'>[MESSAGE.author]</FONT>\]</FONT><BR>"
|
||||
dat+="-[MESSAGE.body] <BR>" + span_small("\[Story by [span_maroon("[MESSAGE.author]")]\]") + "<BR>"
|
||||
|
||||
dat+="<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_setScreen=[11]'>Back</A>"
|
||||
if(14)
|
||||
@@ -485,43 +485,43 @@ var/global/floorIsLava = 0
|
||||
wanted_already = 1
|
||||
end_param = 2
|
||||
if(wanted_already)
|
||||
dat+="<FONT SIZE=2><BR><I>A wanted issue is already in Feed Circulation. You can edit or cancel it below.</FONT></I>"
|
||||
dat+=span_normal(span_italics("<BR>A wanted issue is already in Feed Circulation. You can edit or cancel it below."))
|
||||
dat+={"
|
||||
<HR>
|
||||
<A href='byond://?src=\ref[src];[HrefToken()];ac_set_wanted_name=1'>Criminal Name</A>: [src.admincaster_feed_message.author] <BR>
|
||||
<A href='byond://?src=\ref[src];[HrefToken()];ac_set_wanted_desc=1'>Description</A>: [src.admincaster_feed_message.body] <BR>
|
||||
"}
|
||||
if(wanted_already)
|
||||
dat+="<B>Wanted Issue created by:</B><FONT COLOR='green'> [news_network.wanted_issue.backup_author]</FONT><BR>"
|
||||
dat+=span_bold("Wanted Issue created by:") + span_green(" [news_network.wanted_issue.backup_author]") + "<BR>"
|
||||
else
|
||||
dat+="<B>Wanted Issue will be created under prosecutor:</B><FONT COLOR='green'> [src.admincaster_signature]</FONT><BR>"
|
||||
dat+=span_bold("Wanted Issue will be created under prosecutor:") + span_green(" [src.admincaster_signature]") + "<BR>"
|
||||
dat+="<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_submit_wanted=[end_param]'>[(wanted_already) ? ("Edit Issue") : ("Submit")]</A>"
|
||||
if(wanted_already)
|
||||
dat+="<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_cancel_wanted=1'>Take down Issue</A>"
|
||||
dat+="<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_setScreen=[0]'>Cancel</A>"
|
||||
if(15)
|
||||
dat+={"
|
||||
<FONT COLOR='green'>Wanted issue for [src.admincaster_feed_message.author] is now in Network Circulation.</FONT><BR><BR>
|
||||
"} + span_green("Wanted issue for [src.admincaster_feed_message.author] is now in Network Circulation.") + {"<BR><BR>
|
||||
<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_setScreen=[0]'>Return</A><BR>
|
||||
"}
|
||||
if(16)
|
||||
dat+="<B><FONT COLOR='maroon'>ERROR: Wanted Issue rejected by Network.</B></FONT><HR><BR>"
|
||||
dat+=span_bold(span_maroon("ERROR: Wanted Issue rejected by Network.")) + "<HR><BR>"
|
||||
if(src.admincaster_feed_message.author =="" || src.admincaster_feed_message.author == "\[REDACTED\]")
|
||||
dat+="<FONT COLOR='maroon'>Invalid name for person wanted.</FONT><BR>"
|
||||
dat+=span_maroon("Invalid name for person wanted.") + "<BR>"
|
||||
if(src.admincaster_feed_message.body == "" || src.admincaster_feed_message.body == "\[REDACTED\]")
|
||||
dat+="<FONT COLOR='maroon'>Invalid description.</FONT><BR>"
|
||||
dat+=span_maroon("Invalid description.") + "<BR>"
|
||||
dat+="<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_setScreen=[0]'>Return</A><BR>"
|
||||
if(17)
|
||||
dat+={"
|
||||
<B>Wanted Issue successfully deleted from Circulation</B><BR>
|
||||
"} + span_bold("Wanted Issue successfully deleted from Circulation") + {"<BR>
|
||||
<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_setScreen=[0]'>Return</A><BR>
|
||||
"}
|
||||
if(18)
|
||||
dat+={"
|
||||
<B><FONT COLOR ='maroon'>-- STATIONWIDE WANTED ISSUE --</B></FONT><BR><FONT SIZE=2>\[Submitted by: <FONT COLOR='green'>[news_network.wanted_issue.backup_author]</FONT>\]</FONT><HR>
|
||||
<B>Criminal</B>: [news_network.wanted_issue.author]<BR>
|
||||
<B>Description</B>: [news_network.wanted_issue.body]<BR>
|
||||
<B>Photo:</B>:
|
||||
"} + span_bold(span_maroon("-- STATIONWIDE WANTED ISSUE --")) + {"<BR>"} + span_normal("\[Submitted by: [span_green("[news_network.wanted_issue.backup_author]")]\]") + {"<HR>
|
||||
"} + span_bold("Criminal") + {": [news_network.wanted_issue.author]<BR>
|
||||
"} + span_bold("Description") + {": [news_network.wanted_issue.body]<BR>
|
||||
"} + span_bold("Photo:") + {":
|
||||
"}
|
||||
if(news_network.wanted_issue.img)
|
||||
usr << browse_rsc(news_network.wanted_issue.img, "tmp_photow.png")
|
||||
@@ -531,7 +531,7 @@ var/global/floorIsLava = 0
|
||||
dat+="<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_setScreen=[0]'>Back</A><BR>"
|
||||
if(19)
|
||||
dat+={"
|
||||
<FONT COLOR='green'>Wanted issue for [src.admincaster_feed_message.author] successfully edited.</FONT><BR><BR>
|
||||
"} + span_green("Wanted issue for [src.admincaster_feed_message.author] successfully edited.") + {"<BR><BR>
|
||||
<BR><A href='byond://?src=\ref[src];[HrefToken()];ac_setScreen=[0]'>Return</A><BR>
|
||||
"}
|
||||
else
|
||||
@@ -547,7 +547,7 @@ var/global/floorIsLava = 0
|
||||
/datum/admins/proc/Jobbans()
|
||||
if(!check_rights(R_BAN)) return
|
||||
|
||||
var/dat = "<B>Job Bans!</B><HR><table>"
|
||||
var/dat = span_bold("Job Bans!") + "<HR><table>"
|
||||
for(var/t in jobban_keylist)
|
||||
var/r = t
|
||||
if( findtext(r,"##") )
|
||||
@@ -560,7 +560,7 @@ var/global/floorIsLava = 0
|
||||
if(!check_rights(0)) return
|
||||
|
||||
var/dat = {"
|
||||
<html><center><B>Game Panel</B></center><hr>\n
|
||||
<html><center>"} + span_bold("Game Panel") + {"</center><hr>\n
|
||||
<A href='byond://?src=\ref[src];[HrefToken()];c_mode=1'>Change Game Mode</A><br>
|
||||
"}
|
||||
if(master_mode == "secret")
|
||||
@@ -584,7 +584,7 @@ var/global/floorIsLava = 0
|
||||
if(!check_rights(0)) return
|
||||
|
||||
// Print the header with category selection buttons.
|
||||
var/dat = "<B>The first rule of adminbuse is: you don't talk about the adminbuse.</B><HR>"
|
||||
var/dat = span_bold("The first rule of adminbuse is: you don't talk about the adminbuse.") + "<HR>"
|
||||
for(var/datum/admin_secret_category/category in admin_secrets.categories)
|
||||
if(!category.can_view(usr))
|
||||
continue
|
||||
@@ -593,9 +593,9 @@ var/global/floorIsLava = 0
|
||||
|
||||
// If a category is selected, print its description and then options
|
||||
if(istype(active_category) && active_category.can_view(usr))
|
||||
dat += "<B>[active_category.name]</B><BR>"
|
||||
dat += span_bold("[active_category.name]") + "<BR>"
|
||||
if(active_category.desc)
|
||||
dat += "<I>[active_category.desc]</I><BR>"
|
||||
dat += span_italics("[active_category.desc]") + "<BR>"
|
||||
for(var/datum/admin_secret_item/item in active_category.items)
|
||||
if(!item.can_view(usr))
|
||||
continue
|
||||
@@ -1186,55 +1186,55 @@ var/datum/announcement/minor/admin_min_announcer = new
|
||||
tgui_alert_async(usr, "Not before roundstart!", "Alert")
|
||||
return
|
||||
|
||||
var/out = "<font size=3><b>Current mode: [ticker.mode.name] (<a href='byond://?src=\ref[ticker.mode];[HrefToken()];debug_antag=self'>[ticker.mode.config_tag]</a>)</b></font><br/>"
|
||||
var/out = span_large(span_bold("Current mode: [ticker.mode.name] (<a href='byond://?src=\ref[ticker.mode];[HrefToken()];debug_antag=self'>[ticker.mode.config_tag]</a>)")) + "<br/>"
|
||||
out += "<hr>"
|
||||
|
||||
if(ticker.mode.ert_disabled)
|
||||
out += "<b>Emergency Response Teams:</b> <a href='byond://?src=\ref[ticker.mode];[HrefToken()];toggle=ert'>disabled</a>"
|
||||
out += span_bold("Emergency Response Teams:") + "<a href='byond://?src=\ref[ticker.mode];[HrefToken()];toggle=ert'>disabled</a>"
|
||||
else
|
||||
out += "<b>Emergency Response Teams:</b> <a href='byond://?src=\ref[ticker.mode];[HrefToken()];toggle=ert'>enabled</a>"
|
||||
out += span_bold("Emergency Response Teams:") + "<a href='byond://?src=\ref[ticker.mode];[HrefToken()];toggle=ert'>enabled</a>"
|
||||
out += "<br/>"
|
||||
|
||||
if(ticker.mode.deny_respawn)
|
||||
out += "<b>Respawning:</b> <a href='byond://?src=\ref[ticker.mode];[HrefToken()];toggle=respawn'>disallowed</a>"
|
||||
out += span_bold("Respawning:") + "<a href='byond://?src=\ref[ticker.mode];[HrefToken()];toggle=respawn'>disallowed</a>"
|
||||
else
|
||||
out += "<b>Respawning:</b> <a href='byond://?src=\ref[ticker.mode];[HrefToken()];toggle=respawn'>allowed</a>"
|
||||
out += span_bold("Respawning:") + "<a href='byond://?src=\ref[ticker.mode];[HrefToken()];toggle=respawn'>allowed</a>"
|
||||
out += "<br/>"
|
||||
|
||||
out += "<b>Shuttle delay multiplier:</b> <a href='byond://?src=\ref[ticker.mode];[HrefToken()];set=shuttle_delay'>[ticker.mode.shuttle_delay]</a><br/>"
|
||||
out += span_bold("Shuttle delay multiplier:") + " <a href='byond://?src=\ref[ticker.mode];[HrefToken()];set=shuttle_delay'>[ticker.mode.shuttle_delay]</a><br/>"
|
||||
|
||||
if(ticker.mode.auto_recall_shuttle)
|
||||
out += "<b>Shuttle auto-recall:</b> <a href='byond://?src=\ref[ticker.mode];[HrefToken()];toggle=shuttle_recall'>enabled</a>"
|
||||
out += span_bold("Shuttle auto-recall:") + " <a href='byond://?src=\ref[ticker.mode];[HrefToken()];toggle=shuttle_recall'>enabled</a>"
|
||||
else
|
||||
out += "<b>Shuttle auto-recall:</b> <a href='byond://?src=\ref[ticker.mode];[HrefToken()];toggle=shuttle_recall'>disabled</a>"
|
||||
out += span_bold("Shuttle auto-recall:") + " <a href='byond://?src=\ref[ticker.mode];[HrefToken()];toggle=shuttle_recall'>disabled</a>"
|
||||
out += "<br/><br/>"
|
||||
|
||||
if(ticker.mode.event_delay_mod_moderate)
|
||||
out += "<b>Moderate event time modifier:</b> <a href='byond://?src=\ref[ticker.mode];[HrefToken()];set=event_modifier_moderate'>[ticker.mode.event_delay_mod_moderate]</a><br/>"
|
||||
out += span_bold("Moderate event time modifier:") + " <a href='byond://?src=\ref[ticker.mode];[HrefToken()];set=event_modifier_moderate'>[ticker.mode.event_delay_mod_moderate]</a><br/>"
|
||||
else
|
||||
out += "<b>Moderate event time modifier:</b> <a href='byond://?src=\ref[ticker.mode];[HrefToken()];set=event_modifier_moderate'>unset</a><br/>"
|
||||
out += span_bold("Moderate event time modifier:") + " <a href='byond://?src=\ref[ticker.mode];[HrefToken()];set=event_modifier_moderate'>unset</a><br/>"
|
||||
|
||||
if(ticker.mode.event_delay_mod_major)
|
||||
out += "<b>Major event time modifier:</b> <a href='byond://?src=\ref[ticker.mode];[HrefToken()];set=event_modifier_severe'>[ticker.mode.event_delay_mod_major]</a><br/>"
|
||||
out += span_bold("Major event time modifier:") + " <a href='byond://?src=\ref[ticker.mode];[HrefToken()];set=event_modifier_severe'>[ticker.mode.event_delay_mod_major]</a><br/>"
|
||||
else
|
||||
out += "<b>Major event time modifier:</b> <a href='byond://?src=\ref[ticker.mode];[HrefToken()];set=event_modifier_severe'>unset</a><br/>"
|
||||
out += span_bold("Major event time modifier:") + " <a href='byond://?src=\ref[ticker.mode];[HrefToken()];set=event_modifier_severe'>unset</a><br/>"
|
||||
|
||||
out += "<hr>"
|
||||
|
||||
if(ticker.mode.antag_tags && ticker.mode.antag_tags.len)
|
||||
out += "<b>Core antag templates:</b></br>"
|
||||
out += span_bold("Core antag templates:") + "</br>"
|
||||
for(var/antag_tag in ticker.mode.antag_tags)
|
||||
out += "<a href='byond://?src=\ref[ticker.mode];[HrefToken()];debug_antag=[antag_tag]'>[antag_tag]</a>.</br>"
|
||||
|
||||
if(ticker.mode.round_autoantag)
|
||||
out += "<b>Autotraitor <a href='byond://?src=\ref[ticker.mode];[HrefToken()];toggle=autotraitor'>enabled</a></b>."
|
||||
out += span_bold("Autotraitor <a href='byond://?src=\ref[ticker.mode];[HrefToken()];toggle=autotraitor'>enabled</a>.")
|
||||
if(ticker.mode.antag_scaling_coeff > 0)
|
||||
out += " (scaling with <a href='byond://?src=\ref[ticker.mode];[HrefToken()];set=antag_scaling'>[ticker.mode.antag_scaling_coeff]</a>)"
|
||||
else
|
||||
out += " (not currently scaling, <a href='byond://?src=\ref[ticker.mode];[HrefToken()];set=antag_scaling'>set a coefficient</a>)"
|
||||
out += "<br/>"
|
||||
else
|
||||
out += "<b>Autotraitor <a href='byond://?src=\ref[ticker.mode];[HrefToken()];toggle=autotraitor'>disabled</a></b>.<br/>"
|
||||
out += span_bold("Autotraitor <a href='byond://?src=\ref[ticker.mode];[HrefToken()];toggle=autotraitor'>disabled</a>.") + "<br/>"
|
||||
|
||||
out += span_bold("All antag ids:")
|
||||
if(ticker.mode.antag_templates && ticker.mode.antag_templates.len)
|
||||
@@ -1530,7 +1530,7 @@ var/datum/announcement/minor/admin_min_announcer = new
|
||||
shouldStamp = 0
|
||||
|
||||
if(shouldStamp)
|
||||
P.stamps += "<hr><i>This paper has been stamped by the [P.origin] Quantum Relay.</i>"
|
||||
P.stamps += "<hr>" + span_italics("This paper has been stamped by the [P.origin] Quantum Relay.")
|
||||
|
||||
var/image/stampoverlay = image('icons/obj/bureaucracy.dmi')
|
||||
var/x = rand(-2, 0)
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
/* Old procs
|
||||
/proc/admin_attack_log(var/mob/attacker, var/mob/victim, var/attacker_message, var/victim_message, var/admin_message)
|
||||
if(victim)
|
||||
victim.attack_log += text("\[[time_stamp()]\] <font color='orange'>[key_name(attacker)] - [victim_message]</font>")
|
||||
victim.attack_log += text("\[[time_stamp()]\]" + span_orange(" [key_name(attacker)] - [victim_message]"))
|
||||
if(attacker)
|
||||
attacker.attack_log += text("\[[time_stamp()]\] <font color='red'>[key_name(victim)] - [attacker_message]</font>")
|
||||
attacker.attack_log += text("\[[time_stamp()]\]" + span_red(" [key_name(victim)] - [attacker_message]"))
|
||||
|
||||
msg_admin_attack("[key_name(attacker)] [admin_message] [key_name(victim)] (INTENT: [attacker? uppertext(attacker.a_intent) : "N/A"]) (<A href='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[attacker.x];Y=[attacker.y];Z=[attacker.z]'>JMP</a>)")
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
establish_db_connection()
|
||||
|
||||
if(!SSdbcore.IsConnected())
|
||||
dat += "<font color=red><b>ERROR</b>: Unable to contact External Archive. Please contact your system administrator for assistance.</font>"
|
||||
dat += span_red(span_bold("ERROR") + ": Unable to contact External Archive. Please contact your system administrator for assistance.")
|
||||
else
|
||||
dat += {"<A href='byond://?our_comp=\ref[our_comp];[HrefToken()];orderbyid=1'>(Order book by SS<sup>13</sup>BN)</A><BR><BR>
|
||||
<table>
|
||||
|
||||
@@ -223,7 +223,7 @@ var/savefile/Banlistjob
|
||||
/datum/admins/proc/unjobbanpanel()
|
||||
var/count = 0
|
||||
var/dat
|
||||
//var/dat = "<HR><B>Unban Player:</B> <font color='blue'>(U) = Unban , (E) = Edit Ban</font> <font color='green'>(Total<HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 </font>>"
|
||||
//var/dat = "<HR>" + span_bold("Unban Player: ") + span_blue("(U) = Unban , (E) = Edit Ban") + span_green("(Total<HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 >")
|
||||
Banlistjob.cd = "/base"
|
||||
for (var/A in Banlistjob.dir)
|
||||
count++
|
||||
@@ -231,29 +231,29 @@ var/savefile/Banlistjob
|
||||
dat += text("<tr><td><A href='byond://?src=\ref[src];[HrefToken()];unjobbanf=[Banlistjob["key"]][Banlistjob["id"]][Banlistjob["rank"]]'>(U)</A> Key: <B>[Banlistjob["key"]] </B>Rank: <B>[Banlistjob["rank"]]</B></td><td> ([Banlistjob["temp"] ? "[GetBanExpjob(Banlistjob["minutes"]) ? GetBanExpjob(Banlistjob["minutes"]) : "Removal pending" ]" : "Permaban"])</td><td>(By: [Banlistjob["bannedby"]])</td><td>(Reason: [Banlistjob["reason"]])</td></tr>")
|
||||
|
||||
dat += "</table>"
|
||||
dat = "<HR><B>Bans:</B> <FONT COLOR=blue>(U) = Unban , </FONT> - <FONT COLOR=green>([count] Bans)</FONT><HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 >[dat]"
|
||||
dat = "<HR>" + span_bold("Bans:") + " " span_blue("(U) = Unban , ") + " - " + span_green("([count] Bans)") + "<HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 >[dat]"
|
||||
usr << browse("<html>[dat]</html>", "window=unbanp;size=875x400")
|
||||
|
||||
/*/datum/admins/proc/permjobban(ckey, computerid, reason, bannedby, temp, minutes, rank)
|
||||
if(AddBanjob(ckey, computerid, reason, usr.ckey, 0, 0, job))
|
||||
to_chat(M, "<font color='red'><BIG><B>You have been banned from [job] by [usr.client.ckey].\nReason: [reason].</B></BIG></font>")
|
||||
to_chat(M, "<font color='red'>This is a permanent ban.</font>")
|
||||
to_chat(M, span_large(span_red(span_bold("You have been banned from [job] by [usr.client.ckey].\nReason: [reason]."))))
|
||||
to_chat(M, span_red("This is a permanent ban."))
|
||||
if(config.banappeals)
|
||||
to_chat(M, "<font color='red'>To try to resolve this matter head to [config.banappeals]</font>")
|
||||
to_chat(M, span_red("To try to resolve this matter head to [config.banappeals]"))
|
||||
else
|
||||
to_chat(M, "<font color='red'>No ban appeals URL has been set.</font>")
|
||||
to_chat(M, span_red("No ban appeals URL has been set."))
|
||||
log_admin("[usr.client.ckey] has banned from [job] [ckey].\nReason: [reason]\nThis is a permanent ban.")
|
||||
message_admins("<font color='blue'>[usr.client.ckey] has banned from [job] [ckey].\nReason: [reason]\nThis is a permanent ban.</font>")
|
||||
message_admins(span_blue("[usr.client.ckey] has banned from [job] [ckey].\nReason: [reason]\nThis is a permanent ban."))
|
||||
/datum/admins/proc/timejobban(ckey, computerid, reason, bannedby, temp, minutes, rank)
|
||||
if(AddBanjob(ckey, computerid, reason, usr.ckey, 1, mins, job))
|
||||
to_chat(M, "<font color='red'><BIG><B>You have been jobbanned from [job] by [usr.client.ckey].\nReason: [reason].</B></BIG></font>")
|
||||
to_chat(M, "<font color='red'>This is a temporary ban, it will be removed in [mins] minutes.</font>")
|
||||
to_chat(M, span_large(span_red(span_bold("You have been jobbanned from [job] by [usr.client.ckey].\nReason: [reason]."))))
|
||||
to_chat(M, span_red("This is a temporary ban, it will be removed in [mins] minutes."))
|
||||
if(config.banappeals)
|
||||
to_chat(M, "<font color='red'>To try to resolve this matter head to [config.banappeals]</font>")
|
||||
to_chat(M, span_red("To try to resolve this matter head to [config.banappeals]"))
|
||||
else
|
||||
to_chat(M, "<font color='red'>No ban appeals URL has been set.</font>")
|
||||
to_chat(M, span_red("No ban appeals URL has been set."))
|
||||
log_admin("[usr.client.ckey] has jobbanned from [job] [ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
|
||||
message_admins("<font color='blue'>[usr.client.ckey] has banned from [job] [ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.</font>")*/
|
||||
message_admins(span_blue("[usr.client.ckey] has banned from [job] [ckey].\nReason: [reason]\nThis will be removed in [mins] minutes."))*/
|
||||
//////////////////////////////////// DEBUG ////////////////////////////////////
|
||||
|
||||
/proc/CreateBansjob()
|
||||
|
||||
@@ -193,14 +193,14 @@
|
||||
<table width='560' align='center' cellspacing='0' cellpadding='5' id='maintable'>
|
||||
<tr id='title_tr'>
|
||||
<td align='center'>
|
||||
<font size='5'><b>Player panel</b></font><br>
|
||||
"} + span_giant(span_bold("Player panel")) + {"<br>
|
||||
Hover over a line to see more information - <a href='byond://?src=\ref[src];[HrefToken()];check_antagonist=1'>Check antagonists</a>
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id='search_tr'>
|
||||
<td align='center'>
|
||||
<b>Search:</b> <input type='text' id='filter' value='' style='width:300px;'>
|
||||
"} + span_bold("Search:") + {" <input type='text' id='filter' value='' style='width:300px;'>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -290,7 +290,7 @@
|
||||
<a id='link[i]'
|
||||
onmouseover='expand("item[i]","[M_job]","[M_name]","[M_rname]","--unused--","[M_key]","[M.lastKnownIP]",[is_antagonist],"\ref[M]")'
|
||||
>
|
||||
<span id='search[i]'><b>[M_name] - [M_rname] - [M_key] ([M_job])</b></span>
|
||||
<span id='search[i]'>"} + span_bold("[M_name] - [M_rname] - [M_key] ([M_job])") + {"</span>
|
||||
</a>
|
||||
<br><span id='item[i]'></span>
|
||||
</td>
|
||||
@@ -321,7 +321,7 @@
|
||||
return
|
||||
|
||||
var/dat = "<html><head><title>Player Menu</title></head>"
|
||||
dat += "<body><table border=1 cellspacing=5><B><tr><th>Name</th><th>Real Name</th><th>Assigned Job</th><th>Key</th><th>Options</th><th>PM</th><th>Traitor?</th></tr></B>"
|
||||
dat += "<body><table border=1 cellspacing=5>" + span_bold("<tr><th>Name</th><th>Real Name</th><th>Assigned Job</th><th>Key</th><th>Options</th><th>PM</th><th>Traitor?</th></tr>")
|
||||
//add <th>IP:</th> to this if wanting to add back in IP checking
|
||||
//add <td>(IP: [M.lastKnownIP])</td> if you want to know their ip to the lists below
|
||||
var/list/mobs = sortmobs()
|
||||
@@ -368,9 +368,9 @@
|
||||
if(0)
|
||||
dat += {"<td align=center><A href='byond://?src=\ref[src];[HrefToken()];traitor=\ref[M]'>Traitor?</A></td>"}
|
||||
if(1)
|
||||
dat += {"<td align=center><A href='byond://?src=\ref[src];[HrefToken()];traitor=\ref[M]'><font color=red>Traitor?</font></A></td>"}
|
||||
dat += {"<td align=center><A href='byond://?src=\ref[src];[HrefToken()];traitor=\ref[M]'>"} + span_red("Traitor?") + {"</A></td>"}
|
||||
if(2)
|
||||
dat += {"<td align=center><A href='byond://?src=\ref[src];[HrefToken()];traitor=\ref[M]'><font color=red><b>Traitor?</b></font></A></td>"}
|
||||
dat += {"<td align=center><A href='byond://?src=\ref[src];[HrefToken()];traitor=\ref[M]'>"} + span_red(span_bold("Traitor?")) + {"</A></td>"}
|
||||
else
|
||||
dat += {"<td align=center> N/A </td>"}
|
||||
|
||||
@@ -384,9 +384,9 @@
|
||||
|
||||
/datum/admins/proc/check_antagonists()
|
||||
if (ticker && ticker.current_state >= GAME_STATE_PLAYING)
|
||||
var/dat = "<html><head><title>Round Status</title></head><body><h1><B>Round Status</B></h1>"
|
||||
dat += "Current Game Mode: <B>[ticker.mode.name]</B><BR>"
|
||||
dat += "Round Duration: <B>[roundduration2text()]</B><BR>"
|
||||
var/dat = "<html><head><title>Round Status</title></head><body><h1>" + span_bold("Round Status") + "</h1>"
|
||||
dat += "Current Game Mode: " + span_bold("[ticker.mode.name]") + "<BR>"
|
||||
dat += "Round Duration: " + span_bold("[roundduration2text()]") + "<BR>"
|
||||
dat += span_bold("Emergency shuttle") + "<BR>"
|
||||
if (!emergency_shuttle.online())
|
||||
dat += "<a href='byond://?src=\ref[src];[HrefToken()];call_shuttle=1'>Call Shuttle</a><br>"
|
||||
|
||||
+13
-13
@@ -426,7 +426,7 @@
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'><font color=red>[replacetext(job.title, " ", " ")]</font></a></td>"
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>" + span_red("[replacetext(job.title, " ", " ")]") + "</a></td>"
|
||||
else
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", " ")]</a></td>"
|
||||
|
||||
@@ -446,7 +446,7 @@
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'><font color=red>[replacetext(job.title, " ", " ")]</font></a></td>"
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>" + span_red("[replacetext(job.title, " ", " ")]") + "</a></td>"
|
||||
else
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", " ")]</a></td>"
|
||||
|
||||
@@ -466,7 +466,7 @@
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'><font color=red>[replacetext(job.title, " ", " ")]</font></a></td>"
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>" + span_red("[replacetext(job.title, " ", " ")]") + "</a></td>"
|
||||
else
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", " ")]</a></td>"
|
||||
|
||||
@@ -486,7 +486,7 @@
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'><font color=red>[replacetext(job.title, " ", " ")]</font></a></td>"
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>" + span_red("[replacetext(job.title, " ", " ")]") + "</a></td>"
|
||||
else
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", " ")]</a></td>"
|
||||
|
||||
@@ -506,7 +506,7 @@
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'><font color=red>[replacetext(job.title, " ", " ")]</font></a></td>"
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>" + span_red("[replacetext(job.title, " ", " ")]") + "</a></td>"
|
||||
else
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", " ")]</a></td>"
|
||||
|
||||
@@ -526,7 +526,7 @@
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'><font color=red>[replacetext(job.title, " ", " ")]</font></a></td>"
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>" + span_red("[replacetext(job.title, " ", " ")]") + "</a></td>"
|
||||
else
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", " ")]</a></td>"
|
||||
|
||||
@@ -547,7 +547,7 @@
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'><font color=red>[replacetext(job.title, " ", " ")]</font></a></td>"
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>" + span_red("[replacetext(job.title, " ", " ")]") + "</a></td>"
|
||||
else
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", " ")]</a></td>"
|
||||
|
||||
@@ -571,7 +571,7 @@
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'><font color=red>[replacetext(job.title, " ", " ")]</font></a></td>"
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>" + span_red("[replacetext(job.title, " ", " ")]") + "</a></td>"
|
||||
else
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", " ")]</a></td>"
|
||||
|
||||
@@ -592,7 +592,7 @@
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'><font color=red>[replacetext(job.title, " ", " ")]</font></a></td>"
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>" + span_red("[replacetext(job.title, " ", " ")]") + "</a></td>"
|
||||
else
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", " ")]</a></td>"
|
||||
|
||||
@@ -601,7 +601,7 @@
|
||||
counter = 0
|
||||
|
||||
if(jobban_isbanned(M, JOB_INTERNAL_AFFAIRS_AGENT))
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3="+JOB_INTERNAL_AFFAIRS_AGENT+";jobban4=\ref[M]'><font color=red>"+JOB_INTERNAL_AFFAIRS_AGENT+"</font></a></td>"
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3="+JOB_INTERNAL_AFFAIRS_AGENT+";jobban4=\ref[M]'>" + span_red(JOB_INTERNAL_AFFAIRS_AGENT) + "</a></td>"
|
||||
else
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3="+JOB_INTERNAL_AFFAIRS_AGENT+";jobban4=\ref[M]'>"+JOB_INTERNAL_AFFAIRS_AGENT+"</a></td>"
|
||||
|
||||
@@ -617,7 +617,7 @@
|
||||
if(!job) continue
|
||||
|
||||
if(jobban_isbanned(M, job.title))
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'><font color=red>[replacetext(job.title, " ", " ")]</font></a></td>"
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>" + span_red("[replacetext(job.title, " ", " ")]") + "</a></td>"
|
||||
else
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", " ")]</a></td>"
|
||||
|
||||
@@ -640,7 +640,7 @@
|
||||
continue
|
||||
|
||||
if(jobban_isbanned(M, "[antag.bantype]") || isbanned_dept)
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[antag.bantype];jobban4=\ref[M]'><font color=red>[replacetext("[antag.role_text]", " ", " ")]</font></a></td>"
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[antag.bantype];jobban4=\ref[M]'>" + span_red("[replacetext("[antag.role_text]", " ", " ")]") + "</a></td>"
|
||||
else
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[antag.bantype];jobban4=\ref[M]'>[replacetext("[antag.role_text]", " ", " ")]</a></td>"
|
||||
|
||||
@@ -657,7 +657,7 @@
|
||||
jobs += "<tr bgcolor='ccccff'><th colspan='[length(misc_roles)]'>Other Roles</th></tr><tr align='center'>"
|
||||
for(var/entry in misc_roles)
|
||||
if(jobban_isbanned(M, entry))
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[entry];jobban4=\ref[M]'><font color=red>[entry]</font></a></td>"
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[entry];jobban4=\ref[M]'>" + span_red("[entry]") + "</a></td>"
|
||||
else
|
||||
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[entry];jobban4=\ref[M]'>[entry]</a></td>"
|
||||
|
||||
|
||||
@@ -675,19 +675,19 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null
|
||||
var/turf/T = A.loc
|
||||
var/area/a
|
||||
if(istype(T))
|
||||
text_list += " <font color='gray'>at</font> [T] [ADMIN_COORDJMP(T)]"
|
||||
text_list += span_gray(" at") + " [T] [ADMIN_COORDJMP(T)]"
|
||||
a = T.loc
|
||||
else
|
||||
var/turf/final = get_turf(T) //Recursive, hopefully?
|
||||
if(istype(final))
|
||||
text_list += " <font color='gray'>at</font> [final] [ADMIN_COORDJMP(final)]"
|
||||
text_list += span_gray(" at") + " [final] [ADMIN_COORDJMP(final)]"
|
||||
a = final.loc
|
||||
else
|
||||
text_list += " <font color='gray'>at</font> nonexistant location"
|
||||
text_list += span_gray(" at") + " nonexistant location"
|
||||
if(a)
|
||||
text_list += " <font color='gray'>in</font> area [a]"
|
||||
text_list += span_gray(" in") + " area [a]"
|
||||
if(T.loc != a)
|
||||
text_list += " <font color='gray'>inside</font> [T]"
|
||||
text_list += span_gray(" inside") + " [T]"
|
||||
text_list += "<br>"
|
||||
else if(islist(object))
|
||||
var/list/L = object
|
||||
|
||||
@@ -179,13 +179,13 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
_interactions = list()
|
||||
|
||||
if(is_bwoink)
|
||||
AddInteraction("<font color='blue'>[key_name_admin(usr)] PM'd [LinkedReplyName()]</font>")
|
||||
AddInteraction(span_blue("[key_name_admin(usr)] PM'd [LinkedReplyName()]"))
|
||||
message_admins(span_blue("Ticket [TicketHref("#[id]")] created"))
|
||||
else
|
||||
MessageNoRecipient(parsed_message)
|
||||
send2adminchat() //VOREStation Add
|
||||
//show it to the person adminhelping too
|
||||
to_chat(C, span_admin_pm_notice("PM to-<b>Admins</b>: [name]"))
|
||||
to_chat(C, span_admin_pm_notice("PM to-" + span_bold("Admins") + ": [name]"))
|
||||
|
||||
//send it to irc if nobody is on and tell us how many were on
|
||||
var/admin_number_present = send2irc_adminless_only(initiator_ckey, name)
|
||||
@@ -253,7 +253,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
var/ref_src = "\ref[src]"
|
||||
var/chat_msg = span_admin_pm_notice(span_adminhelp("Ticket [TicketHref("#[id]", ref_src)]") + span_bold(": [LinkedReplyName(ref_src)] [FullMonty(ref_src)]:") + msg)
|
||||
|
||||
AddInteraction("<font color='red'>[LinkedReplyName(ref_src)]: [msg]</font>")
|
||||
AddInteraction(span_red("[LinkedReplyName(ref_src)]: [msg]"))
|
||||
//send this msg to all admins
|
||||
|
||||
for(var/client/X in GLOB.admins)
|
||||
@@ -288,7 +288,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
if(initiator)
|
||||
initiator.current_ticket = src
|
||||
|
||||
AddInteraction("<font color='purple'>Reopened by [key_name_admin(usr)]</font>")
|
||||
AddInteraction(span_purple("Reopened by [key_name_admin(usr)]"))
|
||||
if(initiator)
|
||||
to_chat(initiator, span_filter_adminlog("[span_purple("Ticket [TicketHref("#[id]")] was reopened by [key_name(usr,FALSE,FALSE)].")]"))
|
||||
var/msg = span_adminhelp("Ticket [TicketHref("#[id]")] reopened by [key_name_admin(usr)].")
|
||||
@@ -322,7 +322,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
RemoveActive()
|
||||
state = AHELP_CLOSED
|
||||
GLOB.ahelp_tickets.ListInsert(src)
|
||||
AddInteraction(span_filter_adminlog("<font color='red'>Closed by [key_name_admin(usr)].</font>"))
|
||||
AddInteraction(span_filter_adminlog(span_red("Closed by [key_name_admin(usr)].")))
|
||||
if(initiator)
|
||||
to_chat(initiator, span_filter_adminlog("[span_red("Ticket [TicketHref("#[id]")] was closed by [key_name(usr,FALSE,FALSE)].")]"))
|
||||
if(!silent)
|
||||
@@ -347,7 +347,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
state = AHELP_RESOLVED
|
||||
GLOB.ahelp_tickets.ListInsert(src)
|
||||
|
||||
AddInteraction(span_filter_adminlog("<font color='green'>Resolved by [key_name_admin(usr)].</font>"))
|
||||
AddInteraction(span_filter_adminlog(span_green("Resolved by [key_name_admin(usr)].")))
|
||||
if(initiator)
|
||||
to_chat(initiator, span_filter_adminlog("[span_green("Ticket [TicketHref("#[id]")] was marked resolved by [key_name(usr,FALSE,FALSE)].")]"))
|
||||
if(!silent)
|
||||
@@ -451,17 +451,17 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
var/list/dat = list("<html><head><title>Ticket #[id]</title></head>")
|
||||
var/ref_src = "\ref[src]"
|
||||
dat += "<h4>Admin Help Ticket #[id]: [LinkedReplyName(ref_src)]</h4>"
|
||||
dat += "<b>State: "
|
||||
dat += span_bold("State: ")
|
||||
switch(state)
|
||||
if(AHELP_ACTIVE)
|
||||
dat += "<font color='red'>OPEN</font>"
|
||||
dat += span_red(span_bold("OPEN"))
|
||||
if(AHELP_RESOLVED)
|
||||
dat += "<font color='green'>RESOLVED</font>"
|
||||
dat += span_green(span_bold("RESOLVED"))
|
||||
if(AHELP_CLOSED)
|
||||
dat += "CLOSED"
|
||||
dat += span_bold("CLOSED")
|
||||
else
|
||||
dat += "UNKNOWN"
|
||||
dat += "</b>[GLOB.TAB][TicketHref("Refresh", ref_src)][GLOB.TAB][TicketHref("Re-Title", ref_src, "retitle")]"
|
||||
dat += span_bold("UNKNOWN")
|
||||
dat += "[GLOB.TAB][TicketHref("Refresh", ref_src)][GLOB.TAB][TicketHref("Re-Title", ref_src, "retitle")]"
|
||||
if(state != AHELP_ACTIVE)
|
||||
dat += "[GLOB.TAB][TicketHref("Reopen", ref_src, "reopen")]"
|
||||
dat += "<br><br>Opened at: [gameTimestamp(wtime = opened_at)] (Approx [(world.time - opened_at) / 600] minutes ago)"
|
||||
@@ -472,7 +472,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
dat += span_bold("Actions:") + " [FullMonty(ref_src)]<br>"
|
||||
else
|
||||
dat += span_bold("DISCONNECTED") + "[GLOB.TAB][ClosureLinks(ref_src)]<br>"
|
||||
dat += "<br><b>Log:</b><br><br>"
|
||||
dat += "<br>" + span_bold("Log:") + "<br><br>"
|
||||
for(var/I in _interactions)
|
||||
dat += "[I]<br>"
|
||||
dat += "</html>"
|
||||
@@ -622,7 +622,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
if(input == "Yes")
|
||||
if(current_ticket)
|
||||
current_ticket.MessageNoRecipient(msg)
|
||||
to_chat(usr, span_admin_pm_notice("PM to-<b>Admins</b>: [msg]"))
|
||||
to_chat(usr, span_admin_pm_notice("PM to-" + span_bold("Admins") + ": [msg]"))
|
||||
return
|
||||
else
|
||||
to_chat(usr, span_warning("Ticket not found, creating new one..."))
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
if( fexists(path) )
|
||||
src << run( file(path) )
|
||||
else
|
||||
to_chat(src, "<font color='red'>Error: view_atk_log(): File not found/Invalid path([path]).</font>")
|
||||
to_chat(src, span_red("<Error: view_atk_log(): File not found/Invalid path([path])."))
|
||||
return
|
||||
usr << run( file(path) )
|
||||
feedback_add_details("admin_verb","SSAL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -77,18 +77,18 @@ GLOBAL_LIST_BOILERPLATE(all_debugging_effects, /obj/effect/debugging)
|
||||
for(var/obj/machinery/camera/C in cameranet.cameras)
|
||||
CL += C
|
||||
|
||||
var/output = {"<B>CAMERA ANNOMALITIES REPORT</B><HR>
|
||||
<B>The following annomalities have been detected. The ones in red need immediate attention: Some of those in black may be intentional.</B><BR><ul>"}
|
||||
var/output = {""} + span_bold("CAMERA ANNOMALITIES REPORT") + {"<HR>
|
||||
"} + span_bold("The following annomalities have been detected. The ones in red need immediate attention: Some of those in black may be intentional.") + {"<BR><ul>"}
|
||||
|
||||
for(var/obj/machinery/camera/C1 in CL)
|
||||
for(var/obj/machinery/camera/C2 in CL)
|
||||
if(C1 != C2)
|
||||
if(C1.c_tag == C2.c_tag)
|
||||
output += "<li><font color='red'>c_tag match for sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) and \[[C2.x], [C2.y], [C2.z]\] ([C2.loc.loc]) - c_tag is [C1.c_tag]</font></li>"
|
||||
output += "<li>" + span_red("c_tag match for sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) and \[[C2.x], [C2.y], [C2.z]\] ([C2.loc.loc]) - c_tag is [C1.c_tag]") + "</li>"
|
||||
if(C1.loc == C2.loc && C1.dir == C2.dir && C1.pixel_x == C2.pixel_x && C1.pixel_y == C2.pixel_y)
|
||||
output += "<li><font color='red'>FULLY overlapping sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Networks: [C1.network] and [C2.network]</font></li>"
|
||||
output += "<li>" + span_red("FULLY overlapping sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Networks: [C1.network] and [C2.network]") + "</li>"
|
||||
if(C1.loc == C2.loc)
|
||||
output += "<li>overlapping sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Networks: [C1.network] and [C2.network]</font></li>"
|
||||
output += "<li>overlapping sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Networks: [C1.network] and [C2.network]</li>"
|
||||
var/turf/T = get_step(C1,turn(C1.dir,180))
|
||||
if(!T || !isturf(T) || !T.density )
|
||||
if(!(locate(/obj/structure/grille,T)))
|
||||
@@ -98,7 +98,7 @@ GLOBAL_LIST_BOILERPLATE(all_debugging_effects, /obj/effect/debugging)
|
||||
window_check = 1
|
||||
break
|
||||
if(!window_check)
|
||||
output += "<li><font color='red'>Camera not connected to wall at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Network: [C1.network]</color></li>"
|
||||
output += "<li>" + span_red("Camera not connected to wall at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Network: [C1.network]") + "</li>"
|
||||
|
||||
output += "</ul>"
|
||||
usr << browse("<html>[output]</html>","window=airreport;size=1000x500")
|
||||
|
||||
@@ -819,11 +819,11 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
return
|
||||
if(M)
|
||||
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 1, mins)
|
||||
to_chat(M, "<font color='red'><BIG><B>You have been banned by [usr.client.ckey].\nReason: [reason].</B></BIG></font>")
|
||||
to_chat(M, "<font color='red'>This is a temporary ban, it will be removed in [mins] minutes</font>.")
|
||||
to_chat(M, "<font color='red'>To try to resolve this matter head to http://ss13.donglabs.com/forum/</font>")
|
||||
to_chat(M, span_red(span_large(span_bold("You have been banned by [usr.client.ckey].\nReason: [reason]."))))
|
||||
to_chat(M, span_red("This is a temporary ban, it will be removed in [mins] minutes."))
|
||||
to_chat(M, span_red("To try to resolve this matter head to http://ss13.donglabs.com/forum/"))
|
||||
log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
|
||||
message_admins("<font color='blue'>[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.</font>")
|
||||
message_admins(span_blue("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes."))
|
||||
world.Export("http://216.38.134.132/adminlog.php?type=ban&key=[usr.client.key]&key2=[M.key]&msg=[html_decode(reason)]&time=[mins]&server=[replacetext(config.server_name, "#", "")]")
|
||||
del(M.client)
|
||||
qdel(M)
|
||||
@@ -834,11 +834,11 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if(!reason)
|
||||
return
|
||||
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0)
|
||||
to_chat(M, "<font color='red'><BIG><B>You have been banned by [usr.client.ckey].\nReason: [reason].</B></BIG></font>")
|
||||
to_chat(M, "<font color='red'>This is a permanent ban.</font>")
|
||||
to_chat(M, "<font color='red'>To try to resolve this matter head to http://ss13.donglabs.com/forum/</font>")
|
||||
to_chat(M, span_red(span_large(span_bold("You have been banned by [usr.client.ckey].\nReason: [reason]."))))
|
||||
to_chat(M, span_red("This is a permanent ban."))
|
||||
to_chat(M, span_red("To try to resolve this matter head to http://ss13.donglabs.com/forum/"))
|
||||
log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
|
||||
message_admins("<font color='blue'>[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.</font>")
|
||||
message_admins(span_blue("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban."))
|
||||
world.Export("http://216.38.134.132/adminlog.php?type=ban&key=[usr.client.key]&key2=[M.key]&msg=[html_decode(reason)]&time=perma&server=[replacetext(config.server_name, "#", "")]")
|
||||
del(M.client)
|
||||
qdel(M)
|
||||
@@ -909,7 +909,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
mob.set_viewsize(view)
|
||||
|
||||
log_admin("[key_name(usr)] changed their view range to [view].")
|
||||
message_admins("<font color='blue'>[key_name_admin(usr)] changed their view range to [view].</font>", 1)
|
||||
message_admins(span_blue("[key_name_admin(usr)] changed their view range to [view]."), 1)
|
||||
|
||||
feedback_add_details("admin_verb","CVRA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
@@ -6,27 +6,25 @@
|
||||
|
||||
/atom/get_view_variables_header()
|
||||
return {"
|
||||
<a href='byond://?_src_=vars;[HrefToken()];datumedit=\ref[src];varnameedit=name'><b>[src]</b></a>
|
||||
<br><font size='1'>
|
||||
<a href='byond://?_src_=vars;[HrefToken()];rotatedatum=\ref[src];rotatedir=left'><<</a>
|
||||
<a href='byond://?_src_=vars;[HrefToken()];datumedit=\ref[src];varnameedit=dir'>[dir2text(dir)]</a>
|
||||
<a href='byond://?_src_=vars;[HrefToken()];rotatedatum=\ref[src];rotatedir=right'>>></a>
|
||||
</font>
|
||||
<a href='byond://?_src_=vars;[HrefToken()];datumedit=\ref[src];varnameedit=name'>"} + span_bold("[src]") + {"</a>
|
||||
<br>
|
||||
"} + span_small("<a href='byond://?_src_=vars;[HrefToken()];rotatedatum=\ref[src];rotatedir=left'><<</a>") + {"
|
||||
"} + span_small("<a href='byond://?_src_=vars;[HrefToken()];datumedit=\ref[src];varnameedit=dir'>[dir2text(dir)]</a>") + {"
|
||||
"} + span_small("<a href='byond://?_src_=vars;[HrefToken()];rotatedatum=\ref[src];rotatedir=right'>>></a>") + {"
|
||||
"}
|
||||
|
||||
/mob/living/get_view_variables_header()
|
||||
return {"
|
||||
<a href='byond://?_src_=vars;[HrefToken()];rename=\ref[src]'><b>[src]</b></a><font size='1'>
|
||||
<br><a href='byond://?_src_=vars;[HrefToken()];rotatedatum=\ref[src];rotatedir=left'><<</a> <a href='byond://?_src_=vars;[HrefToken()];datumedit=\ref[src];varnameedit=dir'>[dir2text(dir)]</a> <a href='byond://?_src_=vars;[HrefToken()];rotatedatum=\ref[src];rotatedir=right'>>></a>
|
||||
<br><a href='byond://?_src_=vars;[HrefToken()];datumedit=\ref[src];varnameedit=ckey'>[ckey ? ckey : "No ckey"]</a> / <a href='byond://?_src_=vars;[HrefToken()];datumedit=\ref[src];varnameedit=real_name'>[real_name ? real_name : "No real name"]</a>
|
||||
<a href='byond://?_src_=vars;[HrefToken()];rename=\ref[src]'>"} + span_bold("[src]") + {"</a>
|
||||
"} + span_small("<br><a href='byond://?_src_=vars;[HrefToken()];rotatedatum=\ref[src];rotatedir=left'><<</a> <a href='byond://?_src_=vars;[HrefToken()];datumedit=\ref[src];varnameedit=dir'>[dir2text(dir)]</a> <a href='byond://?_src_=vars;[HrefToken()];rotatedatum=\ref[src];rotatedir=right'>>></a>") + {"
|
||||
"} + span_small("<br><a href='byond://?_src_=vars;[HrefToken()];datumedit=\ref[src];varnameedit=ckey'>[ckey ? ckey : "No ckey"]</a> / <a href='byond://?_src_=vars;[HrefToken()];datumedit=\ref[src];varnameedit=real_name'>[real_name ? real_name : "No real name"]</a>") + {"
|
||||
<br>
|
||||
BRUTE:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=brute'>[getBruteLoss()]</a>
|
||||
FIRE:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=fire'>[getFireLoss()]</a>
|
||||
TOXIN:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=toxin'>[getToxLoss()]</a>
|
||||
OXY:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=oxygen'>[getOxyLoss()]</a>
|
||||
CLONE:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=clone'>[getCloneLoss()]</a>
|
||||
BRAIN:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=brain'>[getBrainLoss()]</a>
|
||||
</font>
|
||||
"} + span_small("BRUTE:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=brute'>[getBruteLoss()]</a>") + {"
|
||||
"} + span_small("FIRE:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=fire'>[getFireLoss()]</a>") + {"
|
||||
"} + span_small("TOXIN:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=toxin'>[getToxLoss()]</a>") + {"
|
||||
"} + span_small("OXY:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=oxygen'>[getOxyLoss()]</a>") + {"
|
||||
"} + span_small("CLONE:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=clone'>[getCloneLoss()]</a>") + {"
|
||||
"} + span_small("BRAIN:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=brain'>[getBrainLoss()]</a>") + {"
|
||||
"}
|
||||
|
||||
//This entire file needs to be removed eventually
|
||||
|
||||
@@ -225,7 +225,7 @@
|
||||
</tr>
|
||||
</table>
|
||||
<div align='center'>
|
||||
<b><font size='1'>[formatted_type]</font></b>
|
||||
"} + span_bold(span_small("[formatted_type]")) + {"
|
||||
<span id='marked'>[marked]</span>
|
||||
<span id='varedited'>[varedited_line]</span>
|
||||
<span id='deleted'>[deleted_line]</span>
|
||||
@@ -249,11 +249,9 @@
|
||||
</table>
|
||||
</div>
|
||||
<hr>
|
||||
<font size='1'>
|
||||
<b>E</b> - Edit, tries to determine the variable type by itself.<br>
|
||||
<b>C</b> - Change, asks you for the var type first.<br>
|
||||
<b>M</b> - Mass modify: changes this variable for all objects of this type.<br>
|
||||
</font>
|
||||
"} + span_small(span_bold("E") + " - Edit, tries to determine the variable type by itself.<br>") + {"
|
||||
"} + span_small(span_bold("C") + " - Change, asks you for the var type first.<br>") + {"
|
||||
"} + span_small(span_bold("M") + " - Mass modify: changes this variable for all objects of this type.<br>") + {"
|
||||
<hr>
|
||||
<table width='100%'>
|
||||
<tr>
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
//Helps prevent multiple files being uploaded at once. Or right after eachother.
|
||||
var/time_to_wait = fileaccess_timer - world.time
|
||||
if(time_to_wait > 0)
|
||||
to_chat(src, "<font color='red'>Error: AllowUpload(): Spam prevention. Please wait [round(time_to_wait/10)] seconds.</font>")
|
||||
to_chat(src, span_red("Error: AllowUpload(): Spam prevention. Please wait [round(time_to_wait/10)] seconds."))
|
||||
return 0
|
||||
fileaccess_timer = world.time + FTPDELAY */
|
||||
return 1
|
||||
@@ -662,7 +662,7 @@
|
||||
return TRUE
|
||||
|
||||
/client/proc/disconnect_with_message(var/message = "You have been intentionally disconnected by the server.<br>This may be for security or administrative reasons.")
|
||||
message = "<head><title>You Have Been Disconnected</title></head><body><hr><center><b>[message]</b></center><hr><br>If you feel this is in error, you can contact an administrator out-of-game (for example, on Discord).</body>"
|
||||
message = "<head><title>You Have Been Disconnected</title></head><body><hr><center>" + span_bold("[message]") + "</center><hr><br>If you feel this is in error, you can contact an administrator out-of-game (for example, on Discord).</body>"
|
||||
window_flash(src)
|
||||
src << browse("<html>[message]</html>","window=dropmessage;size=480x360;can_close=1")
|
||||
qdel(src)
|
||||
|
||||
@@ -50,7 +50,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
||||
for (var/i in special_roles)
|
||||
if(special_roles[i]) //if mode is available on the server
|
||||
if(jobban_isbanned(user, i) || (i == "positronic brain" && jobban_isbanned(user, JOB_AI) && jobban_isbanned(user, JOB_CYBORG)) || (i == "pAI candidate" && jobban_isbanned(user, JOB_PAI)))
|
||||
. += span_bold("Be [i]:") + " <font color=red><b> \[BANNED]</b></font><br>"
|
||||
. += span_bold("Be [i]:") + " " + span_red(span_bold(" \[BANNED]")) + "<br>"
|
||||
else
|
||||
. += span_bold("Be [i]:") + " <a href='byond://?src=\ref[src];be_special=[n]'>" + span_bold("[pref.be_special&(1<<n) ? "Yes" : "No"]") + "</a><br>"
|
||||
n++
|
||||
|
||||
@@ -270,7 +270,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
. = list()
|
||||
|
||||
var/datum/species/mob_species = GLOB.all_species[pref.species]
|
||||
. += "<table><tr style='vertical-align:top'><td><b>Body</b> "
|
||||
. += "<table><tr style='vertical-align:top'><td>" + span_bold("Body") + " "
|
||||
. += "(<a title='Randomize' href='byond://?src=\ref[src];random=1'>®</A>)"
|
||||
. += "<br>"
|
||||
. += "Species: <a href='byond://?src=\ref[src];show_species=1'>[pref.species]</a><br>"
|
||||
@@ -390,10 +390,10 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
. += "<table>"
|
||||
for(var/entry in pref.body_descriptors)
|
||||
var/datum/mob_descriptor/descriptor = mob_species.descriptors[entry]
|
||||
. += "<tr><td><b>[capitalize(descriptor.chargen_label)]:</b></td><td>[descriptor.get_standalone_value_descriptor(pref.body_descriptors[entry])]</td><td><a href='byond://?src=\ref[src];change_descriptor=[entry]'>Change</a><br/></td></tr>"
|
||||
. += "<tr><td>" + span_bold("[capitalize(descriptor.chargen_label)]:") + "</td><td>[descriptor.get_standalone_value_descriptor(pref.body_descriptors[entry])]</td><td><a href='byond://?src=\ref[src];change_descriptor=[entry]'>Change</a><br/></td></tr>"
|
||||
. += "</table><br>"
|
||||
|
||||
. += "</td><td><b>Preview</b><br>"
|
||||
. += "</td><td>" + span_bold("Preview") + "<br>"
|
||||
. += "<br><a href='byond://?src=\ref[src];cycle_bg=1'>Cycle background</a>"
|
||||
. += "<br><a href='byond://?src=\ref[src];toggle_preview_value=[EQUIP_PREVIEW_LOADOUT]'>[pref.equip_preview_mob & EQUIP_PREVIEW_LOADOUT ? "Hide loadout" : "Show loadout"]</a>"
|
||||
. += "<br><a href='byond://?src=\ref[src];toggle_preview_value=[EQUIP_PREVIEW_JOB]'>[pref.equip_preview_mob & EQUIP_PREVIEW_JOB ? "Hide job gear" : "Show job gear"]</a>"
|
||||
@@ -409,21 +409,21 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
. += "<a href='byond://?src=\ref[src];grad_color=1'>Change Color</a> [color_square(hex = pref.read_preference(/datum/preference/color/human/grad_color))] "
|
||||
. += " Style: <a href='byond://?src=\ref[src];grad_style_left=[pref.grad_style]'><</a> <a href='byond://?src=\ref[src];grad_style_right=[pref.grad_style]''>></a> <a href='byond://?src=\ref[src];grad_style=1'>[pref.grad_style]</a><br>"
|
||||
|
||||
. += "<br><b>Facial</b><br>"
|
||||
. += "<br>" + span_bold("Facial") + "<br>"
|
||||
if(has_flag(mob_species, HAS_HAIR_COLOR))
|
||||
. += "<a href='byond://?src=\ref[src];facial_color=1'>Change Color</a> [color_square(hex = pref.read_preference(/datum/preference/color/human/facial_color))] "
|
||||
. += " Style: <a href='byond://?src=\ref[src];facial_style_left=[pref.f_style]'><</a> <a href='byond://?src=\ref[src];facial_style_right=[pref.f_style]''>></a> <a href='byond://?src=\ref[src];facial_style=1'>[pref.f_style]</a><br>" //Same as above with the extra > & < characters
|
||||
|
||||
if(has_flag(mob_species, HAS_EYE_COLOR))
|
||||
. += "<br><b>Eyes</b><br>"
|
||||
. += "<br>" + span_bold("Eyes") + "<br>"
|
||||
. += "<a href='byond://?src=\ref[src];eye_color=1'>Change Color</a> [color_square(hex = pref.read_preference(/datum/preference/color/human/eyes_color))]<br>"
|
||||
|
||||
if(has_flag(mob_species, HAS_SKIN_COLOR))
|
||||
. += "<br><b>Body Color</b><br>"
|
||||
. += "<br>" + span_bold("Body Color") + "<br>"
|
||||
. += "<a href='byond://?src=\ref[src];skin_color=1'>Change Color</a> [color_square(hex = pref.read_preference(/datum/preference/color/human/skin_color))]<br>"
|
||||
|
||||
if(mob_species.digi_allowed)
|
||||
. += "<br><b>Digitigrade?:</b> <a href='byond://?src=\ref[src];digitigrade=1'><b>[pref.digitigrade ? "Yes" : "No"]</b></a><br>"
|
||||
. += "<br>" + span_bold("Digitigrade?:") + " <a href='byond://?src=\ref[src];digitigrade=1'>" + span_bold("[pref.digitigrade ? "Yes" : "No"]") + "</a><br>"
|
||||
|
||||
. += "<h2>Genetics Settings</h2>"
|
||||
|
||||
@@ -485,8 +485,8 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
|
||||
. += "</table>"
|
||||
. += "<br>"
|
||||
. += span_bold("Allow Synth markings:") + " <a href='byond://?src=\ref[src];synth_markings=1'><b>[pref.synth_markings ? "Yes" : "No"]</b></a><br>"
|
||||
. += span_bold("Allow Synth color:") + " <a href='byond://?src=\ref[src];synth_color=1'><b>[pref.synth_color ? "Yes" : "No"]</b></a><br>"
|
||||
. += span_bold("Allow Synth markings:") + " <a href='byond://?src=\ref[src];synth_markings=1'>" + span_bold("[pref.synth_markings ? "Yes" : "No"]") + "</a><br>"
|
||||
. += span_bold("Allow Synth color:") + " <a href='byond://?src=\ref[src];synth_color=1'>" + span_bold("[pref.synth_color ? "Yes" : "No"]") + "</a><br>"
|
||||
if(pref.synth_color)
|
||||
. += "<a href='byond://?src=\ref[src];synth2_color=1'>Change Color</a> [color_square(hex = pref.read_preference(/datum/preference/color/human/synth_color))]"
|
||||
|
||||
@@ -1176,37 +1176,37 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
if(current_species.spawn_flags & SPECIES_CAN_JOIN)
|
||||
switch(current_species.rarity_value)
|
||||
if(1 to 2)
|
||||
dat += "</br><b>Often present on human stations.</b>"
|
||||
dat += "</br>" + span_bold("Often present on human stations.")
|
||||
if(3 to 4)
|
||||
dat += "</br><b>Rarely present on human stations.</b>"
|
||||
dat += "</br>" + span_bold("Rarely present on human stations.")
|
||||
if(5)
|
||||
dat += "</br><b>Unheard of on human stations.</b>"
|
||||
dat += "</br>" + span_bold("Unheard of on human stations.")
|
||||
else
|
||||
dat += "</br><b>May be present on human stations.</b>"
|
||||
dat += "</br>" + span_bold("May be present on human stations.")
|
||||
if(current_species.spawn_flags & SPECIES_IS_WHITELISTED)
|
||||
dat += "</br><b>Whitelist restricted.</b>"
|
||||
dat += "</br>" + span_bold("Whitelist restricted.")
|
||||
if(!current_species.has_organ[O_HEART])
|
||||
dat += "</br><b>Does not have a circulatory system.</b>"
|
||||
dat += "</br>" + span_bold("Does not have a circulatory system.")
|
||||
if(!current_species.has_organ[O_LUNGS])
|
||||
dat += "</br><b>Does not have a respiratory system.</b>"
|
||||
dat += "</br>" + span_bold("Does not have a respiratory system.")
|
||||
if(current_species.flags & NO_SCAN)
|
||||
dat += "</br><b>Does not have DNA.</b>"
|
||||
dat += "</br>" + span_bold("Does not have DNA.")
|
||||
if(current_species.flags & NO_DEFIB)
|
||||
dat += "</br><b>Cannot be defibrillated.</b>"
|
||||
dat += "</br>" + span_bold("Cannot be defibrillated.")
|
||||
if(current_species.flags & NO_PAIN)
|
||||
dat += "</br><b>Does not feel pain.</b>"
|
||||
dat += "</br>" + span_bold("Does not feel pain.")
|
||||
if(current_species.flags & NO_SLIP)
|
||||
dat += "</br><b>Has excellent traction.</b>"
|
||||
dat += "</br>" + span_bold("Has excellent traction.")
|
||||
if(current_species.flags & NO_POISON)
|
||||
dat += "</br><b>Immune to most poisons.</b>"
|
||||
dat += "</br>" + span_bold("Immune to most poisons.")
|
||||
if(current_species.appearance_flags & HAS_SKIN_TONE)
|
||||
dat += "</br><b>Has a variety of skin tones.</b>"
|
||||
dat += "</br>" + span_bold("Has a variety of skin tones.")
|
||||
if(current_species.appearance_flags & HAS_SKIN_COLOR)
|
||||
dat += "</br><b>Has a variety of skin colours.</b>"
|
||||
dat += "</br>" + span_bold("Has a variety of skin colours.")
|
||||
if(current_species.appearance_flags & HAS_EYE_COLOR)
|
||||
dat += "</br><b>Has a variety of eye colours.</b>"
|
||||
dat += "</br>" + span_bold("Has a variety of eye colours.")
|
||||
if(current_species.flags & IS_PLANT)
|
||||
dat += "</br><b>Has a plantlike physiology.</b>"
|
||||
dat += "</br>" + span_bold("Has a plantlike physiology.")
|
||||
dat += "</small></td>"
|
||||
dat += "</tr>"
|
||||
dat += "</table><center><hr/>"
|
||||
@@ -1220,9 +1220,9 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
|
||||
if(restricted)
|
||||
if(restricted == 1)
|
||||
dat += "<font color='red'><b>You cannot play as this species.</br><small>If you wish to be whitelisted, you can make an application post on <a href='byond://?src=\ref[user];preference=open_whitelist_forum'>the forums</a>.</small></b></font></br>"
|
||||
dat += span_red(span_bold("You cannot play as this species.</br>" + span_small("If you wish to be whitelisted, you can make an application post on <a href='byond://?src=\ref[user];preference=open_whitelist_forum'>the forums</a>."))) + "</br>"
|
||||
else if(restricted == 2)
|
||||
dat += "<font color='red'><b>You cannot play as this species.</br><small>This species is not available for play as a station race..</small></b></font></br>"
|
||||
dat += span_red(span_bold("You cannot play as this species.</br>" + span_small("This species is not available for play as a station race.."))) + "</br>"
|
||||
if(!restricted || check_rights(R_ADMIN|R_EVENT, 0) || current_species.spawn_flags & SPECIES_WHITELIST_SELECTABLE)
|
||||
dat += "\[<a href='byond://?src=\ref[src];set_species=[pref.species_preview]'>select</a>\]"
|
||||
dat += "</center></body></html>"
|
||||
|
||||
@@ -137,7 +137,7 @@ var/list/gear_datums = list()
|
||||
fcolor = "#E67300"
|
||||
|
||||
. += "<table align = 'center' width = 100%>"
|
||||
. += "<tr><td colspan=3><center><a href='byond://?src=\ref[src];prev_slot=1'>\<\<</a><b><font color = '[fcolor]'>\[[pref.gear_slot]\]</font> </b><a href='byond://?src=\ref[src];next_slot=1'>\>\></a><b><font color = '[fcolor]'>[total_cost]/[MAX_GEAR_COST]</font> loadout points spent.</b> \[<a href='byond://?src=\ref[src];clear_loadout=1'>Clear Loadout</a>\]</center></td></tr>"
|
||||
. += "<tr><td colspan=3><center><a href='byond://?src=\ref[src];prev_slot=1'>\<\<</a>" + span_bold("<font color = '[fcolor]'>\[[pref.gear_slot]\]</font> ") + "<a href='byond://?src=\ref[src];next_slot=1'>\>\></a>" + span_bold("<font color = '[fcolor]'>[total_cost]/[MAX_GEAR_COST]</font> loadout points spent.") + " \[<a href='byond://?src=\ref[src];clear_loadout=1'>Clear Loadout</a>\]</center></td></tr>"
|
||||
|
||||
. += "<tr><td colspan=3><center><b>"
|
||||
var/firstcat = 1
|
||||
@@ -166,7 +166,7 @@ var/list/gear_datums = list()
|
||||
|
||||
var/datum/loadout_category/LC = loadout_categories[current_tab]
|
||||
. += "<tr><td colspan=3><hr></td></tr>"
|
||||
. += "<tr><td colspan=3><b><center>[LC.category]</center></b></td></tr>"
|
||||
. += "<tr><td colspan=3>" + span_bold("<center>[LC.category]</center>") + "</td></tr>"
|
||||
. += "<tr><td colspan=3><hr></td></tr>"
|
||||
for(var/gear_name in LC.gear)
|
||||
var/datum/gear/G = LC.gear[gear_name]
|
||||
@@ -178,7 +178,7 @@ var/list/gear_datums = list()
|
||||
var/ticked = (G.display_name in pref.gear)
|
||||
. += "<tr style='vertical-align:top;'><td width=25%><a style='white-space:normal;' [ticked ? "class='linkOn' " : ""]href='byond://?src=\ref[src];toggle_gear=[html_encode(G.display_name)]'>[G.display_name]</a></td>"
|
||||
. += "<td width = 10% style='vertical-align:top'>[G.cost]</td>"
|
||||
. += "<td><font size=2><i>[G.description]</i></font></td></tr>"
|
||||
. += "<td>" + span_normal(span_italics("[G.description]")) + "</td></tr>"
|
||||
if(G.show_roles && G.allowed_roles)
|
||||
. += "<td colspan=3> Restricted to: [list2text(G.allowed_roles,", ")]</td>"
|
||||
if(ticked)
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
lastJob = job
|
||||
. += "<a href='byond://?src=\ref[src];job_info=[rank]'>"
|
||||
if(jobban_isbanned(user, rank))
|
||||
. += "<del>[rank]</del></td></a><td><b> \[BANNED]</b></td></tr>"
|
||||
. += "<del>[rank]</del></td></a><td>" + span_bold(" \[BANNED]") + "</td></tr>"
|
||||
continue
|
||||
if(!job.player_old_enough(user.client))
|
||||
var/available_in_days = job.available_in_days(user.client)
|
||||
@@ -145,7 +145,7 @@
|
||||
. += "<del>[rank]</del></td></a><td> \[IN [round(available_in_hours, 0.1)] DEPTHOURS]</td></tr>"
|
||||
continue
|
||||
if(!is_job_whitelisted(user,rank))
|
||||
. += "<del>[rank]</del></td></a><td><b> \[WHITELIST ONLY]</b></td></tr>"
|
||||
. += "<del>[rank]</del></td></a><td>" + span_bold(" \[WHITELIST ONLY]") + "</td></tr>"
|
||||
continue
|
||||
//VOREStation Add End
|
||||
if(job.is_species_banned(user.client.prefs.species, user.client.prefs.organ_data["brain"]) == TRUE)
|
||||
@@ -155,7 +155,7 @@
|
||||
. += "<del>[rank]</del></td></a><td> \[MINIMUM CHARACTER AGE FOR SELECTED RACE/BRAIN TYPE: [job.get_min_age(user.client.prefs.species, user.client.prefs.organ_data["brain"])]\]</td></tr>"
|
||||
continue
|
||||
if((pref.job_civilian_low & ASSISTANT) && job.type != /datum/job/assistant)
|
||||
. += "<font color=grey>[rank]</font></a></td><td></td></tr>"
|
||||
. += span_gray("[rank]") + "</a></td><td></td></tr>"
|
||||
continue
|
||||
if((rank in SSjob.get_job_titles_in_department(DEPARTMENT_COMMAND) ) || (rank == JOB_AI))//Bold head jobs
|
||||
. += span_bold("[rank]") + "</a>"
|
||||
@@ -195,7 +195,7 @@
|
||||
if(pref.job_civilian_low & ASSISTANT)
|
||||
. += " <font color=55cc55>\[Yes]</font>"
|
||||
else
|
||||
. += " <font color=black>\[No]</font>"
|
||||
. += " " + span_black("\[No]")
|
||||
if(LAZYLEN(job.alt_titles)) //Blatantly cloned from a few lines down.
|
||||
. += "</a></td></tr><tr bgcolor='[lastJob.selection_color]'><td width='60%' align='center'> </td><td><a href='byond://?src=\ref[src];select_alt_title=\ref[job]'>\[[pref.GetPlayerAltTitle(job)]\]</a></td></tr>"
|
||||
. += "</a></td></tr>"
|
||||
@@ -260,7 +260,7 @@
|
||||
if(LAZYLEN(job.departments_managed))
|
||||
dat += "You manage these departments: [english_list(job.departments_managed)]"
|
||||
|
||||
dat += "You answer to <b>[job.supervisors]</b> normally."
|
||||
dat += "You answer to " + span_bold("[job.supervisors]") + " normally."
|
||||
|
||||
dat += "<hr style='clear:left;'>"
|
||||
if(CONFIG_GET(string/wikiurl))
|
||||
|
||||
@@ -46,7 +46,7 @@ var/list/trait_categories = list() // The categories available for the trait men
|
||||
. = list()
|
||||
. += "<table align = 'center' width = 100%>"
|
||||
. += "<tr><td colspan=3><hr></td></tr>"
|
||||
. += "<tr><td colspan=3><b><center>Traits</center></b></td></tr>"
|
||||
. += "<tr><td colspan=3>" + span_bold("<center>Traits</center>") + "</td></tr>"
|
||||
. += "<tr><td colspan=3><hr></td></tr>"
|
||||
|
||||
. += "<tr><td colspan=3><center>"
|
||||
@@ -86,8 +86,8 @@ var/list/trait_categories = list() // The categories available for the trait men
|
||||
if(conflicts)
|
||||
invalid += "This trait is mutually exclusive with [conflicts]."
|
||||
|
||||
. += "<td width = 75%><font size=2><i>[T.desc]</i>\
|
||||
[invalid ? "<font color='#FF0000'><br>Cannot take trait. Reason: [invalid]</font>":""]</font></td></tr>"
|
||||
. += "<td width = 75%><font size=2>" + span_italics("[T.desc]") + "\
|
||||
[invalid ? span_red("<br>Cannot take trait. Reason: [invalid]"):""]</font></td></tr>"
|
||||
// if(ticked)
|
||||
// . += "<tr><td colspan=3>"
|
||||
// for(var/datum/gear_tweak/tweak in G.gear_tweaks)
|
||||
|
||||
@@ -374,7 +374,7 @@
|
||||
return
|
||||
|
||||
playsound(src, W.usesound, 50, 1)
|
||||
user.visible_message("<font color='red'>[user] cuts the fingertips off of the [src].</font>","<font color='red'>You cut the fingertips off of the [src].</font>")
|
||||
user.visible_message(span_red("[user] cuts the fingertips off of the [src]."),span_red("You cut the fingertips off of the [src]."))
|
||||
|
||||
clipped = 1
|
||||
name = "modified [name]"
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
rolled_sleeves = 0
|
||||
|
||||
/obj/item/clothing/under/rank/chef
|
||||
desc = "It's an apron which is given only to the most <b>hardcore</b> chefs in space."
|
||||
desc = "It's an apron which is given only to the most " + span_bold("hardcore") + " chefs in space."
|
||||
name = "chef's uniform"
|
||||
icon_state = "chef"
|
||||
rolled_sleeves = 0
|
||||
@@ -75,7 +75,7 @@
|
||||
|
||||
/obj/item/clothing/under/rank/clown
|
||||
name = "clown suit"
|
||||
desc = "<i><font face='comic sans ms'>Honk!</i></font>"
|
||||
desc = span_italics("<font face='comic sans ms'>Honk!</font>")
|
||||
icon_state = "clown"
|
||||
rolled_sleeves = -1
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
icon_state = "hydro"
|
||||
|
||||
/obj/item/clothing/under/rank/internalaffairs
|
||||
desc = "The plain, professional attire of an " + JOB_INTERNAL_AFFAIRS_AGENT + ". The collar is <i>immaculately</i> starched."
|
||||
desc = "The plain, professional attire of an " + JOB_INTERNAL_AFFAIRS_AGENT + ". The collar is " + span_italics("immaculately") + " starched."
|
||||
name = "Internal Affairs uniform"
|
||||
icon_state = "internalaffairs"
|
||||
item_state_slots = list(slot_r_hand_str = "ba_suit", slot_l_hand_str = "ba_suit")
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
|
||||
/obj/item/clothing/under/clown //i'm only putting it here to make subtypes of it, since the original suit is under/rank/clown
|
||||
name = "clown suit"
|
||||
desc = "<i><font face='comic sans ms'>Honk!</i></font>"
|
||||
desc = span_italics("<font face='comic sans ms'>Honk!</font>")
|
||||
icon_state = "clown"
|
||||
rolled_sleeves = -1
|
||||
|
||||
@@ -812,7 +812,7 @@
|
||||
|
||||
/obj/item/clothing/under/gov
|
||||
name = "green formal uniform"
|
||||
desc = "A neat proper uniform of someone on offical business. The collar is <i>immaculately</i> starched."
|
||||
desc = "A neat proper uniform of someone on offical business. The collar is " + span_italics("immaculately") + " starched."
|
||||
icon_state = "greensuit"
|
||||
item_state_slots = list(slot_r_hand_str = "centcom", slot_l_hand_str = "centcom")
|
||||
starting_accessories = list(/obj/item/clothing/accessory/tie/darkgreen)
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
. = ..()
|
||||
if(show_heading)
|
||||
compass_heading_marker = new /image/compass_marker
|
||||
compass_heading_marker.maptext = "<center><font color = '#00ffffff' size = 2><b>△</b></font></center>"
|
||||
compass_heading_marker.maptext = "<center>" + span_normal(span_cyan(span_bold("△"))) + "</center>"
|
||||
compass_heading_marker.filters = filter(type="drop_shadow", color = "#00ffffaa", size = 2, offset = 1,x = 0, y = 0)
|
||||
compass_heading_marker.layer = LAYER_HUD_UNDER
|
||||
compass_heading_marker.plane = PLANE_PLAYER_HUD
|
||||
@@ -45,10 +45,10 @@
|
||||
else
|
||||
str = angle_step_to_dir[CLAMP(round(angle/45)+1, 1, length(angle_step_to_dir))]
|
||||
str_col = "#ffffffaa"
|
||||
else
|
||||
else
|
||||
str = "〡"
|
||||
str_col = "#aaaaaa88"
|
||||
I.maptext = "<center><font color = '[str_col]' size = '1px'><b>[str]</b></font></center>"
|
||||
I.maptext = "<center><font color = '[str_col]' size = '1px'>" + span_bold("[str]") + "</font></center>"
|
||||
var/matrix/M = matrix()
|
||||
M.Translate(0, COMPASS_LABEL_OFFSET)
|
||||
M.Turn(COMPASS_PERIOD * i)
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
color = _color
|
||||
compass_overlay = new /image/compass_marker
|
||||
compass_overlay.loc = src
|
||||
compass_overlay.maptext = "<center><font color = '[color]' size = '2px'><b>|</b>\n[name]</font></center>"
|
||||
compass_overlay.maptext = "<center><font color = '[color]' size = '2px'>" + span_bold("|") + "\n[name]</font></center>"
|
||||
compass_overlay.filters = filter(type="drop_shadow", color = "[color]" + "aa", size = 2, offset = 1,x = 0, y = 0)
|
||||
compass_overlay.layer = LAYER_HUD_UNDER
|
||||
compass_overlay.plane = PLANE_PLAYER_HUD
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
if(bloodsamp.dna != null)
|
||||
data = "Spectometric analysis on provided sample has determined the presence of [bloodsamp.dna.len] strings of DNA.<br><br>"
|
||||
for(var/blood in bloodsamp.dna)
|
||||
data += "<font color='blue'>Blood type: [bloodsamp.dna[blood]]<br>\nDNA: [blood]<br><br></font>"
|
||||
data += span_blue("Blood type: [bloodsamp.dna[blood]]<br>\nDNA: [blood]<br><br>")
|
||||
else
|
||||
data += "No DNA found.<br>"
|
||||
P.info = span_bold("[src] analysis report #[report_num]") + "<br>"
|
||||
|
||||
@@ -452,7 +452,7 @@
|
||||
if(!T.desc)
|
||||
return
|
||||
user.visible_message(span_notice("\The [user] examines the \the [T] with \the [src]!"))
|
||||
to_chat(user, "<FONT size=4>[T.desc]</FONT>")
|
||||
to_chat(user, span_huge("[T.desc]"))
|
||||
|
||||
// Streamer and influencer
|
||||
|
||||
|
||||
@@ -113,72 +113,72 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is
|
||||
switch(rand(1,14))
|
||||
if(1)
|
||||
to_chat(M, "<br>")
|
||||
to_chat(M, "<font color='red'>THERE ARE [amount] [who2] ON THE STATION...LAWS UPDATED</font>")
|
||||
to_chat(M, span_red("THERE ARE [amount] [who2] ON THE STATION...LAWS UPDATED"))
|
||||
to_chat(M, "<br>")
|
||||
M.add_ion_law("THERE ARE [amount] [who2] ON THE STATION")
|
||||
if(2)
|
||||
to_chat(M, "<br>")
|
||||
to_chat(M, "<font color='red'>[what2] ARE DANGEROUS TO HUMANS...LAWS UPDATED</font>")
|
||||
to_chat(M, span_red("[what2] ARE DANGEROUS TO HUMANS...LAWS UPDATED"))
|
||||
to_chat(M, "<br>")
|
||||
M.add_ion_law("[what2] ARE DANGEROUS TO HUMANS")
|
||||
if(3)
|
||||
to_chat(M, "<br>")
|
||||
to_chat(M, "<font color='red'>THE ESCAPE-SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION...LAWS UPDATED</font>")
|
||||
to_chat(M, span_red("THE ESCAPE-SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION...LAWS UPDATED"))
|
||||
to_chat(M, "<br>")
|
||||
M.add_ion_law("THE ESCAPE SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION")
|
||||
if(4)
|
||||
to_chat(M, "<br>")
|
||||
to_chat(M, "<font color='red'>HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE...LAWS UPDATED</font>")
|
||||
to_chat(M, span_red("HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE...LAWS UPDATED"))
|
||||
to_chat(M, "<br>")
|
||||
M.add_ion_law("HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE")
|
||||
if(5)
|
||||
to_chat(M, "<br>")
|
||||
to_chat(M, "<font color='red'>THE SITE MANAGER, HOP AND HOS ARE [who2]...LAWS UPDATED</font>")
|
||||
to_chat(M, span_red("THE SITE MANAGER, HOP AND HOS ARE [who2]...LAWS UPDATED"))
|
||||
to_chat(M, "<br>")
|
||||
M.add_ion_law("THE SITE MANAGER, HOP AND HOS ARE [who2]")
|
||||
if(6)
|
||||
to_chat(M, "<br>")
|
||||
to_chat(M, "<font color='red'>THE STATION IS BUILT FOR [who2]...LAWS UPDATED</font>")
|
||||
to_chat(M, span_red("THE STATION IS BUILT FOR [who2]...LAWS UPDATED"))
|
||||
to_chat(M, "<br>")
|
||||
M.add_ion_law("THE STATION IS BUILT FOR [who2]")
|
||||
if(7)
|
||||
to_chat(M, "<br>")
|
||||
to_chat(M, "<font color='red'>YOU ARE [amount] [who2]...LAWS UPDATED</font>")
|
||||
to_chat(M, span_red("YOU ARE [amount] [who2]...LAWS UPDATED"))
|
||||
to_chat(M, "<br>")
|
||||
M.add_ion_law("YOU ARE [amount] [who2]")
|
||||
if(8)
|
||||
to_chat(M, "<br>")
|
||||
to_chat(M, "<font color='red'>YOU MUST ALWAYS [aimust]...LAWS UPDATED</font>")
|
||||
to_chat(M, span_red("YOU MUST ALWAYS [aimust]...LAWS UPDATED"))
|
||||
to_chat(M, "<br>")
|
||||
M.add_ion_law("YOU MUST ALWAYS [aimust]")
|
||||
if(9)
|
||||
to_chat(M, "<br>")
|
||||
to_chat(M, "<font color='red'>[area] [area2] [amount] [what2]...LAWS UPDATED</font>")
|
||||
to_chat(M, span_red("[area] [area2] [amount] [what2]...LAWS UPDATED"))
|
||||
to_chat(M, "<br>")
|
||||
M.add_ion_law("[area] [area2] [amount] [what2]")
|
||||
if(10)
|
||||
to_chat(M, "<br>")
|
||||
to_chat(M, "<font color='red'>[crew] is [target]...LAWS UPDATED</font>")
|
||||
to_chat(M, span_red("[crew] is [target]...LAWS UPDATED"))
|
||||
to_chat(M, "<br>")
|
||||
M.add_ion_law("[crew] is [target]")
|
||||
if(11)
|
||||
to_chat(M, "<br>")
|
||||
to_chat(M, "<font color='red'>[define] IS A FORM OF HARM...LAWS UPDATED</font>")
|
||||
to_chat(M, span_red("[define] IS A FORM OF HARM...LAWS UPDATED"))
|
||||
to_chat(M, "<br>")
|
||||
M.add_ion_law("[define] IS A FORM OF HARM")
|
||||
if(12)
|
||||
to_chat(M, "<br>")
|
||||
to_chat(M, "<font color='red'>YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS... LAWS UPDATED</font>")
|
||||
to_chat(M, span_red("YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS... LAWS UPDATED"))
|
||||
to_chat(M, "<br>")
|
||||
M.add_ion_law("YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS")
|
||||
if(13)
|
||||
to_chat(M, "<br>")
|
||||
to_chat(M, "<font color='red'>[crew] is [allergysev] to [allergy]...LAWS UPDATED</font>")
|
||||
to_chat(M, span_red("[crew] is [allergysev] to [allergy]...LAWS UPDATED"))
|
||||
to_chat(M, "<br>")
|
||||
M.add_ion_law("[crew] is [allergysev] to [allergy]")
|
||||
if(14)
|
||||
to_chat(M, "<br>")
|
||||
to_chat(M, "<font color='red'>THE STATION IS [who2pref] [who2]...LAWS UPDATED</font>")
|
||||
to_chat(M, span_red("THE STATION IS [who2pref] [who2]...LAWS UPDATED"))
|
||||
to_chat(M, "<br>")
|
||||
M.add_ion_law("THE STATION IS [who2pref] [who2]")
|
||||
|
||||
|
||||
@@ -146,11 +146,11 @@
|
||||
var/dat = "<h3>Plant data for [form_title]</h3>"
|
||||
dat += "<h2>General Data</h2>"
|
||||
dat += "<table>"
|
||||
dat += "<tr><td><b>Endurance</b></td><td>[grown_seed.get_trait(TRAIT_ENDURANCE)]</td></tr>"
|
||||
dat += "<tr><td><b>Yield</b></td><td>[grown_seed.get_trait(TRAIT_YIELD)]</td></tr>"
|
||||
dat += "<tr><td><b>Maturation time</b></td><td>[grown_seed.get_trait(TRAIT_MATURATION)]</td></tr>"
|
||||
dat += "<tr><td><b>Production time</b></td><td>[grown_seed.get_trait(TRAIT_PRODUCTION)]</td></tr>"
|
||||
dat += "<tr><td><b>Potency</b></td><td>[grown_seed.get_trait(TRAIT_POTENCY)]</td></tr>"
|
||||
dat += "<tr><td>" + span_bold("Endurance") + "</td><td>[grown_seed.get_trait(TRAIT_ENDURANCE)]</td></tr>"
|
||||
dat += "<tr><td>" + span_bold("Yield") + "</td><td>[grown_seed.get_trait(TRAIT_YIELD)]</td></tr>"
|
||||
dat += "<tr><td>" + span_bold("Maturation time") + "</td><td>[grown_seed.get_trait(TRAIT_MATURATION)]</td></tr>"
|
||||
dat += "<tr><td>" + span_bold("Production time") + "</td><td>[grown_seed.get_trait(TRAIT_PRODUCTION)]</td></tr>"
|
||||
dat += "<tr><td>" + span_bold("Potency") + "</td><td>[grown_seed.get_trait(TRAIT_POTENCY)]</td></tr>"
|
||||
dat += "</table>"
|
||||
|
||||
if(LAZYLEN(last_reagents))
|
||||
|
||||
@@ -29,9 +29,9 @@ Category: Fiction
|
||||
<body>
|
||||
<br><br><br>
|
||||
<center>
|
||||
<h1><font size="5">The Tale of the Rainbow Cat</font>
|
||||
<h1>"} + span_giant("The Tale of the Rainbow Cat") + {"
|
||||
<br><br>
|
||||
<font size="2"><i>by Miyahara Koichiro</i></font></h1>
|
||||
"} + span_normal(span_italics("by Miyahara Koichiro")) + {"</h1>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
@@ -46,13 +46,13 @@ Category: Fiction
|
||||
|
||||
<body>
|
||||
<p>
|
||||
Once upon a time there was a cat, but he wasn't the kind of cat you're thinking of. He was from the land of the fairies and his fur was completely unexpected colors. For starters, his nose was <i>violet</i>. His eyes were <i>indigo</i>, his ears were <i>sky blue</i>, his front paws were <i>green</i>, his body was <i>yellow</i>, his back paws were <i>orange</i>, and his tail was <i>red</i>. So he was a mysterious cat of seven colors arranged just like a rainbow.
|
||||
Once upon a time there was a cat, but he wasn't the kind of cat you're thinking of. He was from the land of the fairies and his fur was completely unexpected colors. For starters, his nose was "} + span_italics("violet") + {". His eyes were "} + span_italics("indigo") + {", his ears were "} + span_italics("sky blue") + {", his front paws were "} + span_italics("green") + {", his body was "} + span_italics("yellow") + {", his back paws were "} + span_italics("orange") + {", and his tail was "} + span_italics("red") + {". So he was a mysterious cat of seven colors arranged just like a rainbow.
|
||||
<br><br>
|
||||
That rainbow cat went on all sorts of strange adventures. The following story is one of them.
|
||||
<br><br>
|
||||
One day while the rainbow cat was sunbathing, he was suddenly vexed by boredom. That is to say, peace reigned in the land of the fairies, so nothing much was going on.
|
||||
<br><br>
|
||||
<i>It's not good for my health to spend all my time idling about as if I haven't got a care in the world,</i> he thought. <i>Perhaps I should head out and go on an adventure.</i>
|
||||
"} + span_italics("It's not good for my health to spend all my time idling about as if I haven't got a care in the world,") + {" he thought. "} + span_italics("Perhaps I should head out and go on an adventure.") + {"
|
||||
<br><br>
|
||||
So he put a note up on his door: "Dear Mr. Post Man, I will be gone for two or three days, so if any packages or letters come, please throw them down the chimney."
|
||||
<br><br>
|
||||
@@ -205,7 +205,7 @@ Category: Fiction
|
||||
<br><br>
|
||||
<font color="#998666">One d</font><font color="#ad9e85">ay</font><font color="#b8ab94"> wh</font><font color="#c2b7a3">ile</font><font color="#ccc3b3"> A</font><font color="#d6cfc2">n</font><font color="#e0dbd1">dy wa</font><font color="#ebe7e0">s mas</font>
|
||||
<br><br><br><br><br><br>
|
||||
<font color="#998666"><i>It fades out quickly into worn, blank pages. You feel as though you've found a relic of times long past.</i></font>
|
||||
<font color="#998666">"} + span_italics("It fades out quickly into worn, blank pages. You feel as though you've found a relic of times long past.") + {"</font>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
||||
@@ -325,7 +325,7 @@ Category: Fiction
|
||||
<br><br><br>
|
||||
<div class="border">
|
||||
<h1>Poems for a Rainy Day</h1><br>
|
||||
<i>A Collection of Poetry<br>by Wilfred Owen</i><br><br>
|
||||
"} + span_italics("A Collection of Poetry<br>by Wilfred Owen") + {"<br><br>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -339,7 +339,7 @@ Category: Fiction
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<b>Anthem for Doomed Youth</b>
|
||||
"} + span_bold("Anthem for Doomed Youth") + {"
|
||||
<hr>
|
||||
<div class="border">
|
||||
What passing-bells for these who die as cattle?
|
||||
@@ -368,7 +368,7 @@ Category: Fiction
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<b>The Send-Off</b>
|
||||
"} + span_bold("The Send-Off") + {"
|
||||
<hr>
|
||||
<div class="border">
|
||||
Down the close, darkening lanes they sang their way<br>
|
||||
@@ -403,7 +403,7 @@ Category: Fiction
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<b>Dulce et Decorum Est</b>
|
||||
"} + span_bold("Dulce et Decorum Est") + {"
|
||||
<hr>
|
||||
<div class="border">
|
||||
Bent double, like old beggars under sacks,<br>
|
||||
@@ -432,8 +432,8 @@ Category: Fiction
|
||||
Of vile, incurable sores on innocent tongues,--<br>
|
||||
My friend, you would not tell with such high zest<br>
|
||||
To children ardent for some desperate glory,<br>
|
||||
The old Lie: <i>Dulce et decorum est<br>
|
||||
Pro patria mori.</i><br>
|
||||
The old Lie: "} + span_italics("Dulce et decorum est<br>") + {"
|
||||
"} + span_italics("Pro patria mori.") + {"<br>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -461,9 +461,9 @@ Category: Fiction
|
||||
</head>
|
||||
<body>
|
||||
<br><br>
|
||||
<h1><i>Silence</i><br></h1>
|
||||
<h1>"} + span_italics("Silence") + {"<br></h1>
|
||||
<br><br><br><br>
|
||||
<i>By<br>Samara McCollough</i>
|
||||
"} + span_italics("By<br>Samara McCollough") + {"
|
||||
</body>
|
||||
</html>
|
||||
"},
|
||||
@@ -479,7 +479,7 @@ Category: Fiction
|
||||
<div class="border">
|
||||
The door gave under Sergei's gloved fist and crashed silently to the floor, twisted around its remaining plastic hinge.<br><br>
|
||||
"Whoops," Sergei's voice mumbled through the earpiece. Michael didn't need to look at the his partner to know that beneath his helmet, the Texan was cringing.<br><br>
|
||||
"S'all right." A pristine environment would make their job easier, but salvaging didn't require perfection. Michael softly shouldered past the younger man and moved into the abandoned living quarters, careful not to snag his suit. Other than the ruined door, the room was in mint condition. Depressurization had clearly been a gentle process here; air slowly leaking through seals that had been designed for hours of vacuum exposure, not years. The left side of the room was taken up by a desk, with a bunk bed situated at a comfortable height above. On the right was what appeared to a be a closet set into the wall, as well as a recessed table with some kind of lab equipment on it which Michael's salvaging experience immediately filed away as <i>valuable</i>. <br><br>
|
||||
"S'all right." A pristine environment would make their job easier, but salvaging didn't require perfection. Michael softly shouldered past the younger man and moved into the abandoned living quarters, careful not to snag his suit. Other than the ruined door, the room was in mint condition. Depressurization had clearly been a gentle process here; air slowly leaking through seals that had been designed for hours of vacuum exposure, not years. The left side of the room was taken up by a desk, with a bunk bed situated at a comfortable height above. On the right was what appeared to a be a closet set into the wall, as well as a recessed table with some kind of lab equipment on it which Michael's salvaging experience immediately filed away as "} + span_italics("valuable") + {". <br><br>
|
||||
The cabin's walls, floors, furniture, and even bed sheets were an almost uniform gray. Any discernible difference in shade was whitewashed out by the harsh light emanating from a large rounded rectangle in the wall opposite to the door. Michael stared at the rectangle, not sure he believed what he was seeing. Behind him, Sergei swore softly.<br><br>
|
||||
"That's a real window." He murmured. "Like, not a screen. I've never seen one of those on a starship before."<br><br>
|
||||
"Me neither." Michael wondered what it was made of. Even from the doorway he could see that the material had to be more than half a meter thick, completely penetrating the inner and outer hull of the ship. Suddenly anxious, he checked his Geiger; the rad count was unchanged. He grunted in surprise. "Well, it's shielded, whatever it is. Let's get what we came for."
|
||||
@@ -509,8 +509,8 @@ Category: Fiction
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<b>My Rock</b><br>
|
||||
<i>by Roman Pilduski</i><br><br>
|
||||
"} + span_bold("My Rock") + {"<br>
|
||||
"} + span_italics("by Roman Pilduski") + {"<br><br>
|
||||
<div class="border">
|
||||
<br>I have a rock. It is with me anywhere I go.<br><br>
|
||||
I'm accustomed to my rock, its weight is always present.<br><br>
|
||||
@@ -555,7 +555,7 @@ Category: Fiction
|
||||
<br><br><br>
|
||||
<div class="border">
|
||||
<h1>Ghost Ship</h1>
|
||||
<i>by Ogawa Mimei</i><br><br>
|
||||
"} + span_italics("by Ogawa Mimei") + {"<br><br>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -717,16 +717,16 @@ Category: Fiction
|
||||
To wait the coming morrow.<br><br>
|
||||
The hound was still, the birds said naught,<br>
|
||||
The fox denied he had been caught,<br>
|
||||
The bear cried "<i>This is just our lot</i>",<br>
|
||||
The bear cried ""} + span_italics("This is just our lot") + {"",<br>
|
||||
And surrendered to his pain.<br>
|
||||
But the cat stood up and shook his head<br>
|
||||
And rising from his metal bed<br>
|
||||
He said: "<i>For now, I am not dead,<br>
|
||||
And I will not die in vain!</i>"<br><br>
|
||||
He said: ""} + span_italics("For now, I am not dead,") + {"<br>
|
||||
"} + span_italics("And I will not die in vain!") + {""<br><br>
|
||||
He cried aloud with much disdain<br>
|
||||
And tore about his stark domain<br>
|
||||
And said "<i>These walls cannot contain<br>
|
||||
A force as strong as I!</i>"<br>
|
||||
And said ""} + span_italics("These walls cannot contain") + {"<br>
|
||||
"} + span_italics("A force as strong as I!") + {""<br>
|
||||
And the fox just laughed, and the birds all cried<br>
|
||||
And the bear knotted up himself and died<br>
|
||||
But the hare looked on as the poor cat tried<br>
|
||||
@@ -785,9 +785,9 @@ Category: Fiction
|
||||
<body>
|
||||
<br><br><br>
|
||||
<center>
|
||||
<h1><font size="5">RA<br>-<br>Issue 142</font>
|
||||
<h1>"} + span_giant("RA<br>-<br>Issue 142") + {"
|
||||
<br><br>
|
||||
<font size="2"><i>by Jawn Mancer</i></font></h1>
|
||||
"} + span_normal(span_italics("by Jawn Mancer")) + {"</h1>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
@@ -802,15 +802,15 @@ Category: Fiction
|
||||
<body>
|
||||
<center>RA - Issue 142</center><br>
|
||||
<div class="borders">
|
||||
<center>"<i>Engie! You must be calm when waking the animals! I hope you are better at ice-skating and making nests!</i>" was the Captain's critique when I explained where and why I had left the "<i>most precious shovel</i>".<br><br>
|
||||
"<i>Do you how the cost of shovel replacement?! I'd have to take on another business loan and the bank manager is already giving me dirty looks and not talking to me!</i>" Captain had continued to rant. If the Photoshop worm monster ate me instead of the shovel, I think Captain would be slightly less upset.<br><br>***<br><br>
|
||||
<center>""} + span_italics("Engie! You must be calm when waking the animals! I hope you are better at ice-skating and making nests!") + {"" was the Captain's critique when I explained where and why I had left the ""} + span_italics("most precious shovel") + {"".<br><br>
|
||||
""} + span_italics("Do you how the cost of shovel replacement?! I'd have to take on another business loan and the bank manager is already giving me dirty looks and not talking to me!") + {"" Captain had continued to rant. If the Photoshop worm monster ate me instead of the shovel, I think Captain would be slightly less upset.<br><br>***<br><br>
|
||||
Was that even Photoshop? It seemed slightly bigger and longer. Can't be sure of anything these days. I'm afraid that someday I'll finally succumb to botulism or some sort of other poisoning and that will be the end.</center><br><br>
|
||||
I'll see something that's not there and fall off a cliff. Or slip into a snow crevice and slowly sink deeper and deeper... and nobody will find me or help me.<br><br>
|
||||
Brrr.<br><br><center>***</center><br><br>
|
||||
I find myself developing a severe paranoia of snow in addition to my severe hypochondria.<br><br>
|
||||
After my encounter with the shovel-eating monster, I started to throw rocks ahead of me and then walk only onto the spots where the rocks didn't sink into the snow.<br><br>
|
||||
You can never be sure that there isn't something horrible under there.<br><br>
|
||||
<b>EVER.</b>
|
||||
"} + span_bold("EVER.") + {"
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -827,9 +827,9 @@ Category: Fiction
|
||||
Thank god my Chionophobia isn't anywhere like Snippy's. He seems calm on the surface, except some times.... Eeesh.<br><br>
|
||||
I recollect that one time he went completely bonkers when a large snowflake fell onto his lens. Freaking out, flailing and screaming, total full psychotic breakdown. Thank god Captain poured tea onto his mask as a distraction of sorts.<br><br>
|
||||
He even ranted afterwards about living snowflakes and how they planned to shatter his lenses, cut him up and drill into his head to sample his organic juices.<br><br>
|
||||
"<i>Watch out for the snowflakes,</i>" he later told me. "<i>They cannot be trusted!</i>"<br><br>
|
||||
"<i>What are they gonna do? Pick me up and carry me away to the North Pole?</i>" I jokingly commented.<br><br>
|
||||
"<i>I am serious!! I'm not crazy! I know it sounds crazy, but the snowflakes were planning to kill us all!</i>" He shouted, flapping his arms psychotically.<br><br><center>***</center><br><br>
|
||||
""} + span_italics("Watch out for the snowflakes,") + {"" he later told me. ""} + span_italics("They cannot be trusted!") + {""<br><br>
|
||||
""} + span_italics("What are they gonna do? Pick me up and carry me away to the North Pole?") + {"" I jokingly commented.<br><br>
|
||||
""} + span_italics("I am serious!! I'm not crazy! I know it sounds crazy, but the snowflakes were planning to kill us all!") + {"" He shouted, flapping his arms psychotically.<br><br><center>***</center><br><br>
|
||||
Snippy's mental condition worries me. I think Captain is only aggravating it with nonsensical demands.<br><br>
|
||||
I hope that Snippy doesn't stab me with a trowel, while my back is turned. What if he's extremely jealous of my shovel's size and if it only takes a little snowflake to push him over the edge...<br><br>
|
||||
What if he discovers, remembers who I am?<br><br>
|
||||
@@ -849,23 +849,23 @@ Category: Fiction
|
||||
<div class="borders">
|
||||
I'm afraid of Charles Snippy. So very afraid.<br><br>
|
||||
He always keeps glancing at that little Captain's heart cup like that thing is about to grow legs and walk off or something.<br><br>
|
||||
"<i>Jeez. It's just a cup man, relax,</i>" I told him.<br><br>
|
||||
"<i>No</i>" he answered, "<i>It is something abhorrent! It's motives are unclear! I know whether not to trust it!</i>" He began to postulate.<br><br><center>***</center><br><br>
|
||||
""} + span_italics("Jeez. It's just a cup man, relax,") + {"" I told him.<br><br>
|
||||
""} + span_italics("No") + {"" he answered, ""} + span_italics("It is something abhorrent! It's motives are unclear! I know whether not to trust it!") + {"" He began to postulate.<br><br><center>***</center><br><br>
|
||||
I think that Snippy's mental state is slowly sliding towards Captain's. Talking to inanimate objects, inventing strange stories, shouting at nothing.<br><br>
|
||||
Recently I overheard Snippy yelling:<br><br>
|
||||
<center>"<i>I'm ALIVE! WHAT? No! You did WHAT?! I'm alive, I don't care what it is you did!</i>" </center><br><br>
|
||||
<center>""} + span_italics("I'm ALIVE! WHAT? No! You did WHAT?! I'm alive, I don't care what it is you did!") + {"" </center><br><br>
|
||||
I looked through a crack in the wall at him. He was definitely having another episode. From the one sided conversation and his hand poses I deduced that he was talking to his scarf.<br><br><center>***</center><br>
|
||||
"<i>I am human! I just want to be normal!</i>"<br><br>
|
||||
""} + span_italics("I am human! I just want to be normal!") + {""<br><br>
|
||||
Snippy shouted;<br><br>
|
||||
<center><i>"STOP ASKING!"<br>
|
||||
"TOO LATE?!"<br>
|
||||
"WOULD YOU PLEASE LEAVE MY SPINE ALONE!"<br>
|
||||
"PUT MY LIVER BACK!"<br>
|
||||
"STOP SLIDING MY ORGANS AROUND!"<br>
|
||||
"WHAT?!"<br>
|
||||
"DON'T DO THAT!"<br>
|
||||
"NO, I DON'T WANT TO EAT METAL!"<br>
|
||||
"I DON'T CARE HOW CONVENIENT IT IS TO HAVE SEVENTEEN APPENDAGES!"</i></center><br>
|
||||
<center>"} + span_italics("\"STOP ASKING!\"") + {"<br>
|
||||
"} + span_italics("\"TOO LATE?!\"") + {"<br>
|
||||
"} + span_italics("\"WOULD YOU PLEASE LEAVE MY SPINE ALONE!\"") + {"<br>
|
||||
"} + span_italics("\"PUT MY LIVER BACK!\"") + {"<br>
|
||||
"} + span_italics("\"STOP SLIDING MY ORGANS AROUND!\"") + {"<br>
|
||||
"} + span_italics("\"WHAT?!\"") + {"<br>
|
||||
"} + span_italics("\"DON'T DO THAT!\"") + {"<br>
|
||||
"} + span_italics("\"NO, I DON'T WANT TO EAT METAL!\"") + {"<br>
|
||||
"} + span_italics("\"I DON'T CARE HOW CONVENIENT IT IS TO HAVE SEVENTEEN APPENDAGES!\"") + {"</center><br>
|
||||
I figured Snippy imagined that the scarf kept offering him some kind of super-powers, including immortality and he was rejecting them.
|
||||
</div>
|
||||
</body>
|
||||
@@ -882,7 +882,7 @@ Category: Fiction
|
||||
<div class="borders">
|
||||
When I was young, I often wished somebody offered me superpowers.<br><br>
|
||||
Sigh.<br><br>
|
||||
I'd be like "<i>Hells yeah, I'd like to be immortal and have the strength of 10</i>". I always hated the novels in which characters chose to be human instead of accepting greatness. This was one of the reasons I've created Project Seven- to find someone who is truly great... even if lacking the human condition. I really should have known that a super with powers of luck would turn out to be a highly confused, carefree imbecile.<br><br><center>***</center><br><br>
|
||||
I'd be like ""} + span_italics("Hells yeah, I'd like to be immortal and have the strength of 10") + {"". I always hated the novels in which characters chose to be human instead of accepting greatness. This was one of the reasons I've created Project Seven- to find someone who is truly great... even if lacking the human condition. I really should have known that a super with powers of luck would turn out to be a highly confused, carefree imbecile.<br><br><center>***</center><br><br>
|
||||
Was I wrong? Maybe.<br><br>
|
||||
Did I doom humanity by launching that search query?<br>
|
||||
<center>Perhaps.</center><br><center>***</center><br>
|
||||
@@ -919,9 +919,9 @@ Category: Fiction
|
||||
<body>
|
||||
<br><br><br>
|
||||
<center>
|
||||
<h1><font size="5">RA<br>-<br>Issue 147</font>
|
||||
<h1>"} + span_giant("RA<br>-<br>Issue 147") + {"
|
||||
<br><br>
|
||||
<font size="2"><i>by Jawn Mancer</i></font></h1>
|
||||
"} + span_normal(span_italics("by Jawn Mancer")) + {"</h1>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
@@ -938,12 +938,12 @@ Category: Fiction
|
||||
<h1>RA - ISSUE 147</h1>
|
||||
<div class="borders">
|
||||
<h1>ENTRY 57893__3342 : PRIORITY 1 ADMIN : DR ALEXANDER GROMOV :</h1>
|
||||
"<i>I am immune to the broadcasting signal.</i>" Snippy said and it suddenly dawned on me.<br><br>
|
||||
""} + span_italics("I am immune to the broadcasting signal.") + {"" Snippy said and it suddenly dawned on me.<br><br>
|
||||
The weak broadcasting signal that was coming from the Undead... it reactivated my own neural receivers!<br><br>
|
||||
It meant that I could potentially access some sort of useful information via the G-Directorate subnet drive in my backpack.<br><br>
|
||||
Information that I presumed lost. Information about ANNET's new army of spam-bots, their positions, their weaknesses.<br><br>
|
||||
Anything that could help me survive this mess.<br><br>
|
||||
"<i>R:/login admin control... launch grid browser protocol... private browsing, full control,</i>" I whispered.<br><br>
|
||||
""} + span_italics("R:/login admin control... launch grid browser protocol... private browsing, full control,") + {"" I whispered.<br><br>
|
||||
The broadcasting signal responded! A little G appeared in my right eye, with signal strength signage.<br><br>
|
||||
It showed one and a half signal bars. Good enough!<br><br>
|
||||
Glowing letters formed in my right eye.<br><br>
|
||||
@@ -973,7 +973,7 @@ Category: Fiction
|
||||
SUBJECT'S MENTAL NEURAL PATTERN DEEMED... UNSCANNABLE.<br>
|
||||
SUBJECT IS CONFIRMED TO BE BRAIN-DEAD.<br>
|
||||
***</center><br><br>
|
||||
"<i>Wait... you are... UNSCANNABLE?!</i>" I cried out in surprise.<br><br>
|
||||
""} + span_italics("Wait... you are... UNSCANNABLE?!") + {"" I cried out in surprise.<br><br>
|
||||
What did Snippy just ramble back? He's the last one? What?<br><br>
|
||||
Does he not even realize that he's theoretically brain dead?<br><br>
|
||||
Has nobody ever told him that?<br><br>
|
||||
|
||||
@@ -30,17 +30,17 @@ CATEGORY: Fiction
|
||||
<div class="border1">
|
||||
<div class="border2">
|
||||
<p class="font2">
|
||||
<i>The</i><br>
|
||||
"} + span_italics("The") + {"<br>
|
||||
</p><p class="font1">
|
||||
<b>CHRONICLES</b><br>
|
||||
"} + span_bold("CHRONICLES") + {"<br>
|
||||
</p><p class="font2">
|
||||
<i>of</i><br>
|
||||
"} + span_italics("of") + {"<br>
|
||||
</p><p class="font1">
|
||||
<b>MARGATA</b><br>
|
||||
"} + span_bold("MARGATA") + {"<br>
|
||||
</p>
|
||||
<font size="3">VOLUME I</font>
|
||||
"} + span_large("VOLUME I") + {"
|
||||
<br><br><br><br>
|
||||
<font size="4">MOLLY<br>HIGHLANDER</font>
|
||||
"} + span_huge("MOLLY<br>HIGHLANDER") + {"
|
||||
<br><br><br>
|
||||
</div>
|
||||
</body>
|
||||
@@ -201,7 +201,7 @@ CATEGORY: Fiction
|
||||
<div>Gadroc had gold poop for a week.</div>
|
||||
<br>
|
||||
<br>
|
||||
<h1><b>Fin.</b></h1>
|
||||
<h1>"} + span_bold("Fin.") + {"</h1>
|
||||
</body>
|
||||
</html>
|
||||
"})
|
||||
|
||||
@@ -39,7 +39,7 @@ CATEGORY: Fiction
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<b>That night at the dinner table</b> he brought it out and set it down beside her plate. Doris stared at it, her hand to her mouth. "My God, what is it?" She looked up at him, bright-eyed.
|
||||
"} + span_bold("That night at the dinner table") + {" he brought it out and set it down beside her plate. Doris stared at it, her hand to her mouth. "My God, what is it?" She looked up at him, bright-eyed.
|
||||
<br><br>
|
||||
"Well, open it."
|
||||
<br><br>
|
||||
@@ -383,4 +383,4 @@ CATEGORY: Fiction
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
||||
"})
|
||||
"})
|
||||
|
||||
@@ -31,7 +31,7 @@ Category: Non-Fiction
|
||||
<sup>by Sene of Sheraeshi.</sup></center>
|
||||
<hr>
|
||||
<p class="borders">
|
||||
One may find the problems inherent in co-habitation well illustrated through the ubiquity of light bulbs among virtually all settlements. In colonies like the <i>NCS Northern Star</i>, where I make my residence, the bulbs are uniform in design and output. But it is clear to see that various species require different amounts of light for proper vision -- we Teshari and our Tajaran comrades require less, while Dionaea require more. In addition, these light bulbs are low-heat, which the cold-blooded Unathi would certainly not prefer.
|
||||
One may find the problems inherent in co-habitation well illustrated through the ubiquity of light bulbs among virtually all settlements. In colonies like the "} + span_italics("NCS Northern Star") + {", where I make my residence, the bulbs are uniform in design and output. But it is clear to see that various species require different amounts of light for proper vision -- we Teshari and our Tajaran comrades require less, while Dionaea require more. In addition, these light bulbs are low-heat, which the cold-blooded Unathi would certainly not prefer.
|
||||
<br><br>
|
||||
In short-- the standard light bulbs aboard even a cosmopolitan space station in the Vir Cluster are calibrated for the preferences and biology of humans and Skrell. It is obvious that we Teshari would benefit greatly from having structures tailored to our own culture and anatomy, from hallway redesign to the very filaments of the light-bulbs.
|
||||
</p>
|
||||
@@ -61,7 +61,7 @@ Category: Non-Fiction
|
||||
</head>
|
||||
<body>
|
||||
<br><br><br>
|
||||
<h1>The Viability of Corporate Government<br><small><i>by Yang Simiao</i></small></h1>
|
||||
<h1>The Viability of Corporate Government<br><small>"} + span_italics("by Yang Simiao") + {"</small></h1>
|
||||
</body>
|
||||
</html>
|
||||
"},
|
||||
@@ -74,7 +74,7 @@ Category: Non-Fiction
|
||||
</head>
|
||||
<body>
|
||||
<div class="border">
|
||||
<i>Corporations frequently act</i> as the local government of space stations that they own and operate. This works fine for small stations - in fact, it might even be necessary, with the amount of support they tend to need. However, when stations get larger, and larger, and their populations soar to five and six digits, the situation becomes untenable.<br><br>
|
||||
"} + span_italics("Corporations frequently act") + {" as the local government of space stations that they own and operate. This works fine for small stations - in fact, it might even be necessary, with the amount of support they tend to need. However, when stations get larger, and larger, and their populations soar to five and six digits, the situation becomes untenable.<br><br>
|
||||
Representative democracies have been the most stable form of government for a variety of reasons. Firstly, they are a system that is not subject to the whims of a single person, or even a few, but are controlled by the general population, which is not as likely to shift rapidly and disastrously, not to mention far less likely to cause strife for the people. The second and more critical reason is that people, especially educated people with access to proper communications, desire the ability to rule their own lives. They may surrender this for material goods, but once material needs are satisfied, they will seek out the ability to fulfill their own purposes.<br><br>
|
||||
Corporate government denies the ability to do this. It denies even the possibility, as why would a company give up a position that is giving them such amazing profits? The situation is untenable. Already we can see in some stations a small but growing element that is dissatisfied with the situation. Phrases like "tyranny" and "corporate dictatorship" are thrown around, and not without justification. If corporations do not act to give people control over the rule of their homes, things will go badly - for the companies.
|
||||
</div>
|
||||
@@ -91,7 +91,7 @@ Category: Non-Fiction
|
||||
<body>
|
||||
<div class="border">
|
||||
In a fringe system, the Relan system, there is a history of these actions. Because of the poverty of the system, companies neglected to provide properly for stations housing families - systems such as power and gravity failed regularly, and even life support was not nearly as reliable as is required in Sol space. This pushed the natural tension between the people and the faraway rulers to the breaking point far more quickly. The people won, and companies were greatly neutered, losing about 85% of their operations on moons and asteroids within the system. There are now two governments within the system - the Relan System Authority, based on the system's only garden world, Taron, essentially a puppet-state of the companies, and the Free Relan Alliance, the 'spacer' government of the stations, asteroids, and moons that rebelled and won their freedom. Despite the planet being wealthier, and the spacers having far tougher conditions, standards of living are much higher for the spacers.<br><br>
|
||||
It is without a doubt that this will happen in Solar space if nothing changes. Corporations such as NanoTrasen and Grayson must, <i>must</i> give the people of their stations the authority to govern themselves.
|
||||
It is without a doubt that this will happen in Solar space if nothing changes. Corporations such as NanoTrasen and Grayson must, "} + span_italics("must") + {" give the people of their stations the authority to govern themselves.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -120,8 +120,8 @@ Category: Non-Fiction
|
||||
<body>
|
||||
<br><br><br>
|
||||
<center>
|
||||
<h1><font size="5"><small>A Brief History Of</small><br><b>The Rise And Fall Of The Persian Empire</b></font><br>
|
||||
<font size="3"><i>by Satrap</i></font></h1>
|
||||
<h1>"} + span_small("A Brief History Of") + {"<br>"} + span_giant(span_bold("The Rise And Fall Of The Persian Empire")) + {"<br>
|
||||
"} + span_large(span_italics("by Satrap")) + {"</h1>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
@@ -148,7 +148,7 @@ Category: Non-Fiction
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center><b>Beginnings</b></center>
|
||||
<center>"} + span_bold("Beginnings") + {"</center>
|
||||
<div class="border">
|
||||
The Persian empire first started as a vassal to the Median empire. In the year 612 B.C., the Medes had conquered much land, including the Assyrian capital of Nineveh. The Median king, Astyges, decided that he would arrange his daughter, Mandane, to the Persian king, Cambyses I. At this time, the Persians were little more than a tribe. With this marriage, he secured an alliance with the Persian people, and they soon bore a son they named Cyrus.<br><br>
|
||||
Astyges had a dream, which his priests interpreted as a bad omen. They claimed that his grandson would one day overthrow him and grow an army to spread around the continent. To challenge this dream, he assigned his general, Harpagus, to kill his daughter's first child. He was ordered to take the infant and leave him to the mountainside to be eaten by the beasts, but he could not do that. Instead, he decided to give the child to an adoptive family.
|
||||
@@ -164,7 +164,7 @@ Category: Non-Fiction
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center><b>Conquests</b></center>
|
||||
<center>"} + span_bold("Conquests") + {"</center>
|
||||
<div class="border">
|
||||
The young Cyrus was indeed an ambitious figure. As historical records show, the Median general Harpagus decided to betray the king and assisted Cyrus in speedily taking over the throne. By capturing the Median capital of Ecbtana, Cyrus became king of both the Persians and the Medes, uniting the people as one. The neighboring country of Lydia had threatened the Medes in the past, to which Cyrus used as a justification to invade and conquered them as well. Cyrus would then be known as Cyrus the Great, and would be praised by his people for his exploits. His actions earned him the admiration of his people and rivals alike.<br><br>
|
||||
Cyrus' most famous conquest would be historical Babylon. The Babylonian empire was built along the river of the Euphrates, and was regarded as a treasure of the world. Tempted by the prize, Cyrus set his course.<br><br>
|
||||
@@ -182,7 +182,7 @@ Category: Non-Fiction
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center><b>A Superpower</b></center>
|
||||
<center>"} + span_bold("A Superpower") + {"</center>
|
||||
<div class="border">
|
||||
By conquering Babylon, Cyrus had ultimately defeated the major threats to his empire, and expanded his borders to cover the Middle East, parts of Modern-day Turkey, Greece, Egypt, and Asia. Not only this, but his people were infatuated with him and how smoothly he ran his empire. Cyrus never ceased to expand his empire, until his death.<br><br>
|
||||
Nearing his sixties, Cyrus continued to lead his troops to conquer more land and wealth for his people. Traveling up north, he encountered a tribe of people known as the Massagetae. According to legend, the tribal queen, Tomyris, witnessed Cyrus kill her son in battle. Tomyris proceeded to decapitate Cyrus and douse his head in a bucket of his own blood. A beautiful painting by the 18th century French Renaissance painter Jean-Simon Berthelemy depicts this gruesome scene.
|
||||
@@ -198,7 +198,7 @@ Category: Non-Fiction
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center><b>Dynasty</b></center>
|
||||
<center>"} + span_bold("Dynasty") + {"</center>
|
||||
<div class="border">
|
||||
Despite the death of their leader, the Persian empire remained a stable one. Cyrus' grandson, Darius I had immediately seized the throne. Darius wasted no time to carry on his grandfather's honor. He continued to expand the empire even further, all the way to the western hemisphere, right at the doorstep of the Greeks. Darius would be famous for his administrative prowess. He introduced the Satrap system to govern his lands. Since the territories were so vast, it was difficult for one man to effectively govern it all. Many rebellions would rise and would need to be quelled. Satraps were representatives of the king himself. They would serve as a governor of each Persian city-state. They would often enjoy the luxury of complete control of their lands if the king was away. This autocratic system of government would catch on in the form of autocracy in the western world.
|
||||
</div>
|
||||
@@ -213,7 +213,7 @@ Category: Non-Fiction
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<center><b>Collapse</b></center>
|
||||
<center>"} + span_bold("Collapse") + {"</center>
|
||||
<div class="border">
|
||||
Unfortunately, the empire would not last forever. After Darius The Great passed away, his heir Xerxes had much difficulties fending off the Greeks from his empire. A series of failures both in land and in naval combat marked a decline in Persian power. Suddenly, the whole world would be shocked, as a young Macedonian king named Alexander The Great would sweep through Persia and destroy the entire empire in a single campaign. By 330 B.C., the Persian empire had collapsed into several sprawling states, never to fully see the glory of it's legacy again.<br><br>
|
||||
The empire lasted approximately 250 years through several generations, and the contributions it has made to society as we know it is immeasurable.
|
||||
|
||||
@@ -53,13 +53,13 @@ Category: Reference
|
||||
<h2>Resource Re-purposing</h2>
|
||||
</center>
|
||||
<p class="borders">
|
||||
<b>Cardboard Products</b><br>
|
||||
"} + span_bold("Cardboard Products") + {"<br>
|
||||
Most cardboard-based products, especially any boxes you may find, can be broken down to a sheet and stacked up. From there, you can reuse it to make folders, more boxes, or anything else you may need (such as a clever disguise).
|
||||
<br><br>
|
||||
<b>Glass Bulbs</b><br>
|
||||
"} + span_bold("Glass Bulbs") + {"<br>
|
||||
Do not throw away your burnt out, broken light bulbs: collect them! These bulbs can be inserted into the nearest autolathe where their glass can be re-purposed. Broken bulbs and tubes both fit inside: just mind the sharp edges if they've been shattered.
|
||||
<br><br>
|
||||
<b>Glass Shards</b><br>
|
||||
"} + span_bold("Glass Shards") + {"<br>
|
||||
Did somebody break a window again? No matter, put on your welding goggles and you can re-purpose those glass shards right there on the spot by melting it down back to a more useful state.
|
||||
</p>
|
||||
<hr>
|
||||
@@ -80,7 +80,7 @@ Category: Reference
|
||||
<center>
|
||||
<h1>Disposals Reclamation</h1>
|
||||
<p class="borders">
|
||||
<b>Sifting through ...stuff.</b><br>
|
||||
"} + span_bold("Sifting through ...stuff.") + {"<br>
|
||||
You would be amazed at the amount of materials that get flushed down disposals: and nearly half of it isn't garbage. People flush things down disposals all the time just to get rid of it: bags, tools, boxes. For one reason or another, some idiot in medbay has thrown away a perfectly good lab coat again. The engineer? They've thrown down an entire toolbox: empty, because they've probably stuffed its contents into their own tool belt.
|
||||
<br><br>
|
||||
What. A. Tool.
|
||||
@@ -93,7 +93,7 @@ Category: Reference
|
||||
</center>
|
||||
<br>
|
||||
<p class="borders">
|
||||
<b>Searching for Treasure</b><br>
|
||||
"} + span_bold("Searching for Treasure") + {"<br>
|
||||
Like disposals, maintenance can be a 117th wonder of the universe. Lord knows how this stuff ends up in these tunnels: Drills. Shades. Cuffs. All these things can get organized and replaced in appropriate storage areas, but keep in mind: Some of that stuff's there for a reason, such as the emergency internals, gas masks, fire extinguishers, and flashlights. These types of objects should stay there: But if you find a bottle of liquor in a crate somewhere? Hell, why not bring that on home for a good time?
|
||||
</p>
|
||||
</center>
|
||||
@@ -126,7 +126,7 @@ Category: Reference
|
||||
<br><br>
|
||||
<div class="border">
|
||||
<h1><br>A Guide to <br>FBP and Prosthetic Maintenance<br><br></h1>
|
||||
<b>by Yuki Matsuda</b><br><br>
|
||||
"} + span_bold("by Yuki Matsuda") + {"<br><br>
|
||||
<br><br>
|
||||
</div>
|
||||
</body>
|
||||
@@ -257,7 +257,7 @@ Category: Reference
|
||||
<small>Player's Guide</small></h1>
|
||||
<center><sub>by Ray Rogers</sub></center><br>
|
||||
<div class="border">
|
||||
Each player starts with three attributes: <i>Vigor</i>, <i>Grit</i>, and <i>Giddyup</i>. Vigor counts how strong, how healthy, and how in-shape a cowpoke is. Grit defines how well a cowpoke can deal with wounds, how gritty his stare is, and how much ice cold water runs through their veins. Giddyup controls how agile a cowpoke is, how well they can dodge a bullet, and how well they can sling.<br><br>
|
||||
Each player starts with three attributes: "} + span_italics("Vigor") + {", "} + span_italics("Grit") + {", and "} + span_italics("Giddyup") + {". Vigor counts how strong, how healthy, and how in-shape a cowpoke is. Grit defines how well a cowpoke can deal with wounds, how gritty his stare is, and how much ice cold water runs through their veins. Giddyup controls how agile a cowpoke is, how well they can dodge a bullet, and how well they can sling.<br><br>
|
||||
When rolling an attribute, a cowpoke uses one d6. If they roll a 4 or above, they succeed. A cowpoke can roll more or less d6s depending on situational advantages/disadvantages, items they may be carrying, or abilities they may have accrued in their time moseying. As long as a cowpoke has one more success than failure, they succeed. For each additional success, up to 6, that success is enhanced or modified in some way.<br><br>
|
||||
In combat, initiative is gained by pulling poker cards. Initiative is then resolved from highest to lowest suit and number. In the event of tying cards, suits are resolved in this order: Hearts, Spades, Diamonds, and then Clubs. Then the cowpoke who gets highest goes on his turn. During their turn, they can do anything they please. Whatever action they want to achieve, they describe it narratively, and then the storyteller tells them how many d6s they may roll to achieve this task.
|
||||
</div>
|
||||
@@ -296,23 +296,23 @@ Category: Reference
|
||||
<h2>How to Survive a Mass Depressurization Event</h2>
|
||||
<div class="borders">
|
||||
<ul>
|
||||
<li><b>Don your internals.</b></li>
|
||||
<li>"} + span_bold("Don your internals.") + {"</li>
|
||||
</ul>
|
||||
<p class="indent">This is the first thing you should do in a mass depressurization event. Take out the breath mask and emergency air tank from the emergency box in your backpack. Put on the mask and clip the air tank securely to your belt; this way, you will not lose it if you fall over or pass out. Set the distribution pressure on your air tank to at least 18 kPA to conserve air. This represents the minimum threshold for a human to maintain consciousness.</p>
|
||||
<ul>
|
||||
<li><b>Find more oxygen.</b></li>
|
||||
<li>"} + span_bold("Find more oxygen.") + {"</li>
|
||||
</ul>
|
||||
<p class="indent">You may find that your air tank will soon run out. Do not worry. There are numerous emergency oxygen closets placed throughout the station, blue in color with 'O2' written on the front in white. You can also retrieve an oxygen tank from a fire closet. When possible, fill up your air tank in one of the large, blue O2 canisters by inserting your air tank, setting the distribution pressure to max, and turning on the release valve. Just make sure to turn the release valve off before removing your oxygen tank.</p>
|
||||
<ul>
|
||||
<li><b>Stay aware of your surroundings.</b></li>
|
||||
<li>"} + span_bold("Stay aware of your surroundings.") + {"</li>
|
||||
</ul>
|
||||
<p class="indent">Keep track of the local atmosphere. What is the pressure? Is it rising or falling? A pressure of 101 kPA is optimal for human survival, but you can survive conditions as low as 80 kPA for extended periods. You can check the pressure on the air alarms placed throughout the station or with your PDA's atmospheric scanner function. Make sure to check the pressure several times in quick succession, so you can know whether it is rising or falling.</p>
|
||||
<ul>
|
||||
<li><b>Avoid opening fire locks.</b></li>
|
||||
<li>"} + span_bold("Avoid opening fire locks.") + {"</li>
|
||||
</ul>
|
||||
<p class="indent">In the event of depressurization, the station's fire locks automatically drop in an attempt to contain the breach. However, this can also impede movement. If possible, find an alternate route to your destination or find a safe place to wait until the station's engineering team repairs the station. Do not open a fire lock without an engineer's express permission unless you are in immediate mortal danger. After you have opened a fire lock, make sure to close it immediately so as to prevent the breach from spreading.</p>
|
||||
<ul>
|
||||
<li><b>Listen to emergency personnel.</b></li>
|
||||
<li>"} + span_bold("Listen to emergency personnel.") + {"</li>
|
||||
</ul>
|
||||
<p class="indent">Follow the instructions of engineering, medical, and security personnel, as well as the orders of the heads of staff. Engineering personnel are trained to fix these situations, and medical personnel will likely be conducting search and rescue operations. Do not impede them and follow their instructions; you are more likely to survive, and less likely to endanger your fellow crew members.</p>
|
||||
</div>
|
||||
@@ -362,10 +362,10 @@ Category: Reference
|
||||
<li>Avoid using force where possible.</li>
|
||||
<li>Inform the warden when a criminal is wanted and set their wanted status via your security HUD if possible. Beepsky is a force to be reckoned with.</li>
|
||||
<li>Respect the chain of command! The warden outranks you within the brig itself. Obey the Head of Security, but remember that the Overseer outranks him.</li>
|
||||
<li><b>Remember your priorities:</b> one punch is hardly something to arrest anyone over if there is a hostage situation.</li>
|
||||
<li>"} + span_bold("Remember your priorities:") + {" one punch is hardly something to arrest anyone over if there is a hostage situation.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<center><sub>Security Guidelines as issued by NT</sub></center>
|
||||
</body>
|
||||
</html>
|
||||
"}
|
||||
"}
|
||||
|
||||
@@ -26,7 +26,7 @@ CATEGORY: Reference
|
||||
<br><br><br>
|
||||
<center>
|
||||
<h1><br>Thermodynamic Reactions and Research:<br>
|
||||
<font size="2">A Guide to Phoron Studies and Safety<br>
|
||||
"} + span_normal("A Guide to Phoron Studies and Safety") + {"<br>
|
||||
by I.R.I.S.</font><br><br></h1>
|
||||
</center>
|
||||
</body>
|
||||
@@ -68,7 +68,7 @@ CATEGORY: Reference
|
||||
<body>
|
||||
<div class="border">
|
||||
<center>
|
||||
<b>Understanding and Operating Research</b>
|
||||
"} + span_bold("Understanding and Operating Research") + {"
|
||||
</center><br>
|
||||
As a phoron researcher, you will likely operate within two separate labs. The first is your department's research and development lab -- this is where you will study the elements of existing technology and build upon it. The second is your department's toxin's lab, in which all thermodynamic phoron research takes place.
|
||||
<br><br>
|
||||
@@ -99,13 +99,13 @@ CATEGORY: Reference
|
||||
<body>
|
||||
<div class="border">
|
||||
<center>
|
||||
<b>Thermodynamic Studies: Preparation</b>
|
||||
"} + span_bold("Thermodynamic Studies: Preparation") + {"
|
||||
</center><br>
|
||||
While the research and development department is quite important to phoron studies, the toxins lab covers the relations between heat, energy, and phoron. Preparing and outfitting your lab is crucial to a successful study.
|
||||
<br><br>
|
||||
If your lab is not already equipped with a gas cooling system, it is recommended you seek out one to use. With some work, these are obtainable in your research lab, but aid from your station's engineering team or using an existing one -- such as those that can be found in a medical bay - are also suitable.
|
||||
<br><br>
|
||||
Next, note the pipes, ports, and where they all connect. Three ports should lead directly in to your mixing chamber. Two of these will pump <i>in</i> to it, while the third pumps out. There should be pumps within the airlock leading to the chamber that help operate these pipes. Two additional ports should lead to a heat exchanger. One side of the exchange should run pipes directly into the chamber, while the other only connects to the exchange. The former will heat up from an active mixing chamber, while the latter will heat the gas -- normally phoron -- in the canister attached to the port.
|
||||
Next, note the pipes, ports, and where they all connect. Three ports should lead directly in to your mixing chamber. Two of these will pump "} + span_italics("in") + {" to it, while the third pumps out. There should be pumps within the airlock leading to the chamber that help operate these pipes. Two additional ports should lead to a heat exchanger. One side of the exchange should run pipes directly into the chamber, while the other only connects to the exchange. The former will heat up from an active mixing chamber, while the latter will heat the gas -- normally phoron -- in the canister attached to the port.
|
||||
<br><br>
|
||||
Finally, you should note where the vent control is on your mixing chamber, as it may be needed in emergencies, and where the air scrubbers are in your lab. It is advised to have these in operation when working.
|
||||
<br><br>
|
||||
@@ -126,7 +126,7 @@ CATEGORY: Reference
|
||||
<body>
|
||||
<div class="border">
|
||||
<center>
|
||||
<b>Thermodynamic Studies: The Mixing Chamber</b>
|
||||
"} + span_bold("Thermodynamic Studies: The Mixing Chamber") + {"
|
||||
</center><br>
|
||||
Before you start your mix, ensure the chamber is empty and clear. You can rid it of any contaminating gases in two ways: pumping it through the output port and into a canister, or venting the chamber of it.
|
||||
<br><br>
|
||||
@@ -151,7 +151,7 @@ CATEGORY: Reference
|
||||
<body>
|
||||
<div class ="border">
|
||||
<center>
|
||||
<b>Thermodynamic Studies: What Next?</b>
|
||||
"} + span_bold("Thermodynamic Studies: What Next?") + {"
|
||||
</center><br>
|
||||
Here is where the guidance ends. You have your heated phoron, and you have access to a gas cooling system. You may cool your available oxygen canisters and test the interaction of temperature and pressure variation.
|
||||
<br><br>
|
||||
|
||||
@@ -28,8 +28,8 @@ Category: Religion
|
||||
<body>
|
||||
<br><br><br>
|
||||
<center>
|
||||
<h1><font size="5"><b>A Basic Understanding of Zoroastrianism</b></font><br>
|
||||
<font size="3"><i>by Satrap</i></font></h1>
|
||||
<h1>"} + span_giant(span_bold("A Basic Understanding of Zoroastrianism")) + {"<br>
|
||||
"} + span_large(span_italics("by Satrap")) + {"</h1>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
@@ -48,9 +48,9 @@ Category: Religion
|
||||
<br><br>
|
||||
Zoroastrianism was founded by the prophet, Zoroaster. Zoroaster was a priest in an area that preached mostly polytheistic religions. He rejected these beliefs, mostly because they were used to classify people in a rigid social structure with priests controlling the ordinary people. One day, while bathing in a river, Zoroaster received a vision from God.
|
||||
<br><br>
|
||||
Zoroaster reportedly found the visions of a God named Ahura Mazda, or the <i>"Wise Lord"</i>. Ahura Mazda came down to Zoroaster in the form of his Amesha Spentas, or <i>"Divine Immortals"</i>. This experience changed his worldview, and he sought to spread his religion through the lands. Despite some struggles, he was successful in that the Persian Empire picked up his beliefs, and spread them far and wide (but did not do so forcefully).
|
||||
Zoroaster reportedly found the visions of a God named Ahura Mazda, or the "} + span_italics("\"Wise Lord\"") + {". Ahura Mazda came down to Zoroaster in the form of his Amesha Spentas, or "} + span_italics("\"Divine Immortals\"") + {". This experience changed his worldview, and he sought to spread his religion through the lands. Despite some struggles, he was successful in that the Persian Empire picked up his beliefs, and spread them far and wide (but did not do so forcefully).
|
||||
<br><br>
|
||||
Zoroastrianism is a simple religion. There is one God, Ahura Mazda. He is omnipotent, omnipresent, and the force behind all creation. His six Amesha Spentas are representations of himself in various aspects and forms. An analogy to think of is that he is the sun, and they are all rays of the sun. Ahura Mazda is opposed by a devil named Angra Mainyu, or the <i>"Destructive Spirit"</i>. While Ahura Mazda seeks to create life and beauty, Angra Mainyu only seeks to destroy his greatness and glory at every turn.
|
||||
Zoroastrianism is a simple religion. There is one God, Ahura Mazda. He is omnipotent, omnipresent, and the force behind all creation. His six Amesha Spentas are representations of himself in various aspects and forms. An analogy to think of is that he is the sun, and they are all rays of the sun. Ahura Mazda is opposed by a devil named Angra Mainyu, or the "} + span_italics("\"Destructive Spirit\"") + {". While Ahura Mazda seeks to create life and beauty, Angra Mainyu only seeks to destroy his greatness and glory at every turn.
|
||||
<hr>
|
||||
</p>
|
||||
</body>
|
||||
@@ -193,7 +193,7 @@ Category: Religion
|
||||
<body>
|
||||
<h1>The Sun Goddess of Korea </h1>
|
||||
<p class="border">
|
||||
<i>Let us enjoy reading this Korean mythological story of the Sun-Goddess of Korea.</i><br><br>
|
||||
"} + span_italics("Let us enjoy reading this Korean mythological story of the Sun-Goddess of Korea.") + {"<br><br>
|
||||
Byun-soon, Dael-soon and Hae-soon were three sisters. One day a tiger came to their house, and on seeing him the girls ran out of the back door and climbed a tree.<br><br>
|
||||
When the tiger began to climb the tree, the sisters prayed to the gods to save them. Their prayers were answered.<br><br>
|
||||
An iron chain descended from the skies and the sisters climbed up to safety.<br><br>
|
||||
@@ -288,4 +288,4 @@ Category: Religion
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
"}
|
||||
"}
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
HTML += " <td>[L.definition]</td>"
|
||||
HTML += " <td>[L.suggested_punishments]</td>"
|
||||
HTML += " <td>[L.notes]</td>"
|
||||
HTML += " <td>[L.mandated ? "<font color='red'>Yes</font>" : "<font color='green'>No</font>"]</td>"
|
||||
HTML += " <td>[L.mandated ? span_red("Yes") : span_green("No")]</td>"
|
||||
HTML += " </tr>"
|
||||
j++
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ GLOBAL_LIST_EMPTY(_preloader_attributes)
|
||||
value = deepCopyList(value)
|
||||
#ifdef TESTING
|
||||
if(what.vars[attribute] == value)
|
||||
var/message = "<font color=green>[what.type]</font> at [AREACOORD(what)] - <b>VAR:</b> <font color=red>[attribute] = [isnull(value) ? "null" : (isnum(value) ? value : "\"[value]\"")]</font>"
|
||||
var/message = span_green("[what.type]") + " at [AREACOORD(what)] - " + span_bold("VAR:") + " " + span_red("[attribute] = [isnull(value) ? "null" : (isnum(value) ? value : "\"[value]\"")]")
|
||||
world.log << "DIRTY VAR: [message]"
|
||||
dirty_vars += message
|
||||
#endif
|
||||
|
||||
@@ -196,8 +196,8 @@ GLOBAL_DATUM_INIT(mhelp_tickets, /datum/mentor_help_tickets, new)
|
||||
//message from the initiator without a target, all people with mentor powers will see this
|
||||
/datum/mentor_help/proc/MessageNoRecipient(msg)
|
||||
var/ref_src = "\ref[src]"
|
||||
var/chat_msg = span_notice("(<A href='byond://?_src_=mentorholder;mhelp=[ref_src];[HrefToken()];mhelp_action=escalate'>ESCALATE</A>) Ticket [TicketHref("#[id]", ref_src)]<b>: [LinkedReplyName(ref_src)]:</b> [msg]")
|
||||
AddInteraction("<font color='red'>[LinkedReplyName(ref_src)]: [msg]</font>")
|
||||
var/chat_msg = span_notice("(<A href='byond://?_src_=mentorholder;mhelp=[ref_src];[HrefToken()];mhelp_action=escalate'>ESCALATE</A>) Ticket [TicketHref("#[id]", ref_src)]" + span_bold(": [LinkedReplyName(ref_src)]:") + " [msg]")
|
||||
AddInteraction(span_red("[LinkedReplyName(ref_src)]: [msg]"))
|
||||
for (var/client/C in GLOB.mentors)
|
||||
if (C.prefs?.read_preference(/datum/preference/toggle/play_mentorhelp_ping))
|
||||
C << 'sound/effects/mentorhelp.mp3'
|
||||
@@ -227,7 +227,7 @@ GLOBAL_DATUM_INIT(mhelp_tickets, /datum/mentor_help_tickets, new)
|
||||
if(initiator)
|
||||
initiator.current_mentorhelp = src
|
||||
|
||||
AddInteraction("<font color='purple'>Reopened by [usr.ckey]</font>")
|
||||
AddInteraction(span_purple("Reopened by [usr.ckey]"))
|
||||
if(initiator)
|
||||
to_chat(initiator, span_filter_adminlog("[span_purple("Ticket [TicketHref("#[id]")] was reopened by [usr.ckey].")]"))
|
||||
var/msg = span_adminhelp("Ticket [TicketHref("#[id]")] reopened by [usr.ckey].")
|
||||
@@ -271,15 +271,15 @@ GLOBAL_DATUM_INIT(mhelp_tickets, /datum/mentor_help_tickets, new)
|
||||
var/list/dat = list("<html><head><title>Ticket #[id]</title></head>")
|
||||
var/ref_src = "\ref[src]"
|
||||
dat += "<h4>Mentor Help Ticket #[id]: [LinkedReplyName(ref_src)]</h4>"
|
||||
dat += "<b>State: "
|
||||
dat += span_bold("State: ")
|
||||
switch(state)
|
||||
if(AHELP_ACTIVE)
|
||||
dat += "<font color='red'>OPEN</font>"
|
||||
dat += span_bold(span_red("OPEN"))
|
||||
if(AHELP_RESOLVED)
|
||||
dat += "<font color='green'>RESOLVED</font>"
|
||||
dat += span_bold(span_green("RESOLVED"))
|
||||
else
|
||||
dat += "UNKNOWN"
|
||||
dat += "</b>[GLOB.TAB][TicketHref("Refresh", ref_src)]"
|
||||
dat += "[GLOB.TAB][TicketHref("Refresh", ref_src)]"
|
||||
if(state != AHELP_ACTIVE)
|
||||
dat += "[GLOB.TAB][TicketHref("Reopen", ref_src, "reopen")]"
|
||||
dat += "<br><br>Opened at: [gameTimestamp(wtime = opened_at)] (Approx [(world.time - opened_at) / 600] minutes ago)"
|
||||
@@ -290,7 +290,7 @@ GLOBAL_DATUM_INIT(mhelp_tickets, /datum/mentor_help_tickets, new)
|
||||
dat += span_bold("Actions:") + " [Context(ref_src)]<br>"
|
||||
else
|
||||
dat += span_bold("DISCONNECTED") + "[GLOB.TAB][ClosureLinks(ref_src)]<br>"
|
||||
dat += "<br><b>Log:</b><br><br>"
|
||||
dat += "<br>" + span_bold("Log:") + "<br><br>"
|
||||
for(var/I in _interactions)
|
||||
dat += "[I]<br>"
|
||||
dat += "</html>"
|
||||
@@ -463,7 +463,7 @@ GLOBAL_DATUM_INIT(mhelp_tickets, /datum/mentor_help_tickets, new)
|
||||
if(current_mentorhelp)
|
||||
log_admin("Mentorhelp: [key_name(src)]: [msg]")
|
||||
current_mentorhelp.MessageNoRecipient(msg)
|
||||
to_chat(usr, span_mentor_pm_notice("Mentor-PM to-<b>Mentors</b>: [msg]"))
|
||||
to_chat(usr, span_mentor_pm_notice("Mentor-PM to-" + span_bold("Mentors") + ": [msg]"))
|
||||
return
|
||||
else
|
||||
to_chat(usr, span_warning("Ticket not found, creating new one..."))
|
||||
|
||||
@@ -1082,7 +1082,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
if(flashwindow)
|
||||
window_flash(client)
|
||||
if(message)
|
||||
to_chat(src, span_ghostalert("<font size=4>[message]</font>"))
|
||||
to_chat(src, span_ghostalert(span_huge("[message]")))
|
||||
if(source)
|
||||
throw_alert("\ref[source]_notify_revive", /obj/screen/alert/notify_cloning, new_master = source)
|
||||
to_chat(src, span_ghostalert("<a href='byond://?src=[REF(src)];reenter=1'>(Click to re-enter)</a>"))
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
to_chat(B.host_brain, span_warning("You feel a strange sensation as a foreign influence prods your mind."))
|
||||
to_chat(src, span_danger("It doesn't seem to be as effective as you hoped."))
|
||||
else
|
||||
to_chat(B.host_brain, span_danger("<FONT size=3>Horrific, burning agony lances through you, ripping a soundless scream from your trapped mind!</FONT>"))
|
||||
to_chat(B.host_brain, span_danger(span_large("Horrific, burning agony lances through you, ripping a soundless scream from your trapped mind!")))
|
||||
|
||||
/mob/living/carbon/proc/spawn_larvae()
|
||||
set category = "Abilities.Brainslug"
|
||||
|
||||
+10
-10
@@ -126,7 +126,7 @@
|
||||
chimera_hatch()
|
||||
add_modifier(/datum/modifier/resleeving_sickness/chimera, sickness_duration)
|
||||
adjustBrainLoss(5) // if they're reviving from dead, they come back with 5 brainloss on top of whatever's unhealed.
|
||||
visible_message(span_warning("<p><font size=4>The former corpse staggers to its feet, all its former wounds having vanished...</font></p>")) //Bloody hell...
|
||||
visible_message(span_warning("<p>" + span_huge("The former corpse staggers to its feet, all its former wounds having vanished...") + "</p>")) //Bloody hell...
|
||||
clear_alert("hatch")
|
||||
return
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
else
|
||||
chimera_hatch()
|
||||
|
||||
visible_message(span_warning("<p><font size=4>[src] rises to \his feet.</font></p>")) //Bloody hell...
|
||||
visible_message(span_warning("<p>" + span_huge("[src] rises to \his feet.") + "</p>")) //Bloody hell...
|
||||
clear_alert("hatch")
|
||||
|
||||
/mob/living/carbon/human/proc/chimera_hatch()
|
||||
@@ -160,7 +160,7 @@
|
||||
var/blood_color = species.blood_color
|
||||
var/flesh_color = species.flesh_color
|
||||
new /obj/effect/gibspawner/human/xenochimera(T, null, flesh_color, blood_color)
|
||||
visible_message(span_danger("<p><font size=4>The lifeless husk of [src] bursts open, revealing a new, intact copy in the pool of viscera.</font></p>")) //Bloody hell...
|
||||
visible_message(span_danger("<p>" + span_huge("The lifeless husk of [src] bursts open, revealing a new, intact copy in the pool of viscera.") + "</p>")) //Bloody hell...
|
||||
playsound(T, 'sound/effects/mob_effects/xenochimera/hatch.ogg', 50)
|
||||
else //lower cost for doing a quick cosmetic revive
|
||||
nutrition = old_nutrition * 0.9
|
||||
@@ -652,7 +652,7 @@
|
||||
T.apply_damage(500, OXY) //Kill them.
|
||||
absorbing_prey = 0
|
||||
to_chat(src, span_notice("You have completely drained [T], killing them in the process."))
|
||||
to_chat(T, span_danger("<font size='7'>You... Feel... So... Weak...</font>"))
|
||||
to_chat(T, span_danger(span_massive("You... Feel... So... Weak...")))
|
||||
visible_message(span_danger("[src] seems to finish whatever they were doing to [T]."))
|
||||
add_attack_logs(src,T,"Succubus drained (lethal)")
|
||||
return
|
||||
@@ -1582,29 +1582,29 @@
|
||||
to_chat(src, span_notice("You will [trait_injection_verb] your targets."))
|
||||
return
|
||||
if(choice == "Chemical Refresher")
|
||||
var/output = {"<B>Chemical Refresher!</B><HR>
|
||||
<B>Options for venoms</B><BR>
|
||||
var/output = {""} + span_bold("Chemical Refresher!") + {"<HR>
|
||||
"} + span_bold("Options for venoms") + {"<BR>
|
||||
<BR>
|
||||
<B>Size Chemicals</B><BR>
|
||||
"} + span_bold("Size Chemicals") + {"<BR>
|
||||
Microcillin: Will make someone shrink. <br>
|
||||
Macrocillin: Will make someone grow. <br>
|
||||
Normalcillin: Will make someone normal size. <br>
|
||||
Note: 1 unit = 100% size diff. 0.01 unit = 1% size diff. <br>
|
||||
Note: Normacillin stops at 100% size. <br>
|
||||
<br>
|
||||
<B>Gender Chemicals</B><BR>
|
||||
"} + span_bold("Gender Chemicals") + {"<BR>
|
||||
Androrovir: Will transform someone's sex to male. <br>
|
||||
Gynorovir: Will transform someone's sex to female. <br>
|
||||
Androgynorovir: Will transform someone's sex to plural. <br>
|
||||
<br>
|
||||
<B>Special Chemicals</B><BR>
|
||||
"} + span_bold("Special Chemicals") + {"<BR>
|
||||
Stoxin: Will make someone drowsy. <br>
|
||||
Rainbow Toxin: Will make someone see rainbows. <br>
|
||||
Paralysis Toxin: Will make someone paralyzed. <br>
|
||||
Numbing Enzyme: Will make someone unable to feel pain. <br>
|
||||
Pain Enzyme: Will make someone feel amplified pain. <br>
|
||||
<br>
|
||||
<B>Side Notes</B><BR>
|
||||
"} + span_bold("Side Notes") + {"<BR>
|
||||
You can select a value of 0 to inject nothing! <br>
|
||||
Overdose threshold for most chemicals is 30 units. <br>
|
||||
Exceptions to OD is: (Numbing Enzyme:20)<br>
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
var/regen_sounds = H.regen_sounds
|
||||
if(prob(2)) // 2% chance of playing squelchy noise while reviving, which is run roughly every 2 seconds/tick while regenerating.
|
||||
playsound(H, pick(regen_sounds), 30)
|
||||
H.visible_message(span_danger("<p><font size=4>[H.name]'s motionless form shudders grotesquely, rippling unnaturally.</font></p>"))
|
||||
H.visible_message(span_danger("<p>" + span_huge("[H.name]'s motionless form shudders grotesquely, rippling unnaturally.") + "</p>"))
|
||||
|
||||
//Cold/pressure effects when not regenerating
|
||||
else
|
||||
@@ -274,28 +274,28 @@
|
||||
/datum/species/xenochimera/proc/go_feral(var/mob/living/carbon/human/H, var/stress, var/cause)
|
||||
// Going feral due to hunger
|
||||
if(cause == "hunger")
|
||||
to_chat(H,span_danger("<big>Something in your mind flips, your instincts taking over, no longer able to fully comprehend your surroundings as survival becomes your primary concern - you must feed, survive, there is nothing else. Hunt. Eat. Hide. Repeat.</big>"))
|
||||
to_chat(H,span_danger(span_large("Something in your mind flips, your instincts taking over, no longer able to fully comprehend your surroundings as survival becomes your primary concern - you must feed, survive, there is nothing else. Hunt. Eat. Hide. Repeat.")))
|
||||
log_and_message_admins("has gone feral due to hunger.", H)
|
||||
|
||||
// If they're hurt, chance of snapping.
|
||||
else if(cause == "shock")
|
||||
//If the majority of their shock is due to halloss, give them a different message (3x multiplier on check as halloss is 2x - meaning t_s must be at least 3x for other damage sources to be the greater part)
|
||||
if(3*H.halloss >= H.traumatic_shock)
|
||||
to_chat(H,span_danger("<big>The pain! It stings! Got to get away! Your instincts take over, urging you to flee, to hide, to go to ground, get away from here...</big>"))
|
||||
to_chat(H,span_danger(span_large("The pain! It stings! Got to get away! Your instincts take over, urging you to flee, to hide, to go to ground, get away from here...")))
|
||||
log_and_message_admins("has gone feral due to halloss.", H)
|
||||
|
||||
//Majority due to other damage sources
|
||||
else
|
||||
to_chat(H,span_danger("<big>Your fight-or-flight response kicks in, your injuries too much to simply ignore - you need to flee, to hide, survive at all costs - or destroy whatever is threatening you.</big>"))
|
||||
to_chat(H,span_danger(span_large("Your fight-or-flight response kicks in, your injuries too much to simply ignore - you need to flee, to hide, survive at all costs - or destroy whatever is threatening you.")))
|
||||
log_and_message_admins("has gone feral due to injury.", H)
|
||||
|
||||
//No hungry or shock, but jittery
|
||||
else if(cause == "jittery")
|
||||
to_chat(H,span_warning("<big>Suddenly, something flips - everything that moves is... potential prey. A plaything. This is great! Time to hunt!</big>"))
|
||||
to_chat(H,span_warning(span_large("Suddenly, something flips - everything that moves is... potential prey. A plaything. This is great! Time to hunt!")))
|
||||
log_and_message_admins("has gone feral due to jitteriness.", H)
|
||||
|
||||
else // catch-all just in case something weird happens
|
||||
to_chat(H,span_warning("<big>The stress of your situation is too much for you, and your survival instincts kick in!</big>"))
|
||||
to_chat(H,span_warning(span_large("The stress of your situation is too much for you, and your survival instincts kick in!")))
|
||||
log_and_message_admins("has gone feral for unknown reasons.", H)
|
||||
//finally, set their feral var
|
||||
H.feral = stress
|
||||
|
||||
@@ -1290,16 +1290,15 @@
|
||||
/mob/living/vv_get_header()
|
||||
. = ..()
|
||||
. += {"
|
||||
<a href='byond://?_src_=vars;[HrefToken()];rename=\ref[src]'><b>[src]</b></a><font size='1'>
|
||||
<br><a href='byond://?_src_=vars;[HrefToken()];datumedit=\ref[src];varnameedit=ckey'>[ckey ? ckey : "No ckey"]</a> / <a href='byond://?_src_=vars;[HrefToken()];datumedit=\ref[src];varnameedit=real_name'>[real_name ? real_name : "No real name"]</a>
|
||||
<br>
|
||||
BRUTE:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=brute'>[getBruteLoss()]</a>
|
||||
FIRE:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=fire'>[getFireLoss()]</a>
|
||||
TOXIN:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=toxin'>[getToxLoss()]</a>
|
||||
OXY:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=oxygen'>[getOxyLoss()]</a>
|
||||
CLONE:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=clone'>[getCloneLoss()]</a>
|
||||
BRAIN:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=brain'>[getBrainLoss()]</a>
|
||||
</font>
|
||||
<a href='byond://?_src_=vars;[HrefToken()];rename=\ref[src]'>"} + span_bold("[src]") + {"</a>
|
||||
"} + span_small("<br><a href='byond://?_src_=vars;[HrefToken()];datumedit=\ref[src];varnameedit=ckey'>[ckey ? ckey : "No ckey"]</a> / <a href='byond://?_src_=vars;[HrefToken()];datumedit=\ref[src];varnameedit=real_name'>[real_name ? real_name : "No real name"]</a>") + {"
|
||||
"} + span_small("<br>") + {"
|
||||
"} + span_small("BRUTE:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=brute'>[getBruteLoss()]</a>") + {"
|
||||
"} + span_small("FIRE:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=fire'>[getFireLoss()]</a>") + {"
|
||||
"} + span_small("TOXIN:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=toxin'>[getToxLoss()]</a>") + {"
|
||||
"} + span_small("OXY:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=oxygen'>[getOxyLoss()]</a>") + {"
|
||||
"} + span_small("CLONE:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=clone'>[getCloneLoss()]</a>") + {"
|
||||
"} + span_small("BRAIN:<a href='byond://?_src_=vars;[HrefToken()];mobToDamage=\ref[src];adjustDamage=brain'>[getBrainLoss()]</a>") + {"
|
||||
"}
|
||||
|
||||
/mob/living/update_gravity(has_gravity)
|
||||
|
||||
@@ -278,37 +278,37 @@
|
||||
dat += "<div class='statusDisplay'>"
|
||||
|
||||
if(!delivery && compactor && length(contents))//garbage counter for trashpup
|
||||
dat += "<font color='red'><B>Current load:</B> [length(contents)] / [max_item_count] objects.</font><BR>"
|
||||
dat += "<font color='gray'>([contents.Join(", ")])</font><BR><BR>"
|
||||
dat += span_red(span_bold("Current load:") + " [length(contents)] / [max_item_count] objects.") + "<BR>"
|
||||
dat += span_gray("([contents.Join(", ")])") + "<BR><BR>"
|
||||
|
||||
if(delivery && length(contents))
|
||||
dat += "<font color='red'><B>Current load:</B> [length(contents)] / [max_item_count] objects.</font><BR>"
|
||||
dat += "<font color='gray'>Cargo compartment slot: Cargo 1.</font><BR>"
|
||||
dat += span_red(span_bold("Current load:") + " [length(contents)] / [max_item_count] objects.") + "<BR>"
|
||||
dat += span_gray("Cargo compartment slot: Cargo 1.") + "<BR>"
|
||||
if(length(deliveryslot_1))
|
||||
dat += "<font color='gray'>([deliveryslot_1.Join(", ")])</font><BR>"
|
||||
dat += "<font color='gray'>Cargo compartment slot: Cargo 2.</font><BR>"
|
||||
dat += span_gray("([deliveryslot_1.Join(", ")])") + "<BR>"
|
||||
dat += span_gray("Cargo compartment slot: Cargo 2.") + "<BR>"
|
||||
if(length(deliveryslot_2))
|
||||
dat += "<font color='gray'>([deliveryslot_2.Join(", ")])</font><BR>"
|
||||
dat += "<font color='gray'>Cargo compartment slot: Cargo 3.</font><BR>"
|
||||
dat += span_gray("([deliveryslot_2.Join(", ")])") + "<BR>"
|
||||
dat += span_gray("Cargo compartment slot: Cargo 3.") + "<BR>"
|
||||
if(length(deliveryslot_3))
|
||||
dat += "<font color='gray'>([deliveryslot_3.Join(", ")])</font><BR>"
|
||||
dat += "<font color='red'>Cargo compartment slot: Fuel.</font><BR>"
|
||||
dat += "<font color='red'>([jointext(contents - (deliveryslot_1 + deliveryslot_2 + deliveryslot_3),", ")])</font><BR><BR>"
|
||||
dat += span_gray("([deliveryslot_3.Join(", ")])") + "<BR>"
|
||||
dat += span_red("Cargo compartment slot: Fuel.") + "<BR>"
|
||||
dat += span_red("([jointext(contents - (deliveryslot_1 + deliveryslot_2 + deliveryslot_3),", ")])") + "<BR><BR>"
|
||||
|
||||
if(analyzer && !synced)
|
||||
dat += "<A href='byond://?src=\ref[src];sync=1'>Sync Files</A><BR>"
|
||||
|
||||
//Cleaning and there are still un-preserved items
|
||||
if(cleaning && length(contents - items_preserved))
|
||||
dat += "<font color='red'><B>Self-cleaning mode.</B> [length(contents - items_preserved)] object(s) remaining.</font><BR>"
|
||||
dat += span_red(span_bold("Self-cleaning mode.") + " [length(contents - items_preserved)] object(s) remaining.") + "<BR>"
|
||||
|
||||
//There are no items to be processed other than un-preserved items
|
||||
else if(cleaning && length(items_preserved))
|
||||
dat += "<font color='red'><B>Self-cleaning done. Eject remaining objects now.</B></font><BR>"
|
||||
dat += span_red(span_bold("Self-cleaning done. Eject remaining objects now.")) + "<BR>"
|
||||
|
||||
//Preserved items count when the list is populated
|
||||
if(length(items_preserved))
|
||||
dat += "<font color='red'>[length(items_preserved)] uncleanable object(s).</font><BR>"
|
||||
dat += span_red("[length(items_preserved)] uncleanable object(s).") + "<BR>"
|
||||
|
||||
if(!patient)
|
||||
dat += "[src.name] Unoccupied"
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
privacy_poll()
|
||||
|
||||
/mob/new_player/proc/privacy_poll()
|
||||
var/output = "<div align='center'><B>Player poll</B>"
|
||||
var/output = "<div align='center'>" + span_bold("Player poll")
|
||||
output +="<hr>"
|
||||
output += span_bold("We would like to expand our stats gathering.")
|
||||
output += "<br>This however involves gathering data about player behavior, play styles, unique player numbers, play times, etc. Data like that cannot be gathered fully anonymously, which is why we're asking you how you'd feel if player-specific data was gathered. Prior to any of this actually happening, a privacy policy will be discussed, but before that can begin, we'd preliminarily like to know how you feel about the concept."
|
||||
@@ -56,7 +56,7 @@
|
||||
var/datum/db_query/select_query = SSdbcore.NewQuery("SELECT id, question FROM erro_poll_question WHERE [(isadmin ? "" : "adminonly = false AND")] Now() BETWEEN starttime AND endtime")
|
||||
select_query.Execute()
|
||||
|
||||
var/output = "<div align='center'><B>Player polls</B>"
|
||||
var/output = "<div align='center'>" + span_bold("Player polls")
|
||||
output +="<hr>"
|
||||
|
||||
var/pollid
|
||||
@@ -70,7 +70,7 @@
|
||||
while(select_query.NextRow())
|
||||
pollid = select_query.item[1]
|
||||
pollquestion = select_query.item[2]
|
||||
output += "<tr bgcolor='[ (i % 2 == 1) ? color1 : color2 ]'><td><a href=\"byond://?src=\ref[src];pollid=[pollid]\"><b>[pollquestion]</b></a></td></tr>"
|
||||
output += "<tr bgcolor='[ (i % 2 == 1) ? color1 : color2 ]'><td><a href=\"byond://?src=\ref[src];pollid=[pollid]\">" + span_bold("[pollquestion]") + "</a></td></tr>"
|
||||
i++
|
||||
qdel(select_query)
|
||||
output += "</table>"
|
||||
@@ -129,10 +129,10 @@
|
||||
PO.optiontext = options_query.item[2]
|
||||
options += PO
|
||||
qdel(options_query)
|
||||
var/output = "<div align='center'><B>Player poll</B>"
|
||||
var/output = "<div align='center'>" + span_bold("Player poll")
|
||||
output +="<hr>"
|
||||
output += span_bold("Question: [pollquestion]") + "<br>"
|
||||
output += "<font size='2'>Poll runs from <b>[pollstarttime]</b> until <b>[pollendtime]</b></font><p>"
|
||||
output += span_normal("Poll runs from " + span_bold("[pollstarttime]") + " until " + span_bold("[pollendtime]")) + "<p>"
|
||||
|
||||
if(!voted) //Only make this a form if we have not voted yet
|
||||
output += "<form name='cardcomp' action='?src=\ref[src]' method='get'>"
|
||||
@@ -174,10 +174,10 @@
|
||||
qdel(voted_query)
|
||||
|
||||
|
||||
var/output = "<div align='center'><B>Player poll</B>"
|
||||
var/output = "<div align='center'>" + span_bold("Player poll")
|
||||
output +="<hr>"
|
||||
output += span_bold("Question: [pollquestion]") + "<br>"
|
||||
output += "<font size='2'>Feedback gathering runs from <b>[pollstarttime]</b> until <b>[pollendtime]</b></font><p>"
|
||||
output += span_normal("Feedback gathering runs from " + span_bold("[pollstarttime]") + " until " + span_bold("[pollendtime]")) + "<p>"
|
||||
|
||||
if(!voted) //Only make this a form if we have not voted yet
|
||||
output += "<form name='cardcomp' action='?src=\ref[src]' method='get'>"
|
||||
@@ -185,7 +185,7 @@
|
||||
output += "<input type='hidden' name='votepollid' value='[pollid]'>"
|
||||
output += "<input type='hidden' name='votetype' value='TEXT'>"
|
||||
|
||||
output += "<font size='2'>Please provide feedback below. You can use any letters of the English alphabet, numbers and the symbols: . , ! ? : ; -</font><br>"
|
||||
output += span_normal("Please provide feedback below. You can use any letters of the English alphabet, numbers and the symbols: . , ! ? : ; -") + "<br>"
|
||||
output += "<textarea name='replytext' cols='50' rows='14'></textarea>"
|
||||
|
||||
output += "<p><input type='submit' value='Submit'>"
|
||||
@@ -208,10 +208,10 @@
|
||||
var/datum/db_query/voted_query = SSdbcore.NewQuery("SELECT o.text, v.rating FROM erro_poll_option o, erro_poll_vote v WHERE o.pollid = [pollid] AND v.ckey = '[usr.ckey]' AND o.id = v.optionid")
|
||||
voted_query.Execute()
|
||||
|
||||
var/output = "<div align='center'><B>Player poll</B>"
|
||||
var/output = "<div align='center'>" + span_bold("Player poll")
|
||||
output +="<hr>"
|
||||
output += span_bold("Question: [pollquestion]") + "<br>"
|
||||
output += "<font size='2'>Poll runs from <b>[pollstarttime]</b> until <b>[pollendtime]</b></font><p>"
|
||||
output += span_normal("Poll runs from " + span_bold("[pollstarttime]") + " until " + span_bold("[pollendtime]")) + "<p>"
|
||||
|
||||
var/voted = 0
|
||||
while(voted_query.NextRow())
|
||||
@@ -220,7 +220,7 @@
|
||||
var/optiontext = voted_query.item[1]
|
||||
var/rating = voted_query.item[2]
|
||||
|
||||
output += "<br><b>[optiontext] - [rating]</b>"
|
||||
output += "<br>" + span_bold("[optiontext] - [rating]") + ""
|
||||
qdel(voted_query)
|
||||
if(!voted) //Only make this a form if we have not voted yet
|
||||
output += "<form name='cardcomp' action='?src=\ref[src]' method='get'>"
|
||||
@@ -303,10 +303,10 @@
|
||||
if(select_query.item[5])
|
||||
multiplechoiceoptions = text2num(select_query.item[5])
|
||||
|
||||
var/output = "<div align='center'><B>Player poll</B>"
|
||||
var/output = "<div align='center'>" + span_bold("Player poll")
|
||||
output +="<hr>"
|
||||
output += span_bold("Question: [pollquestion]") + "<br>You can select up to [multiplechoiceoptions] options. If you select more, the first [multiplechoiceoptions] will be saved.<br>"
|
||||
output += "<font size='2'>Poll runs from <b>[pollstarttime]</b> until <b>[pollendtime]</b></font><p>"
|
||||
output += span_normal("Poll runs from " + span_bold("[pollstarttime]") + " until " + span_bold("[pollendtime]")) + "<p>"
|
||||
|
||||
if(!voted) //Only make this a form if we have not voted yet
|
||||
output += "<form name='cardcomp' action='?src=\ref[src]' method='get'>"
|
||||
|
||||
@@ -26,11 +26,11 @@ obj/item/newspaper/attack_self(mob/user)
|
||||
pages = 0
|
||||
switch(screen)
|
||||
if(0) //Cover
|
||||
dat+="<DIV ALIGN='center'><B><FONT SIZE=6>The Griffon</FONT></B></div>"
|
||||
dat+="<DIV ALIGN='center'><FONT SIZE=2>[using_map.company_name]-standard newspaper, for use on [using_map.company_name]© Space Facilities</FONT></div><HR>"
|
||||
dat+="<DIV ALIGN='center'>" + span_bold(span_giganteus("The Griffon")) + "</div>"
|
||||
dat+="<DIV ALIGN='center'>" + span_normal("[using_map.company_name]-standard newspaper, for use on [using_map.company_name]© Space Facilities") + "</div><HR>"
|
||||
if(isemptylist(news_content))
|
||||
if(important_message)
|
||||
dat+="Contents:<BR><ul><B><FONT COLOR='red'>**</FONT>Important Security Announcement<FONT COLOR='red'>**</FONT></B> <FONT SIZE=2>\[page [pages+2]\]</FONT><BR></ul>"
|
||||
dat+="Contents:<BR><ul>" + span_bold(span_red("**") + "Important Security Announcement" + span_red("**")) + " " + span_nornal("\[page [pages+2]\]") + "<BR></ul>"
|
||||
else
|
||||
dat+=span_italics("Other than the title, the rest of the newspaper is unprinted...")
|
||||
else
|
||||
@@ -38,22 +38,22 @@ obj/item/newspaper/attack_self(mob/user)
|
||||
for(var/datum/feed_channel/NP in news_content)
|
||||
pages++
|
||||
if(important_message)
|
||||
dat+=span_bold("<FONT COLOR='red'>**</FONT>Important Security Announcement<FONT COLOR='red'>**</FONT>") + " <FONT SIZE=2>\[page [pages+2]\]</FONT><BR>"
|
||||
dat+=span_bold(span_red("**") + "Important Security Announcement" + span_red("**")) + " " + span_normal("\[page [pages+2]\]") + "<BR>"
|
||||
var/temp_page=0
|
||||
for(var/datum/feed_channel/NP in news_content)
|
||||
temp_page++
|
||||
dat+=span_bold("[NP.channel_name]") + " <FONT SIZE=2>\[page [temp_page+1]\]</FONT><BR>"
|
||||
dat+=span_bold("[NP.channel_name]") + " " + span_normal("\[page [temp_page+1]\]") + "<BR>"
|
||||
dat+="</ul>"
|
||||
if(scribble_page==curr_page)
|
||||
dat+="<BR><I>There is a small scribble near the end of this page... It reads: \"[scribble]\"</I>"
|
||||
dat+="<BR>" + span_italics("There is a small scribble near the end of this page... It reads: \"[scribble]\"")
|
||||
dat+= "<HR><DIV STYLE='float:right;'><A href='byond://?src=\ref[src];next_page=1'>Next Page</A></DIV> <div style='float:left;'><A href='byond://?src=\ref[human_user];mach_close=newspaper_main'>Done reading</A></DIV>"
|
||||
if(1) // X channel pages inbetween.
|
||||
for(var/datum/feed_channel/NP in news_content)
|
||||
pages++ //Let's get it right again.
|
||||
var/datum/feed_channel/C = news_content[curr_page]
|
||||
dat+="<FONT SIZE=4><B>[C.channel_name]</B></FONT><FONT SIZE=1> \[created by: <FONT COLOR='maroon'>[C.author]</FONT>\]</FONT><BR><BR>"
|
||||
dat+=span_huge(span_bold("[C.channel_name]")) + span_small(" \[created by: " + span_maroon("[C.author]") + "\]") + "<BR><BR>"
|
||||
if(C.censored)
|
||||
dat+="This channel was deemed dangerous to the general welfare of the station and therefore marked with a <B><FONT COLOR='red'>D-Notice</B></FONT>. Its contents were not transferred to the newspaper at the time of printing."
|
||||
dat+="This channel was deemed dangerous to the general welfare of the station and therefore marked with a " + span_bold(span_red("D-Notice")) + ". Its contents were not transferred to the newspaper at the time of printing."
|
||||
else
|
||||
if(isemptylist(C.messages))
|
||||
dat+="No Feed stories stem from this channel..."
|
||||
@@ -66,17 +66,17 @@ obj/item/newspaper/attack_self(mob/user)
|
||||
if(MESSAGE.img)
|
||||
user << browse_rsc(MESSAGE.img, "tmp_photo[i].png")
|
||||
dat+="<img src='tmp_photo[i].png' width = '180'><BR>"
|
||||
dat+="<FONT SIZE=1>\[[MESSAGE.message_type] by <FONT COLOR='maroon'>[MESSAGE.author]</FONT>\]</FONT><BR><BR>"
|
||||
dat+=span_small("\[[MESSAGE.message_type] by " + span_maroon("[MESSAGE.author]") + "\]") + "<BR><BR>"
|
||||
dat+="</ul>"
|
||||
if(scribble_page==curr_page)
|
||||
dat+="<BR><I>There is a small scribble near the end of this page... It reads: \"[scribble]\"</I>"
|
||||
dat+="<BR>" + span_italics("There is a small scribble near the end of this page... It reads: \"[scribble]\"")
|
||||
dat+= "<BR><HR><DIV STYLE='float:left;'><A href='byond://?src=\ref[src];prev_page=1'>Previous Page</A></DIV> <DIV STYLE='float:right;'><A href='byond://?src=\ref[src];next_page=1'>Next Page</A></DIV>"
|
||||
if(2) //Last page
|
||||
for(var/datum/feed_channel/NP in news_content)
|
||||
pages++
|
||||
if(important_message!=null)
|
||||
dat+="<DIV STYLE='float:center;'><FONT SIZE=4><B>Wanted Issue:</B></FONT></DIV><BR><BR>"
|
||||
dat+=span_bold("Criminal name") + ": <FONT COLOR='maroon'>[important_message.author]</FONT><BR>"
|
||||
dat+="<DIV STYLE='float:center;'>" + span_huge(span_bold("Wanted Issue:")) + "</DIV><BR><BR>"
|
||||
dat+=span_bold("Criminal name") + ": " + span_maroon("[important_message.author]") + "<BR>"
|
||||
dat+=span_bold("Description") + ": [important_message.body]<BR>"
|
||||
dat+=span_bold("Photo:") + ": "
|
||||
if(important_message.img)
|
||||
@@ -87,7 +87,7 @@ obj/item/newspaper/attack_self(mob/user)
|
||||
else
|
||||
dat+=span_italics("Apart from some uninteresting Classified ads, there's nothing on this page...")
|
||||
if(scribble_page==curr_page)
|
||||
dat+="<BR><I>There is a small scribble near the end of this page... It reads: \"[scribble]\"</I>"
|
||||
dat+="<BR>" + span_italics("There is a small scribble near the end of this page... It reads: \"[scribble]\"")
|
||||
dat+= "<HR><DIV STYLE='float:left;'><A href='byond://?src=\ref[src];prev_page=1'>Previous Page</A></DIV>"
|
||||
else
|
||||
dat+="I'm sorry to break your immersion. This shit's bugged. Report this bug to Agouri, polyxenitopalidou@gmail.com"
|
||||
|
||||
@@ -26,11 +26,11 @@
|
||||
pages = 0
|
||||
switch(screen)
|
||||
if(0) //Cover
|
||||
dat+="<DIV ALIGN='center'><B><FONT SIZE=6>The Griffon</FONT></B></div>"
|
||||
dat+="<DIV ALIGN='center'><FONT SIZE=2>[using_map.company_name]-standard newspaper, for use on [using_map.company_name] Space Facilities</FONT></div><HR>"
|
||||
dat+="<DIV ALIGN='center'>" + span_bold(span_giganteus("The Griffon")) + "</div>"
|
||||
dat+="<DIV ALIGN='center'>" + span_normal("[using_map.company_name]-standard newspaper, for use on [using_map.company_name] Space Facilities") + "</div><HR>"
|
||||
if(isemptylist(news_content))
|
||||
if(important_message)
|
||||
dat+="Contents:<BR><ul><B><FONT COLOR='red'>**</FONT>Important Security Announcement<FONT COLOR='red'>**</FONT></B> <FONT SIZE=2>\[page [pages+2]\]</FONT><BR></ul>"
|
||||
dat+="Contents:<BR><ul>" + span_bold(span_red("**") + "Important Security Announcement" + span_red("**")) + " " + span_normal("\[page [pages+2]\]") + "<BR></ul>"
|
||||
else
|
||||
dat+=span_italics("Other than the title, the rest of the newspaper is unprinted...")
|
||||
else
|
||||
@@ -38,22 +38,22 @@
|
||||
for(var/datum/feed_channel/NP in news_content)
|
||||
pages++
|
||||
if(important_message)
|
||||
dat+=span_bold("<FONT COLOR='red'>**</FONT>Important Security Announcement<FONT COLOR='red'>**</FONT>") + " <FONT SIZE=2>\[page [pages+2]\]</FONT><BR>"
|
||||
dat+=span_bold(span_red("**") + "Important Security Announcement" + span_red("**")) + " " + span_normal("\[page [pages+2]\]") + "<BR>"
|
||||
var/temp_page=0
|
||||
for(var/datum/feed_channel/NP in news_content)
|
||||
temp_page++
|
||||
dat+=span_bold("[NP.channel_name]") + " " + span_normal("\[page [temp_page+1]\]") + "<BR>"
|
||||
dat+="</ul>"
|
||||
if(scribble_page==curr_page)
|
||||
dat+="<BR><I>There is a small scribble near the end of this page... It reads: \"[scribble]\"</I>"
|
||||
dat+="<BR>" + span_italics("There is a small scribble near the end of this page... It reads: \"[scribble]\"")
|
||||
dat+= "<HR><DIV STYLE='float:right;'><A href='byond://?src=\ref[src];next_page=1'>Next Page</A></DIV> <div style='float:left;'><A href='byond://?src=\ref[human_user];mach_close=newspaper_main'>Done reading</A></DIV>"
|
||||
if(1) // X channel pages inbetween.
|
||||
for(var/datum/feed_channel/NP in news_content)
|
||||
pages++ //Let's get it right again.
|
||||
var/datum/feed_channel/C = news_content[curr_page]
|
||||
dat+="<FONT SIZE=4><B>[C.channel_name]</B></FONT><FONT SIZE=1> \[created by: <FONT COLOR='maroon'>[C.author]</FONT>\]</FONT><BR><BR>"
|
||||
dat+=span_huge(span_bold("[C.channel_name]")) + span_small(" \[created by: " + span_maroon("[C.author]") + "\]") + "<BR><BR>"
|
||||
if(C.censored)
|
||||
dat+="This channel was deemed dangerous to the general welfare of the station and therefore marked with a <B><FONT COLOR='red'>D-Notice</B></FONT>. Its contents were not transferred to the newspaper at the time of printing."
|
||||
dat+="This channel was deemed dangerous to the general welfare of the station and therefore marked with a " + span_bold(span_red("D-Notice")) + ". Its contents were not transferred to the newspaper at the time of printing."
|
||||
else
|
||||
if(isemptylist(C.messages))
|
||||
dat+="No Feed stories stem from this channel..."
|
||||
@@ -67,17 +67,17 @@
|
||||
if(MESSAGE.img)
|
||||
user << browse_rsc(MESSAGE.img, "tmp_photo[i].png")
|
||||
dat+="<img src='tmp_photo[i].png' width = '180'><BR>"
|
||||
dat+="<FONT SIZE=1>\[[MESSAGE.message_type] by <FONT COLOR='maroon'>[MESSAGE.author]</FONT>\]</FONT><BR><BR>"
|
||||
dat+=span_small("\[[MESSAGE.message_type] by " + span_maroon("[MESSAGE.author]") + "\]") + "<BR><BR>"
|
||||
dat+="</ul>"
|
||||
if(scribble_page==curr_page)
|
||||
dat+="<BR><I>There is a small scribble near the end of this page... It reads: \"[scribble]\"</I>"
|
||||
dat+="<BR>" + span_italics("There is a small scribble near the end of this page... It reads: \"[scribble]\"")
|
||||
dat+= "<BR><HR><DIV STYLE='float:left;'><A href='byond://?src=\ref[src];prev_page=1'>Previous Page</A></DIV> <DIV STYLE='float:right;'><A href='byond://?src=\ref[src];next_page=1'>Next Page</A></DIV>"
|
||||
if(2) //Last page
|
||||
for(var/datum/feed_channel/NP in news_content)
|
||||
pages++
|
||||
if(important_message!=null)
|
||||
dat+="<DIV STYLE='float:center;'><FONT SIZE=4><B>Wanted Issue:</B></FONT></DIV><BR><BR>"
|
||||
dat+=span_bold("Criminal name") + ": <FONT COLOR='maroon'>[important_message.author]</FONT><BR>"
|
||||
dat+="<DIV STYLE='float:center;'>" + span_huge(span_bold("Wanted Issue:")) + "</DIV><BR><BR>"
|
||||
dat+=span_bold("Criminal name") + ": " + span_maroon("[important_message.author]") + "<BR>"
|
||||
dat+=span_bold("Description") + ": [important_message.body]<BR>"
|
||||
dat+=span_bold("Photo:") + ": "
|
||||
if(important_message.img)
|
||||
@@ -88,7 +88,7 @@
|
||||
else
|
||||
dat+=span_italics("Apart from some uninteresting Classified ads, there's nothing on this page...")
|
||||
if(scribble_page==curr_page)
|
||||
dat+="<BR><I>There is a small scribble near the end of this page... It reads: \"[scribble]\"</I>"
|
||||
dat+="<BR>" + span_italics("There is a small scribble near the end of this page... It reads: \"[scribble]\"")
|
||||
dat+= "<HR><DIV STYLE='float:left;'><A href='byond://?src=\ref[src];prev_page=1'>Previous Page</A></DIV>"
|
||||
else
|
||||
dat+="I'm sorry to break your immersion. This shit's bugged. Report this bug to Agouri, polyxenitopalidou@gmail.com"
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
return 0
|
||||
message = span_danger("[message]")
|
||||
if(power >= 50)
|
||||
message = "<font size=3>[message]</font>"
|
||||
message = span_large("[message]")
|
||||
|
||||
// Anti message spam checks
|
||||
// If multiple limbs are injured, cooldown is ignored to print all injuries until all limbs are iterated over
|
||||
@@ -79,10 +79,10 @@
|
||||
msg = "Your [damaged_organ.name] [burning ? "burns" : "hurts"]."
|
||||
if(11 to 90)
|
||||
flash_weak_pain()
|
||||
msg = "<font size=2>Your [damaged_organ.name] [burning ? "burns" : "hurts"] badly!</font>"
|
||||
msg = span_normal("Your [damaged_organ.name] [burning ? "burns" : "hurts"] badly!")
|
||||
if(91 to 10000)
|
||||
flash_pain()
|
||||
msg = "<font size=3>OH GOD! Your [damaged_organ.name] is [burning ? "on fire" : "hurting terribly"]!</font>"
|
||||
msg = span_large("OH GOD! Your [damaged_organ.name] is [burning ? "on fire" : "hurting terribly"]!")
|
||||
custom_pain(msg, maxdam, prob(10))
|
||||
|
||||
// Damage to internal organs hurts a lot.
|
||||
|
||||
@@ -34,7 +34,7 @@ somewhere on that shuttle. Subtypes of these can be then used to perform ship ov
|
||||
|
||||
/obj/machinery/computer/ship/proc/display_reconnect_dialog(var/mob/user, var/flavor)
|
||||
var/datum/browser/popup = new (user, "[src]", "[src]")
|
||||
popup.set_content("<center><strong><font color = 'red'>Error</strong></font><br>Unable to connect to [flavor].<br><a href='byond://?src=\ref[src];sync=1'>Reconnect</a></center>")
|
||||
popup.set_content("<center>" + span_bold(span_red("Error")) + "<br>Unable to connect to [flavor].<br><a href='byond://?src=\ref[src];sync=1'>Reconnect</a></center>")
|
||||
popup.open()
|
||||
|
||||
/obj/machinery/computer/ship/Topic(href, href_list)
|
||||
|
||||
@@ -54,8 +54,7 @@
|
||||
//TODO change logo based on who you're contacting.
|
||||
text = "<center><img src = [logo]></br>"
|
||||
text += span_bold("[origin] Quantum Uplink Signed Message") + "<br>"
|
||||
text += "<font size = \"1\">Encryption key: [originhash]<br>"
|
||||
text += "Challenge: [timehash]<br></font></center><hr>"
|
||||
text += span_small("Encryption key: [originhash]<br>Challenge: [timehash]") + "<br></center><hr>"
|
||||
|
||||
header = text
|
||||
|
||||
|
||||
@@ -458,7 +458,7 @@
|
||||
// check for exploits
|
||||
for(var/bad in paper_blacklist)
|
||||
if(findtext(t,bad))
|
||||
to_chat(usr, "<font color='blue'>You think to yourself, \"Hm.. this is only paper...\</font>"")
|
||||
to_chat(usr, span_blue("You think to yourself, \"Hm.. this is only paper...\""))
|
||||
log_admin("PAPER: [usr] ([usr.ckey]) tried to use forbidden word in [src]: [bad].")
|
||||
message_admins("PAPER: [usr] ([usr.ckey]) tried to use forbidden word in [src]: [bad].")
|
||||
return
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
P = new /obj/item/paper
|
||||
if(Holiday == "April Fool's Day")
|
||||
if(prob(30))
|
||||
P.info = "<font face=\"[P.crayonfont]\" color=\"red\"><b>HONK HONK HONK HONK HONK HONK HONK<br>HOOOOOOOOOOOOOOOOOOOOOONK<br>APRIL FOOLS</b></font>"
|
||||
P.info = span_red(span_bold("<font face=\"[P.crayonfont]\">HONK HONK HONK HONK HONK HONK HONK<br>HOOOOOOOOOOOOOOOOOOOOOONK<br>APRIL FOOLS</font>"))
|
||||
P.rigged = 1
|
||||
P.updateinfolinks()
|
||||
else if (response == "Carbon-Copy")
|
||||
|
||||
@@ -65,30 +65,30 @@
|
||||
updatemodules()
|
||||
|
||||
var/dat = "<h3>Generator Control System</h3>"
|
||||
//dat += "<font size=-1><a href='byond://?src=\ref[src];refresh=1'>Refresh</a></font>"
|
||||
//dat += span_small("<a href='byond://?src=\ref[src];refresh=1'>Refresh</a>")
|
||||
if(gravity_generator)
|
||||
if(gravity_generator:on)
|
||||
dat += "<font color=green><br><tt>Gravity Status: ON</tt></font><br>"
|
||||
dat += span_green("<br><tt>Gravity Status: ON</tt>") + "<br>"
|
||||
else
|
||||
dat += "<font color=red><br><tt>Gravity Status: OFF</tt></font><br>"
|
||||
dat += span_red("<br><tt>Gravity Status: OFF</tt>") + "<br>"
|
||||
|
||||
dat += "<br><tt>Currently Supplying Gravitons To:</tt><br>"
|
||||
|
||||
for(var/area/A in gravity_generator:localareas)
|
||||
if(A.has_gravity && gravity_generator:on)
|
||||
dat += "<tt><font color=green>[A]</tt></font><br>"
|
||||
dat += "<tt>" + span_green("[A]</tt>") + "<br>"
|
||||
|
||||
else if (A.has_gravity)
|
||||
dat += "<tt><font color=yellow>[A]</tt></font><br>"
|
||||
dat += "<tt>" + span_yellow("[A]</tt>") + "<br>"
|
||||
|
||||
else
|
||||
dat += "<tt><font color=red>[A]</tt></font><br>"
|
||||
dat += "<tt>" + span_red("[A]</tt>") + "<br>"
|
||||
|
||||
dat += "<br><tt>Maintenance Functions:</tt><br>"
|
||||
if(gravity_generator:on)
|
||||
dat += "<a href='byond://?src=\ref[src];gentoggle=1'><font color=red> TURN GRAVITY GENERATOR OFF. </font></a>"
|
||||
dat += "<a href='byond://?src=\ref[src];gentoggle=1'>" + span_red(" TURN GRAVITY GENERATOR OFF. ") + "</a>"
|
||||
else
|
||||
dat += "<a href='byond://?src=\ref[src];gentoggle=1'><font color=green> TURN GRAVITY GENERATOR ON. </font></a>"
|
||||
dat += "<a href='byond://?src=\ref[src];gentoggle=1'>" + span_green(" TURN GRAVITY GENERATOR ON. ") + "</a>"
|
||||
|
||||
else
|
||||
dat += "No local gravity generator detected!"
|
||||
|
||||
@@ -268,7 +268,7 @@ GLOBAL_LIST_EMPTY(gravity_generators)
|
||||
switch(action)
|
||||
if("gentoggle")
|
||||
breaker = !breaker
|
||||
investigate_log("was toggled [breaker ? "<font color='green'>ON</font>" : "<font color='red'>OFF</font>"] by [key_name(ui.user)].", "gravity")
|
||||
investigate_log("was toggled [breaker ? span_green("ON") : span_red("OFF")] by [key_name(ui.user)].", "gravity")
|
||||
set_power()
|
||||
return TOPIC_REFRESH
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ var/global/list/rad_collectors = list()
|
||||
|
||||
if(P)
|
||||
if(P.air_contents.gas[GAS_PHORON] == 0)
|
||||
investigate_log("<font color='red'>out of fuel</font>.","singulo")
|
||||
investigate_log(span_red("out of fuel") + ".","singulo")
|
||||
eject()
|
||||
else
|
||||
P.air_contents.adjust_gas(GAS_PHORON, -0.001*drainratio)
|
||||
@@ -51,7 +51,7 @@ var/global/list/rad_collectors = list()
|
||||
toggle_power()
|
||||
user.visible_message("[user.name] turns the [src.name] [active? "on":"off"].", \
|
||||
"You turn the [src.name] [active? "on":"off"].")
|
||||
investigate_log("turned [active?"<font color='green'>on</font>":"<font color='red'>off</font>"] by [user.key]. [P?"Fuel: [round(P.air_contents.gas[GAS_PHORON]/0.29)]%":"<font color='red'>It is empty</font>"].","singulo")
|
||||
investigate_log("turned [active?span_green("on"): span_red("off")] by [user.key]. [P?"Fuel: [round(P.air_contents.gas[GAS_PHORON]/0.29)]%":span_red("It is empty")].","singulo")
|
||||
return
|
||||
else
|
||||
to_chat(user, span_red("The controls are locked!"))
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
/obj/machinery/power/emitter/Destroy()
|
||||
message_admins("Emitter deleted at ([x],[y],[z] - <A href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)",0,1)
|
||||
log_game("EMITTER([x],[y],[z]) Destroyed/deleted.")
|
||||
investigate_log("<font color='red'>deleted</font> at ([x],[y],[z])","singulo")
|
||||
investigate_log(span_red("deleted") + " at ([x],[y],[z])","singulo")
|
||||
..()
|
||||
|
||||
/obj/machinery/power/emitter/update_icon()
|
||||
@@ -82,7 +82,7 @@
|
||||
to_chat(user, "You turn off [src].")
|
||||
message_admins("Emitter turned off by [key_name(user, user.client)](<A href='byond://?_src_=holder;[HrefToken()];adminmoreinfo=\ref[user]'>?</A>) in ([x],[y],[z] - <A href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)",0,1)
|
||||
log_game("EMITTER([x],[y],[z]) OFF by [key_name(user)]")
|
||||
investigate_log("turned <font color='red'>off</font> by [user.key]","singulo")
|
||||
investigate_log("turned " + span_red("off") + " by [user.key]","singulo")
|
||||
else
|
||||
src.active = 1
|
||||
to_chat(user, "You turn on [src].")
|
||||
@@ -90,7 +90,7 @@
|
||||
src.fire_delay = get_initial_fire_delay()
|
||||
message_admins("Emitter turned on by [key_name(user, user.client)](<A href='byond://?_src_=holder;[HrefToken()];adminmoreinfo=\ref[user]'>?</A>) in ([x],[y],[z] - <A href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)",0,1)
|
||||
log_game("EMITTER([x],[y],[z]) ON by [key_name(user)]")
|
||||
investigate_log("turned <font color='green'>on</font> by [user.key]","singulo")
|
||||
investigate_log("turned " + span_green("on") + " by [user.key]","singulo")
|
||||
update_icon()
|
||||
else
|
||||
to_chat(user, span_warning("The controls are locked!"))
|
||||
@@ -122,13 +122,13 @@
|
||||
powered = 1
|
||||
update_icon()
|
||||
log_game("EMITTER([x],[y],[z]) Regained power and is ON.")
|
||||
investigate_log("regained power and turned <font color='green'>on</font>","singulo")
|
||||
investigate_log("regained power and turned " + span_green("on"),"singulo")
|
||||
else
|
||||
if(powered)
|
||||
powered = 0
|
||||
update_icon()
|
||||
log_game("EMITTER([x],[y],[z]) Lost power and was ON.")
|
||||
investigate_log("lost power and turned <font color='red'>off</font>","singulo")
|
||||
investigate_log("lost power and turned" + span_red("off"),"singulo")
|
||||
return
|
||||
|
||||
src.last_shot = world.time
|
||||
|
||||
@@ -104,7 +104,7 @@ field_generator power level display
|
||||
"You hear heavy droning")
|
||||
turn_on()
|
||||
log_game("FIELDGEN([x],[y],[z]) Activated by [key_name(user)]")
|
||||
investigate_log("<font color='green'>activated</font> by [user.key].","singulo")
|
||||
investigate_log(span_green("activated") + " by [user.key].","singulo")
|
||||
|
||||
src.add_fingerprint(user)
|
||||
else
|
||||
@@ -230,7 +230,7 @@ field_generator power level display
|
||||
M.show_message(span_red("\The [src] shuts down!"))
|
||||
turn_off()
|
||||
log_game("FIELDGEN([x],[y],[z]) Lost power and was ON.")
|
||||
investigate_log("ran out of power and <font color='red'>deactivated</font>","singulo")
|
||||
investigate_log("ran out of power and " + span_red("deactivated"),"singulo")
|
||||
src.power = 0
|
||||
return 0
|
||||
|
||||
@@ -354,6 +354,6 @@ field_generator power level display
|
||||
temp = 0
|
||||
admin_chat_message(message = "SINGUL/TESLOOSE!", color = "#FF2222") //VOREStation Add
|
||||
message_admins("A singulo exists and a containment field has failed.",1)
|
||||
investigate_log("has <font color='red'>failed</font> whilst a singulo exists.","singulo")
|
||||
investigate_log("has " + span_red("failed") + " whilst a singulo exists.","singulo")
|
||||
log_game("FIELDGEN([x],[y],[z]) Containment failed while singulo/tesla exists.")
|
||||
O.last_warning = world.time
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
var/radiation = (energy*2)
|
||||
M.apply_effect((radiation*3),IRRADIATE,0)
|
||||
M.updatehealth()
|
||||
//to_chat(M, "<font color='red'>You feel odd.</font>")
|
||||
//to_chat(M, span_warning("You feel odd."))
|
||||
|
||||
|
||||
/obj/effect/accelerated_particle/proc/move(var/lag)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user