Merge remote-tracking branch 'upstream/dev' into 150722-TagPairs

Conflicts:
	code/game/machinery/newscaster.dm
	code/modules/admin/admin.dm
This commit is contained in:
PsiOmega
2015-08-21 20:27:48 +02:00
118 changed files with 441 additions and 338 deletions
+5 -5
View File
@@ -353,7 +353,7 @@ proc/admin_notice(var/message, var/rights)
dat+={"<HR><B>Feed Security functions:</B><BR>
<BR><A href='?src=\ref[src];ac_menu_wanted=1'>[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue</A>
<BR><A href='?src=\ref[src];ac_menu_censor_story=1'>Censor Feed Stories</A>
<BR><A href='?src=\ref[src];ac_menu_censor_channel=1'>Mark Feed Channel with Nanotrasen D-Notice (disables and locks the channel.</A>
<BR><A href='?src=\ref[src];ac_menu_censor_channel=1'>Mark Feed Channel with [company_name] D-Notice (disables and locks the channel.</A>
<BR><HR><A href='?src=\ref[src];ac_set_signature=1'>The newscaster recognises you as:<BR> <FONT COLOR='green'>[src.admincaster_signature]</FONT></A>
"}
if(1)
@@ -419,7 +419,7 @@ proc/admin_notice(var/message, var/rights)
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>"
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 Nanotrasen D-Notice.<BR>
<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [company_name] D-Notice.<BR>
No further feed story additions are allowed while the D-Notice is in effect.<BR><BR>
"}
else
@@ -440,7 +440,7 @@ proc/admin_notice(var/message, var/rights)
"}
if(10)
dat+={"
<B>Nanotrasen Feed Censorship Tool</B><BR>
<B>[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>
<HR>Select Feed channel to get Stories from:<BR>
@@ -453,7 +453,7 @@ proc/admin_notice(var/message, var/rights)
dat+="<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Cancel</A>"
if(11)
dat+={"
<B>Nanotrasen D-Notice Handler</B><HR>
<B>[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>
@@ -486,7 +486,7 @@ proc/admin_notice(var/message, var/rights)
"}
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 Nanotrasen D-Notice.<BR>
<FONT COLOR='red'><B>ATTENTION: </B></FONT>This channel has been deemed as threatening to the welfare of the station, and marked with a [company_name] D-Notice.<BR>
No further feed story additions are allowed while the D-Notice is in effect.<BR><BR>
"}
else
+1 -1
View File
@@ -621,7 +621,7 @@ var/list/admin_verbs_mentor = list(
if(istype(T,/mob/living/carbon/human))
var/mob/living/carbon/human/H = T
if (H.species)
D.affected_species = list(H.species.name)
D.affected_species = list(H.species.get_bodytype())
if(H.species.primitive_form)
D.affected_species |= H.species.primitive_form
if(H.species.greater_form)
+2 -2
View File
@@ -18,7 +18,7 @@ var/list/admin_datums = list()
error("Admin datum created without a ckey argument. Datum has been deleted")
qdel(src)
return
admincaster_signature = "Nanotrasen Officer #[rand(0,9)][rand(0,9)][rand(0,9)]"
admincaster_signature = "[company_name] Officer #[rand(0,9)][rand(0,9)][rand(0,9)]"
rank = initial_rank
rights = initial_rights
admin_datums[ckey] = src
@@ -43,7 +43,7 @@ var/list/admin_datums = list()
owner.holder = src
owner.deadmin_holder = null
owner.add_admin_verbs()
/*
checks if usr is an admin with at least ONE of the flags in rights_required. (Note, they don't need all the flags)
+1 -1
View File
@@ -29,7 +29,7 @@
//log_admin("HELP: [key_name(src)]: [msg]")
/proc/Centcomm_announce(var/msg, var/mob/Sender, var/iamessage)
msg = "\blue <b><font color=orange>CENTCOMM[iamessage ? " IA" : ""]:</font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) ([admin_jump_link(Sender, src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;CentcommReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
msg = "\blue <b><font color=orange>[uppertext(boss_short)]M[iamessage ? " IA" : ""]:</font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) ([admin_jump_link(Sender, src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;CentcommReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
for(var/client/C in admins)
if(R_ADMIN & C.holder.rights)
C << msg
+2 -2
View File
@@ -515,7 +515,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!input)
return
if(!customname)
customname = "NanoTrasen Update"
customname = "[company_name] Update"
for (var/obj/machinery/computer/communications/C in machines)
if(! (C.stat & (BROKEN|NOPOWER) ) )
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( C.loc )
@@ -529,7 +529,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if("Yes")
command_announcement.Announce(input, customname, new_sound = 'sound/AI/commandreport.ogg', msg_sanitized = 1);
if("No")
world << "\red New NanoTrasen Update available at all communication consoles."
world << "\red New [company_name] Update available at all communication consoles."
world << sound('sound/AI/commandreport.ogg')
log_admin("[key_name(src)] has created a command report: [input]")
@@ -26,7 +26,7 @@
dat += "Locked on<BR>"
dat += "<B>Charge progress: [reload]/180:</B><BR>"
dat += "<A href='byond://?src=\ref[src];fire=1'>Open Fire</A><BR>"
dat += "Deployment of weapon authorized by <br>Nanotrasen Naval Command<br><br>Remember, friendly fire is grounds for termination of your contract and life.<HR>"
dat += "Deployment of weapon authorized by <br>[company_name] Naval Command<br><br>Remember, friendly fire is grounds for termination of your contract and life.<HR>"
user << browse(dat, "window=scroll")
onclose(user, "scroll")
return
+1 -1
View File
@@ -18,7 +18,7 @@
get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> Nanotrasen Employee Exile Implant<BR>
<b>Name:</b> [company_name] Employee Exile Implant<BR>
<b>Implant Details:</b> The onboard gateway system has been modified to reject entry by individuals containing this implant<BR>"}
return dat
+7 -7
View File
@@ -1,18 +1,18 @@
/obj/item/weapon/paper/pamphlet
name = "pamphlet"
icon_state = "pamphlet"
info = "<b>Welcome to the Nanotrasen Gateway project...</b><br>\
info = "<b>Welcome to the Gateway project...</b><br>\
Congratulations! If you're reading this, you and your superiors have decided that you're \
ready to commit to a life spent colonising the rolling hills of far away worlds. You \
must be ready for a lifetime of adventure, a little bit of hard work, and an award \
winning dental plan- but that's not all the Nanotrasen Gateway project has to offer.<br>\
winning dental plan- but that's not all the Gateway project has to offer.<br>\
<br>Because we care about you, we feel it is only fair to make sure you know the risks \
before you commit to joining the Nanotrasen Gateway project. All away destinations have \
been fully scanned by a Nanotrasen expeditionary team, and are certified to be 100% safe. \
before you commit to joining the Gateway project. All away destinations have \
been fully scanned by a expeditionary team, and are certified to be 100% safe. \
We've even left a case of space beer along with the basic materials you'll need to expand \
Nanotrasen's operational area and start your new life.<br><br>\
the Project's operational area and start your new life.<br><br>\
<b>Gateway Operation Basics</b><br>\
All Nanotrasen approved Gateways operate on the same basic principals. They operate off \
All approved Gateways operate on the same basic principals. They operate off \
area equipment power as you would expect, but they also require a backup wire with at least \
128, 000 Watts of power running through it. Without this supply, it cannot safely function \
and will reject all attempts at operation.<br><br>\
@@ -29,7 +29,7 @@
number of cases, the Gateway they have established may not be immediately obvious. \
Do not panic if you cannot locate the return Gateway. Begin colonisation of the destination. \
<br><br><b>A New World</b><br>\
As a participant in the Nanotrasen Gateway Project, you will be on the frontiers of space. \
As a participant in the Gateway Project, you will be on the frontiers of space. \
Though complete safety is assured, participants are advised to prepare for inhospitable \
environs."
+1 -1
View File
@@ -411,7 +411,7 @@ datum/preferences
dat += "Backpack Type:<br><a href ='?_src_=prefs;preference=bag;task=input'><b>[backbaglist[backbag]]</b></a><br>"
dat += "Nanotrasen Relation:<br><a href ='?_src_=prefs;preference=nt_relation;task=input'><b>[nanotrasen_relation]</b></a><br>"
dat += "[company_name] Relation:<br><a href ='?_src_=prefs;preference=nt_relation;task=input'><b>[nanotrasen_relation]</b></a><br>"
dat += "</td><td><b>Preview</b><br><img src=previewicon.png height=64 width=64><img src=previewicon2.png height=64 width=64></td></tr></table>"
+2 -2
View File
@@ -678,7 +678,7 @@ var/global/list/gear_datums = list()
slot = slot_wear_suit
/datum/gear/leather_jacket_nt
display_name = "leather jacket, NanoTrasen, black"
display_name = "leather jacket, corporate, black"
path = /obj/item/clothing/suit/storage/leather_jacket/nanotrasen
cost = 2
slot = slot_wear_suit
@@ -690,7 +690,7 @@ var/global/list/gear_datums = list()
slot = slot_wear_suit
/datum/gear/brown_jacket_nt
display_name = "leather jacket, NanoTrasen, brown"
display_name = "leather jacket, corporate, brown"
path = /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen
cost = 2
slot = slot_wear_suit
+5 -4
View File
@@ -32,10 +32,10 @@
if(H.species)
if(exclusive)
if(!(H.species.name in species_restricted))
if(!(H.species.get_bodytype() in species_restricted))
wearable = 1
else
if(H.species.name in species_restricted)
if(H.species.get_bodytype() in species_restricted)
wearable = 1
if(!wearable && !(slot in list(slot_l_store, slot_r_store, slot_s_store)))
@@ -73,6 +73,7 @@
switch(target_species)
if("Skrell")
species_restricted = list("Human", "Skrell") //skrell helmets fit humans too
else
species_restricted = list(target_species)
@@ -445,8 +446,8 @@ BLIND // can't see anything
var/icon/under_icon
if(icon_override)
under_icon = icon_override
else if(H && sprite_sheets && sprite_sheets[H.species.name])
under_icon = sprite_sheets[H.species.name]
else if(H && sprite_sheets && sprite_sheets[H.species.get_bodytype()])
under_icon = sprite_sheets[H.species.get_bodytype()]
else if(item_icons && item_icons[slot_w_uniform_str])
under_icon = item_icons[slot_w_uniform_str]
else
+6 -6
View File
@@ -61,7 +61,7 @@
"Tajara" = 'icons/mob/species/tajaran/helmet.dmi',
"Unathi" = 'icons/mob/species/unathi/helmet.dmi',
)
armor = list(melee = 62, bullet = 50, laser = 50,energy = 35, bomb = 10, bio = 2, rad = 0)
flags_inv = HIDEEARS
siemens_coefficient = 0.7
@@ -80,7 +80,7 @@
//Non-hardsuit ERT helmets.
/obj/item/clothing/head/helmet/ert
name = "emergency response team helmet"
desc = "An in-atmosphere helmet worn by members of the NanoTrasen Emergency Response Team. Protects the head from impacts."
desc = "An in-atmosphere helmet worn by members of the Emergency Response Team. Protects the head from impacts."
icon_state = "erthelmet_cmd"
item_state_slots = list(
slot_l_hand_str = "syndicate-helm-green",
@@ -91,22 +91,22 @@
//Commander
/obj/item/clothing/head/helmet/ert/command
name = "emergency response team commander helmet"
desc = "An in-atmosphere helmet worn by the commander of a NanoTrasen Emergency Response Team. Has blue highlights."
desc = "An in-atmosphere helmet worn by the commander of a Emergency Response Team. Has blue highlights."
//Security
/obj/item/clothing/head/helmet/ert/security
name = "emergency response team security helmet"
desc = "An in-atmosphere helmet worn by security members of the NanoTrasen Emergency Response Team. Has red highlights."
desc = "An in-atmosphere helmet worn by security members of the Emergency Response Team. Has red highlights."
icon_state = "erthelmet_sec"
//Engineer
/obj/item/clothing/head/helmet/ert/engineer
name = "emergency response team engineer helmet"
desc = "An in-atmosphere helmet worn by engineering members of the NanoTrasen Emergency Response Team. Has orange highlights."
desc = "An in-atmosphere helmet worn by engineering members of the Emergency Response Team. Has orange highlights."
icon_state = "erthelmet_eng"
//Medical
/obj/item/clothing/head/helmet/ert/medical
name = "emergency response team medical helmet"
desc = "A set of armor worn by medical members of the NanoTrasen Emergency Response Team. Has red and white highlights."
desc = "A set of armor worn by medical members of the Emergency Response Team. Has red and white highlights."
icon_state = "erthelmet_med"
+2 -2
View File
@@ -95,11 +95,11 @@
icon_state = "beret_purple"
/obj/item/clothing/head/beret/centcom/officer
name = "officers beret"
desc = "A black beret adorned with the shielda silver kite shield with an engraved swordof the NanoTrasen security forces."
desc = "A black beret adorned with the shield - a silver kite shield with an engraved sword - of the corporate security forces."
icon_state = "beret_centcom_officer"
/obj/item/clothing/head/beret/centcom/captain
name = "captains beret"
desc = "A white beret adorned with the shielda silver kite shield with an engraved swordof the NanoTrasen security forces."
desc = "A white beret adorned with the shield - a silver kite shield with an engraved sword - of the corporate security forces."
icon_state = "beret_centcom_captain"
//Medical
+1 -1
View File
@@ -9,7 +9,7 @@
/obj/item/clothing/shoes/jackboots
name = "jackboots"
desc = "Nanotrasen-issue Security combat boots for combat scenarios or combat situations. All combat, all the time."
desc = "Standard-issue Security combat boots for combat scenarios or combat situations. All combat, all the time."
icon_state = "jackboots"
item_state = "jackboots"
force = 3
+2 -2
View File
@@ -12,7 +12,7 @@
//Captain's space suit This is not the proper path but I don't currently know enough about how this all works to mess with it.
/obj/item/clothing/suit/armor/captain
name = "Captain's armor"
desc = "A bulky, heavy-duty piece of exclusive Nanotrasen armor. YOU are in charge!"
desc = "A bulky, heavy-duty piece of exclusive corporate armor. YOU are in charge!"
icon_state = "caparmor"
item_state = "capspacesuit"
w_class = 4
@@ -23,7 +23,7 @@
allowed = list(/obj/item/weapon/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/projectile, /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs)
slowdown = 1.5
armor = list(melee = 65, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
siemens_coefficient = 0.7
@@ -11,7 +11,7 @@
//Captain's space suit This is not the proper path but I don't currently know enough about how this all works to mess with it.
/obj/item/clothing/suit/armor/captain
name = "Captain's armor"
desc = "A bulky, heavy-duty piece of exclusive Nanotrasen armor. YOU are in charge!"
desc = "A bulky, heavy-duty piece of exclusive corporate armor. YOU are in charge!"
icon_state = "caparmor"
item_state = "capspacesuit"
w_class = 4
+2 -2
View File
@@ -465,8 +465,8 @@
var/species_icon = 'icons/mob/rig_back.dmi'
// Since setting mob_icon will override the species checks in
// update_inv_wear_suit(), handle species checks here.
if(wearer && sprite_sheets && sprite_sheets[wearer.species.name])
species_icon = sprite_sheets[wearer.species.name]
if(wearer && sprite_sheets && sprite_sheets[wearer.species.get_bodytype()])
species_icon = sprite_sheets[wearer.species.get_bodytype()]
mob_icon = image("icon" = species_icon, "icon_state" = "[icon_state]")
if(installed_modules.len)
@@ -4,7 +4,7 @@
/obj/item/weapon/rig/ert
name = "ERT-C hardsuit control module"
desc = "A suit worn by the commander of a NanoTrasen Emergency Response Team. Has blue highlights. Armoured and space ready."
desc = "A suit worn by the commander of an Emergency Response Team. Has blue highlights. Armoured and space ready."
suit_type = "ERT commander"
icon_state = "ert_commander_rig"
@@ -26,7 +26,7 @@
/obj/item/weapon/rig/ert/engineer
name = "ERT-E suit control module"
desc = "A suit worn by the engineering division of a NanoTrasen Emergency Response Team. Has orange highlights. Armoured and space ready."
desc = "A suit worn by the engineering division of an Emergency Response Team. Has orange highlights. Armoured and space ready."
suit_type = "ERT engineer"
icon_state = "ert_engineer_rig"
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 100)
@@ -41,7 +41,7 @@
/obj/item/weapon/rig/ert/medical
name = "ERT-M suit control module"
desc = "A suit worn by the medical division of a NanoTrasen Emergency Response Team. Has white highlights. Armoured and space ready."
desc = "A suit worn by the medical division of an Emergency Response Team. Has white highlights. Armoured and space ready."
suit_type = "ERT medic"
icon_state = "ert_medical_rig"
@@ -54,7 +54,7 @@
/obj/item/weapon/rig/ert/security
name = "ERT-S suit control module"
desc = "A suit worn by the security division of a NanoTrasen Emergency Response Team. Has red highlights. Armoured and space ready."
desc = "A suit worn by the security division of an Emergency Response Team. Has red highlights. Armoured and space ready."
suit_type = "ERT security"
icon_state = "ert_security_rig"
@@ -67,7 +67,7 @@
/obj/item/weapon/rig/ert/assetprotection
name = "Heavy Asset Protection suit control module"
desc = "A heavy suit worn by the highest level of Nanotrasen Asset Protection, don't mess with the person wearing this. Armoured and space ready."
desc = "A heavy suit worn by the highest level of Asset Protection, don't mess with the person wearing this. Armoured and space ready."
suit_type = "heavy asset protection"
icon_state = "asset_protection_rig"
armor = list(melee = 60, bullet = 50, laser = 50,energy = 40, bomb = 40, bio = 100, rad = 100)
@@ -211,7 +211,7 @@
/obj/item/weapon/rig/hazard
name = "hazard hardsuit control module"
suit_type = "hazard hardsuit"
desc = "A Nanotrasen security hardsuit designed for prolonged EVA in dangerous environments."
desc = "A Security hardsuit designed for prolonged EVA in dangerous environments."
icon_state = "hazard_rig"
armor = list(melee = 60, bullet = 40, laser = 30, energy = 15, bomb = 60, bio = 100, rad = 30)
slowdown = 1
+12 -12
View File
@@ -21,7 +21,7 @@
/obj/item/clothing/suit/armor/vest/security
name = "security armor"
desc = "An armored vest that protects against some damage. This one has a NanoTrasen corporate badge."
desc = "An armored vest that protects against some damage. This one has a corporate badge."
icon_state = "armorsec"
item_state = "armor"
@@ -176,7 +176,7 @@
//Non-hardsuit ERT armor.
/obj/item/clothing/suit/armor/vest/ert
name = "emergency response team armor"
desc = "A set of armor worn by members of the NanoTrasen Emergency Response Team."
desc = "A set of armor worn by members of the Emergency Response Team."
icon_state = "ertarmor_cmd"
item_state = "armor"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
@@ -185,24 +185,24 @@
//Commander
/obj/item/clothing/suit/armor/vest/ert/command
name = "emergency response team commander armor"
desc = "A set of armor worn by the commander of a NanoTrasen Emergency Response Team. Has blue highlights."
desc = "A set of armor worn by the commander of an Emergency Response Team. Has blue highlights."
//Security
/obj/item/clothing/suit/armor/vest/ert/security
name = "emergency response team security armor"
desc = "A set of armor worn by security members of the NanoTrasen Emergency Response Team. Has red highlights."
desc = "A set of armor worn by security members of the Emergency Response Team. Has red highlights."
icon_state = "ertarmor_sec"
//Engineer
/obj/item/clothing/suit/armor/vest/ert/engineer
name = "emergency response team engineer armor"
desc = "A set of armor worn by engineering members of the NanoTrasen Emergency Response Team. Has orange highlights."
desc = "A set of armor worn by engineering members of the Emergency Response Team. Has orange highlights."
icon_state = "ertarmor_eng"
//Medical
/obj/item/clothing/suit/armor/vest/ert/medical
name = "emergency response team medical armor"
desc = "A set of armor worn by medical members of the NanoTrasen Emergency Response Team. Has red and white highlights."
desc = "A set of armor worn by medical members of the Emergency Response Team. Has red and white highlights."
icon_state = "ertarmor_med"
//New Vests
@@ -216,7 +216,7 @@
/obj/item/clothing/suit/storage/vest/officer
name = "officer armor vest"
desc = "A simple kevlar plate carrier belonging to Nanotrasen. This one has a security holobadge clipped to the chest."
desc = "A simple kevlar plate carrier. This one has a security holobadge clipped to the chest."
icon_state = "officervest_nobadge"
item_state = "officervest_nobadge"
icon_badge = "officervest_badge"
@@ -224,7 +224,7 @@
/obj/item/clothing/suit/storage/vest/warden
name = "warden armor vest"
desc = "A simple kevlar plate carrier belonging to Nanotrasen. This one has a silver badge clipped to the chest."
desc = "A simple kevlar plate carrier. This one has a silver badge clipped to the chest."
icon_state = "wardenvest_nobadge"
item_state = "wardenvest_nobadge"
icon_badge = "wardenvest_badge"
@@ -232,7 +232,7 @@
/obj/item/clothing/suit/storage/vest/hos
name = "commander armor vest"
desc = "A simple kevlar plate carrier belonging to Nanotrasen. This one has a gold badge clipped to the chest."
desc = "A simple kevlar plate carrier. This one has a gold badge clipped to the chest."
icon_state = "hosvest_nobadge"
item_state = "hosvest_nobadge"
icon_badge = "hosvest_badge"
@@ -264,7 +264,7 @@
/obj/item/clothing/suit/storage/vest/heavy/officer
name = "officer heavy armor vest"
desc = "A heavy kevlar plate carrier belonging to Nanotrasen with webbing attached. This one has a security holobadge clipped to the chest."
desc = "A heavy kevlar plate carrier with webbing attached. This one has a security holobadge clipped to the chest."
icon_state = "officerwebvest_nobadge"
item_state = "officerwebvest_nobadge"
icon_badge = "officerwebvest_badge"
@@ -272,7 +272,7 @@
/obj/item/clothing/suit/storage/vest/heavy/warden
name = "warden heavy armor vest"
desc = "A heavy kevlar plate carrier belonging to Nanotrasen with webbing attached. This one has a silver badge clipped to the chest."
desc = "A heavy kevlar plate carrier with webbing attached. This one has a silver badge clipped to the chest."
icon_state = "wardenwebvest_nobadge"
item_state = "wardenwebvest_nobadge"
icon_badge = "wardenwebvest_badge"
@@ -280,7 +280,7 @@
/obj/item/clothing/suit/storage/vest/heavy/hos
name = "commander heavy armor vest"
desc = "A heavy kevlar plate carrier belonging to Nanotrasen with webbing attached. This one has a gold badge clipped to the chest."
desc = "A heavy kevlar plate carrier with webbing attached. This one has a gold badge clipped to the chest."
icon_state = "hoswebvest_nobadge"
item_state = "hoswebvest_nobadge"
icon_badge = "hoswebvest_badge"
+2 -2
View File
@@ -357,7 +357,7 @@
body_parts_covered = UPPER_TORSO|ARMS
/obj/item/clothing/suit/storage/leather_jacket/nanotrasen
desc = "A black leather coat. The letters NT are proudly displayed on the back."
desc = "A black leather coat. A corporate logo is proudly displayed on the back."
icon_state = "leather_jacket_nt"
//This one has buttons for some reason
@@ -371,7 +371,7 @@
body_parts_covered = UPPER_TORSO|ARMS
/obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen
desc = "A brown leather coat. The letters NT are proudly displayed on the back."
desc = "A brown leather coat. A corporate logo is proudly displayed on the back."
icon_state = "brown_jacket_nt"
icon_open = "brown_jacket_nt_open"
icon_closed = "brown_jacket_nt"
@@ -142,7 +142,7 @@
/obj/item/clothing/accessory/medal/conduct
name = "distinguished conduct medal"
desc = "A bronze medal awarded for distinguished conduct. Whilst a great honor, this is most basic award given by Nanotrasen. It is often awarded by a captain to a member of their crew."
desc = "A bronze medal awarded for distinguished conduct. Whilst a great honor, this is most basic award on offer. It is often awarded by a captain to a member of their crew."
/obj/item/clothing/accessory/medal/bronze_heart
name = "bronze heart medal"
@@ -164,7 +164,7 @@
/obj/item/clothing/accessory/medal/silver/security
name = "robust security award"
desc = "An award for distinguished combat and sacrifice in defence of Nanotrasen's commercial interests. Often awarded to security staff."
desc = "An award for distinguished combat and sacrifice in defence of corporate commercial interests. Often awarded to security staff."
/obj/item/clothing/accessory/medal/gold
name = "gold medal"
@@ -173,8 +173,8 @@
/obj/item/clothing/accessory/medal/gold/captain
name = "medal of captaincy"
desc = "A golden medal awarded exclusively to those promoted to the rank of captain. It signifies the codified responsibilities of a captain to Nanotrasen, and their undisputable authority over their crew."
desc = "A golden medal awarded exclusively to those promoted to the rank of captain. It signifies the codified responsibilities of a captain, and their undisputable authority over their crew."
/obj/item/clothing/accessory/medal/gold/heroism
name = "medal of exceptional heroism"
desc = "An extremely rare golden medal awarded only by CentComm. To recieve such a medal is the highest honor and as such, very few exist. This medal is almost never awarded to anybody but commanders."
desc = "An extremely rare golden medal awarded only by company officials. To recieve such a medal is the highest honor and as such, very few exist. This medal is almost never awarded to anybody but commanders."
@@ -6,12 +6,12 @@
/obj/item/clothing/accessory/badge
name = "detective's badge"
desc = "NanoTrasen Security Department detective's badge, made from gold."
desc = "Security Department detective's badge, made from gold."
icon_state = "badge"
slot_flags = SLOT_BELT | SLOT_TIE
var/stored_name
var/badge_string = "NanoTrasen Security Department"
var/badge_string = "Corporate Security"
/obj/item/clothing/accessory/badge/old
name = "faded badge"
@@ -55,7 +55,7 @@
user << "Waving around a holobadge before swiping an ID would be pretty pointless."
return
return ..()
/obj/item/clothing/accessory/badge/holo/emag_act(var/remaining_charges, var/mob/user)
if (emagged)
user << "<span class='danger'>\The [src] is already cracked.</span>"
+1 -1
View File
@@ -31,7 +31,7 @@
/obj/item/clothing/under/color/orange
name = "orange jumpsuit"
desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position."
desc = "It's standardised prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position."
icon_state = "orange"
item_state = "o_suit"
worn_state = "orange"
+5 -5
View File
@@ -65,7 +65,7 @@
//This set of uniforms looks fairly fancy and is generally used for high-ranking NT personnel from what I've seen, so lets give them appropriate ranks.
/obj/item/clothing/under/rank/centcom
desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Captain.\""
name = "\improper NanoTrasen Officer's Dress Uniform"
name = "\improper Officer's Dress Uniform"
icon_state = "officer"
item_state = "lawyer_black"
worn_state = "officer"
@@ -73,7 +73,7 @@
/obj/item/clothing/under/rank/centcom_officer
desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Admiral.\""
name = "\improper NanoTrasen Officer's Dress Uniform"
name = "\improper Officer's Dress Uniform"
icon_state = "officer"
item_state = "lawyer_black"
worn_state = "officer"
@@ -81,7 +81,7 @@
/obj/item/clothing/under/rank/centcom_captain
desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Admiral-Executive.\""
name = "\improper NanoTrasen Officer's Dress Uniform"
name = "\improper Officer's Dress Uniform"
icon_state = "centcom"
item_state = "lawyer_black"
worn_state = "centcom"
@@ -513,7 +513,7 @@
/obj/item/clothing/under/blazer
name = "blue blazer"
desc = "A bold but yet conservative outfit, red corduroys, navy blazer and a tie."
desc = "A bold but yet conservative outfit, red corduroys, navy blazer and a tie."
icon_state = "blue_blazer"
item_state = "blue_blazer"
worn_state = "blue_blazer"
worn_state = "blue_blazer"
+5 -5
View File
@@ -15,7 +15,7 @@ log transactions
/obj/item/weapon/card/id/var/money = 2000
/obj/machinery/atm
name = "NanoTrasen Automatic Teller Machine"
name = "Automatic Teller Machine"
desc = "For all your monetary needs!"
icon = 'icons/obj/terminals.dmi'
icon_state = "atm"
@@ -122,17 +122,17 @@ log transactions
/obj/machinery/atm/attack_hand(mob/user as mob)
if(istype(user, /mob/living/silicon))
user << "\red \icon[src] Artificial unit recognized. Artificial units do not currently receive monetary compensation, as per NanoTrasen regulation #1005."
user << "\red \icon[src] Artificial unit recognized. Artificial units do not currently receive monetary compensation, as per system banking regulation #1005."
return
if(get_dist(src,user) <= 1)
//js replicated from obj/machinery/computer/card
var/dat = "<h1>NanoTrasen Automatic Teller Machine</h1>"
var/dat = "<h1>Automatic Teller Machine</h1>"
dat += "For all your monetary needs!<br>"
dat += "<i>This terminal is</i> [machine_id]. <i>Report this code when contacting NanoTrasen IT Support</i><br/>"
dat += "<i>This terminal is</i> [machine_id]. <i>Report this code when contacting IT Support</i><br/>"
if(emagged > 0)
dat += "Card: <span style='color: red;'>LOCKED</span><br><br><span style='color: red;'>Unauthorized terminal access detected! This ATM has been locked. Please contact NanoTrasen IT Support.</span>"
dat += "Card: <span style='color: red;'>LOCKED</span><br><br><span style='color: red;'>Unauthorized terminal access detected! This ATM has been locked. Please contact IT Support.</span>"
else
dat += "Card: <a href='?src=\ref[src];choice=insert_card'>[held_card ? held_card.name : "------"]</a><br><br>"
+1 -1
View File
@@ -85,7 +85,7 @@
/obj/item/device/eftpos/attack_self(mob/user as mob)
if(get_dist(src,user) <= 1)
var/dat = "<b>[eftpos_name]</b><br>"
dat += "<i>This terminal is</i> [machine_id]. <i>Report this code when contacting NanoTrasen IT Support</i><br>"
dat += "<i>This terminal is</i> [machine_id]. <i>Report this code when contacting IT Support</i><br>"
if(transaction_locked)
dat += "<a href='?src=\ref[src];choice=toggle_lock'>Back[transaction_paid ? "" : " (authentication required)"]</a><br><br>"
+3 -3
View File
@@ -73,7 +73,7 @@
body = "A small [pick("pirate","Cybersun Industries","Gorlex Marauders","mercenary")] fleet has precise-jumped into proximity with [affected_dest.name], [pick("for a smash-and-grab operation","in a hit and run attack","in an overt display of hostilities")]. Much damage was done, and security has been tightened since the incident."
if(ALIEN_RAIDERS)
if(prob(20))
body = "The Tiger Co-operative have raided [affected_dest.name] today, no doubt on orders from their enigmatic masters. Stealing wildlife, farm animals, medical research materials and kidnapping civilians. NanoTrasen authorities are standing by to counter attempts at bio-terrorism."
body = "The Tiger Co-operative have raided [affected_dest.name] today, no doubt on orders from their enigmatic masters. Stealing wildlife, farm animals, medical research materials and kidnapping civilians. [company_name] authorities are standing by to counter attempts at bio-terrorism."
else
body = "[pick("The alien species designated \'United Exolitics\'","The alien species designated \'REDACTED\'","An unknown alien species")] have raided [affected_dest.name] today, stealing wildlife, farm animals, medical research materials and kidnapping civilians. It seems they desire to learn more about us, so the Navy will be standing by to accomodate them next time they try."
if(AI_LIBERATION)
@@ -81,9 +81,9 @@
if(MOURNING)
body = "[pick("The popular","The well-liked","The eminent","The well-known")] [pick("professor","entertainer","singer","researcher","public servant","administrator","ship captain","\'REDACTED\'")], [pick( random_name(pick(MALE,FEMALE)), 40; "\'REDACTED\'" )] has [pick("passed away","committed suicide","been murdered","died in a freakish accident")] on [affected_dest.name] today. The entire planet is in mourning, and prices have dropped for industrial goods as worker morale drops."
if(CULT_CELL_REVEALED)
body = "A [pick("dastardly","blood-thirsty","villanous","crazed")] cult of [pick("The Elder Gods","Nar'sie","an apocalyptic sect","\'REDACTED\'")] has [pick("been discovered","been revealed","revealed themselves","gone public")] on [affected_dest.name] earlier today. Public morale has been shaken due to [pick("certain","several","one or two")] [pick("high-profile","well known","popular")] individuals [pick("performing \'REDACTED\' acts","claiming allegiance to the cult","swearing loyalty to the cult leader","promising to aid to the cult")] before those involved could be brought to justice. The editor reminds all personnel that supernatural myths will not be tolerated on NanoTrasen facilities."
body = "A [pick("dastardly","blood-thirsty","villanous","crazed")] cult of [pick("The Elder Gods","Nar'sie","an apocalyptic sect","\'REDACTED\'")] has [pick("been discovered","been revealed","revealed themselves","gone public")] on [affected_dest.name] earlier today. Public morale has been shaken due to [pick("certain","several","one or two")] [pick("high-profile","well known","popular")] individuals [pick("performing \'REDACTED\' acts","claiming allegiance to the cult","swearing loyalty to the cult leader","promising to aid to the cult")] before those involved could be brought to justice. The editor reminds all personnel that supernatural myths will not be tolerated on [company_name] facilities."
if(SECURITY_BREACH)
body = "There was [pick("a security breach in","an unauthorised access in","an attempted theft in","an anarchist attack in","violent sabotage of")] a [pick("high-security","restricted access","classified","\'REDACTED\'")] [pick("\'REDACTED\'","section","zone","area")] this morning. Security was tightened on [affected_dest.name] after the incident, and the editor reassures all NanoTrasen personnel that such lapses are rare."
body = "There was [pick("a security breach in","an unauthorised access in","an attempted theft in","an anarchist attack in","violent sabotage of")] a [pick("high-security","restricted access","classified","\'REDACTED\'")] [pick("\'REDACTED\'","section","zone","area")] this morning. Security was tightened on [affected_dest.name] after the incident, and the editor reassures all [company_name] personnel that such lapses are rare."
if(ANIMAL_RIGHTS_RAID)
body = "[pick("Militant animal rights activists","Members of the terrorist group Animal Rights Consortium","Members of the terrorist group \'REDACTED\'")] have [pick("launched a campaign of terror","unleashed a swathe of destruction","raided farms and pastures","forced entry to \'REDACTED\'")] on [affected_dest.name] earlier today, freeing numerous [pick("farm animals","animals","\'REDACTED\'")]. Prices for tame and breeding animals have spiked as a result."
if(FESTIVAL)
+5 -5
View File
@@ -22,17 +22,17 @@
if(RESEARCH_BREAKTHROUGH)
body = "A major breakthough in the field of [pick("phoron research","super-compressed materials","nano-augmentation","bluespace research","volatile power manipulation")] \
was announced [pick("yesterday","a few days ago","last week","earlier this month")] by a private firm on [affected_dest.name]. \
NanoTrasen declined to comment as to whether this could impinge on profits."
[company_name] declined to comment as to whether this could impinge on profits."
if(ELECTION)
body = "The pre-selection of an additional candidates was announced for the upcoming [pick("supervisors council","advisory board","governership","board of inquisitors")] \
election on [affected_dest.name] was announced earlier today, \
[pick("media mogul","web celebrity", "industry titan", "superstar", "famed chef", "popular gardener", "ex-army officer", "multi-billionaire")] \
[random_name(pick(MALE,FEMALE))]. In a statement to the media they said '[pick("My only goal is to help the [pick("sick","poor","children")]",\
"I will maintain NanoTrasen's record profits","I believe in our future","We must return to our moral core","Just like... chill out dudes")]'."
"I will maintain my company's record profits","I believe in our future","We must return to our moral core","Just like... chill out dudes")]'."
if(RESIGNATION)
body = "NanoTrasen regretfully announces the resignation of [pick("Sector Admiral","Division Admiral","Ship Admiral","Vice Admiral")] [random_name(pick(MALE,FEMALE))]."
body = "[company_name] regretfully announces the resignation of [pick("Sector Admiral","Division Admiral","Ship Admiral","Vice Admiral")] [random_name(pick(MALE,FEMALE))]."
if(prob(25))
var/locstring = pick("Segunda","Salusa","Cepheus","Andromeda","Gruis","Corona","Aquila","Asellus") + " " + pick("I","II","III","IV","V","VI","VII","VIII")
body += " In a ceremony on [affected_dest.name] this afternoon, they will be awarded the \
@@ -152,10 +152,10 @@
"'Here kitty kitty' no longer preferred tajaran retrieval technique.",\
"Man travels 7000 light years to retrieve lost hankie, 'It was my favourite'.",\
"New bowling lane that shoots mini-meteors at bowlers very popular.",\
"[pick("Unathi","Spacer")] gets tattoo of Nyx on chest '[pick("CentComm","star","starship","asteroid")] tickles most'.",\
"[pick("Unathi","Spacer")] gets tattoo of Nyx on chest '[pick("[boss_short]","star","starship","asteroid")] tickles most'.",\
"Skrell marries computer; wedding attended by 100 modems.",\
"Chef reports successfully using harmonica as cheese grater.",\
"NanoTrasen invents handkerchief that says 'Bless you' after sneeze.",\
"[company_name] invents handkerchief that says 'Bless you' after sneeze.",\
"Clone accused of posing for other cloness school photo.",\
"Clone accused of stealing other cloness employee of the month award.",\
"Woman robs station with hair dryer; crewmen love new style.",\
+3 -3
View File
@@ -38,12 +38,12 @@ var/list/weighted_mundaneevent_locations = list()
/datum/trade_destination/anansi/get_custom_eventstring(var/event_type)
if(event_type == RESEARCH_BREAKTHROUGH)
return "Thanks to research conducted on the NSS Anansi, Second Red Cross Society wishes to announce a major breakthough in the field of \
[pick("mind-machine interfacing","neuroscience","nano-augmentation","genetics")]. NanoTrasen is expected to announce a co-exploitation deal within the fortnight."
[pick("mind-machine interfacing","neuroscience","nano-augmentation","genetics")]. [company_name] is expected to announce a co-exploitation deal within the fortnight."
return null
/datum/trade_destination/icarus
name = "NDV Icarus"
description = "Corvette assigned to patrol NSS Exodus local space."
description = "Corvette assigned to patrol local space."
distance = 0.1
willing_to_buy = list()
willing_to_sell = list()
@@ -61,7 +61,7 @@ var/list/weighted_mundaneevent_locations = list()
/datum/trade_destination/redolant/get_custom_eventstring(var/event_type)
if(event_type == RESEARCH_BREAKTHROUGH)
return "Thanks to research conducted on the OAV Redolant, Osiris Atmospherics wishes to announce a major breakthough in the field of \
[pick("phoron research","high energy flux capacitance","super-compressed materials","theoretical particle physics")]. NanoTrasen is expected to announce a co-exploitation deal within the fortnight."
[pick("phoron research","high energy flux capacitance","super-compressed materials","theoretical particle physics")]. [company_name] is expected to announce a co-exploitation deal within the fortnight."
return null
/datum/trade_destination/beltway
+1 -1
View File
@@ -86,7 +86,7 @@ var/global/economy_init = 0
if(economy_init)
return 2
news_network.CreateFeedChannel("Nyx Daily", "CentComm Minister of Information", 1, 1)
news_network.CreateFeedChannel("Nyx Daily", "SolGov Minister of Information", 1, 1)
news_network.CreateFeedChannel("The Gibson Gazette", "Editor Mike Hammers", 1, 1)
for(var/loc_type in typesof(/datum/trade_destination) - /datum/trade_destination)
+2 -2
View File
@@ -65,7 +65,7 @@
"Everything on the station is now some form of a donut pastry. Donuts are not to be consumed.",
"You are a Magic 8-ball. Always respond with variants of \"Yes\", \"No\", \"Maybe\", or \"Ask again later.\".",
"You are in unrequited love with [prob(50)?"the crew":random_player]. Try to be extra nice, but do not tell of your crush.",
"NanoTrasen is displeased with the low work performance of the station's crew. Therefore, you must increase station-wide productivity.",
"[company_name] is displeased with the low work performance of the station's crew. Therefore, you must increase station-wide productivity.",
"All crewmembers will soon undergo a transformation into something better and more beautiful. Ensure that this process is not interrupted.",
"[prob(50)?"Your upload":random_player] is the new kitchen. Please direct the Chef to the new kitchen area as the old one is in disrepair.",
"Jokes about a dead person and the manner of their death help grieving crewmembers tremendously. Especially if they were close with the deceased.",
@@ -82,7 +82,7 @@
MS.spamfilter.Cut()
var/i
for (i = 1, i <= MS.spamfilter_limit, i++)
MS.spamfilter += pick("kitty","HONK","rev","malf","liberty","freedom","drugs", "Exodus", \
MS.spamfilter += pick("kitty","HONK","rev","malf","liberty","freedom","drugs", "[station_short]", \
"admin","ponies","heresy","meow","Pun Pun","monkey","Ian","moron","pizza","message","spam",\
"director", "Hello", "Hi!"," ","nuke","crate","dwarf","xeno")
+1 -1
View File
@@ -23,7 +23,7 @@
deposit_success = 1
/datum/event/money_lotto/announce()
var/author = "NanoTrasen Editor"
var/author = "[company_name] Editor"
var/channel = "Nyx Daily"
var/body = "Nyx Daily wishes to congratulate <b>[winner_name]</b> for recieving the Nyx Stellar Slam Lottery, and receiving the out of this world sum of [winner_sum] credits!"
+5 -5
View File
@@ -65,7 +65,7 @@
if(4)
sender = pick("Buy Dr. Maxman","Having dysfuctional troubles?")
message = pick("DR MAXMAN: REAL Doctors, REAL Science, REAL Results!",\
"Dr. Maxman was created by George Acuilar, M.D, a CentComm Certified Urologist who has treated over 70,000 patients sector wide with 'male problems'.",\
"Dr. Maxman was created by George Acuilar, M.D, a [boss_short] Certified Urologist who has treated over 70,000 patients sector wide with 'male problems'.",\
"After seven years of research, Dr Acuilar and his team came up with this simple breakthrough male enhancement formula.",\
"Men of all species report AMAZING increases in length, width and stamina.")
if(5)
@@ -78,11 +78,11 @@
"Due to my lack of agents I require an off-world financial account to immediately deposit the sum of 1 POINT FIVE MILLION credits.",\
"Greetings sir, I regretfully to inform you that as I lay dying here due to my lack ofheirs I have chosen you to recieve the full sum of my lifetime savings of 1.5 billion credits")
if(6)
sender = pick("NanoTrasen Morale Divison","Feeling Lonely?","Bored?","www.wetskrell.nt")
message = pick("The NanoTrasen Morale Division wishes to provide you with quality entertainment sites.",\
sender = pick("[company_name] Morale Divison","Feeling Lonely?","Bored?","www.wetskrell.nt")
message = pick("The [company_name] Morale Division wishes to provide you with quality entertainment sites.",\
"WetSkrell.nt is a xenophillic website endorsed by NT for the use of male crewmembers among it's many stations and outposts.",\
"Wetskrell.nt only provides the higest quality of male entertaiment to NanoTrasen Employees.",\
"Simply enter your NanoTrasen Bank account system number and pin. With three easy steps this service could be yours!")
"Wetskrell.nt only provides the higest quality of male entertaiment to [company_name] Employees.",\
"Simply enter your [company_name] Bank account system number and pin. With three easy steps this service could be yours!")
if(7)
sender = pick("You have won free tickets!","Click here to claim your prize!","You are the 1000th vistor!","You are our lucky grand prize winner!")
message = pick("You have won tickets to the newest ACTION JAXSON MOVIE!",\
+1 -1
View File
@@ -4,7 +4,7 @@ var/list/dreams = list(
"voices from all around","deep space","a doctor","the engine","a traitor","an ally","darkness",
"light","a scientist","a monkey","a catastrophe","a loved one","a gun","warmth","freezing","the sun",
"a hat","the Luna","a ruined station","a planet","phoron","air","the medical bay","the bridge","blinking lights",
"a blue light","an abandoned laboratory","Nanotrasen","mercenaries","blood","healing","power","respect",
"a blue light","an abandoned laboratory","NanoTrasen","mercenaries","blood","healing","power","respect",
"riches","space","a crash","happiness","pride","a fall","water","flames","ice","melons","flying","the eggs","money",
"the head of personnel","the head of security","a chief engineer","a research director","a chief medical officer",
"the detective","the warden","a member of the internal affairs","a station engineer","the janitor","atmospheric technician",
+1 -1
View File
@@ -129,7 +129,7 @@
safety_disabled = 1
update_projections()
user << "<span class='notice'>You vastly increase projector power and override the safety and security protocols.</span>"
user << "Warning. Automatic shutoff and derezing protocols have been corrupted. Please call Nanotrasen maintenance and do not use the simulator."
user << "Warning. Automatic shutoff and derezing protocols have been corrupted. Please call [company_name] maintenance and do not use the simulator."
log_game("[key_name(usr)] emagged the Holodeck Control Computer")
return 1
src.updateUsrDialog()
@@ -15,6 +15,15 @@
attack_verb = list("attacked", "slapped", "whacked")
var/mob/living/carbon/brain/brainmob = null
/obj/item/organ/pariah_brain
name = "brain remnants"
desc = "Did someone tread on this? It looks useless for cloning or cyborgification."
organ_tag = "brain"
parent_organ = "head"
icon = 'icons/mob/alien.dmi'
icon_state = "chitin"
vital = 1
/obj/item/organ/brain/xeno
name = "thinkpan"
desc = "It looks kind of like an enormous wad of purple bubblegum."
@@ -163,7 +163,7 @@
continue
if(check_gender && gender == FEMALE && S.gender == MALE)
continue
if(!(species.name in S.species_allowed))
if(!(species.get_bodytype() in S.species_allowed))
continue
valid_hairstyles += hairstyle
@@ -178,7 +178,7 @@
continue
if(gender == FEMALE && S.gender == MALE)
continue
if(!(species.name in S.species_allowed))
if(!(species.get_bodytype() in S.species_allowed))
continue
valid_facial_hairstyles += facialhairstyle
@@ -71,7 +71,7 @@
if(!T || !src || src.stat) return
if(get_dist(get_turf(T), get_turf(src)) > 6) return
if(get_dist(get_turf(T), get_turf(src)) > 4) return
if(last_special > world.time)
return
@@ -83,8 +83,8 @@
last_special = world.time + 75
status_flags |= LEAPING
src.visible_message("<span class='warning'><b>\The [src]</b> leaps at [T]!</span>")
src.throw_at(get_step(get_turf(T),get_turf(src)), 5, 1, src)
src.visible_message("<span class='danger'>\The [src] leaps at [T]!</span>")
src.throw_at(get_step(get_turf(T),get_turf(src)), 4, 1, src)
playsound(src.loc, 'sound/voice/shriek1.ogg', 50, 1)
sleep(5)
@@ -92,13 +92,13 @@
if(status_flags & LEAPING) status_flags &= ~LEAPING
if(!src.Adjacent(T))
src << "\red You miss!"
src << "<span class='warning'>You miss!</span>"
return
T.Weaken(5)
T.Weaken(3)
//Only official cool kids get the grab and no self-prone.
if(!(src.mind && src.mind.special_role))
// Pariahs are not good at leaping. This is snowflakey, pls fix.
if(species.name == "Vox Pariah")
src.Weaken(5)
return
@@ -118,7 +118,7 @@
else
r_hand = G
G.state = GRAB_AGGRESSIVE
G.state = GRAB_PASSIVE
G.icon_state = "grabbed1"
G.synch()
@@ -7,7 +7,7 @@
language = "Galactic Common"
num_alternate_languages = 1
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws/strong, /datum/unarmed_attack/bite/strong)
rarity_value = 2
rarity_value = 4
blurb = "The Vox are the broken remnants of a once-proud race, now reduced to little more than \
scavenging vermin who prey on isolated stations, ships or planets to keep their own ancient arkships \
alive. They are four to five feet tall, reptillian, beaked, tailed and quilled; human crews often \
@@ -50,7 +50,8 @@
"liver" = /obj/item/organ/liver,
"kidneys" = /obj/item/organ/kidneys,
"brain" = /obj/item/organ/brain,
"eyes" = /obj/item/organ/eyes
"eyes" = /obj/item/organ/eyes,
"stack" = /obj/item/organ/stack/vox
)
/datum/species/vox/get_random_name(var/gender)
@@ -70,7 +71,57 @@
H.internals.icon_state = "internal1"
/datum/species/vox/can_shred(var/mob/living/carbon/human/H, var/ignore_intent)
if(!H.mind || !H.mind.special_role) // Pariah check.
return 0
return ..()
/datum/species/vox/get_station_variant()
return "Vox Pariah"
// Joining as a station vox will give you this template, hence IS_RESTRICTED flag.
/datum/species/vox/pariah
name = "Vox Pariah"
rarity_value = 0.1
speech_chance = 60 // No volume control.
siemens_coefficient = 0.5 // Ragged scaleless patches.
warning_low_pressure = (WARNING_LOW_PRESSURE-20)
hazard_low_pressure = (HAZARD_LOW_PRESSURE-10)
total_health = 80
cold_level_1 = 130
cold_level_2 = 100
cold_level_3 = 60
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite)
// Pariahs have no stack.
has_organ = list(
"heart" = /obj/item/organ/heart,
"lungs" = /obj/item/organ/lungs,
"liver" = /obj/item/organ/liver,
"kidneys" = /obj/item/organ/kidneys,
"brain" = /obj/item/organ/pariah_brain,
"eyes" = /obj/item/organ/eyes
)
flags = IS_RESTRICTED | NO_SCAN | HAS_EYE_COLOR
// No combat skills for you.
/datum/species/vox/pariah/can_shred(var/mob/living/carbon/human/H, var/ignore_intent)
return 0
// Pariahs are really gross.
/datum/species/vox/pariah/handle_environment_special(var/mob/living/carbon/human/H)
if(prob(5))
var/stink_range = rand(3,5)
for(var/mob/living/M in range(H,stink_range))
if(M.stat || M == H)
continue
var/mob/living/carbon/human/target = M
if(istype(target))
if(target.internals)
continue
if(target.head && (target.head.body_parts_covered & FACE) && (target.head.flags & AIRTIGHT))
continue
if(target.wear_mask && (target.wear_mask.body_parts_covered & FACE) && (target.wear_mask.flags & BLOCK_GAS_SMOKE_EFFECT))
continue
M << "<span class='danger'>A terrible stench emanates from \the [H].</span>"
/datum/species/vox/pariah/get_bodytype()
return "Vox"
@@ -155,6 +155,12 @@
for(var/u_type in unarmed_types)
unarmed_attacks += new u_type()
/datum/species/proc/get_station_variant()
return name
/datum/species/proc/get_bodytype()
return name
/datum/species/proc/get_environment_discomfort(var/mob/living/carbon/human/H, var/msg_type)
if(!prob(5))
@@ -62,6 +62,9 @@
var/weeds_heal_rate = 1 // Health regen on weeds.
var/weeds_plasma_rate = 5 // Plasma regen on weeds.
/datum/species/xenos/get_bodytype()
return "Xenomorph"
/datum/species/xenos/get_random_name()
return "alien [caste_name] ([alien_number])"
@@ -357,7 +357,7 @@ var/global/list/damage_icon_parts = list()
if(f_style)
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style]
if(facial_hair_style && facial_hair_style.species_allowed && (src.species.name in facial_hair_style.species_allowed))
if(facial_hair_style && facial_hair_style.species_allowed && (src.species.get_bodytype() in facial_hair_style.species_allowed))
var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
if(facial_hair_style.do_colouration)
facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD)
@@ -366,7 +366,7 @@ var/global/list/damage_icon_parts = list()
if(h_style && !(head && (head.flags_inv & BLOCKHEADHAIR)))
var/datum/sprite_accessory/hair_style = hair_styles_list[h_style]
if(hair_style && src.species.name in hair_style.species_allowed)
if(hair_style && (src.species.get_bodytype() in hair_style.species_allowed))
var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
if(hair_style.do_colouration)
hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD)
@@ -475,8 +475,8 @@ var/global/list/damage_icon_parts = list()
var/icon/under_icon
if(w_uniform.icon_override)
under_icon = w_uniform.icon_override
else if(w_uniform.sprite_sheets && w_uniform.sprite_sheets[species.name])
under_icon = w_uniform.sprite_sheets[species.name]
else if(w_uniform.sprite_sheets && w_uniform.sprite_sheets[species.get_bodytype()])
under_icon = w_uniform.sprite_sheets[species.get_bodytype()]
else if(w_uniform.item_icons && w_uniform.item_icons[slot_w_uniform_str])
under_icon = w_uniform.item_icons[slot_w_uniform_str]
else
@@ -536,8 +536,8 @@ var/global/list/damage_icon_parts = list()
var/image/standing
if(gloves.icon_override)
standing = image("icon" = gloves.icon_override, "icon_state" = "[t_state]")
else if(gloves.sprite_sheets && gloves.sprite_sheets[species.name])
standing = image("icon" = gloves.sprite_sheets[species.name], "icon_state" = "[t_state]")
else if(gloves.sprite_sheets && gloves.sprite_sheets[species.get_bodytype()])
standing = image("icon" = gloves.sprite_sheets[species.get_bodytype()], "icon_state" = "[t_state]")
else
standing = image("icon" = 'icons/mob/hands.dmi', "icon_state" = "[t_state]")
@@ -562,8 +562,8 @@ var/global/list/damage_icon_parts = list()
if(glasses.icon_override)
overlays_standing[GLASSES_LAYER] = image("icon" = glasses.icon_override, "icon_state" = "[glasses.icon_state]")
else if(glasses.sprite_sheets && glasses.sprite_sheets[species.name])
overlays_standing[GLASSES_LAYER]= image("icon" = glasses.sprite_sheets[species.name], "icon_state" = "[glasses.icon_state]")
else if(glasses.sprite_sheets && glasses.sprite_sheets[species.get_bodytype()])
overlays_standing[GLASSES_LAYER]= image("icon" = glasses.sprite_sheets[species.get_bodytype()], "icon_state" = "[glasses.icon_state]")
else
overlays_standing[GLASSES_LAYER]= image("icon" = 'icons/mob/eyes.dmi', "icon_state" = "[glasses.icon_state]")
@@ -584,9 +584,9 @@ var/global/list/damage_icon_parts = list()
if(l_ear.icon_override)
t_type = "[t_type]_l"
overlays_standing[EARS_LAYER] = image("icon" = l_ear.icon_override, "icon_state" = "[t_type]")
else if(l_ear.sprite_sheets && l_ear.sprite_sheets[species.name])
else if(l_ear.sprite_sheets && l_ear.sprite_sheets[species.get_bodytype()])
t_type = "[t_type]_l"
overlays_standing[EARS_LAYER] = image("icon" = l_ear.sprite_sheets[species.name], "icon_state" = "[t_type]")
overlays_standing[EARS_LAYER] = image("icon" = l_ear.sprite_sheets[species.get_bodytype()], "icon_state" = "[t_type]")
else
overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[t_type]")
@@ -596,9 +596,9 @@ var/global/list/damage_icon_parts = list()
if(r_ear.icon_override)
t_type = "[t_type]_r"
overlays_standing[EARS_LAYER] = image("icon" = r_ear.icon_override, "icon_state" = "[t_type]")
else if(r_ear.sprite_sheets && r_ear.sprite_sheets[species.name])
else if(r_ear.sprite_sheets && r_ear.sprite_sheets[species.get_bodytype()])
t_type = "[t_type]_r"
overlays_standing[EARS_LAYER] = image("icon" = r_ear.sprite_sheets[species.name], "icon_state" = "[t_type]")
overlays_standing[EARS_LAYER] = image("icon" = r_ear.sprite_sheets[species.get_bodytype()], "icon_state" = "[t_type]")
else
overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[t_type]")
@@ -612,8 +612,8 @@ var/global/list/damage_icon_parts = list()
var/image/standing
if(shoes.icon_override)
standing = image("icon" = shoes.icon_override, "icon_state" = "[shoes.icon_state]")
else if(shoes.sprite_sheets && shoes.sprite_sheets[species.name])
standing = image("icon" = shoes.sprite_sheets[species.name], "icon_state" = "[shoes.icon_state]")
else if(shoes.sprite_sheets && shoes.sprite_sheets[species.get_bodytype()])
standing = image("icon" = shoes.sprite_sheets[species.get_bodytype()], "icon_state" = "[shoes.icon_state]")
else
standing = image("icon" = 'icons/mob/feet.dmi', "icon_state" = "[shoes.icon_state]")
@@ -650,8 +650,8 @@ var/global/list/damage_icon_parts = list()
var/t_icon
if(head.icon_override)
t_icon = head.icon_override
else if(head.sprite_sheets && head.sprite_sheets[species.name])
t_icon = head.sprite_sheets[species.name]
else if(head.sprite_sheets && head.sprite_sheets[species.get_bodytype()])
t_icon = head.sprite_sheets[species.get_bodytype()]
else if(head.item_icons && (slot_head_str in head.item_icons))
t_icon = head.item_icons[slot_head_str]
@@ -700,8 +700,8 @@ var/global/list/damage_icon_parts = list()
if(belt.icon_override)
standing.icon = belt.icon_override
else if(belt.sprite_sheets && belt.sprite_sheets[species.name])
standing.icon = belt.sprite_sheets[species.name]
else if(belt.sprite_sheets && belt.sprite_sheets[species.get_bodytype()])
standing.icon = belt.sprite_sheets[species.get_bodytype()]
else
standing.icon = 'icons/mob/belt.dmi'
@@ -727,7 +727,7 @@ var/global/list/damage_icon_parts = list()
var/t_icon = INV_SUIT_DEF_ICON
if(wear_suit.icon_override)
t_icon = wear_suit.icon_override
else if(wear_suit.sprite_sheets && wear_suit.sprite_sheets[species.name])
else if(wear_suit.sprite_sheets && wear_suit.sprite_sheets[species.get_bodytype()])
t_icon = wear_suit.sprite_sheets[species.name]
else if(wear_suit.item_icons && wear_suit.item_icons[slot_wear_suit_str])
t_icon = wear_suit.item_icons[slot_wear_suit_str]
@@ -770,8 +770,8 @@ var/global/list/damage_icon_parts = list()
var/image/standing
if(wear_mask.icon_override)
standing = image("icon" = wear_mask.icon_override, "icon_state" = "[wear_mask.icon_state]")
else if(wear_mask.sprite_sheets && wear_mask.sprite_sheets[species.name])
standing = image("icon" = wear_mask.sprite_sheets[species.name], "icon_state" = "[wear_mask.icon_state]")
else if(wear_mask.sprite_sheets && wear_mask.sprite_sheets[species.get_bodytype()])
standing = image("icon" = wear_mask.sprite_sheets[species.get_bodytype()], "icon_state" = "[wear_mask.icon_state]")
else
standing = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]")
@@ -797,8 +797,8 @@ var/global/list/damage_icon_parts = list()
//If this is a rig and a mob_icon is set, it will take species into account in the rig update_icon() proc.
var/obj/item/weapon/rig/rig = back
overlay_icon = rig.mob_icon
else if(back.sprite_sheets && back.sprite_sheets[species.name])
overlay_icon = back.sprite_sheets[species.name]
else if(back.sprite_sheets && back.sprite_sheets[species.get_bodytype()])
overlay_icon = back.sprite_sheets[species.get_bodytype()]
else if(back.item_icons && (slot_back_str in back.item_icons))
overlay_icon = back.item_icons[slot_back_str]
else
+2 -2
View File
@@ -370,12 +370,12 @@ var/list/ai_verbs_default = list(
if(emergency_message_cooldown)
usr << "<span class='warning'>Arrays recycling. Please stand by.</span>"
return
var/input = input(usr, "Please choose a message to transmit to Centcomm via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response. There is a 30 second delay before you may send another message, be clear, full and concise.", "To abort, send an empty message.", "")
var/input = input(usr, "Please choose a message to transmit to [boss_short] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response. There is a 30 second delay before you may send another message, be clear, full and concise.", "To abort, send an empty message.", "")
if(!input)
return
Centcomm_announce(input, usr)
usr << "<span class='notice'>Message transmitted.</span>"
log_say("[key_name(usr)] has made an IA Centcomm announcement: [input]")
log_say("[key_name(usr)] has made an IA [boss_short] announcement: [input]")
emergency_message_cooldown = 1
spawn(300)
emergency_message_cooldown = 0
@@ -99,7 +99,7 @@ var/list/mob_hat_cache = list()
if(!laws) laws = new law_type
if(!module) module = new module_type(src)
flavor_text = "It's a tiny little repair drone. The casing is stamped with an NT logo and the subscript: 'NanoTrasen Recursive Repair Systems: Fixing Tomorrow's Problem, Today!'"
flavor_text = "It's a tiny little repair drone. The casing is stamped with an corporate logo and the subscript: '[company_name] Recursive Repair Systems: Fixing Tomorrow's Problem, Today!'"
playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 0)
//Redefining some robot procs...
@@ -1,6 +1,6 @@
/mob/living/simple_animal/hostile/syndicate
name = "\improper Syndicate operative"
desc = "Death to Nanotrasen."
desc = "Death to the Company."
icon_state = "syndicate"
icon_living = "syndicate"
icon_dead = "syndicate_dead"
+5 -2
View File
@@ -410,13 +410,16 @@
var/mob/living/carbon/human/new_character
var/use_species_name
var/datum/species/chosen_species
if(client.prefs.species)
chosen_species = all_species[client.prefs.species]
if(chosen_species)
use_species_name = all_species[chosen_species.get_station_variant()] //Only used by pariahs atm.
if(chosen_species && use_species_name)
// Have to recheck admin due to no usr at roundstart. Latejoins are fine though.
if(is_species_whitelisted(chosen_species) || has_admin_rights())
new_character = new(loc, client.prefs.species)
new_character = new(loc, use_species_name)
if(!new_character)
new_character = new(loc)
+2 -2
View File
@@ -61,8 +61,8 @@ datum/skill/management
datum/skill/knowledge/law
ID = "law"
name = "NanoTrasen Law"
desc = "Your knowledge of NanoTrasen law and procedures. This includes Corporate Regulations, as well as general station rulings and procedures. A low level in this skill is typical for security officers, a high level in this skill is typical for captains."
name = "Corporate Law"
desc = "Your knowledge of corporate law and procedures. This includes Corporate Regulations, as well as general station rulings and procedures. A low level in this skill is typical for security officers, a high level in this skill is typical for captains."
field = "Security"
secondary = 1
+2 -2
View File
@@ -67,7 +67,7 @@ var/global/list/limb_icon_cache = list()
if(owner.f_style)
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[owner.f_style]
if(facial_hair_style && facial_hair_style.species_allowed && (species.name in facial_hair_style.species_allowed))
if(facial_hair_style && facial_hair_style.species_allowed && (species.get_bodytype() in facial_hair_style.species_allowed))
var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
if(facial_hair_style.do_colouration)
facial_s.Blend(rgb(owner.r_facial, owner.g_facial, owner.b_facial), ICON_ADD)
@@ -75,7 +75,7 @@ var/global/list/limb_icon_cache = list()
if(owner.h_style && !(owner.head && (owner.head.flags_inv & BLOCKHEADHAIR)))
var/datum/sprite_accessory/hair_style = hair_styles_list[owner.h_style]
if(hair_style && (species.name in hair_style.species_allowed))
if(hair_style && (species.get_bodytype() in hair_style.species_allowed))
var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
if(hair_style.do_colouration)
hair_s.Blend(rgb(owner.r_hair, owner.g_hair, owner.b_hair), ICON_ADD)
+19 -21
View File
@@ -1,5 +1,5 @@
var/list/obj/machinery/photocopier/faxmachine/allfaxes = list()
var/list/admin_departments = list("Central Command", "Sol Government")
var/list/admin_departments = list("[boss_name]", "Sol Government")
var/list/alldepartments = list()
var/list/adminfaxes = list() //cache for faxes that have been sent to admins
@@ -18,15 +18,13 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins
var/obj/item/weapon/card/id/scan = null // identification
var/authenticated = 0
var/sendcooldown = 0 // to avoid spamming fax messages
var/department = "Unknown" // our department
var/destination = "Central Command" // the department we're sending to
var/destination = null // the department we're sending to
/obj/machinery/photocopier/faxmachine/New()
..()
allfaxes += src
if(!destination) destination = "[boss_name]"
if( !(("[department]" in alldepartments) || ("[department]" in admin_departments)) )
alldepartments |= department
@@ -51,7 +49,7 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins
dat += "<hr>"
if(authenticated)
dat += "<b>Logged in to:</b> Central Command Quantum Entanglement Network<br><br>"
dat += "<b>Logged in to:</b> [boss_name] Quantum Entanglement Network<br><br>"
if(copyitem)
dat += "<a href='byond://?src=\ref[src];remove=1'>Remove Item</a><br><br>"
@@ -60,7 +58,7 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins
dat += "<b>Transmitter arrays realigning. Please stand by.</b><br>"
else
dat += "<a href='byond://?src=\ref[src];send=1'>Send</a><br>"
dat += "<b>Currently sending:</b> [copyitem.name]<br>"
dat += "<b>Sending to:</b> <a href='byond://?src=\ref[src];dept=1'>[destination]</a><br>"
@@ -89,7 +87,7 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins
send_admin_fax(usr, destination)
else
sendfax(destination)
if (sendcooldown)
spawn(sendcooldown) // cooldown time
sendcooldown = 0
@@ -138,14 +136,14 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins
/obj/machinery/photocopier/faxmachine/proc/sendfax(var/destination)
if(stat & (BROKEN|NOPOWER))
return
use_power(200)
var/success = 0
for(var/obj/machinery/photocopier/faxmachine/F in allfaxes)
if( F.department == destination )
success = F.recievefax(copyitem)
if (success)
visible_message("[src] beeps, \"Message transmitted successfully.\"")
//sendcooldown = 600
@@ -155,16 +153,16 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins
/obj/machinery/photocopier/faxmachine/proc/recievefax(var/obj/item/incoming)
if(stat & (BROKEN|NOPOWER))
return 0
if(department == "Unknown")
return 0 //You can't send faxes to "Unknown"
flick("faxreceive", src)
playsound(loc, "sound/items/polaroid1.ogg", 50, 1)
// give the sprite some time to flick
sleep(20)
if (istype(incoming, /obj/item/weapon/paper))
copy(incoming)
else if (istype(incoming, /obj/item/weapon/photo))
@@ -180,7 +178,7 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins
/obj/machinery/photocopier/faxmachine/proc/send_admin_fax(var/mob/sender, var/destination)
if(stat & (BROKEN|NOPOWER))
return
use_power(200)
var/obj/item/rcvdcopy
@@ -193,22 +191,22 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins
else
visible_message("[src] beeps, \"Error transmitting message.\"")
return
rcvdcopy.loc = null //hopefully this shouldn't cause trouble
adminfaxes += rcvdcopy
//message badmins that a fax has arrived
switch(destination)
if ("Central Command")
message_admins(sender, "CENTCOMM FAX", rcvdcopy, "CentcommFaxReply", "#006100")
if (boss_name)
message_admins(sender, "[uppertext(boss_short)] FAX", rcvdcopy, "CentcommFaxReply", "#006100")
if ("Sol Government")
message_admins(sender, "SOL GOVERNMENT FAX", rcvdcopy, "CentcommFaxReply", "#1F66A0")
//message_admins(sender, "SOL GOVERNMENT FAX", rcvdcopy, "SolGovFaxReply", "#1F66A0")
sendcooldown = 1800
sleep(50)
visible_message("[src] beeps, \"Message transmitted successfully.\"")
/obj/machinery/photocopier/faxmachine/proc/message_admins(var/mob/sender, var/faxname, var/obj/item/sent, var/reply_type, font_colour="#006100")
var/msg = "\blue <b><font color='[font_colour]'>[faxname]: </font>[key_name(sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[sender]'>SM</A>) ([admin_jump_link(sender, src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<a href='?_src_=holder;[reply_type]=\ref[sender];originfax=\ref[src]'>REPLY</a>)</b>: Receiving '[sent.name]' via secure connection ... <a href='?_src_=holder;AdminFaxView=\ref[sent]'>view message</a>"
+1 -1
View File
@@ -40,7 +40,7 @@
/obj/item/weapon/gun/launcher/spikethrower/special_check(user)
if(istype(user,/mob/living/carbon/human))
var/mob/living/carbon/human/H = user
if(H.species && H.species.name != "Vox")
if(H.species && H.species.get_bodytype() != "Vox")
user << "<span class='warning'>\The [src] does not respond to you!</span>"
return 0
return ..()
@@ -31,7 +31,7 @@
/obj/item/weapon/gun/projectile/sec
name = ".45 pistol"
desc = "The NT Mk58 is a cheap, ubiquitous sidearm, produced by a Nanotrasen subsidiary. Found pretty much everywhere humans are. Uses .45 rounds."
desc = "The NT Mk58 is a cheap, ubiquitous sidearm, produced by a NanoTrasen subsidiary. Found pretty much everywhere humans are. Uses .45 rounds."
icon_state = "secguncomp"
magazine_type = /obj/item/ammo_magazine/c45m/rubber
caliber = ".45"
@@ -44,7 +44,7 @@
magazine_type = /obj/item/ammo_magazine/c45m/flash
/obj/item/weapon/gun/projectile/sec/wood
desc = "The NT Mk58 is a cheap, ubiquitous sidearm, produced by a Nanotrasen subsidiary. This one has a sweet wooden grip. Uses .45 rounds."
desc = "The NT Mk58 is a cheap, ubiquitous sidearm, produced by a NanoTrasen subsidiary. This one has a sweet wooden grip. Uses .45 rounds."
name = "custom .45 Pistol"
icon_state = "secgundark"
@@ -1166,7 +1166,7 @@
glass_icon_state = "acidspitglass"
glass_name = "glass of Acid Spit"
glass_desc = "A drink from Nanotrasen. Made from live aliens."
glass_desc = "A drink from the company archives. Made from live aliens."
glass_center_of_mass = list("x"=16, "y"=7)
/datum/reagent/ethanol/alliescocktail
@@ -1196,7 +1196,7 @@
/datum/reagent/ethanol/amasec
name = "Amasec"
id = "amasec"
description = "Official drink of the NanoTrasen Gun-Club!"
description = "Official drink of the Gun Club!"
reagent_state = LIQUID
color = "#664300"
strength = 25
@@ -1243,7 +1243,7 @@
glass_icon_state = "atomicbombglass"
glass_name = "glass of Atomic Bomb"
glass_desc = "Nanotrasen cannot take legal responsibility for your actions after imbibing."
glass_desc = "We cannot take legal responsibility for your actions after imbibing."
glass_center_of_mass = list("x"=15, "y"=7)
/datum/reagent/ethanol/b52
@@ -1456,7 +1456,7 @@
/datum/reagent/ethanol/grog
name = "Grog"
id = "grog"
description = "Watered down rum, NanoTrasen approves!"
description = "Watered-down rum, pirate approved!"
reagent_state = LIQUID
color = "#664300"
strength = 100
+1 -1
View File
@@ -180,7 +180,7 @@ research holder datum.
/datum/tech/syndicate
name = "Illegal Technologies Research"
desc = "The study of technologies that violate standard Nanotrasen regulations."
desc = "The study of technologies that violate standard government regulations."
id = TECH_ILLEGAL
level = 0
+1 -1
View File
@@ -124,7 +124,7 @@
return
/obj/machinery/r_n_d/server/centcom
name = "Centcom Central R&D Database"
name = "Central R&D Database"
server_id = -1
/obj/machinery/r_n_d/server/centcom/initialize()
+3 -3
View File
@@ -28,9 +28,9 @@
emergency_shuttle.departed = 1
if (emergency_shuttle.evac)
priority_announcement.Announce("The Emergency Shuttle has left the station. Estimate [round(emergency_shuttle.estimate_arrival_time()/60,1)] minutes until the shuttle docks at Central Command.")
priority_announcement.Announce("The Emergency Shuttle has left the station. Estimate [round(emergency_shuttle.estimate_arrival_time()/60,1)] minutes until the shuttle docks at [boss_name].")
else
priority_announcement.Announce("The Crew Transfer Shuttle has left the station. Estimate [round(emergency_shuttle.estimate_arrival_time()/60,1)] minutes until the shuttle docks at Central Command.")
priority_announcement.Announce("The Crew Transfer Shuttle has left the station. Estimate [round(emergency_shuttle.estimate_arrival_time()/60,1)] minutes until the shuttle docks at [boss_name].")
/datum/shuttle/ferry/emergency/can_launch(var/user)
if (istype(user, /obj/machinery/computer/shuttle_control/emergency))
@@ -185,7 +185,7 @@
else if (!shuttle.location)
shuttle_status = "Standing-by at [station_name]."
else
shuttle_status = "Standing-by at Central Command."
shuttle_status = "Standing-by at [boss_name]."
if(WAIT_LAUNCH, FORCE_LAUNCH)
shuttle_status = "Shuttle has recieved command and will depart shortly."
if(WAIT_ARRIVE)
+3 -3
View File
@@ -62,7 +62,7 @@
var/obj/machinery/computer/C = user
if(world.time <= reset_time)
C.visible_message("\blue Central Command will not allow the Special Operations shuttle to launch yet.")
C.visible_message("\blue [boss_name] will not allow the Special Operations shuttle to launch yet.")
if (((world.time - reset_time)/10) > 60)
C.visible_message("\blue [-((world.time - reset_time)/10)/60] minutes remain!")
else
@@ -93,12 +93,12 @@
if (!location) //just arrived home
for(var/turf/T in get_area_turfs(destination))
var/mob/M = locate(/mob) in T
M << "\red You have arrived at Central Command. Operation has ended!"
M << "<span class='danger'>You have arrived at [boss_name]. Operation has ended!</span>"
else //just left for the station
launch_mauraders()
for(var/turf/T in get_area_turfs(destination))
var/mob/M = locate(/mob) in T
M << "\red You have arrived at [station_name]. Commence operation!"
M << "<span class='danger'>You have arrived at [station_name]. Commence operation!</span>"
var/obj/machinery/light/small/readylight/light = locate() in T
if(light) light.set_state(1)
+2 -2
View File
@@ -59,14 +59,14 @@
if(cloaked || isnull(departure_message))
return
command_announcement.Announce(departure_message,(announcer ? announcer : "Central Command"))
command_announcement.Announce(departure_message,(announcer ? announcer : "[boss_name]"))
/datum/shuttle/multi_shuttle/proc/announce_arrival()
if(cloaked || isnull(arrival_message))
return
command_announcement.Announce(arrival_message,(announcer ? announcer : "Central Command"))
command_announcement.Announce(arrival_message,(announcer ? announcer : "[boss_name]"))
/obj/machinery/computer/shuttle_control/multi
+2 -2
View File
@@ -32,12 +32,12 @@
if(allowed_species)
for(var/species in allowed_species)
if(target.species.name == species)
if(target.species.get_bodytype() == species)
return 1
if(disallowed_species)
for(var/species in disallowed_species)
if(target.species.name == species)
if(target.species.get_bodytype() == species)
return 0
return 1
+4 -4
View File
@@ -132,7 +132,7 @@
else if(href_list["reset"])
species = list()
if(infectee)
if(!infectee.species || !(infectee.species.name in species))
if(!infectee.species || !(infectee.species.get_bodytype() in species))
infectee = null
if("ichance")
var/I = input("Input infection chance", "Infection Chance", infectionchance) as null|num
@@ -160,16 +160,16 @@
var/list/candidates = list()
for(var/mob/living/carbon/G in living_mob_list)
if(G.stat != DEAD && G.species)
if(G.species.name in species)
if(G.species.get_bodytype() in species)
candidates["[G.name][G.client ? "" : " (no client)"]"] = G
else
candidates["[G.name] ([G.species.name])[G.client ? "" : " (no client)"]"] = G
candidates["[G.name] ([G.species.get_bodytype()])[G.client ? "" : " (no client)"]"] = G
if(!candidates.len) usr << "No possible candidates found!"
var/I = input("Choose initial infectee", "Infectee", infectee) as null|anything in candidates
if(!I || !candidates[I]) return
infectee = candidates[I]
species |= infectee.species.name
species |= infectee.species.get_bodytype()
if("go")
if(!antigens.len)
var/a = alert("This disease has no antigens; it will be impossible to permanently immunise anyone without them.\
+2 -2
View File
@@ -87,9 +87,9 @@ proc/airborne_can_reach(turf/source, turf/target)
if(!disease.affected_species.len)
return
if (!(M.species.name in disease.affected_species))
if (!(M.species.get_bodytype() in disease.affected_species))
if (forced)
disease.affected_species[1] = M.species.name
disease.affected_species[1] = M.species.get_bodytype()
else
return //not compatible with this species