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:
Kashargul
2025-03-01 11:58:58 -05:00
committed by GitHub
co-authored by Nadyr
parent 6224445448
commit cb56adaa37
118 changed files with 935 additions and 915 deletions
+31 -31
View File
@@ -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'>&nbsp</td>"
+2 -2
View File
@@ -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
View File
@@ -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>&nbsp;</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>&nbsp;</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)
+2 -2
View File
@@ -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>)")
+1 -1
View File
@@ -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>
+12 -12
View File
@@ -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()
+9 -9
View File
@@ -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
View File
@@ -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, " ", "&nbsp")]</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, " ", "&nbsp")]") + "</a></td>"
else
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", "&nbsp")]</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, " ", "&nbsp")]</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, " ", "&nbsp")]") + "</a></td>"
else
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", "&nbsp")]</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, " ", "&nbsp")]</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, " ", "&nbsp")]") + "</a></td>"
else
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", "&nbsp")]</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, " ", "&nbsp")]</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, " ", "&nbsp")]") + "</a></td>"
else
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", "&nbsp")]</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, " ", "&nbsp")]</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, " ", "&nbsp")]") + "</a></td>"
else
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", "&nbsp")]</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, " ", "&nbsp")]</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, " ", "&nbsp")]") + "</a></td>"
else
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", "&nbsp")]</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, " ", "&nbsp")]</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, " ", "&nbsp")]") + "</a></td>"
else
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", "&nbsp")]</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, " ", "&nbsp")]</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, " ", "&nbsp")]") + "</a></td>"
else
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", "&nbsp")]</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, " ", "&nbsp")]</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, " ", "&nbsp")]") + "</a></td>"
else
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", "&nbsp")]</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, " ", "&nbsp")]</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, " ", "&nbsp")]") + "</a></td>"
else
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[job.title];jobban4=\ref[M]'>[replacetext(job.title, " ", "&nbsp")]</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]", " ", "&nbsp")]</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]", " ", "&nbsp")]") + "</a></td>"
else
jobs += "<td width='20%'><a href='byond://?src=\ref[src];[HrefToken()];jobban3=[antag.bantype];jobban4=\ref[M]'>[replacetext("[antag.role_text]", " ", "&nbsp")]</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>"
+5 -5
View File
@@ -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
+14 -14
View File
@@ -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..."))
+1 -1
View File
@@ -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!
+6 -6
View File
@@ -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")
+9 -9
View File
@@ -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!
+14 -16
View File
@@ -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>
+2 -2
View File
@@ -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'>&reg;</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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'>&nbsp</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)
+1 -1
View File
@@ -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]"
+3 -3
View File
@@ -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")
+2 -2
View File
@@ -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)
+3 -3
View File
@@ -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)
+1 -1
View File
@@ -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
+14 -14
View File
@@ -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]")
+5 -5
View File
@@ -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
+9 -9
View File
@@ -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..."))
+1 -1
View File
@@ -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"
@@ -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
+9 -10
View File
@@ -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"
+13 -13
View File
@@ -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'>"
+13 -13
View File
@@ -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"
+12 -12
View File
@@ -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"
+3 -3
View File
@@ -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.
+1 -1
View File
@@ -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)
+1 -2
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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")
+8 -8
View File
@@ -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!"
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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!"))
+5 -5
View File
@@ -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)
@@ -137,7 +137,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
if(master?.active)
master.toggle_power()
log_game("PACCEL([x],[y],[z]) Was moved while active and turned off.")
investigate_log("was moved whilst active; it <font color='red'>powered down</font>.","singulo")
investigate_log("was moved whilst active; it " + span_red("powered down") + ".","singulo")
/obj/structure/particle_accelerator/ex_act(severity)
switch(severity)
@@ -90,7 +90,7 @@
else
message_admins("PA Control Computer increased to [strength] by [key_name(user, user.client)][ADMIN_QUE(user)] in [ADMIN_COORDJMP(src)]",0,1)
log_game("PACCEL([x],[y],[z]) [key_name(user)] increased to [strength]")
investigate_log("increased to <font color='red'>[strength]</font> by [user.key]","singulo")
investigate_log("increased to " + span_red("[strength]") + " by [user.key]","singulo")
strength_change()
/obj/machinery/particle_accelerator/control_box/proc/remove_strength(mob/user, var/s)
@@ -101,7 +101,7 @@
else
message_admins("PA Control Computer decreased to [strength] by [key_name(user, user.client)][ADMIN_QUE(user)] in [ADMIN_COORDJMP(src)]",0,1)
log_game("PACCEL([x],[y],[z]) [key_name(user)] decreased to [strength]")
investigate_log("decreased to <font color='green'>[strength]</font> by [user.key]","singulo")
investigate_log("decreased to " + span_green("[strength]") + " by [user.key]","singulo")
strength_change()
/obj/machinery/particle_accelerator/control_box/power_change()
@@ -183,7 +183,7 @@
/obj/machinery/particle_accelerator/control_box/proc/toggle_power(mob/user)
active = !active
investigate_log("turned [active?"<font color='red'>ON</font>":"<font color='green'>OFF</font>"] by [user ? user.key : "outside forces"]","singulo")
investigate_log("turned [active? span_red("ON") : span_green("OFF")] by [user ? user.key : "outside forces"]","singulo")
message_admins("PA Control Computer turned [active ?"ON":"OFF"] by [user ? key_name(user, user.client) : "outside forces"][ADMIN_QUE(user)] in [ADMIN_COORDJMP(src)]",0,1)
log_game("PACCEL([x],[y],[z]) [user ? key_name(user, user.client) : "outside forces"] turned [active?"ON":"OFF"].")
if(active)
@@ -97,7 +97,7 @@ GLOBAL_LIST_BOILERPLATE(all_singularities, /obj/singularity)
if (!count)
message_admins("A singulo has been created without containment fields active ([x], [y], [z] - <A href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>).")
investigate_log("was created. [count ? "" : "<font color='red'>No containment fields were active.</font>"]", I_SINGULO)
investigate_log("was created. [count ? "" : span_red("No containment fields were active.")]", I_SINGULO)
/obj/singularity/proc/dissipate()
if (!dissipate)
@@ -144,9 +144,9 @@
for(var/datum/reagent/R in B.reagents.reagent_list)
dat += "<br> [R.volume] units of [R.name], "
if (check_beaker_mixing(B))
dat += text("<A href='byond://?src=\ref[src];stop_mix=[i]'><font color='green'>Mixing</font></A> ")
dat += "<A href='byond://?src=\ref[src];stop_mix=[i]'>" + span_green("Mixing") + "</A> "
else
dat += text("<A href='byond://?src=\ref[src];mix=[i]'><font color='red'>Not mixing</font></A> ")
dat += "<A href='byond://?src=\ref[src];mix=[i]'>" + span_red("Not mixing") + "</A> "
else
dat += "nothing."
dat += " \[<A href='byond://?src=\ref[src];eject=[i]'>Eject</A>\]<br>"
@@ -158,7 +158,7 @@
if(ammo_magazine.stored_ammo && ammo_magazine.stored_ammo.len)
dat += "The dart cartridge has [ammo_magazine.stored_ammo.len] shots remaining."
else
dat += "<font color='red'>The dart cartridge is empty!</font>"
dat += span_red("The dart cartridge is empty!")
dat += " \[<A href='byond://?src=\ref[src];eject_cart=1'>Eject</A>\]"
user << browse("<html>[dat]</html>", "window=dartgun")
@@ -164,7 +164,7 @@
V.show_message(span_red("[M] writhes in pain as [TM.his] vacuoles boil."), 3, span_red("You hear the crunching of leaves."), 2)
if(prob(35))
// for (var/mob/V in viewers(src)) //Public messages commented out to prevent possible metaish genetics experimentation and stuff. - Cheridan
// V.show_message("<font color='red'>[M] is mutated by the radiation beam.</font>", 3, "<font color='red'> You hear the snapping of twigs.</font>", 2)
// V.show_message(span_red("[M] is mutated by the radiation beam."), 3, span_red(" You hear the snapping of twigs."), 2)
if(prob(80))
randmutb(M)
domutcheck(M,null)
@@ -176,7 +176,7 @@
M.adjustFireLoss(rand(5,15))
M.show_message(span_red("The radiation beam singes you!"))
// for (var/mob/V in viewers(src))
// V.show_message("<font color='red'>[M] is singed by the radiation beam.</font>", 3, "<font color='red'> You hear the crackle of burning leaves.</font>", 2)
// V.show_message(span_red("[M] is singed by the radiation beam."), 3, span_red(" You hear the crackle of burning leaves."), 2)
else if(istype(target, /mob/living/carbon/))
// for (var/mob/V in viewers(src))
// V.show_message("The radiation beam dissipates harmlessly through [M]", 3)
+1 -1
View File
@@ -728,7 +728,7 @@
for(var/obj/item/organ/external/O in H.bad_external_organs)
if(O.status & ORGAN_BROKEN)
O.mend_fracture() //Only works if the bone won't rebreak, as usual
H.custom_pain(span_danger("<b><font size=2>You feel a terrible agony tear through your [O.name]!</font></b>"),60,TRUE)
H.custom_pain(span_danger(span_normal(span_bold("You feel a terrible agony tear through your [O.name]!"))),60,TRUE)
H.AdjustWeakened(10) //Bones being regrown will knock you over
H.adjustHalLoss(60)
H.AdjustStunned(1) //Bones being regrown will knock you over
+8 -8
View File
@@ -307,22 +307,22 @@
// user.unset_machine()
// return
// var/dat = "<head><title>Waste Disposal Unit</title></head><body><TT><B>Waste Disposal Unit</B><HR>"
// var/dat = "<head><title>Waste Disposal Unit</title></head><body><TT>" + span_bold("Waste Disposal Unit") + "<HR>"
// if(!ai) // AI can't pull flush handle
// if(flush)
// dat += "Disposal handle: <A href='byond://?src=\ref[src];handle=0'>Disengage</A> <B>Engaged</B>"
// dat += "Disposal handle: <A href='byond://?src=\ref[src];handle=0'>Disengage</A> " + span_bold("Engaged")
// else
// dat += "Disposal handle: <B>Disengaged</B> <A href='byond://?src=\ref[src];handle=1'>Engage</A>"
// dat += "Disposal handle: " + span_bold("Disengaged") + " <A href='byond://?src=\ref[src];handle=1'>Engage</A>"
// dat += "<BR><HR><A href='byond://?src=\ref[src];eject=1'>Eject contents</A><HR>"
// if(mode <= 0)
// dat += "Pump: <B>Off</B> <A href='byond://?src=\ref[src];pump=1'>On</A><BR>"
// dat += "Pump: " + span_bold("Off") + " <A href='byond://?src=\ref[src];pump=1'>On</A><BR>"
// else if(mode == 1)
// dat += "Pump: <A href='byond://?src=\ref[src];pump=0'>Off</A> <B>On</B> (pressurizing)<BR>"
// dat += "Pump: <A href='byond://?src=\ref[src];pump=0'>Off</A> " + span_bold("On") + " (pressurizing)<BR>"
// else
// dat += "Pump: <A href='byond://?src=\ref[src];pump=0'>Off</A> <B>On</B> (idle)<BR>"
// dat += "Pump: <A href='byond://?src=\ref[src];pump=0'>Off</A> " + span_bold("On") + " (idle)<BR>"
// var/per = 100* air_contents.return_pressure() / (SEND_PRESSURE)
@@ -337,11 +337,11 @@
// /obj/machinery/disposal/Topic(href, href_list)
// if(usr.loc == src)
// to_chat(usr, "<font color='red'>You cannot reach the controls from inside.</font>")
// to_chat(usr, span_red("You cannot reach the controls from inside."))
// return
// if(mode==-1 && !href_list["eject"]) // only allow ejecting if mode is -1
// to_chat(usr, "<font color='red'>The disposal units power is disabled.</font>")
// to_chat(usr, span_red("The disposal units power is disabled."))
// return
// if(..())
// return
+2 -2
View File
@@ -107,7 +107,7 @@ var/global/list/obj/machinery/message_server/message_servers = list()
var/result
for (var/token in spamfilter)
if (findtextEx(message,token))
message = "<font color=\"red\">[message]</font>" //Rejected messages will be indicated by red color.
message = span_red("[message]") //Rejected messages will be indicated by red color.
result = token //Token caused rejection (if there are multiple, last will be chosen>.
pda_msgs += new/datum/data_pda_msg(recipient,sender,message)
return result
@@ -142,7 +142,7 @@ var/global/list/obj/machinery/message_server/message_servers = list()
/obj/machinery/message_server/attack_hand(user as mob)
// to_chat(user, "<font color='blue'>There seem to be some parts missing from this server. They should arrive on the station in a few days, give or take a few CentCom delays.</font>")
// to_chat(user, span_blue("There seem to be some parts missing from this server. They should arrive on the station in a few days, give or take a few CentCom delays."))
to_chat(user, span_filter_notice("You toggle PDA message passing from [active ? "On" : "Off"] to [active ? "Off" : "On"]."))
active = !active
update_icon()
+1 -2
View File
@@ -159,5 +159,4 @@
<h4>Traveling to the belt</h4>
When a new zone has been scanned, your station's shuttle destination will be updated to direct it to the newly discovered area automatically.<br>
You can then travel to the new area to mine in that location.<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.")
+25 -25
View File
@@ -16,13 +16,13 @@
src << output(null, "tcserror") // clear the errors
else
src << output(null, "tcserror")
src << output("<font color = red>Failed to save: Unable to locate server machine. (Back up your code before exiting the window!)</font>", "tcserror")
src << output(span_red("Failed to save: Unable to locate server machine. (Back up your code before exiting the window!)"), "tcserror")
else
src << output(null, "tcserror")
src << output("<font color = red>Failed to save: Unable to locate machine. (Back up your code before exiting the window!)</font>", "tcserror")
src << output(span_red("Failed to save: Unable to locate machine. (Back up your code before exiting the window!)"), "tcserror")
else
src << output(null, "tcserror")
src << output("<font color = red>Failed to save: Unable to locate machine. (Back up your code before exiting the window!)</font>", "tcserror")
src << output(span_red("Failed to save: Unable to locate machine. (Back up your code before exiting the window!)"), "tcserror")
/client/verb/tcscompile()
@@ -44,7 +44,7 @@
if(compileerrors.len)
src << output(span_bold("Compile Errors"), "tcserror")
for(var/scriptError/e in compileerrors)
src << output("<font color = red>\t>[e.message]</font>", "tcserror")
src << output(span_red("\t>[e.message]"), "tcserror")
src << output("([compileerrors.len] errors)", "tcserror")
// Output compile errors to all other people viewing the code too
@@ -53,28 +53,28 @@
M << output(null, "tcserror")
M << output(span_bold("Compile Errors"), "tcserror")
for(var/scriptError/e in compileerrors)
M << output("<font color = red>\t>[e.message]</font>", "tcserror")
M << output(span_red("\t>[e.message]"), "tcserror")
M << output("([compileerrors.len] errors)", "tcserror")
else
src << output("<font color = blue>TCS compilation successful!</font>", "tcserror")
src << output(span_blue("TCS compilation successful!"), "tcserror")
src << output("(0 errors)", "tcserror")
for(var/mob/M in Machine.viewingcode)
if(M.client)
M << output("<font color = blue>TCS compilation successful!</font>", "tcserror")
M << output(span_blue("TCS compilation successful!"), "tcserror")
M << output("(0 errors)", "tcserror")
else
src << output(null, "tcserror")
src << output("<font color = red>Failed to compile: Unable to locate server machine. (Back up your code before exiting the window!)</font>", "tcserror")
src << output(span_red("Failed to compile: Unable to locate server machine. (Back up your code before exiting the window!)"), "tcserror")
else
src << output(null, "tcserror")
src << output("<font color = red>Failed to compile: Unable to locate machine. (Back up your code before exiting the window!)</font>", "tcserror")
src << output(span_red("Failed to compile: Unable to locate machine. (Back up your code before exiting the window!)"), "tcserror")
else
src << output(null, "tcserror")
src << output("<font color = red>Failed to compile: Unable to locate machine. (Back up your code before exiting the window!)</font>", "tcserror")
src << output(span_red("Failed to compile: Unable to locate machine. (Back up your code before exiting the window!)"), "tcserror")
/client/verb/tcsrun()
set hidden = 1
@@ -95,7 +95,7 @@
if(compileerrors.len)
src << output(span_bold("Compile Errors"), "tcserror")
for(var/scriptError/e in compileerrors)
src << output("<font color = red>\t>[e.message]</font>", "tcserror")
src << output(span_red("\t>[e.message]"), "tcserror")
src << output("([compileerrors.len] errors)", "tcserror")
// Output compile errors to all other people viewing the code too
@@ -104,17 +104,17 @@
M << output(null, "tcserror")
M << output(span_bold("Compile Errors"), "tcserror")
for(var/scriptError/e in compileerrors)
M << output("<font color = red>\t>[e.message]</font>", "tcserror")
M << output(span_red("\t>[e.message]"), "tcserror")
M << output("([compileerrors.len] errors)", "tcserror")
else
// Finally, we run the code!
src << output("<font color = blue>TCS compilation successful! Code executed.</font>", "tcserror")
src << output(span_blue("TCS compilation successful! Code executed."), "tcserror")
src << output("(0 errors)", "tcserror")
for(var/mob/M in Machine.viewingcode)
if(M.client)
M << output("<font color = blue>TCS compilation successful!</font>", "tcserror")
M << output(span_blue("TCS compilation successful!"), "tcserror")
M << output("(0 errors)", "tcserror")
var/datum/signal/signal = new()
@@ -133,13 +133,13 @@
else
src << output(null, "tcserror")
src << output("<font color = red>Failed to run: Unable to locate server machine. (Back up your code before exiting the window!)</font>", "tcserror")
src << output(span_red("Failed to run: Unable to locate server machine. (Back up your code before exiting the window!)"), "tcserror")
else
src << output(null, "tcserror")
src << output("<font color = red>Failed to run: Unable to locate machine. (Back up your code before exiting the window!)</font>", "tcserror")
src << output(span_red("Failed to run: Unable to locate machine. (Back up your code before exiting the window!)"), "tcserror")
else
src << output(null, "tcserror")
src << output("<font color = red>Failed to run: Unable to locate machine. (Back up your code before exiting the window!)</font>", "tcserror")
src << output(span_red("Failed to run: Unable to locate machine. (Back up your code before exiting the window!)"), "tcserror")
/client/verb/exittcs()
@@ -174,13 +174,13 @@
src << output(null, "tcserror") // clear the errors
else
src << output(null, "tcserror")
src << output("<font color = red>Failed to revert: Unable to locate server machine.</font>", "tcserror")
src << output(span_red("Failed to revert: Unable to locate server machine."), "tcserror")
else
src << output(null, "tcserror")
src << output("<font color = red>Failed to revert: Unable to locate machine.</font>", "tcserror")
src << output(span_red("Failed to revert: Unable to locate machine."), "tcserror")
else
src << output(null, "tcserror")
src << output("<font color = red>Failed to revert: Unable to locate machine.</font>", "tcserror")
src << output(span_red("Failed to revert: Unable to locate machine."), "tcserror")
/client/verb/tcsclearmem()
@@ -196,16 +196,16 @@
Server.memory = list() // clear the memory
// Show results
src << output(null, "tcserror")
src << output("<font color = blue>Server memory cleared!</font>", "tcserror")
src << output(span_blue("Server memory cleared!"), "tcserror")
for(var/mob/M in Machine.viewingcode)
if(M.client)
M << output("<font color = blue>Server memory cleared!</font>", "tcserror")
M << output(span_blue("Server memory cleared!"), "tcserror")
else
src << output(null, "tcserror")
src << output("<font color = red>Failed to clear memory: Unable to locate server machine.</font>", "tcserror")
src << output(span_red("Failed to clear memory: Unable to locate server machine."), "tcserror")
else
src << output(null, "tcserror")
src << output("<font color = red>Failed to clear memory: Unable to locate machine.</font>", "tcserror")
src << output(span_red("Failed to clear memory: Unable to locate machine."), "tcserror")
else
src << output(null, "tcserror")
src << output("<font color = red>Failed to clear memory: Unable to locate machine.</font>", "tcserror")
src << output(span_red("Failed to clear memory: Unable to locate machine."), "tcserror")
+1 -1
View File
@@ -405,7 +405,7 @@
/obj/item/spellbook/oneuse/horsemask/recoil(mob/living/carbon/user as mob)
if(ishuman(user))
to_chat(user, "<font size='15' color='red'><b>HOR-SIE HAS RISEN</b></font>")
to_chat(user, span_narsie(span_bolddanger("HOR-SIE HAS RISEN")))
var/obj/item/clothing/mask/horsehead/magichead = new /obj/item/clothing/mask/horsehead
magichead.canremove = FALSE //curses!
magichead.flags_inv = null //so you can still see their face
@@ -279,7 +279,7 @@
if(!I.rank)
I.rank = "N/A"
update_file = 1
dat += "<font color=#008800>[I.content]</font> <i>by [I.author] ([I.rank])</i> on <i><font color=blue>[I.timestamp]</i></font> "
dat += span_green("[I.content]") + " " + span_italics("by [I.author] ([I.rank])") + " on " + span_italics(span_blue("[I.timestamp]")) + " "
if(I.author == usr.key || I.author == "Adminbot" || ishost(usr))
dat += "<A href='byond://?src=\ref[src];[HrefToken()];remove_player_info_legacy=[key];remove_index=[i]'>Remove</A>"
dat += "<br><br>"
@@ -10,9 +10,9 @@
// BEGIN - PROTOTYPE
/obj/item/clothing/accessory/permit/gun/fluff
name = "Sample Permit"
desc = {"There is a bright red <b><font color=red>SAMPLE PERMIT</font></b> stamped across the stock photo displayed on the card. Obviously this is only an example to educate security.
<b>NAME:</b> First Last | <b>RACE:</b> Human | <b>HOMEWORLD:</b> Moon (if applicable), Planet, System
<b>DOB:</b> DD/Mon/YYYY | <b>HEIGHT:</b> XXcm | <b>SEX:</b> Female
desc = {"There is a bright red "} + span_bold(span_red("SAMPLE PERMIT")) + {" stamped across the stock photo displayed on the card. Obviously this is only an example to educate security.
"} + span_bold("NAME:") + {" First Last | "} + span_bold("RACE:") + {" Human | "} + span_bold("HOMEWORLD:") + {" Moon (if applicable), Planet, System
"} + span_bold("DOB:") + {" DD/Mon/YYYY | "} + span_bold("HEIGHT:") + {" XXcm | "} + span_bold("SEX:") + {" Female
The individual named above is licensed by the Nanotrasen Department of Civil Protection to ______.
This license expires on DD/Month/YYYY and must be renewed by CentCom prior to this date."}
@@ -26,8 +26,8 @@
/obj/item/clothing/accessory/permit/gun/fluff/charactername
name = "Name's Thing Permit"
desc = {"
<b>NAME:</b> Firstname Lastname | <b>RACE:</b> Human | <b>HOMEWORLD:</b> Earth, Sol
<b>DOB:</b> DD/Mon/YYYY | <b>HEIGHT:</b> XXXcm | <b>SEX:</b> X
"} + span_bold("NAME:") + {" Firstname Lastname | "} + span_bold("RACE:") + {" Human | "} + span_bold("HOMEWORLD:") + {" Earth, Sol
"} + span_bold("DOB:") + {" DD/Mon/YYYY | "} + span_bold("HEIGHT:") + {" XXXcm | "} + span_bold("SEX:") + {" X
The individual named above is licensed by the Nanotrasen Department of Civil Protection to openly carry XYZ. CONDITIONS.
This license expires on DD/Mon/YYYY and must be renewed by CentCom prior to this date."}
@@ -75,7 +75,7 @@
dat += "<h2>General Data</h2>"
dat += "<tr><td><b>Health: </b></td><td>[trait_info.get_trait(TRAIT_XENO_HEALTH)]</td></tr>"
dat += "<tr><td>" + span_bold("Health: ") + "</td><td>[trait_info.get_trait(TRAIT_XENO_HEALTH)]</td></tr>"
if(prod_reagents && prod_reagents.reagent_list && prod_reagents.reagent_list.len)
dat += "<h2>Reagent Data</h2>"