mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-21 11:07:12 +01:00
fixes merge conflict
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
|
||||
|
||||
/mob/living/carbon/human/virtual_reality
|
||||
var/mob/living/carbon/human/real_me //The human controlling us, can be any human (including virtual ones... inception...)
|
||||
var/datum/action/quit_vr/quit_action
|
||||
var/datum/action/back_to_lobby/back_to_lobby
|
||||
var/datum/action/detach_from_avatar/detach_from_avatar
|
||||
|
||||
/mob/living/carbon/human/virtual_reality/New()
|
||||
quit_action = new()
|
||||
quit_action.Grant(src)
|
||||
back_to_lobby = new()
|
||||
back_to_lobby.Grant(src)
|
||||
detach_from_avatar = new()
|
||||
detach_from_avatar.Grant(src)
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/virtual_reality/death()
|
||||
return_to_lobby()
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/human/virtual_reality/Destroy()
|
||||
return_to_lobby()
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/human/virtual_reality/ghost()
|
||||
set category = "OOC"
|
||||
set name = "Ghost"
|
||||
set desc = "Relinquish your life and enter the land of the dead."
|
||||
var/mob/living/carbon/human/H = real_me
|
||||
revert_to_reality(FALSE)
|
||||
if(H)
|
||||
H.ghost()
|
||||
qdel(src)
|
||||
|
||||
/mob/living/carbon/human/virtual_reality/proc/revert_to_reality(remove = 0)
|
||||
if(real_me && mind)
|
||||
mind.transfer_to(real_me)
|
||||
real_me.EyeBlind(2)
|
||||
real_me.Confused(2)
|
||||
if(remove)
|
||||
qdel(src)
|
||||
else
|
||||
return src
|
||||
|
||||
/mob/living/carbon/human/virtual_reality/proc/return_to_lobby()
|
||||
if(real_me && mind)
|
||||
var/mob/living/carbon/human/virtual_reality/new_vr
|
||||
new_vr = spawn_vr_avatar(src, "Lobby")
|
||||
var/obj/item/clothing/glasses/vr_goggles/g = new_vr.real_me.glasses
|
||||
g.vr_human = new_vr
|
||||
qdel(src)
|
||||
|
||||
/datum/action/quit_vr
|
||||
name = "Quit Virtual Reality"
|
||||
|
||||
/datum/action/quit_vr/Trigger()
|
||||
if(..())
|
||||
if(istype(owner, /mob/living/carbon/human/virtual_reality))
|
||||
var/mob/living/carbon/human/virtual_reality/vr = owner
|
||||
vr.revert_to_reality(1)
|
||||
else
|
||||
Remove(owner)
|
||||
|
||||
/datum/action/back_to_lobby
|
||||
name = "Return To Lobby"
|
||||
|
||||
/datum/action/back_to_lobby/Trigger()
|
||||
if(..())
|
||||
if(istype(owner, /mob/living/carbon/human/virtual_reality))
|
||||
var/mob/living/carbon/human/virtual_reality/vr = owner
|
||||
vr.return_to_lobby()
|
||||
else
|
||||
Remove(owner)
|
||||
|
||||
/datum/action/detach_from_avatar
|
||||
name = "Detach From Avatar"
|
||||
|
||||
/datum/action/detach_from_avatar/Trigger()
|
||||
if(..())
|
||||
if(istype(owner, /mob/living/carbon/human/virtual_reality))
|
||||
var/mob/living/carbon/human/virtual_reality/vr = owner
|
||||
var/obj/item/clothing/glasses/vr_goggles/g = vr.real_me.glasses
|
||||
g.vr_human = vr
|
||||
vr.revert_to_reality(0)
|
||||
else
|
||||
Remove(owner)
|
||||
@@ -0,0 +1,41 @@
|
||||
//Glorified teleporter that puts you in a new human body.
|
||||
// it's """VR"""
|
||||
|
||||
/obj/item/clothing/glasses/vr_goggles
|
||||
desc = "A long time ago, people used these glasses to makes images from screens threedimensional."
|
||||
name = "3D glasses"
|
||||
icon_state = "3d"
|
||||
item_state = "3d"
|
||||
prescription_upgradable = 0
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/eyes.dmi'
|
||||
)
|
||||
|
||||
var/you_die_in_the_game_you_die_for_real = FALSE
|
||||
var/mob/living/carbon/human/virtual_reality/vr_human
|
||||
|
||||
|
||||
/obj/item/clothing/glasses/vr_goggles/Destroy()
|
||||
..()
|
||||
vr_human.revert_to_reality(1)
|
||||
cleanup_vr_avatar()
|
||||
|
||||
/obj/item/clothing/glasses/vr_goggles/dropped()
|
||||
..()
|
||||
if(vr_human)
|
||||
vr_human.revert_to_reality(0)
|
||||
|
||||
/obj/item/clothing/glasses/vr_goggles/proc/cleanup_vr_avatar()
|
||||
if(vr_human)
|
||||
vr_human = null
|
||||
|
||||
/obj/item/clothing/glasses/vr_goggles/equipped()
|
||||
..()
|
||||
var/mob/living/carbon/human/H = loc
|
||||
spawn(1)
|
||||
if(H.glasses == src)
|
||||
if(vr_human == null)
|
||||
vr_human = spawn_vr_avatar(H, "Lobby")
|
||||
else
|
||||
control_remote(H, vr_human)
|
||||
@@ -127,7 +127,7 @@ datum/admins/proc/DB_ban_record(var/bantype, var/mob/banned_mob, var/duration =
|
||||
var/sql = "INSERT INTO [format_table_name("ban")] (`id`,`bantime`,`serverip`,`bantype`,`reason`,`job`,`duration`,`rounds`,`expiration_time`,`ckey`,`computerid`,`ip`,`a_ckey`,`a_computerid`,`a_ip`,`who`,`adminwho`,`edits`,`unbanned`,`unbanned_datetime`,`unbanned_ckey`,`unbanned_computerid`,`unbanned_ip`) VALUES (null, Now(), '[serverip]', '[bantype_str]', '[reason]', '[job]', [(duration)?"[duration]":"0"], [(rounds)?"[rounds]":"0"], Now() + INTERVAL [(duration>0) ? duration : 0] MINUTE, '[ckey]', '[computerid]', '[ip]', '[a_ckey]', '[a_computerid]', '[a_ip]', '[who]', '[adminwho]', '', null, null, null, null, null)"
|
||||
var/DBQuery/query_insert = dbcon.NewQuery(sql)
|
||||
query_insert.Execute()
|
||||
to_chat(usr, "\blue Ban saved to database.")
|
||||
to_chat(usr, "<span class='notice'>Ban saved to database.</span>")
|
||||
message_admins("[key_name_admin(usr)] has added a [bantype_str] for [ckey] [(job)?"([job])":""] [(duration > 0)?"([duration] minutes)":""] with the reason: \"[reason]\" to the ban database.",1)
|
||||
|
||||
if(announceinirc)
|
||||
@@ -201,17 +201,17 @@ datum/admins/proc/DB_ban_unban(var/ckey, var/bantype, var/job = "")
|
||||
ban_number++;
|
||||
|
||||
if(ban_number == 0)
|
||||
to_chat(usr, "\red Database update failed due to no bans fitting the search criteria. If this is not a legacy ban you should contact the database admin.")
|
||||
to_chat(usr, "<span class='warning'>Database update failed due to no bans fitting the search criteria. If this is not a legacy ban you should contact the database admin.</span>")
|
||||
return
|
||||
|
||||
if(ban_number > 1)
|
||||
to_chat(usr, "\red Database update failed due to multiple bans fitting the search criteria. Note down the ckey, job and current time and contact the database admin.")
|
||||
to_chat(usr, "<span class='warning'>Database update failed due to multiple bans fitting the search criteria. Note down the ckey, job and current time and contact the database admin.</span>")
|
||||
return
|
||||
|
||||
if(istext(ban_id))
|
||||
ban_id = text2num(ban_id)
|
||||
if(!isnum(ban_id))
|
||||
to_chat(usr, "\red Database update failed due to a ban ID mismatch. Contact the database admin.")
|
||||
to_chat(usr, "<span class='warning'>Database update failed due to a ban ID mismatch. Contact the database admin.</span>")
|
||||
return
|
||||
|
||||
DB_ban_unban_by_id(ban_id)
|
||||
@@ -302,11 +302,11 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
|
||||
ban_number++;
|
||||
|
||||
if(ban_number == 0)
|
||||
to_chat(usr, "\red Database update failed due to a ban id not being present in the database.")
|
||||
to_chat(usr, "<span class='warning'>Database update failed due to a ban id not being present in the database.</span>")
|
||||
return
|
||||
|
||||
if(ban_number > 1)
|
||||
to_chat(usr, "\red Database update failed due to multiple bans having the same ID. Contact the database admin.")
|
||||
to_chat(usr, "<span class='warning'>Database update failed due to multiple bans having the same ID. Contact the database admin.</span>")
|
||||
return
|
||||
|
||||
if(!src.owner || !istype(src.owner, /client))
|
||||
@@ -343,7 +343,7 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
|
||||
|
||||
establish_db_connection()
|
||||
if(!dbcon.IsConnected())
|
||||
to_chat(usr, "\red Failed to establish database connection")
|
||||
to_chat(usr, "<span class='warning'>Failed to establish database connection</span>")
|
||||
return
|
||||
|
||||
var/output = "<div align='center'><table width='90%'><tr>"
|
||||
|
||||
@@ -15,7 +15,7 @@ world/IsBanned(key,address,computer_id)
|
||||
//Guest Checking
|
||||
if(!guests_allowed && IsGuestKey(key))
|
||||
log_access("Failed Login: [key] [computer_id] [address] - Guests not allowed")
|
||||
// message_admins("\blue Failed Login: [key] - Guests not allowed")
|
||||
// message_admins("<span class='notice'>Failed Login: [key] - Guests not allowed</span>")
|
||||
return list("reason"="guest", "desc"="\nReason: Guests not allowed. Please sign in with a BYOND account.")
|
||||
|
||||
//check if the IP address is a known Tor node
|
||||
|
||||
@@ -172,7 +172,6 @@ var/savefile/Banlist
|
||||
/datum/admins/proc/unbanpanel()
|
||||
var/count = 0
|
||||
var/dat
|
||||
//var/dat = "<HR><B>Unban Player:</B> \blue(U) = Unban , (E) = Edit Ban\green (Total<HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 >"
|
||||
Banlist.cd = "/base"
|
||||
for(var/A in Banlist.dir)
|
||||
count++
|
||||
|
||||
@@ -844,8 +844,8 @@ var/global/nologevent = 0
|
||||
to_chat(world, "<B>Guests may no longer enter the game.</B>")
|
||||
else
|
||||
to_chat(world, "<B>Guests may now enter the game.</B>")
|
||||
log_admin("[key_name(usr)] toggled guests game entering [guests_allowed?"":"dis"]allowed.")
|
||||
message_admins("\blue [key_name_admin(usr)] toggled guests game entering [guests_allowed?"":"dis"]allowed.", 1)
|
||||
log_admin("[key_name(usr)] toggled guests game entering [guests_allowed ? "" : "dis"]allowed.")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] toggled guests game entering [guests_allowed ? "" : "dis"]allowed.</span>", 1)
|
||||
feedback_add_details("admin_verb","TGU") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/datum/admins/proc/output_ai_laws()
|
||||
|
||||
@@ -633,7 +633,7 @@ var/list/admin_verbs_snpc = list(
|
||||
for(var/mob/V in hearers(O))
|
||||
V.show_message(message, 2)
|
||||
log_admin("[key_name(usr)] made [O] at [O.x], [O.y], [O.z] make a sound")
|
||||
message_admins("\blue [key_name_admin(usr)] made [O] at [O.x], [O.y], [O.z] make a sound")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] made [O] at [O.x], [O.y], [O.z] make a sound</span>")
|
||||
feedback_add_details("admin_verb","MS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/togglebuildmodeself()
|
||||
@@ -681,7 +681,7 @@ var/list/admin_verbs_snpc = list(
|
||||
to_chat(usr, "<b>Disabled air processing.</b>")
|
||||
feedback_add_details("admin_verb","KA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
log_admin("[key_name(usr)] used 'kill air'.")
|
||||
message_admins("\blue [key_name_admin(usr)] used 'kill air'.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] used 'kill air'.</span>", 1)
|
||||
|
||||
/client/proc/deadmin_self()
|
||||
set name = "De-admin self"
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
establish_db_connection()
|
||||
|
||||
if(!dbcon.IsConnected())
|
||||
to_chat(usr, "\red Failed to establish database connection")
|
||||
to_chat(usr, "<span class='warning'>Failed to establish database connection</span>")
|
||||
return
|
||||
|
||||
if(!adm_ckey || !new_rank)
|
||||
@@ -91,14 +91,14 @@
|
||||
insert_query.Execute()
|
||||
var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `test`.[format_table_name("admin_log")] (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Added new admin [adm_ckey] to rank [new_rank]');")
|
||||
log_query.Execute()
|
||||
to_chat(usr, "\blue New admin added.")
|
||||
to_chat(usr, "<span class='notice'>New admin added.</span>")
|
||||
else
|
||||
if(!isnull(admin_id) && isnum(admin_id))
|
||||
var/DBQuery/insert_query = dbcon.NewQuery("UPDATE [format_table_name("admin")] SET rank = '[new_rank]' WHERE id = [admin_id]")
|
||||
insert_query.Execute()
|
||||
var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `test`.[format_table_name("admin_log")] (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Edited the rank of [adm_ckey] to [new_rank]');")
|
||||
log_query.Execute()
|
||||
to_chat(usr, "\blue Admin rank changed.")
|
||||
to_chat(usr, "<span class='notice'>Admin rank changed.</span>")
|
||||
|
||||
/datum/admins/proc/log_admin_permission_modification(var/adm_ckey, var/new_permission)
|
||||
if(config.admin_legacy_system)
|
||||
@@ -112,7 +112,7 @@
|
||||
|
||||
establish_db_connection()
|
||||
if(!dbcon.IsConnected())
|
||||
to_chat(usr, "\red Failed to establish database connection")
|
||||
to_chat(usr, "<span class='warning'>Failed to establish database connection</span>")
|
||||
return
|
||||
|
||||
if(!adm_ckey || !new_permission)
|
||||
@@ -146,13 +146,13 @@
|
||||
insert_query.Execute()
|
||||
var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `test`.[format_table_name("admin_log")] (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Removed permission [rights2text(new_permission)] (flag = [new_permission]) to admin [adm_ckey]');")
|
||||
log_query.Execute()
|
||||
to_chat(usr, "\blue Permission removed.")
|
||||
to_chat(usr, "<span class='notice'>Permission removed.</span>")
|
||||
else //This admin doesn't have this permission, so we are adding it.
|
||||
var/DBQuery/insert_query = dbcon.NewQuery("UPDATE [format_table_name("admin")] SET flags = '[admin_rights | new_permission]' WHERE id = [admin_id]")
|
||||
insert_query.Execute()
|
||||
var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `test`.[format_table_name("admin_log")] (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Added permission [rights2text(new_permission)] (flag = [new_permission]) to admin [adm_ckey]')")
|
||||
log_query.Execute()
|
||||
to_chat(usr, "\blue Permission added.")
|
||||
to_chat(usr, "<span class='notice'>Permission added.</span>")
|
||||
|
||||
/datum/admins/proc/updateranktodb(ckey,newrank)
|
||||
establish_db_connection()
|
||||
|
||||
+78
-78
@@ -34,35 +34,35 @@
|
||||
if("1")
|
||||
log_admin("[key_name(usr)] has spawned a traitor.")
|
||||
if(!src.makeTraitors())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
to_chat(usr, "<span class='warning'>Unfortunately there weren't enough candidates available.</span>")
|
||||
if("2")
|
||||
log_admin("[key_name(usr)] has spawned a changeling.")
|
||||
if(!src.makeChanglings())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
to_chat(usr, "<span class='warning'>Unfortunately there weren't enough candidates available.</span>")
|
||||
if("3")
|
||||
log_admin("[key_name(usr)] has spawned revolutionaries.")
|
||||
if(!src.makeRevs())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
to_chat(usr, "<span class='warning'>Unfortunately there weren't enough candidates available.</span>")
|
||||
if("4")
|
||||
log_admin("[key_name(usr)] has spawned a cultists.")
|
||||
if(!src.makeCult())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
to_chat(usr, "<span class='warning'>Unfortunately there weren't enough candidates available.</span>")
|
||||
if("5")
|
||||
log_admin("[key_name(usr)] has spawned a wizard.")
|
||||
if(!src.makeWizard())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
to_chat(usr, "<span class='warning'>Unfortunately there weren't enough candidates available.</span>")
|
||||
if("6")
|
||||
log_admin("[key_name(usr)] has spawned vampires.")
|
||||
if(!src.makeVampires())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
to_chat(usr, "<span class='warning'>Unfortunately there weren't enough candidates available.</span>")
|
||||
if("7")
|
||||
log_admin("[key_name(usr)] has spawned vox raiders.")
|
||||
if(!src.makeVoxRaiders())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
to_chat(usr, "<span class='warning'>Unfortunately there weren't enough candidates available.</span>")
|
||||
if("8")
|
||||
log_admin("[key_name(usr)] has spawned an abductor team.")
|
||||
if(!src.makeAbductorTeam())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
to_chat(usr, "<span class='warning'>Unfortunately there weren't enough candidates available.</span>")
|
||||
|
||||
else if(href_list["dbsearchckey"] || href_list["dbsearchadmin"] || href_list["dbsearchip"] || href_list["dbsearchcid"] || href_list["dbsearchbantype"])
|
||||
var/adminckey = href_list["dbsearchadmin"]
|
||||
@@ -298,7 +298,7 @@
|
||||
|
||||
ticker.delay_end = !ticker.delay_end
|
||||
log_admin("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].")
|
||||
message_admins("\blue [key_name_admin(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].</span>", 1)
|
||||
href_list["secretsadmin"] = "check_antagonist"
|
||||
|
||||
else if(href_list["simplemake"])
|
||||
@@ -315,7 +315,7 @@
|
||||
if("Yes") delmob = 1
|
||||
|
||||
log_admin("[key_name(usr)] has used rudimentary transformation on [key_name(M)]. Transforming to [href_list["simplemake"]]; deletemob=[delmob]")
|
||||
message_admins("\blue [key_name_admin(usr)] has used rudimentary transformation on [key_name_admin(M)]. Transforming to [href_list["simplemake"]]; deletemob=[delmob]", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] has used rudimentary transformation on [key_name_admin(M)]. Transforming to [href_list["simplemake"]]; deletemob=[delmob]</span>", 1)
|
||||
|
||||
switch(href_list["simplemake"])
|
||||
if("observer") M.change_mob_type( /mob/dead/observer , null, null, delmob, 1 )
|
||||
@@ -398,7 +398,7 @@
|
||||
|
||||
log_admin("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]")
|
||||
ban_unban_log_save("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]")
|
||||
message_admins("\blue [key_name_admin(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]</span>", 1)
|
||||
Banlist.cd = "/base/[banfolder]"
|
||||
to_chat(Banlist["reason"], reason)
|
||||
to_chat(Banlist["temp"], temp)
|
||||
@@ -434,8 +434,8 @@
|
||||
feedback_inc("ban_appearance_unban", 1)
|
||||
DB_ban_unban(M.ckey, BANTYPE_APPEARANCE)
|
||||
appearance_unban(M)
|
||||
message_admins("\blue [key_name_admin(usr)] removed [key_name_admin(M)]'s appearance ban", 1)
|
||||
to_chat(M, "\red<BIG><B>[usr.client.ckey] has removed your appearance ban.</B></BIG>")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] removed [key_name_admin(M)]'s appearance ban</span>", 1)
|
||||
to_chat(M, "<span class='warning'><BIG><B>[usr.client.ckey] has removed your appearance ban.</B></BIG></span>")
|
||||
|
||||
else switch(alert("Appearance ban [M.ckey]?",,"Yes","No", "Cancel"))
|
||||
if("Yes")
|
||||
@@ -448,14 +448,14 @@
|
||||
DB_ban_record(BANTYPE_APPEARANCE, M, -1, reason)
|
||||
appearance_fullban(M, "[reason]; By [usr.ckey] on [time2text(world.realtime)]")
|
||||
add_note(M.ckey, "Appearance banned - [reason]", null, usr.ckey, 0)
|
||||
message_admins("\blue [key_name_admin(usr)] appearance banned [key_name_admin(M)]", 1)
|
||||
to_chat(M, "\red<BIG><B>You have been appearance banned by [usr.client.ckey].</B></BIG>")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] appearance banned [key_name_admin(M)]</span>", 1)
|
||||
to_chat(M, "<span class='warning'><BIG><B>You have been appearance banned by [usr.client.ckey].</B></BIG></span>")
|
||||
to_chat(M, "<span class='danger'>The reason is: [reason]</span>")
|
||||
to_chat(M, "\red Appearance ban can be lifted only upon request.")
|
||||
to_chat(M, "<span class='warning'>Appearance ban can be lifted only upon request.</span>")
|
||||
if(config.banappeals)
|
||||
to_chat(M, "\red To try to resolve this matter head to [config.banappeals]")
|
||||
to_chat(M, "<span class='warning'>To try to resolve this matter head to [config.banappeals]</span>")
|
||||
else
|
||||
to_chat(M, "\red No ban appeals URL has been set.")
|
||||
to_chat(M, "<span class='warning'>No ban appeals URL has been set.</span>")
|
||||
if("No")
|
||||
return
|
||||
|
||||
@@ -790,7 +790,7 @@
|
||||
switch(alert("Temporary Ban?",,"Yes","No", "Cancel"))
|
||||
if("Yes")
|
||||
if(config.ban_legacy_system)
|
||||
to_chat(usr, "\red Your server is using the legacy banning system, which does not support temporary job bans. Consider upgrading. Aborting ban.")
|
||||
to_chat(usr, "<span class='warning'>Your server is using the legacy banning system, which does not support temporary job bans. Consider upgrading. Aborting ban.</span>")
|
||||
return
|
||||
var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null
|
||||
if(!mins)
|
||||
@@ -812,10 +812,10 @@
|
||||
else
|
||||
msg += ", [job]"
|
||||
add_note(M.ckey, "Banned from [msg] - [reason]", null, usr.ckey, 0)
|
||||
message_admins("\blue [key_name_admin(usr)] banned [key_name_admin(M)] from [msg] for [mins] minutes", 1)
|
||||
to_chat(M, "\red<BIG><B>You have been jobbanned by [usr.client.ckey] from: [msg].</B></BIG>")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] banned [key_name_admin(M)] from [msg] for [mins] minutes</span>", 1)
|
||||
to_chat(M, "<span class='warning'><BIG><B>You have been jobbanned by [usr.client.ckey] from: [msg].</B></BIG></span>")
|
||||
to_chat(M, "<span class='danger'>The reason is: [reason]</span>")
|
||||
to_chat(M, "\red This jobban will be lifted in [mins] minutes.")
|
||||
to_chat(M, "<span class='warning'>This jobban will be lifted in [mins] minutes.</span>")
|
||||
href_list["jobban2"] = 1 // lets it fall through and refresh
|
||||
return 1
|
||||
if("No")
|
||||
@@ -832,10 +832,10 @@
|
||||
if(!msg) msg = job
|
||||
else msg += ", [job]"
|
||||
add_note(M.ckey, "Banned from [msg] - [reason]", null, usr.ckey, 0)
|
||||
message_admins("\blue [key_name_admin(usr)] banned [key_name_admin(M)] from [msg]", 1)
|
||||
to_chat(M, "\red<BIG><B>You have been jobbanned by [usr.client.ckey] from: [msg].</B></BIG>")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] banned [key_name_admin(M)] from [msg]</span>", 1)
|
||||
to_chat(M, "<span class='warning'><BIG><B>You have been jobbanned by [usr.client.ckey] from: [msg].</B></BIG></span>")
|
||||
to_chat(M, "<span class='danger'>The reason is: [reason]</span>")
|
||||
to_chat(M, "\red Jobban can be lifted only upon request.")
|
||||
to_chat(M, "<span class='warning'>Jobban can be lifted only upon request.</span>")
|
||||
href_list["jobban2"] = 1 // lets it fall through and refresh
|
||||
return 1
|
||||
if("Cancel")
|
||||
@@ -865,8 +865,8 @@
|
||||
else
|
||||
continue
|
||||
if(msg)
|
||||
message_admins("\blue [key_name_admin(usr)] unbanned [key_name_admin(M)] from [msg]", 1)
|
||||
to_chat(M, "\red<BIG><B>You have been un-jobbanned by [usr.client.ckey] from [msg].</B></BIG>")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] unbanned [key_name_admin(M)] from [msg]</span>", 1)
|
||||
to_chat(M, "<span class='warning'><BIG><B>You have been un-jobbanned by [usr.client.ckey] from [msg].</B></BIG></span>")
|
||||
href_list["jobban2"] = 1 // lets it fall through and refresh
|
||||
return 1
|
||||
return 0 //we didn't do anything!
|
||||
@@ -876,9 +876,9 @@
|
||||
if(ismob(M))
|
||||
if(!check_if_greater_rights_than(M.client))
|
||||
return
|
||||
to_chat(M, "\red You have been kicked from the server")
|
||||
to_chat(M, "<span class='warning'>You have been kicked from the server</span>")
|
||||
log_admin("[key_name(usr)] booted [key_name(M)].")
|
||||
message_admins("\blue [key_name_admin(usr)] booted [key_name_admin(M)].", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] booted [key_name_admin(M)].</span>", 1)
|
||||
//M.client = null
|
||||
del(M.client)
|
||||
|
||||
@@ -933,7 +933,7 @@
|
||||
if(t)
|
||||
if((alert("Do you want to unjobban [t]?","Unjobban confirmation", "Yes", "No") == "Yes") && t) //No more misclicks! Unless you do it twice.
|
||||
log_admin("[key_name(usr)] removed [t]")
|
||||
message_admins("\blue [key_name_admin(usr)] removed [t]", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] removed [t]</span>", 1)
|
||||
jobban_remove(t)
|
||||
href_list["ban"] = 1 // lets it fall through and refresh
|
||||
var/t_split = splittext(t, " - ")
|
||||
@@ -960,17 +960,17 @@
|
||||
return
|
||||
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 1, mins)
|
||||
ban_unban_log_save("[usr.client.ckey] has banned [M.ckey]. - Reason: [reason] - This will be removed in [mins] minutes.")
|
||||
to_chat(M, "\red<BIG><B>You have been banned by [usr.client.ckey].\nReason: [reason].</B></BIG>")
|
||||
to_chat(M, "\red This is a temporary ban, it will be removed in [mins] minutes.")
|
||||
to_chat(M, "<span class='warning'><BIG><B>You have been banned by [usr.client.ckey].\nReason: [reason].</B></BIG></span>")
|
||||
to_chat(M, "<span class='warning'>This is a temporary ban, it will be removed in [mins] minutes.</span>")
|
||||
feedback_inc("ban_tmp",1)
|
||||
DB_ban_record(BANTYPE_TEMP, M, mins, reason)
|
||||
feedback_inc("ban_tmp_mins",mins)
|
||||
if(config.banappeals)
|
||||
to_chat(M, "\red To try to resolve this matter head to [config.banappeals]")
|
||||
to_chat(M, "<span class='warning'>To try to resolve this matter head to [config.banappeals]</span>")
|
||||
else
|
||||
to_chat(M, "\red No ban appeals URL has been set.")
|
||||
to_chat(M, "<span class='warning'>No ban appeals URL has been set.</span>")
|
||||
log_admin("[key_name(usr)] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
|
||||
message_admins("\blue [key_name_admin(usr)] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.</span>")
|
||||
|
||||
del(M.client)
|
||||
//qdel(M) // See no reason why to delete mob. Important stuff can be lost. And ban can be lifted before round ends.
|
||||
@@ -984,15 +984,15 @@
|
||||
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0, M.lastKnownIP)
|
||||
if("No")
|
||||
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0)
|
||||
to_chat(M, "\red<BIG><B>You have been banned by [usr.client.ckey].\nReason: [reason].</B></BIG>")
|
||||
to_chat(M, "\red This is a permanent ban.")
|
||||
to_chat(M, "<span class='warning'><BIG><B>You have been banned by [usr.client.ckey].\nReason: [reason].</B></BIG></span>")
|
||||
to_chat(M, "<span class='warning'>This is a permanent ban.</span>")
|
||||
if(config.banappeals)
|
||||
to_chat(M, "\red To try to resolve this matter head to [config.banappeals]")
|
||||
to_chat(M, "<span class='warning'>To try to resolve this matter head to [config.banappeals]</span>")
|
||||
else
|
||||
to_chat(M, "\red No ban appeals URL has been set.")
|
||||
to_chat(M, "<span class='warning'>No ban appeals URL has been set.</span>")
|
||||
ban_unban_log_save("[usr.client.ckey] has permabanned [M.ckey]. - Reason: [reason] - This is a permanent ban.")
|
||||
log_admin("[key_name(usr)] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
|
||||
message_admins("\blue[key_name_admin(usr)] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.</span>")
|
||||
feedback_inc("ban_perma",1)
|
||||
DB_ban_record(BANTYPE_PERMA, M, -1, reason)
|
||||
|
||||
@@ -1094,7 +1094,7 @@
|
||||
return alert(usr, "The game has already started.", null, null, null, null)
|
||||
master_mode = href_list["c_mode2"]
|
||||
log_admin("[key_name(usr)] set the mode as [master_mode].")
|
||||
message_admins("\blue [key_name_admin(usr)] set the mode as [master_mode].", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] set the mode as [master_mode].</span>", 1)
|
||||
to_chat(world, "<span class='boldnotice'>The mode is now: [master_mode]</span>")
|
||||
Game() // updates the main game menu
|
||||
world.save_mode(master_mode)
|
||||
@@ -1109,7 +1109,7 @@
|
||||
return alert(usr, "The game mode has to be secret!", null, null, null, null)
|
||||
secret_force_mode = href_list["f_secret2"]
|
||||
log_admin("[key_name(usr)] set the forced secret mode as [secret_force_mode].")
|
||||
message_admins("\blue [key_name_admin(usr)] set the forced secret mode as [secret_force_mode].", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] set the forced secret mode as [secret_force_mode].</span>", 1)
|
||||
Game() // updates the main game menu
|
||||
.(href, list("f_secret"=1))
|
||||
|
||||
@@ -1124,7 +1124,7 @@
|
||||
return
|
||||
|
||||
log_admin("[key_name(usr)] attempting to monkeyize [key_name(H)]")
|
||||
message_admins("\blue [key_name_admin(usr)] attempting to monkeyize [key_name_admin(H)]", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] attempting to monkeyize [key_name_admin(H)]</span>", 1)
|
||||
H.monkeyize()
|
||||
|
||||
|
||||
@@ -1140,7 +1140,7 @@
|
||||
return
|
||||
|
||||
log_admin("[key_name(usr)] attempting to corgize [key_name(H)]")
|
||||
message_admins("\blue [key_name_admin(usr)] attempting to corgize [key_name_admin(H)]", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] attempting to corgize [key_name_admin(H)]</span>", 1)
|
||||
H.corgize()
|
||||
|
||||
else if(href_list["makePAI"])
|
||||
@@ -1164,7 +1164,7 @@
|
||||
name = painame
|
||||
|
||||
log_admin("[key_name(usr)] attempting to pAIze [key_name(H)]")
|
||||
message_admins("\blue [key_name_admin(usr)] attempting to pAIze [key_name_admin(H)]", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] attempting to pAIze [key_name_admin(H)]</span>", 1)
|
||||
H.paize(name)
|
||||
|
||||
else if(href_list["forcespeech"])
|
||||
@@ -1179,7 +1179,7 @@
|
||||
M.say(speech)
|
||||
speech = sanitize(speech) // Nah, we don't trust them
|
||||
log_admin("[key_name(usr)] forced [key_name(M)] to say: [speech]")
|
||||
message_admins("\blue [key_name_admin(usr)] forced [key_name_admin(M)] to say: [speech]")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] forced [key_name_admin(M)] to say: [speech]</span>")
|
||||
|
||||
else if(href_list["sendtoprison"])
|
||||
if(!check_rights(R_ADMIN)) return
|
||||
@@ -1223,9 +1223,9 @@
|
||||
prisoner.equip_to_slot_or_del(new /obj/item/clothing/under/color/orange(prisoner), slot_w_uniform)
|
||||
prisoner.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(prisoner), slot_shoes)
|
||||
|
||||
to_chat(M, "\red You have been sent to the prison station!")
|
||||
to_chat(M, "<span class='warning'>You have been sent to the prison station!</span>")
|
||||
log_admin("[key_name(usr)] sent [key_name(M)] to the prison station.")
|
||||
message_admins("\blue [key_name_admin(usr)] sent [key_name_admin(M)] to the prison station.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] sent [key_name_admin(M)] to the prison station.</span>", 1)
|
||||
|
||||
else if(href_list["sendbacktolobby"])
|
||||
if(!check_rights(R_ADMIN))
|
||||
@@ -1278,7 +1278,7 @@
|
||||
sleep(5)
|
||||
M.loc = pick(tdome1)
|
||||
spawn(50)
|
||||
to_chat(M, "\blue You have been sent to the Thunderdome.")
|
||||
to_chat(M, "<span class='notice'>You have been sent to the Thunderdome.</span>")
|
||||
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Team 1)")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Team 1)", 1)
|
||||
|
||||
@@ -1308,7 +1308,7 @@
|
||||
sleep(5)
|
||||
M.loc = pick(tdome2)
|
||||
spawn(50)
|
||||
to_chat(M, "\blue You have been sent to the Thunderdome.")
|
||||
to_chat(M, "<span class='notice'>You have been sent to the Thunderdome.</span>")
|
||||
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Team 2)")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Team 2)", 1)
|
||||
|
||||
@@ -1330,7 +1330,7 @@
|
||||
sleep(5)
|
||||
M.loc = pick(tdomeadmin)
|
||||
spawn(50)
|
||||
to_chat(M, "\blue You have been sent to the Thunderdome.")
|
||||
to_chat(M, "<span class='notice'>You have been sent to the Thunderdome.</span>")
|
||||
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Admin.)")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Admin.)", 1)
|
||||
|
||||
@@ -1364,7 +1364,7 @@
|
||||
sleep(5)
|
||||
M.loc = pick(tdomeobserve)
|
||||
spawn(50)
|
||||
to_chat(M, "\blue You have been sent to the Thunderdome.")
|
||||
to_chat(M, "<span class='notice'>You have been sent to the Thunderdome.</span>")
|
||||
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Observer.)")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Observer.)", 1)
|
||||
|
||||
@@ -1386,7 +1386,7 @@
|
||||
sleep(5)
|
||||
M.loc = pick(aroomwarp)
|
||||
spawn(50)
|
||||
to_chat(M, "\blue You have been sent to the <b>Admin Room!</b>.")
|
||||
to_chat(M, "<span class='notice'>You have been sent to the <b>Admin Room!</b>.</span>")
|
||||
log_admin("[key_name(usr)] has sent [key_name(M)] to the Admin Room")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the Admin Room", 1)
|
||||
|
||||
@@ -1400,7 +1400,7 @@
|
||||
return
|
||||
|
||||
L.revive()
|
||||
message_admins("\red Admin [key_name_admin(usr)] healed / revived [key_name_admin(L)]!", 1)
|
||||
message_admins("<span class='warning'>Admin [key_name_admin(usr)] healed / revived [key_name_admin(L)]!</span>", 1)
|
||||
log_admin("[key_name(usr)] healed / revived [key_name(L)]")
|
||||
|
||||
else if(href_list["makeai"])
|
||||
@@ -1414,7 +1414,7 @@
|
||||
if(alert(usr, "Confirm make ai?",, "Yes", "No") != "Yes")
|
||||
return
|
||||
|
||||
message_admins("\red Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!", 1)
|
||||
message_admins("<span class='warning'>Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!</span>", 1)
|
||||
log_admin("[key_name(usr)] AIized [key_name(H)]")
|
||||
var/mob/living/silicon/ai/ai_character = H.AIize()
|
||||
ai_character.moveToAILandmark()
|
||||
@@ -1619,7 +1619,7 @@
|
||||
log_admin("[key_name(H)] got their cookie, spawned by [key_name(src.owner)]")
|
||||
message_admins("[key_name_admin(H)] got their cookie, spawned by [key_name_admin(src.owner)]")
|
||||
feedback_inc("admin_cookies_spawned",1)
|
||||
to_chat(H, "\blue Your prayers have been answered!! You received the <b>best cookie</b>!")
|
||||
to_chat(H, "<span class='notice'>Your prayers have been answered!! You received the <b>best cookie</b>!</span>")
|
||||
|
||||
else if(href_list["BlueSpaceArtillery"])
|
||||
if(!check_rights(R_ADMIN|R_EVENT)) return
|
||||
@@ -1986,7 +1986,7 @@
|
||||
|
||||
usr << browse(data, "window=[B.name]")
|
||||
else
|
||||
to_chat(usr, "\red The faxed item is not viewable. This is probably a bug, and should be reported on the tracker: [fax.type]")
|
||||
to_chat(usr, "<span class='warning'>The faxed item is not viewable. This is probably a bug, and should be reported on the tracker: [fax.type]</span>")
|
||||
|
||||
else if(href_list["AdminFaxViewPage"])
|
||||
if(!check_rights(R_ADMIN))
|
||||
@@ -2118,14 +2118,14 @@
|
||||
|
||||
if(destination != "All Departments")
|
||||
if(!fax.receivefax(P))
|
||||
to_chat(src.owner, "\red Message transmission failed.")
|
||||
to_chat(src.owner, "<span class='warning'>Message transmission failed.</span>")
|
||||
return
|
||||
else
|
||||
for(var/obj/machinery/photocopier/faxmachine/F in allfaxes)
|
||||
if(is_station_level(F.z))
|
||||
spawn(0)
|
||||
if(!F.receivefax(P))
|
||||
to_chat(src.owner, "\red Message transmission to [F.department] failed.")
|
||||
to_chat(src.owner, "<span class='warning'>Message transmission to [F.department] failed.</span>")
|
||||
|
||||
var/datum/fax/admin/A = new /datum/fax/admin()
|
||||
A.name = P.name
|
||||
@@ -2140,7 +2140,7 @@
|
||||
A.sent_by = usr
|
||||
A.sent_at = world.time
|
||||
|
||||
to_chat(src.owner, "\blue Message transmitted successfully.")
|
||||
to_chat(src.owner, "<span class='notice'>Message transmitted successfully.</span>")
|
||||
if(notify == "Yes")
|
||||
var/mob/living/carbon/human/H = sender
|
||||
if(istype(H) && H.stat == CONSCIOUS && (istype(H.l_ear, /obj/item/device/radio/headset) || istype(H.r_ear, /obj/item/device/radio/headset)))
|
||||
@@ -2440,30 +2440,30 @@
|
||||
feedback_add_details("admin_secrets_fun_used","Grav")
|
||||
if(gravity_is_on)
|
||||
log_admin("[key_name(usr)] toggled gravity on.", 1)
|
||||
message_admins("\blue [key_name_admin(usr)] toggled gravity on.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] toggled gravity on.</span>", 1)
|
||||
event_announcement.Announce("Gravity generators are again functioning within normal parameters. Sorry for any inconvenience.")
|
||||
else
|
||||
log_admin("[key_name(usr)] toggled gravity off.", 1)
|
||||
message_admins("\blue [key_name_admin(usr)] toggled gravity off.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] toggled gravity off.</span>", 1)
|
||||
event_announcement.Announce("Feedback surge detected in mass-distributions systems. Artifical gravity has been disabled whilst the system reinitializes. Further failures may result in a gravitational collapse and formation of blackholes. Have a nice day.")
|
||||
|
||||
if("power")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","P")
|
||||
log_admin("[key_name(usr)] made all areas powered", 1)
|
||||
message_admins("\blue [key_name_admin(usr)] made all areas powered", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] made all areas powered</span>", 1)
|
||||
power_restore()
|
||||
if("unpower")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","UP")
|
||||
log_admin("[key_name(usr)] made all areas unpowered", 1)
|
||||
message_admins("\blue [key_name_admin(usr)] made all areas unpowered", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] made all areas unpowered</span>", 1)
|
||||
power_failure()
|
||||
if("quickpower")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","QP")
|
||||
log_admin("[key_name(usr)] made all SMESs powered", 1)
|
||||
message_admins("\blue [key_name_admin(usr)] made all SMESs powered", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] made all SMESs powered</span>", 1)
|
||||
power_restore_quick()
|
||||
if("prisonwarp")
|
||||
if(!ticker)
|
||||
@@ -2471,7 +2471,7 @@
|
||||
return
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","PW")
|
||||
message_admins("\blue [key_name_admin(usr)] teleported all players to the prison station.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] teleported all players to the prison station.</span>", 1)
|
||||
for(var/mob/living/carbon/human/H in mob_list)
|
||||
var/turf/loc = find_loc(H)
|
||||
var/security = 0
|
||||
@@ -2538,7 +2538,7 @@
|
||||
A.mind.objectives += new_objective
|
||||
ticker.mode.greet_traitor(A.mind)
|
||||
ticker.mode.finalize_traitor(A.mind)
|
||||
message_admins("\blue [key_name_admin(usr)] used everyone is a traitor secret. Objective is [objective]", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] used everyone is a traitor secret. Objective is [objective]</span>", 1)
|
||||
log_admin("[key_name(usr)] used everyone is a traitor secret. Objective is [objective]")
|
||||
|
||||
if("togglebombcap")
|
||||
@@ -2578,20 +2578,20 @@
|
||||
var/Message = rand(1,4)
|
||||
switch(Message)
|
||||
if(1)
|
||||
M.show_message(text("\blue You shudder as if cold..."), 1)
|
||||
M.show_message(text("<span class='notice'>You shudder as if cold...</span>"), 1)
|
||||
if(2)
|
||||
M.show_message(text("\blue You feel something gliding across your back..."), 1)
|
||||
M.show_message(text("<span class='notice'>You feel something gliding across your back...</span>"), 1)
|
||||
if(3)
|
||||
M.show_message(text("\blue Your eyes twitch, you feel like something you can't see is here..."), 1)
|
||||
M.show_message(text("<span class='notice'>Your eyes twitch, you feel like something you can't see is here...</span>"), 1)
|
||||
if(4)
|
||||
M.show_message(text("\blue You notice something moving out of the corner of your eye, but nothing is there..."), 1)
|
||||
M.show_message(text("<span class='notice'>You notice something moving out of the corner of your eye, but nothing is there...</span>"), 1)
|
||||
for(var/obj/W in orange(5,M))
|
||||
if(prob(25) && !W.anchored)
|
||||
step_rand(W)
|
||||
sleep(rand(100,1000))
|
||||
for(var/mob/M in player_list)
|
||||
if(M.stat != 2)
|
||||
M.show_message(text("\blue The chilling wind suddenly stops..."), 1)
|
||||
M.show_message(text("<span class='notice'>The chilling wind suddenly stops...</span>"), 1)
|
||||
/* if("shockwave")
|
||||
ok = 1
|
||||
to_chat(world, "<span class='danger'><big>ALERT: STATION STRESS CRITICAL</big></span>")
|
||||
@@ -2775,22 +2775,22 @@
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] tried starting a Thunderdome match, but no ghosts signed up.</span>")
|
||||
if("securitylevel0")
|
||||
set_security_level(0)
|
||||
message_admins("\blue [key_name_admin(usr)] change security level to Green.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] change security level to Green.</span>", 1)
|
||||
if("securitylevel1")
|
||||
set_security_level(1)
|
||||
message_admins("\blue [key_name_admin(usr)] change security level to Blue.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] change security level to Blue.</span>", 1)
|
||||
if("securitylevel2")
|
||||
set_security_level(2)
|
||||
message_admins("\blue [key_name_admin(usr)] change security level to Red.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] change security level to Red.</span>", 1)
|
||||
if("securitylevel3")
|
||||
set_security_level(3)
|
||||
message_admins("\blue [key_name_admin(usr)] change security level to Gamma.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] change security level to Gamma.</span>", 1)
|
||||
if("securitylevel4")
|
||||
set_security_level(4)
|
||||
message_admins("\blue [key_name_admin(usr)] change security level to Epsilon.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] change security level to Epsilon.</span>", 1)
|
||||
if("securitylevel5")
|
||||
set_security_level(5)
|
||||
message_admins("\blue [key_name_admin(usr)] change security level to Delta.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] change security level to Delta.</span>", 1)
|
||||
if("moveminingshuttle")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","ShM")
|
||||
|
||||
@@ -197,8 +197,8 @@
|
||||
sanitize(msg)
|
||||
|
||||
if(length(msg) > 400) // TODO: if message length is over 400, divide it up into seperate messages, the message length restriction is based on IRC limitations. Probably easier to do this on the bots ends.
|
||||
to_chat(src, "\red Your message was not sent because it was more then 400 characters find your message below for ease of copy/pasting")
|
||||
to_chat(src, "\blue [msg]")
|
||||
to_chat(src, "<span class='warning'>Your message was not sent because it was more then 400 characters find your message below for ease of copy/pasting</span>")
|
||||
to_chat(src, "<span class='notice'>[msg]</span>")
|
||||
return
|
||||
|
||||
send2adminirc("PlayerPM from [key_name(src)]: [html_decode(msg)]")
|
||||
@@ -210,4 +210,4 @@
|
||||
if(X == src)
|
||||
continue
|
||||
if(check_rights(R_ADMIN|R_MOD|R_MENTOR, 0, X.mob))
|
||||
to_chat(X, "<B><font color='blue'>PM: [key_name(src, X, 0)]->IRC-Admins:</B> \blue [msg]</font>")
|
||||
to_chat(X, "<B><font color='blue'>PM: [key_name(src, X, 0)]->IRC-Admins:</B> <span class='notice'>[msg]</span></font>")
|
||||
|
||||
@@ -296,7 +296,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M:Alienize()
|
||||
feedback_add_details("admin_verb","MKAL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
log_admin("[key_name(usr)] made [key_name(M)] into an alien.")
|
||||
message_admins("\blue [key_name_admin(usr)] made [key_name(M)] into an alien.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] made [key_name(M)] into an alien.</span>", 1)
|
||||
else
|
||||
alert("Invalid mob")
|
||||
|
||||
@@ -316,7 +316,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M:slimeize()
|
||||
feedback_add_details("admin_verb","MKMET") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
log_admin("[key_name(usr)] made [key_name(M)] into a slime.")
|
||||
message_admins("\blue [key_name_admin(usr)] made [key_name(M)] into a slime.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] made [key_name(M)] into a slime.</span>", 1)
|
||||
else
|
||||
alert("Invalid mob")
|
||||
|
||||
@@ -336,7 +336,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
if(S)
|
||||
S.create(M)
|
||||
log_admin("[key_name(src)] has turned [M.key] into a Superhero.")
|
||||
message_admins("\blue [key_name_admin(usr)] made [key_name(M)] into a Superhero.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] made [key_name(M)] into a Superhero.</span>", 1)
|
||||
else
|
||||
alert("Invalid mob")
|
||||
|
||||
@@ -424,7 +424,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
alert("Invalid mob")
|
||||
feedback_add_details("admin_verb","GFA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
log_admin("[key_name(src)] has granted [M.key] full access.")
|
||||
message_admins("\blue [key_name_admin(usr)] has granted [M.key] full access.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] has granted [M.key] full access.</span>", 1)
|
||||
|
||||
/client/proc/cmd_assume_direct_control(var/mob/M in mob_list)
|
||||
set category = "Admin"
|
||||
@@ -440,7 +440,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
else
|
||||
var/mob/dead/observer/ghost = new/mob/dead/observer(M,1)
|
||||
ghost.ckey = M.ckey
|
||||
message_admins("\blue [key_name_admin(usr)] assumed direct control of [M].", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] assumed direct control of [M].</span>", 1)
|
||||
log_admin("[key_name(usr)] assumed direct control of [M].")
|
||||
var/mob/adminmob = src.mob
|
||||
M.ckey = src.ckey
|
||||
@@ -662,7 +662,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
M.regenerate_icons()
|
||||
|
||||
log_admin("[key_name(usr)] changed the equipment of [key_name(M)] to [dresscode].")
|
||||
message_admins("\blue [key_name_admin(usr)] changed the equipment of [key_name_admin(M)] to [dresscode].", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] changed the equipment of [key_name_admin(M)] to [dresscode].</span>", 1)
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
if(T.active_hotspot)
|
||||
burning = 1
|
||||
|
||||
to_chat(usr, "\blue @[target.x],[target.y]: O:[GM.oxygen] T:[GM.toxins] N:[GM.nitrogen] C:[GM.carbon_dioxide] w [GM.temperature] Kelvin, [GM.return_pressure()] kPa [(burning)?("\red BURNING"):(null)]")
|
||||
to_chat(usr, "<span class='notice'>@[target.x],[target.y]: O:[GM.oxygen] T:[GM.toxins] N:[GM.nitrogen] C:[GM.carbon_dioxide] w [GM.temperature] Kelvin, [GM.return_pressure()] kPa [(burning)?("<span class='warning'>BURNING</span>"):(null)]</span>")
|
||||
for(var/datum/gas/trace_gas in GM.trace_gases)
|
||||
to_chat(usr, "[trace_gas.type]: [trace_gas.moles]")
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ var/global/list/frozen_mob_list = list()
|
||||
/mob/living/proc/admin_unFreeze(var/client/admin)
|
||||
if(istype(admin))
|
||||
to_chat(src, "<b><font color= red>You have been unfrozen by [key_name(admin)]</b></font>")
|
||||
message_admins("\blue [key_name_admin(admin)] unfroze [key_name_admin(src)]")
|
||||
message_admins("<span class='notice'>[key_name_admin(admin)] unfroze [key_name_admin(src)]</span>")
|
||||
log_admin("[key_name(admin)] unfroze [key_name(src)]")
|
||||
|
||||
anchored = 0
|
||||
@@ -106,10 +106,10 @@ var/global/list/frozen_mob_list = list()
|
||||
if(M.occupant)
|
||||
M.removeVerb(/obj/mecha/verb/eject)
|
||||
to_chat(M.occupant, "<b><font color= red>You have been frozen by <a href='?priv_msg=\ref[usr.client]'>[key]</a></b></font>")
|
||||
message_admins("\blue [key_name_admin(usr)] froze [key_name(M.occupant)] in a [M.name]")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] froze [key_name(M.occupant)] in a [M.name]</span>")
|
||||
log_admin("[key_name(usr)] froze [key_name(M.occupant)] in a [M.name]")
|
||||
else
|
||||
message_admins("\blue [key_name_admin(usr)] froze an empty [M.name]")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] froze an empty [M.name]</span>")
|
||||
log_admin("[key_name(usr)] froze an empty [M.name]")
|
||||
else if(M.can_move == 0)
|
||||
M.can_move = 1
|
||||
@@ -117,8 +117,8 @@ var/global/list/frozen_mob_list = list()
|
||||
if(M.occupant)
|
||||
M.addVerb(/obj/mecha/verb/eject)
|
||||
to_chat(M.occupant, "<b><font color= red>You have been unfrozen by <a href='?priv_msg=\ref[usr.client]'>[key]</a></b></font>")
|
||||
message_admins("\blue [key_name_admin(usr)] unfroze [key_name(M.occupant)] in a [M.name]")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] unfroze [key_name(M.occupant)] in a [M.name]</span>")
|
||||
log_admin("[key_name(usr)] unfroze [M.occupant.name]/[M.occupant.ckey] in a [M.name]")
|
||||
else
|
||||
message_admins("\blue [key_name_admin(usr)] unfroze an empty [M.name]")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] unfroze an empty [M.name]</span>")
|
||||
log_admin("[key_name(usr)] unfroze an empty [M.name]")
|
||||
|
||||
@@ -62,14 +62,14 @@ var/global/sent_honksquad = 0
|
||||
new_honksquad.update_internals_hud_icon(1)
|
||||
|
||||
//So they don't forget their code or mission.
|
||||
new_honksquad.mind.store_memory("<B>Mission:</B> \red [input].")
|
||||
new_honksquad.mind.store_memory("<B>Mission:</B> <span class='warning'>[input].</span>")
|
||||
|
||||
to_chat(new_honksquad, "\blue You are a HONKsquad. [!honk_leader_selected?"commando":"<B>LEADER</B>"] in the service of Clown Planet. You are called in cases of exteme low levels of HONK. You are NOT authorized to kill. \nYour current mission is: <span class='danger'>[input]</span>")
|
||||
to_chat(new_honksquad, "<span class='notice'>You are a HONKsquad. [!honk_leader_selected ? "commando" : "<B>LEADER</B>"] in the service of Clown Planet. You are called in cases of exteme low levels of HONK. You are NOT authorized to kill.\nYour current mission is: <span class='danger'>[input]</span></span>")
|
||||
|
||||
honksquad_number--
|
||||
|
||||
|
||||
message_admins("\blue [key_name_admin(usr)] has spawned a HONKsquad.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] has spawned a HONKsquad.</span>", 1)
|
||||
log_admin("[key_name(usr)] used Spawn HONKsquad.")
|
||||
return 1
|
||||
|
||||
|
||||
@@ -337,7 +337,7 @@ client/proc/one_click_antag()
|
||||
//So they don't forget their code or mission.
|
||||
|
||||
|
||||
to_chat(new_syndicate_commando, "\blue You are an Elite Syndicate. [!syndicate_leader_selected?"commando":"<B>LEADER</B>"] in the service of the Syndicate. \nYour current mission is: <span class='danger'> [input]</span>")
|
||||
to_chat(new_syndicate_commando, "<span class='notice'>You are an Elite Syndicate. [!syndicate_leader_selected ? "commando" : "<B>LEADER</B>"] in the service of the Syndicate. \nYour current mission is: <span class='danger'>[input]</span></span>")
|
||||
|
||||
numagents--
|
||||
if(numagents >= 6)
|
||||
@@ -444,8 +444,8 @@ client/proc/one_click_antag()
|
||||
new_vox.key = theghost.key
|
||||
ticker.mode.traitors += new_vox.mind
|
||||
|
||||
to_chat(new_vox, "\blue You are a Vox Primalis, fresh out of the Shoal. Your ship has arrived at the Tau Ceti system hosting the NSV Exodus... or was it the Luna? NSS? Utopia? Nobody is really sure, but everyong is raring to start pillaging! Your current goal is: <span class='danger'> [input]</span>")
|
||||
to_chat(new_vox, "\red Don't forget to turn on your nitrogen internals!")
|
||||
to_chat(new_vox, "<span class='notice'>You are a Vox Primalis, fresh out of the Shoal. Your ship has arrived at the Tau Ceti system hosting the NSV Exodus... or was it the Luna? NSS? Utopia? Nobody is really sure, but everyong is raring to start pillaging! Your current goal is: <span class='danger'> [input]</span></span>")
|
||||
to_chat(new_vox, "<span class='warning'>Don't forget to turn on your nitrogen internals!</span>")
|
||||
|
||||
raiders--
|
||||
if(raiders > max_raiders)
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
if(usr.client)
|
||||
if(usr.client.prefs.muted & MUTE_PRAY)
|
||||
to_chat(usr, "\red You cannot pray (muted).")
|
||||
to_chat(usr, "<span class='warning'>You cannot pray (muted).</span>")
|
||||
return
|
||||
if(client.handle_spam_prevention(msg, MUTE_PRAY, OOC_COOLDOWN))
|
||||
return
|
||||
|
||||
var/image/cross = image('icons/obj/storage.dmi',"bible")
|
||||
msg = "\blue [bicon(cross)] <b><font color=purple>PRAY: </font>[key_name(src, 1)] (<A HREF='?_src_=holder;adminmoreinfo=\ref[src]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=\ref[src]'>PP</A>) (<A HREF='?_src_=vars;Vars=[UID()]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[src]'>SM</A>) ([admin_jump_link(src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;adminspawncookie=\ref[src]'>SC</a>) (<A HREF='?_src_=holder;Bless=[UID()]'>BLESS</A>) (<A HREF='?_src_=holder;Smite=[UID()]'>SMITE</A>):</b> [msg]"
|
||||
msg = "<span class='notice'>[bicon(cross)] <b><font color=purple>PRAY: </font>[key_name(src, 1)] (<A HREF='?_src_=holder;adminmoreinfo=\ref[src]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=\ref[src]'>PP</A>) (<A HREF='?_src_=vars;Vars=[UID()]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[src]'>SM</A>) ([admin_jump_link(src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;adminspawncookie=\ref[src]'>SC</a>) (<A HREF='?_src_=holder;Bless=[UID()]'>BLESS</A>) (<A HREF='?_src_=holder;Smite=[UID()]'>SMITE</A>):</b> [msg]</span>"
|
||||
|
||||
for(var/client/X in admins)
|
||||
if(check_rights(R_EVENT,0,X.mob))
|
||||
|
||||
@@ -39,9 +39,9 @@
|
||||
prisoner.equip_to_slot_or_del(new /obj/item/clothing/under/color/orange(prisoner), slot_w_uniform)
|
||||
prisoner.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(prisoner), slot_shoes)
|
||||
spawn(50)
|
||||
to_chat(M, "\red You have been sent to the prison station!")
|
||||
to_chat(M, "<span class='warning'>You have been sent to the prison station!</span>")
|
||||
log_admin("[key_name(usr)] sent [key_name(M)] to the prison station.")
|
||||
message_admins("\blue [key_name_admin(usr)] sent [key_name_admin(M)] to the prison station.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] sent [key_name_admin(M)] to the prison station.</span>", 1)
|
||||
feedback_add_details("admin_verb","PRISON") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/cmd_admin_subtle_message(mob/M as mob in mob_list)
|
||||
@@ -61,10 +61,10 @@
|
||||
if(usr)
|
||||
if(usr.client)
|
||||
if(usr.client.holder)
|
||||
to_chat(M, "\bold You hear a voice in your head... \italic [msg]")
|
||||
to_chat(M, "<b>old You hear a voice in your head... <i>[msg]</i></b>")
|
||||
|
||||
log_admin("SubtlePM: [key_name(usr)] -> [key_name(M)] : [msg]")
|
||||
message_admins("\blue \bold SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] : [msg]", 1)
|
||||
message_admins("<span class='boldnotice'>SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] : [msg]</span>", 1)
|
||||
feedback_add_details("admin_verb","SMS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/cmd_mentor_check_new_players() //Allows mentors / admins to determine who the newer players are.
|
||||
@@ -115,7 +115,7 @@
|
||||
return
|
||||
to_chat(world, "[msg]")
|
||||
log_admin("GlobalNarrate: [key_name(usr)] : [msg]")
|
||||
message_admins("\blue \bold GlobalNarrate: [key_name_admin(usr)]: [msg]<BR>", 1)
|
||||
message_admins("<span class='boldnotice'>GlobalNarrate: [key_name_admin(usr)]: [msg]<BR></span>", 1)
|
||||
feedback_add_details("admin_verb","GLN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/cmd_admin_direct_narrate(var/mob/M) // Targetted narrate -- TLE
|
||||
@@ -138,7 +138,7 @@
|
||||
|
||||
to_chat(M, msg)
|
||||
log_admin("DirectNarrate: [key_name(usr)] to ([key_name(M)]): [msg]")
|
||||
message_admins("\blue \bold DirectNarrate: [key_name_admin(usr)] to ([key_name_admin(M)]): [msg]<BR>", 1)
|
||||
message_admins("<span class='boldnotice'>DirectNarrate: [key_name_admin(usr)] to ([key_name_admin(M)]): [msg]<BR></span>", 1)
|
||||
feedback_add_details("admin_verb","DIRN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/cmd_admin_godmode(mob/M as mob in mob_list)
|
||||
@@ -149,7 +149,7 @@
|
||||
return
|
||||
|
||||
M.status_flags ^= GODMODE
|
||||
to_chat(usr, "\blue Toggled [(M.status_flags & GODMODE) ? "ON" : "OFF"]")
|
||||
to_chat(usr, "<span class='notice'>Toggled [(M.status_flags & GODMODE) ? "ON" : "OFF"]</span>")
|
||||
|
||||
log_admin("[key_name(usr)] has toggled [key_name(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]")
|
||||
message_admins("[key_name_admin(usr)] has toggled [key_name_admin(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]", 1)
|
||||
@@ -333,7 +333,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
G_found.mind.transfer_to(new_xeno) //be careful when doing stuff like this! I've already checked the mind isn't in use
|
||||
new_xeno.key = G_found.key
|
||||
to_chat(new_xeno, "You have been fully respawned. Enjoy the game.")
|
||||
message_admins("\blue [key_name_admin(usr)] has respawned [new_xeno.key] as a filthy xeno.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] has respawned [new_xeno.key] as a filthy xeno.</span>", 1)
|
||||
return //all done. The ghost is auto-deleted
|
||||
|
||||
var/mob/living/carbon/human/new_character = new(pick(latejoin))//The mob being spawned.
|
||||
@@ -437,7 +437,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if(alert(new_character,"Would you like an active AI to announce this character?",,"No","Yes")=="Yes")
|
||||
call(/mob/new_player/proc/AnnounceArrival)(new_character, new_character.mind.assigned_role)
|
||||
|
||||
message_admins("\blue [key_name_admin(usr)] has respawned [key_name_admin(G_found)] as [new_character.real_name].", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] has respawned [key_name_admin(G_found)] as [new_character.real_name].</span>", 1)
|
||||
|
||||
to_chat(new_character, "You have been fully respawned. Enjoy the game.")
|
||||
|
||||
@@ -473,7 +473,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
else return 0
|
||||
|
||||
new_xeno.ckey = ckey
|
||||
message_admins("\blue [key_name_admin(usr)] has spawned [ckey] as a filthy xeno [alien_caste].", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] has spawned [ckey] as a filthy xeno [alien_caste].</span>", 1)
|
||||
return 1
|
||||
|
||||
|
||||
@@ -537,7 +537,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
M.revive()
|
||||
|
||||
log_admin("[key_name(usr)] healed / revived [key_name(M)]")
|
||||
message_admins("\red Admin [key_name_admin(usr)] healed / revived [key_name_admin(M)]!", 1)
|
||||
message_admins("<span class='warning'>Admin [key_name_admin(usr)] healed / revived [key_name_admin(M)]!</span>", 1)
|
||||
feedback_add_details("admin_verb","REJU") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/cmd_admin_create_centcom_report()
|
||||
@@ -711,7 +711,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
mob.gib()
|
||||
|
||||
log_admin("[key_name(usr)] used gibself.")
|
||||
message_admins("\blue [key_name_admin(usr)] used gibself.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] used gibself.</span>", 1)
|
||||
feedback_add_details("admin_verb","GIBS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/cmd_admin_check_contents(mob/living/M as mob in mob_list)
|
||||
@@ -740,7 +740,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
view = world.view
|
||||
|
||||
log_admin("[key_name(usr)] changed their view range to [view].")
|
||||
//message_admins("\blue [key_name_admin(usr)] changed their view range to [view].", 1) //why? removed by order of XSI
|
||||
//message_admins("<span class='notice'>[key_name_admin(usr)] changed their view range to [view].</span>", 1) //why? removed by order of XSI
|
||||
|
||||
feedback_add_details("admin_verb","CVRA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -838,7 +838,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
message_admins("Admin [key_name_admin(usr)] has forced the players to have random appearances.", 1)
|
||||
|
||||
if(notifyplayers == "Yes")
|
||||
to_chat(world, "\blue <b>Admin [usr.key] has forced the players to have completely random identities!")
|
||||
to_chat(world, "<span class='notice'><b>Admin [usr.key] has forced the players to have completely random identities!</span>")
|
||||
|
||||
to_chat(usr, "<i>Remember: you can always disable the randomness by using the verb again, assuming the round hasn't started yet</i>.")
|
||||
|
||||
@@ -895,12 +895,12 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
|
||||
if(ticker.mode.ert_disabled)
|
||||
ticker.mode.ert_disabled = 0
|
||||
to_chat(usr, "\blue ERT has been <b>Enabled</b>.")
|
||||
to_chat(usr, "<span class='notice'>ERT has been <b>Enabled</b>.</span>")
|
||||
log_admin("Admin [key_name(src)] has enabled ERT calling.")
|
||||
message_admins("Admin [key_name_admin(usr)] has enabled ERT calling.", 1)
|
||||
else
|
||||
ticker.mode.ert_disabled = 1
|
||||
to_chat(usr, "\red ERT has been <b>Disabled</b>.")
|
||||
to_chat(usr, "<span class='warning'>ERT has been <b>Disabled</b>.</span>")
|
||||
log_admin("Admin [key_name(src)] has disabled ERT calling.")
|
||||
message_admins("Admin [key_name_admin(usr)] has disabled ERT calling.", 1)
|
||||
|
||||
|
||||
@@ -68,10 +68,10 @@ var/global/sent_strike_team = 0
|
||||
|
||||
//So they don't forget their code or mission.
|
||||
if(nuke_code)
|
||||
new_commando.mind.store_memory("<B>Nuke Code:</B> \red [nuke_code].")
|
||||
new_commando.mind.store_memory("<B>Mission:</B> \red [input].")
|
||||
new_commando.mind.store_memory("<B>Nuke Code:</B> <span class='warning'>[nuke_code].</span>")
|
||||
new_commando.mind.store_memory("<B>Mission:</B> <span class='warning'>[input].</span>")
|
||||
|
||||
to_chat(new_commando, "\blue You are a Special Ops. [!leader_selected?"commando":"<B>LEADER</B>"] in the service of Central Command. Check the table ahead for detailed instructions.\nYour current mission is: <span class='danger'>[input]</span>")
|
||||
to_chat(new_commando, "<span class='notice'>You are a Special Ops. [!leader_selected ? "commando" : "<B>LEADER</B>"] in the service of Central Command. Check the table ahead for detailed instructions.\nYour current mission is: <span class='danger'>[input]</span></span>")
|
||||
|
||||
commando_number--
|
||||
|
||||
@@ -92,7 +92,7 @@ var/global/sent_strike_team = 0
|
||||
new /obj/effect/spawner/newbomb/timer/syndicate(L.loc)
|
||||
qdel(L)
|
||||
|
||||
message_admins("\blue [key_name_admin(usr)] has spawned a CentComm strike squad.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] has spawned a CentComm strike squad.</span>", 1)
|
||||
log_admin("[key_name(usr)] used Spawn Death Squad.")
|
||||
return 1
|
||||
|
||||
@@ -157,7 +157,7 @@ var/global/sent_strike_team = 0
|
||||
equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse(src), slot_r_hand)
|
||||
|
||||
|
||||
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(src)//Here you go Deuryn
|
||||
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(src)
|
||||
L.imp_in = src
|
||||
L.implanted = 1
|
||||
sec_hud_set_implants()
|
||||
|
||||
@@ -75,10 +75,10 @@ var/global/sent_syndicate_strike_team = 0
|
||||
|
||||
//So they don't forget their code or mission.
|
||||
if(nuke_code)
|
||||
new_syndicate_commando.mind.store_memory("<B>Nuke Code:</B> \red [nuke_code].")
|
||||
new_syndicate_commando.mind.store_memory("<B>Mission:</B> \red [input].")
|
||||
new_syndicate_commando.mind.store_memory("<B>Nuke Code:</B> <span class='warning'>[nuke_code]</span>.")
|
||||
new_syndicate_commando.mind.store_memory("<B>Mission:</B> <span class='warning'>[input]</span>.")
|
||||
|
||||
to_chat(new_syndicate_commando, "\blue You are an Elite Syndicate. [!syndicate_leader_selected?"commando":"<B>LEADER</B>"] in the service of the Syndicate. \nYour current mission is: <span class='danger'>[input]</span>")
|
||||
to_chat(new_syndicate_commando, "<span class='notice'>You are an Elite Syndicate. [!syndicate_leader_selected ? "commando" : "<B>LEADER</B>"] in the service of the Syndicate. \nYour current mission is: <span class='danger'>[input]</span></span>")
|
||||
new_syndicate_commando.faction += "syndicate"
|
||||
syndicate_commando_number--
|
||||
|
||||
@@ -87,7 +87,7 @@ var/global/sent_syndicate_strike_team = 0
|
||||
new /obj/effect/spawner/newbomb/timer/syndicate(L.loc)
|
||||
qdel(L)
|
||||
|
||||
message_admins("\blue [key_name_admin(usr)] has spawned a Syndicate strike squad.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] has spawned a Syndicate strike squad.</span>", 1)
|
||||
log_admin("[key_name(usr)] used Spawn Syndicate Squad.")
|
||||
feedback_add_details("admin_verb","SDTHS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
@@ -19,6 +19,6 @@
|
||||
if("Yes") config.Tickcomp = 1
|
||||
else config.Tickcomp = 0
|
||||
else
|
||||
to_chat(src, "\red Error: ticklag(): Invalid world.ticklag value. No changes made.")
|
||||
to_chat(src, "<span class='warning'>Error: ticklag(): Invalid world.ticklag value. No changes made.</span>")
|
||||
|
||||
|
||||
|
||||
@@ -14,9 +14,9 @@
|
||||
if(ticker.triai)
|
||||
ticker.triai = 0
|
||||
to_chat(usr, "Only one AI will be spawned at round start.")
|
||||
message_admins("\blue [key_name_admin(usr)] has toggled off triple AIs at round start.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] has toggled off triple AIs at round start.</span>", 1)
|
||||
else
|
||||
ticker.triai = 1
|
||||
to_chat(usr, "There will be an AI Triumvirate at round start.")
|
||||
message_admins("\blue [key_name_admin(usr)] has toggled on triple AIs at round start.", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] has toggled on triple AIs at round start.</span>", 1)
|
||||
return
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
attach_assembly(var/obj/item/device/assembly/A, var/mob/user)
|
||||
holder = new/obj/item/device/assembly_holder(get_turf(src))
|
||||
if(holder.attach(A,src,user))
|
||||
to_chat(user, "\blue You attach \the [A] to \the [src]!")
|
||||
to_chat(user, "<span class='notice'>You attach \the [A] to \the [src]!</span>")
|
||||
return 1
|
||||
return 0
|
||||
|
||||
@@ -129,9 +129,9 @@
|
||||
return
|
||||
if(istype(W, /obj/item/weapon/screwdriver))
|
||||
if(toggle_secure())
|
||||
to_chat(user, "\blue \The [src] is ready!")
|
||||
to_chat(user, "<span class='notice'>\The [src] is ready!</span>")
|
||||
else
|
||||
to_chat(user, "\blue \The [src] can now be attached!")
|
||||
to_chat(user, "<span class='notice'>\The [src] can now be attached!</span>")
|
||||
return
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -140,15 +140,15 @@
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/weapon/screwdriver))
|
||||
if(!a_left || !a_right)
|
||||
to_chat(user, "\red BUG:Assembly part missing, please report this!")
|
||||
to_chat(user, "<span class='warning'>BUG:Assembly part missing, please report this!</span>")
|
||||
return
|
||||
a_left.toggle_secure()
|
||||
a_right.toggle_secure()
|
||||
secured = !secured
|
||||
if(secured)
|
||||
to_chat(user, "\blue \The [src] is ready!")
|
||||
to_chat(user, "<span class='notice'>\The [src] is ready!</span>")
|
||||
else
|
||||
to_chat(user, "\blue \The [src] can now be taken apart!")
|
||||
to_chat(user, "<span class='notice'>\The [src] can now be taken apart!</span>")
|
||||
update_icon()
|
||||
return
|
||||
else
|
||||
@@ -160,7 +160,7 @@
|
||||
src.add_fingerprint(user)
|
||||
if(src.secured)
|
||||
if(!a_left || !a_right)
|
||||
to_chat(user, "\red Assembly part missing!")
|
||||
to_chat(user, "<span class='warning'>Assembly part missing!</span>")
|
||||
return
|
||||
if(istype(a_left,a_right.type))//If they are the same type it causes issues due to window code
|
||||
switch(alert("Which side would you like to use?",,"Left","Right"))
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
describe()
|
||||
if(timing)
|
||||
return "\blue The proximity sensor is arming."
|
||||
return "<span class='notice'>The proximity sensor is arming.</span>"
|
||||
return "The proximity sensor is [scanning?"armed":"disarmed"]."
|
||||
|
||||
activate()
|
||||
@@ -109,7 +109,7 @@
|
||||
|
||||
interact(mob/user as mob)//TODO: Change this to the wires thingy
|
||||
if(!secured)
|
||||
user.show_message("\red The [name] is unsecured!")
|
||||
user.show_message("<span class='warning'>The [name] is unsecured!</span>")
|
||||
return 0
|
||||
var/second = time % 60
|
||||
var/minute = (time - second) / 60
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
|
||||
interact(mob/user as mob)//TODO: Have this use the wires
|
||||
if(!secured)
|
||||
user.show_message("\red The [name] is unsecured!")
|
||||
user.show_message("<span class='warning'>The [name] is unsecured!</span>")
|
||||
return 0
|
||||
var/second = time % 60
|
||||
var/minute = (time - second) / 60
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
if(findtext(msg, recorded) && type == recorded_type)
|
||||
pulse(0)
|
||||
var/turf/T = get_turf(src) //otherwise it won't work in hand
|
||||
T.visible_message("[bicon(src)] \red beeps!")
|
||||
T.visible_message("<span class='warning'>[bicon(src)] beeps!</span>")
|
||||
|
||||
activate()
|
||||
return // previously this toggled listning when not in a holder, that's a little silly. It was only called in attack_self that way.
|
||||
|
||||
@@ -83,9 +83,9 @@
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/human = user
|
||||
if(human.species.name != "Shadow")
|
||||
to_chat(user, "\red Your flesh rapidly mutates!")
|
||||
to_chat(user, "<span class='warning'>Your flesh rapidly mutates!</span>")
|
||||
to_chat(user, "<b>You are now a Shadow Person, a mutant race of darkness-dwelling humanoids.</b>")
|
||||
to_chat(user, "\red Your body reacts violently to light. \green However, it naturally heals in darkness.")
|
||||
to_chat(user, "<span class='warning'>Your body reacts violently to light.</span> <span class='notice'>However, it naturally heals in darkness.</span>")
|
||||
to_chat(user, "Aside from your new traits, you are mentally unchanged and retain your prior obligations.")
|
||||
human.set_species("Shadow")
|
||||
user.regenerate_icons()
|
||||
@@ -96,9 +96,9 @@
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/human = user
|
||||
if(human.species.name != "Shadow")
|
||||
to_chat(user, "\red Your flesh rapidly mutates!")
|
||||
to_chat(user, "<span class='warning'>Your flesh rapidly mutates!</span>")
|
||||
to_chat(user, "<b>You are now a Shadow Person, a mutant race of darkness-dwelling humanoids.</b>")
|
||||
to_chat(user, "\red Your body reacts violently to light. \green However, it naturally heals in darkness.")
|
||||
to_chat(user, "<span class='warning'>Your body reacts violently to light.</span> <span class='notice'>However, it naturally heals in darkness.</span>")
|
||||
to_chat(user, "Aside from your new traits, you are mentally unchanged and retain your prior obligations.")
|
||||
human.set_species("Shadow")
|
||||
user.regenerate_icons()
|
||||
@@ -109,9 +109,9 @@
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/human = user
|
||||
if(human.species.name != "Shadow")
|
||||
to_chat(user, "\red Your flesh rapidly mutates!")
|
||||
to_chat(user, "<span class='warning'>Your flesh rapidly mutates!</span>")
|
||||
to_chat(user, "<b>You are now a Shadow Person, a mutant race of darkness-dwelling humanoids.</b>")
|
||||
to_chat(user, "\red Your body reacts violently to light. \green However, it naturally heals in darkness.")
|
||||
to_chat(user, "<span class='warning'>Your body reacts violently to light.</span> <span class='notice'>However, it naturally heals in darkness.</span>")
|
||||
to_chat(user, "Aside from your new traits, you are mentally unchanged and retain your prior obligations.")
|
||||
human.set_species("Shadow")
|
||||
user.regenerate_icons()
|
||||
@@ -131,9 +131,9 @@
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/human = user
|
||||
if(human.species.name != "Shadow")
|
||||
to_chat(user, "\red Your flesh rapidly mutates!")
|
||||
to_chat(user, "<span class='warning'>Your flesh rapidly mutates!</span>")
|
||||
to_chat(user, "<b>You are now a Shadow Person, a mutant race of darkness-dwelling humanoids.</b>")
|
||||
to_chat(user, "\red Your body reacts violently to light. \green However, it naturally heals in darkness.")
|
||||
to_chat(user, "<span class='warning'>Your body reacts violently to light.</span> <span class='notice'>However, it naturally heals in darkness.</span>")
|
||||
to_chat(user, "Aside from your new traits, you are mentally unchanged and retain your prior obligations.")
|
||||
human.set_species("Shadow")
|
||||
user.regenerate_icons()
|
||||
|
||||
@@ -326,7 +326,7 @@
|
||||
preload_rsc = pick(config.resource_urls)
|
||||
else preload_rsc = 1 // If config.resource_urls is not set, preload like normal.
|
||||
|
||||
to_chat(src, "\red If the title screen is black, resources are still downloading. Please be patient until the title screen appears.")
|
||||
to_chat(src, "<span class='warning'>If the title screen is black, resources are still downloading. Please be patient until the title screen appears.</span>")
|
||||
|
||||
|
||||
clients += src
|
||||
|
||||
@@ -118,6 +118,11 @@
|
||||
path = /obj/item/clothing/head/beret/sci
|
||||
allowed_roles = list("Research Director", "Scientist")
|
||||
|
||||
/datum/gear/hat/med_beret
|
||||
display_name = "medical beret"
|
||||
path = /obj/item/clothing/head/beret/med
|
||||
allowed_roles = list("Chief Medical Officer", "Medical Doctor" , "Virologist", "Brig Physician")
|
||||
|
||||
/datum/gear/hat/surgicalcap_purple
|
||||
display_name = "surgical cap, purple"
|
||||
path = /obj/item/clothing/head/surgery/purple
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
/datum/gear/uniform/skirt/job/cmo
|
||||
display_name = "skirt, cmo"
|
||||
path = /obj/item/clothing/under/rank/chief_medical_officer
|
||||
path = /obj/item/clothing/under/rank/chief_medical_officer/skirt
|
||||
allowed_roles = list("Chief Medical Officer")
|
||||
|
||||
/datum/gear/uniform/skirt/job/chem
|
||||
|
||||
@@ -788,7 +788,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
return
|
||||
|
||||
if(!isnum(desiredLvl))
|
||||
to_chat(user, "\red UpdateJobPreference - desired level was not a number. Please notify coders!")
|
||||
to_chat(user, "<span class='warning'>UpdateJobPreference - desired level was not a number. Please notify coders!</span>")
|
||||
ShowChoices(user)
|
||||
return
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
wearable = 1
|
||||
|
||||
if(!wearable)
|
||||
to_chat(M, "\red Your species cannot wear [src].")
|
||||
to_chat(M, "<span class='warning'>Your species cannot wear [src].</span>")
|
||||
return 0
|
||||
|
||||
return 1
|
||||
@@ -250,7 +250,7 @@ BLIND // can't see anything
|
||||
switch(sensor_mode)
|
||||
if(0)
|
||||
for(var/mob/V in viewers(user, 1))
|
||||
V.show_message("\red [user] disables [src.loc]'s remote sensing equipment.", 1)
|
||||
V.show_message("<span class='warning'>[user] disables [src.loc]'s remote sensing equipment.</span>", 1)
|
||||
if(1)
|
||||
for(var/mob/V in viewers(user, 1))
|
||||
V.show_message("[user] turns [src.loc]'s remote sensors to binary.", 1)
|
||||
|
||||
@@ -378,7 +378,7 @@
|
||||
emp_act(severity)
|
||||
if(istype(src.loc, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/M = src.loc
|
||||
to_chat(M, "\red The Optical Thermal Scanner overloads and blinds you!")
|
||||
to_chat(M, "<span class='warning'>The Optical Thermal Scanner overloads and blinds you!</span>")
|
||||
if(M.glasses == src)
|
||||
M.EyeBlind(3)
|
||||
M.EyeBlurry(5)
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
desc = "Horrendous and awful. It smells like cancer. The fact it has wires attached to it is incidental."
|
||||
var/obj/item/weapon/stock_parts/cell/cell = null
|
||||
var/stun_strength = 5
|
||||
var/stun_cost = 3750
|
||||
var/stun_cost = 2000
|
||||
|
||||
/obj/item/clothing/gloves/color/yellow/stun/New()
|
||||
..()
|
||||
|
||||
@@ -129,6 +129,11 @@
|
||||
icon_state = "beret_sci"
|
||||
|
||||
//Medical
|
||||
/obj/item/clothing/head/beret/med
|
||||
name = "medical beret"
|
||||
desc = "A white beret with a green cross finely threaded into it. It has that sterile smell about it."
|
||||
icon_state = "beret_med"
|
||||
|
||||
/obj/item/clothing/head/surgery
|
||||
name = "surgical cap"
|
||||
desc = "A cap surgeons wear during operations. Keeps their hair from tickling your internal organs."
|
||||
|
||||
@@ -379,9 +379,6 @@
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
|
||||
actions_types = list(/datum/action/item_action/caw)
|
||||
|
||||
/obj/item/clothing/head/griffin/super_hero
|
||||
flags = BLOCKHAIR|NODROP
|
||||
|
||||
/obj/item/clothing/head/griffin/attack_self()
|
||||
caw()
|
||||
|
||||
|
||||
@@ -382,26 +382,26 @@
|
||||
if(istype(W, /obj/item/weapon/screwdriver))
|
||||
switch(aggressiveness)
|
||||
if(1)
|
||||
to_chat(user, "\blue You set the aggressiveness restrictor to the second position.")
|
||||
to_chat(user, "<span class='notice'>You set the aggressiveness restrictor to the second position.</span>")
|
||||
aggressiveness = 2
|
||||
phrase = 7
|
||||
if(2)
|
||||
to_chat(user, "\blue You set the aggressiveness restrictor to the third position.")
|
||||
to_chat(user, "<span class='notice'>You set the aggressiveness restrictor to the third position.</span>")
|
||||
aggressiveness = 3
|
||||
phrase = 13
|
||||
if(3)
|
||||
to_chat(user, "\blue You set the aggressiveness restrictor to the fourth position.")
|
||||
to_chat(user, "<span class='notice'>You set the aggressiveness restrictor to the fourth position.</span>")
|
||||
aggressiveness = 4
|
||||
phrase = 1
|
||||
if(4)
|
||||
to_chat(user, "\blue You set the aggressiveness restrictor to the first position.")
|
||||
to_chat(user, "<span class='notice'>You set the aggressiveness restrictor to the first position.</span>")
|
||||
aggressiveness = 1
|
||||
phrase = 1
|
||||
if(5)
|
||||
to_chat(user, "\red You adjust the restrictor but nothing happens, probably because its broken.")
|
||||
to_chat(user, "<span class='warning'>You adjust the restrictor but nothing happens, probably because its broken.</span>")
|
||||
else if(istype(W, /obj/item/weapon/wirecutters))
|
||||
if(aggressiveness != 5)
|
||||
to_chat(user, "\red You broke it!")
|
||||
to_chat(user, "<span class='warning'>You broke it!</span>")
|
||||
aggressiveness = 5
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -167,8 +167,6 @@
|
||||
icon_state = "griffinboots"
|
||||
item_state = "griffinboots"
|
||||
|
||||
/obj/item/clothing/shoes/griffin/super_hero
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/clothing/shoes/fluff/noble_boot
|
||||
name = "noble boots"
|
||||
|
||||
@@ -178,7 +178,7 @@ var/global/list/breach_burn_descriptors = list(
|
||||
if(istype(W,/obj/item/stack/sheet/plastic) || istype(W,/obj/item/stack/sheet/metal))
|
||||
|
||||
if(istype(src.loc,/mob/living))
|
||||
to_chat(user, "\red How do you intend to patch a hardsuit while someone is wearing it?")
|
||||
to_chat(user, "<span class='warning'>How do you intend to patch a hardsuit while someone is wearing it?</span>")
|
||||
return
|
||||
|
||||
if(!damage || !burn_damage)
|
||||
@@ -197,7 +197,7 @@ var/global/list/breach_burn_descriptors = list(
|
||||
else if(istype(W, /obj/item/weapon/weldingtool))
|
||||
|
||||
if(istype(src.loc,/mob/living))
|
||||
to_chat(user, "\red How do you intend to patch a hardsuit while someone is wearing it?")
|
||||
to_chat(user, "<span class='warning'>How do you intend to patch a hardsuit while someone is wearing it?</span>")
|
||||
return
|
||||
|
||||
if(!damage || ! brute_damage)
|
||||
@@ -206,7 +206,7 @@ var/global/list/breach_burn_descriptors = list(
|
||||
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(!WT.remove_fuel(5))
|
||||
to_chat(user, "\red You need more welding fuel to repair this suit.")
|
||||
to_chat(user, "<span class='warning'>You need more welding fuel to repair this suit.</span>")
|
||||
return
|
||||
|
||||
repair_breaches(BRUTE, 3, user)
|
||||
|
||||
@@ -457,6 +457,7 @@
|
||||
icon_state = "black_hoodie"
|
||||
item_state = "blueshieldcoat"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/emergency_oxygen)
|
||||
hoodtype = /obj/item/clothing/head/hood
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
@@ -817,8 +818,6 @@
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite)
|
||||
actions_types = list(/datum/action/item_action/toggle_wings)
|
||||
|
||||
/obj/item/clothing/suit/toggle/owlwings/super_hero
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/clothing/suit/toggle/owlwings/griffinwings
|
||||
name = "griffon cloak"
|
||||
@@ -826,9 +825,6 @@
|
||||
icon_state = "griffin_wings"
|
||||
item_state = "griffin_wings"
|
||||
|
||||
/obj/item/clothing/suit/toggle/owlwings/griffinwings/super_hero
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/clothing/suit/toggle/attack_self()
|
||||
if(icon_state == initial(icon_state))
|
||||
icon_state = icon_state + "_t"
|
||||
@@ -951,4 +947,4 @@
|
||||
|
||||
linked_staff.faith += 5
|
||||
if(linked_staff.faith >= 100) //if this charge puts the staff at or above full, notify the wearer
|
||||
to_chat(H, "<span class='notice'>Faith renewed; ready to convert new followers.</span>")
|
||||
to_chat(H, "<span class='notice'>Faith renewed; ready to convert new followers.</span>")
|
||||
|
||||
@@ -243,7 +243,7 @@
|
||||
to_chat(user, "Waving around a badge before swiping an ID would be pretty pointless.")
|
||||
return
|
||||
if(isliving(user))
|
||||
user.visible_message("\red [user] displays their Nanotrasen Internal Security Legal Authorization Badge.\nIt reads: [stored_name], NT Security.","\red You display your Nanotrasen Internal Security Legal Authorization Badge.\nIt reads: [stored_name], NT Security.")
|
||||
user.visible_message("<span class='warning'>[user] displays their Nanotrasen Internal Security Legal Authorization Badge.\nIt reads: [stored_name], NT Security.</span>","<span class='warning'>You display your Nanotrasen Internal Security Legal Authorization Badge.\nIt reads: [stored_name], NT Security.</span>")
|
||||
|
||||
/obj/item/clothing/accessory/holobadge/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
|
||||
if(istype(O, /obj/item/weapon/card/id) || istype(O, /obj/item/device/pda))
|
||||
@@ -268,16 +268,16 @@
|
||||
|
||||
/obj/item/clothing/accessory/holobadge/emag_act(user as mob)
|
||||
if(emagged)
|
||||
to_chat(user, "\red [src] is already cracked.")
|
||||
to_chat(user, "<span class='warning'>[src] is already cracked.</span>")
|
||||
return
|
||||
else
|
||||
emagged = 1
|
||||
to_chat(user, "\red You swipe the card and crack the holobadge security checks.")
|
||||
to_chat(user, "<span class='warning'>You swipe the card and crack the holobadge security checks.</span>")
|
||||
return
|
||||
|
||||
/obj/item/clothing/accessory/holobadge/attack(mob/living/carbon/human/M, mob/living/user)
|
||||
if(isliving(user))
|
||||
user.visible_message("\red [user] invades [M]'s personal space, thrusting [src] into their face insistently.","\red You invade [M]'s personal space, thrusting [src] into their face insistently. You are the law.")
|
||||
user.visible_message("<span class='warning'>[user] invades [M]'s personal space, thrusting [src] into their face insistently.</span>","<span class='warning'>You invade [M]'s personal space, thrusting [src] into their face insistently. You are the law.</span>")
|
||||
|
||||
/obj/item/weapon/storage/box/holobadge
|
||||
name = "holobadge box"
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
to_chat(user, "<span class='warning'>You need an empty hand to draw the [holstered]!</span>")
|
||||
else
|
||||
if(user.a_intent == I_HARM)
|
||||
usr.visible_message("\red [user] draws the [holstered], ready to shoot!</span>", \
|
||||
usr.visible_message("<span class='warning'>[user] draws the [holstered], ready to shoot!</span></span>", \
|
||||
"<span class='warning'>You draw the [holstered], ready to shoot!</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] draws the [holstered], pointing it at the ground.</span>", \
|
||||
|
||||
@@ -25,14 +25,14 @@
|
||||
attackby(obj/item/clothing/under/U as obj, mob/user as mob, params)
|
||||
..()
|
||||
if(istype(U, /obj/item/clothing/under/chameleon))
|
||||
to_chat(user, "\red Nothing happens.")
|
||||
to_chat(user, "<span class='warning'>Nothing happens.</span>")
|
||||
return
|
||||
if(istype(U, /obj/item/clothing/under))
|
||||
if(src.clothing_choices.Find(U))
|
||||
to_chat(user, "\red Pattern is already recognised by the suit.")
|
||||
to_chat(user, "<span class='warning'>Pattern is already recognised by the suit.</span>")
|
||||
return
|
||||
src.clothing_choices += U
|
||||
to_chat(user, "\red Pattern absorbed by the suit.")
|
||||
to_chat(user, "<span class='warning'>Pattern absorbed by the suit.</span>")
|
||||
|
||||
|
||||
emp_act(severity)
|
||||
@@ -56,7 +56,7 @@
|
||||
set src in usr
|
||||
|
||||
if(icon_state == "psyche")
|
||||
to_chat(usr, "\red Your suit is malfunctioning")
|
||||
to_chat(usr, "<span class='warning'>Your suit is malfunctioning</span>")
|
||||
return
|
||||
|
||||
var/obj/item/clothing/under/A
|
||||
|
||||
@@ -729,18 +729,12 @@
|
||||
icon_state = "owl"
|
||||
item_color = "owl"
|
||||
|
||||
/obj/item/clothing/under/owl/super_hero
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/clothing/under/griffin
|
||||
name = "griffon uniform"
|
||||
desc = "A soft brown jumpsuit with a white feather collar made of synthetic feathers and a lust for mayhem."
|
||||
icon_state = "griffin"
|
||||
item_color = "griffin"
|
||||
|
||||
/obj/item/clothing/under/griffin/super_hero
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/clothing/under/noble_clothes
|
||||
name = "noble clothes"
|
||||
desc = "They fall just short of majestic."
|
||||
@@ -761,7 +755,7 @@
|
||||
..()
|
||||
|
||||
/obj/item/clothing/under/contortionist/dropped(mob/living/carbon/human/user)
|
||||
if(!user.get_int_organ(/obj/item/organ/internal/gland/ventcrawling))
|
||||
if(!user.get_int_organ(/obj/item/organ/internal/heart/gland/ventcrawling))
|
||||
user.ventcrawler = 0
|
||||
..()
|
||||
|
||||
|
||||
@@ -24,22 +24,22 @@
|
||||
|
||||
if(istype(user,/mob/living/silicon))
|
||||
if(!program.ai_allowed)
|
||||
to_chat(user, "\blue You are forbidden from accessing this program.")
|
||||
to_chat(user, "<span class='notice'>You are forbidden from accessing this program.</span>")
|
||||
return 0
|
||||
else
|
||||
if(program.human_controls)
|
||||
if(!ishuman(user))
|
||||
to_chat(user, "\red Your body can't work the controls!")
|
||||
to_chat(user, "<span class='warning'>Your body can't work the controls!</span>")
|
||||
return 0
|
||||
if(user.restrained())
|
||||
to_chat(user, "\red You need a free hand!")
|
||||
to_chat(user, "<span class='warning'>You need a free hand!</span>")
|
||||
return 0
|
||||
|
||||
if(!in_range(src,user))
|
||||
// telekinesis check
|
||||
if(ishuman(user) && istype(user.get_active_hand(),/obj/item/tk_grab))
|
||||
if(program.human_controls)
|
||||
to_chat(user, "\red It's too complicated to work at a distance!")
|
||||
to_chat(user, "<span class='warning'>It's too complicated to work at a distance!</span>")
|
||||
return 0
|
||||
add_fingerprint(user)
|
||||
user.set_machine(src)
|
||||
@@ -115,7 +115,7 @@
|
||||
switch(errorcode)
|
||||
if(PROG_CRASH)
|
||||
if(usr)
|
||||
to_chat(usr, "\red The program crashed!")
|
||||
to_chat(usr, "<span class='warning'>The program crashed!</span>")
|
||||
usr << browse(null,"\ref[src]")
|
||||
Reset()
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
|
||||
else
|
||||
if(usr)
|
||||
to_chat(usr, "\red The program crashed!")
|
||||
to_chat(usr, "<span class='warning'>The program crashed!</span>")
|
||||
usr << browse(null,"\ref[src]")
|
||||
testing("computer/Crash() - unknown error code [errorcode]")
|
||||
Reset()
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
if(istype(P, /obj/item/weapon/wrench))
|
||||
playsound(src.loc, P.usesound, 50, 1)
|
||||
if(do_after(user, 20 * P.toolspeed, target = src))
|
||||
to_chat(user, "\blue You wrench the frame into place.")
|
||||
to_chat(user, "<span class='notice'>You wrench the frame into place.</span>")
|
||||
src.anchored = 1
|
||||
src.state = 1
|
||||
if(istype(P, /obj/item/weapon/weldingtool))
|
||||
@@ -97,35 +97,35 @@
|
||||
playsound(src.loc, WT.usesound, 50, 1)
|
||||
if(do_after(user, 20 * WT.toolspeed, target = src))
|
||||
if(!src || !WT.isOn()) return
|
||||
to_chat(user, "\blue You deconstruct the frame.")
|
||||
to_chat(user, "<span class='notice'>You deconstruct the frame.</span>")
|
||||
new /obj/item/stack/sheet/metal( src.loc, 5 )
|
||||
qdel(src)
|
||||
if(1)
|
||||
if(istype(P, /obj/item/weapon/wrench))
|
||||
playsound(src.loc, P.usesound, 50, 1)
|
||||
if(do_after(user, 20 * P.toolspeed, target = src))
|
||||
to_chat(user, "\blue You unfasten the frame.")
|
||||
to_chat(user, "<span class='notice'>You unfasten the frame.</span>")
|
||||
src.anchored = 0
|
||||
src.state = 0
|
||||
if(istype(P, /obj/item/weapon/circuitboard) && !circuit)
|
||||
var/obj/item/weapon/circuitboard/B = P
|
||||
if(B.board_type == "computer")
|
||||
playsound(src.loc, B.usesound, 50, 1)
|
||||
to_chat(user, "\blue You place the circuit board inside the frame.")
|
||||
to_chat(user, "<span class='notice'>You place the circuit board inside the frame.</span>")
|
||||
src.icon_state = "1"
|
||||
src.circuit = P
|
||||
user.drop_item()
|
||||
P.loc = src
|
||||
else
|
||||
to_chat(user, "\red This frame does not accept circuit boards of this type!")
|
||||
to_chat(user, "<span class='warning'>This frame does not accept circuit boards of this type!</span>")
|
||||
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
||||
playsound(src.loc, P.usesound, 50, 1)
|
||||
to_chat(user, "\blue You screw the circuit board into place.")
|
||||
to_chat(user, "<span class='notice'>You screw the circuit board into place.</span>")
|
||||
src.state = 2
|
||||
src.icon_state = "2"
|
||||
if(istype(P, /obj/item/weapon/crowbar) && circuit)
|
||||
playsound(src.loc, P.usesound, 50, 1)
|
||||
to_chat(user, "\blue You remove the circuit board.")
|
||||
to_chat(user, "<span class='notice'>You remove the circuit board.</span>")
|
||||
src.state = 1
|
||||
src.icon_state = "0"
|
||||
circuit.loc = src.loc
|
||||
@@ -133,7 +133,7 @@
|
||||
if(2)
|
||||
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
||||
playsound(src.loc, P.usesound, 50, 1)
|
||||
to_chat(user, "\blue You unfasten the circuit board.")
|
||||
to_chat(user, "<span class='notice'>You unfasten the circuit board.</span>")
|
||||
src.state = 1
|
||||
src.icon_state = "1"
|
||||
|
||||
@@ -142,10 +142,10 @@
|
||||
playsound(src.loc, P.usesound, 50, 1)
|
||||
if(do_after(10 * P.toolspeed, target = src))
|
||||
battery.loc = loc
|
||||
to_chat(user, "\blue You remove [battery].")
|
||||
to_chat(user, "<span class='notice'>You remove [battery].</span>")
|
||||
battery = null
|
||||
else
|
||||
to_chat(user, "\red There's no battery to remove!")
|
||||
to_chat(user, "<span class='warning'>There's no battery to remove!</span>")
|
||||
|
||||
if(istype(P, /obj/item/weapon/stock_parts/cell))
|
||||
if(!battery)
|
||||
@@ -153,9 +153,9 @@
|
||||
if(do_after(5 * P.toolspeed, target = src))
|
||||
battery = P
|
||||
P.loc = src
|
||||
to_chat(user, "\blue You insert [battery].")
|
||||
to_chat(user, "<span class='notice'>You insert [battery].</span>")
|
||||
else
|
||||
to_chat(user, "\red There's already \an [battery] in [src]!")
|
||||
to_chat(user, "<span class='warning'>There's already \an [battery] in [src]!</span>")
|
||||
|
||||
|
||||
if(istype(P, /obj/item/stack/cable_coil))
|
||||
@@ -165,7 +165,7 @@
|
||||
if(P)
|
||||
P:amount -= 5
|
||||
if(!P:amount) qdel(P)
|
||||
to_chat(user, "\blue You add cables to the frame.")
|
||||
to_chat(user, "<span class='notice'>You add cables to the frame.</span>")
|
||||
src.state = 3
|
||||
src.icon_state = "3"
|
||||
if(3)
|
||||
@@ -174,7 +174,7 @@
|
||||
to_chat(user, "There are parts in the way!")
|
||||
return
|
||||
playsound(src.loc, P.usesound, 50, 1)
|
||||
to_chat(user, "\blue You remove the cables.")
|
||||
to_chat(user, "<span class='notice'>You remove the cables.</span>")
|
||||
src.state = 2
|
||||
src.icon_state = "2"
|
||||
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( src.loc )
|
||||
@@ -189,19 +189,19 @@
|
||||
if(do_after(user, 20 * P.toolspeed, target = src))
|
||||
if(P)
|
||||
P:use(2)
|
||||
to_chat(user, "\blue You put in the glass panel.")
|
||||
to_chat(user, "<span class='notice'>You put in the glass panel.</span>")
|
||||
src.state = 4
|
||||
src.icon_state = "4"
|
||||
if(4)
|
||||
if(istype(P, /obj/item/weapon/crowbar))
|
||||
playsound(src.loc, P.usesound, 50, 1)
|
||||
to_chat(user, "\blue You remove the glass panel.")
|
||||
to_chat(user, "<span class='notice'>You remove the glass panel.</span>")
|
||||
src.state = 3
|
||||
src.icon_state = "3"
|
||||
new /obj/item/stack/sheet/glass( src.loc, 2 )
|
||||
if(istype(P, /obj/item/weapon/screwdriver))
|
||||
playsound(src.loc, P.usesound, 50, 1)
|
||||
to_chat(user, "\blue You connect the monitor.")
|
||||
to_chat(user, "<span class='notice'>You connect the monitor.</span>")
|
||||
var/obj/machinery/computer3/B = new src.circuit.build_path ( src.loc, built=1 )
|
||||
/*if(circuit.powernet) B:powernet = circuit.powernet
|
||||
if(circuit.id) B:id = circuit.id
|
||||
@@ -224,7 +224,7 @@
|
||||
*/
|
||||
/obj/structure/computer3frame/proc/remove_peripheral(var/obj/item/I = null)
|
||||
if(!components || !components.len)
|
||||
to_chat(usr, "\red There are no components in [src] to take out!")
|
||||
to_chat(usr, "<span class='warning'>There are no components in [src] to take out!</span>")
|
||||
return 0
|
||||
if(!I)
|
||||
I = input(usr, "Remove which component?","Remove component", null) as null|obj in components
|
||||
@@ -263,7 +263,7 @@
|
||||
else
|
||||
warning("Erronous component in computerframe/remove_peripheral: [I]")
|
||||
I.loc = loc
|
||||
to_chat(usr, "\blue You remove [I]")
|
||||
to_chat(usr, "<span class='notice'>You remove [I]</span>")
|
||||
return 1
|
||||
return 0
|
||||
/obj/structure/computer3frame/proc/insert_peripheral(var/obj/item/I)
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
set src in view(1)
|
||||
|
||||
if(usr.stat || usr.restrained() || usr.lying || !istype(usr, /mob/living))
|
||||
to_chat(usr, "\red You can't do that.")
|
||||
to_chat(usr, "<span class='warning'>You can't do that.</span>")
|
||||
return
|
||||
|
||||
if(!Adjacent(usr))
|
||||
|
||||
@@ -202,7 +202,7 @@
|
||||
if(world.time < (last_change + 15))//To prevent super-spam clicking, reduced process size and annoyance -Sieve
|
||||
return
|
||||
for(var/mob/M in range(3,src))
|
||||
M.show_message("\b ERROR. Recalibrating projetion apparatus.")
|
||||
M.show_message("<b>ERROR. Recalibrating projetion apparatus.</b>")
|
||||
last_change = world.time
|
||||
return
|
||||
|
||||
|
||||
@@ -97,14 +97,14 @@
|
||||
var/removing_zone = href_list["priority_clear"]
|
||||
for(var/zone in priority_alarms)
|
||||
if(ckey(zone) == removing_zone)
|
||||
to_chat(usr, "\green Priority Alert for area [zone] cleared.")
|
||||
to_chat(usr, "<span class=notice'>Priority Alert for area [zone] cleared.</span>")
|
||||
priority_alarms -= zone
|
||||
|
||||
if("minor_clear" in href_list)
|
||||
var/removing_zone = href_list["minor_clear"]
|
||||
for(var/zone in minor_alarms)
|
||||
if(ckey(zone) == removing_zone)
|
||||
to_chat(usr, "\green Minor Alert for area [zone] cleared.")
|
||||
to_chat(usr, "<span class=notice'>Minor Alert for area [zone] cleared.</span>")
|
||||
minor_alarms -= zone
|
||||
|
||||
computer.updateUsrDialog()
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
|
||||
opened = !opened
|
||||
if(opened)
|
||||
to_chat(usr, "\blue The access panel is now open.")
|
||||
to_chat(usr, "<span class='notice'>The access panel is now open.</span>")
|
||||
else
|
||||
to_chat(usr, "\blue The access panel is now closed.")
|
||||
to_chat(usr, "<span class='notice'>The access panel is now closed.</span>")
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
if( istype(I) && I.imp_in)
|
||||
var/mob/living/carbon/R = I.imp_in
|
||||
log_say("PrisonComputer3 message: [key_name(usr)]->[key_name(R)] : [warning]")
|
||||
to_chat(R, "\green You hear a voice in your head saying: '[warning]'")
|
||||
to_chat(R, "<span class=notice'>You hear a voice in your head saying: '[warning]'</span>")
|
||||
|
||||
interact()
|
||||
return
|
||||
|
||||
@@ -118,14 +118,14 @@
|
||||
if(istype(I))
|
||||
if(src.check_access(I))
|
||||
if(!status)
|
||||
message_admins("\blue [key_name_admin(usr)] has initiated the global cyborg killswitch!")
|
||||
log_game("\blue [key_name(usr)] has initiated the global cyborg killswitch!")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] has initiated the global cyborg killswitch!</span>")
|
||||
log_game("<span class='notice'>[key_name(usr)] has initiated the global cyborg killswitch!</span>")
|
||||
src.status = 1
|
||||
src.start_sequence()
|
||||
src.temp = null
|
||||
|
||||
else
|
||||
to_chat(usr, "\red Access Denied.")
|
||||
to_chat(usr, "<span class='warning'>Access Denied.</span>")
|
||||
|
||||
if("stop" in href_list)
|
||||
src.temp = {"
|
||||
@@ -163,11 +163,11 @@
|
||||
R.ResetSecurityCodes()
|
||||
|
||||
else
|
||||
message_admins("\blue [key_name_admin(usr)] detonated [R.name]!")
|
||||
log_game("\blue [key_name_admin(usr)] detonated [R.name]!")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] detonated [R.name]!</span>")
|
||||
log_game("<span class='notice'>[key_name_admin(usr)] detonated [R.name]!</span>")
|
||||
R.self_destruct()
|
||||
else
|
||||
to_chat(usr, "\red Access Denied.")
|
||||
to_chat(usr, "<span class='warning'>Access Denied.</span>")
|
||||
|
||||
if("stopbot" in href_list)
|
||||
if(computer.allowed(usr))
|
||||
@@ -176,7 +176,7 @@
|
||||
var/choice = input("Are you certain you wish to [R.canmove ? "lock down" : "release"] [R.name]?") in list("Confirm", "Abort")
|
||||
if(choice == "Confirm")
|
||||
if(R && istype(R))
|
||||
message_admins("\blue [key_name_admin(usr)] [R.canmove ? "locked down" : "released"] [R.name]!")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] [R.canmove ? "locked down" : "released"] [R.name]!</span>")
|
||||
log_game("[key_name(usr)] [R.canmove ? "locked down" : "released"] [R.name]!")
|
||||
R.canmove = !R.canmove
|
||||
if(R.lockcharge)
|
||||
@@ -189,7 +189,7 @@
|
||||
to_chat(R, "You have been locked down!")
|
||||
|
||||
else
|
||||
to_chat(usr, "\red Access Denied.")
|
||||
to_chat(usr, "<span class='warning'>Access Denied.</span>")
|
||||
|
||||
if("magbot" in href_list)
|
||||
if(computer.allowed(usr))
|
||||
@@ -198,7 +198,7 @@
|
||||
var/choice = input("Are you certain you wish to hack [R.name]?") in list("Confirm", "Abort")
|
||||
if(choice == "Confirm")
|
||||
if(R && istype(R))
|
||||
// message_admins("\blue [key_name_admin(usr)] emagged [R.name] using robotic console!")
|
||||
// message_admins("<span class='notice'>[key_name_admin(usr)] emagged [R.name] using robotic console!</span>")
|
||||
log_game("[key_name(usr)] emagged [R.name] using robotic console!")
|
||||
R.emagged = 1
|
||||
if(R.mind.special_role)
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
set src in view(1)
|
||||
|
||||
if(usr.stat || usr.restrained() || usr.lying || !istype(usr, /mob/living))
|
||||
to_chat(usr, "\red You can't do that.")
|
||||
to_chat(usr, "<span class='warning'>You can't do that.</span>")
|
||||
return
|
||||
|
||||
if(!Adjacent(usr))
|
||||
@@ -67,7 +67,7 @@
|
||||
stored_computer.manipulating = 0
|
||||
qdel(src)
|
||||
else
|
||||
to_chat(usr, "\red You are already opening the computer!")
|
||||
to_chat(usr, "<span class='warning'>You are already opening the computer!</span>")
|
||||
|
||||
|
||||
AltClick()
|
||||
@@ -136,7 +136,7 @@
|
||||
set src in view(1)
|
||||
|
||||
if(usr.stat || usr.restrained() || usr.lying || !istype(usr, /mob/living))
|
||||
to_chat(usr, "\red You can't do that.")
|
||||
to_chat(usr, "<span class='warning'>You can't do that.</span>")
|
||||
return
|
||||
|
||||
if(!Adjacent(usr))
|
||||
|
||||
@@ -129,6 +129,12 @@
|
||||
icon_state = "zeldacrowbar"
|
||||
item_state = "crowbar"
|
||||
|
||||
/obj/item/clothing/glasses/monocle/fluff/trubus //Trubus: Wolf O'Shaw
|
||||
name = "Gold Thermal Eyepatch"
|
||||
desc = "Wolf's non-functional thermal eyepatch."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "wolf_eyepatch"
|
||||
|
||||
/obj/item/clothing/glasses/meson/fluff/book_berner_1 // Adrkiller59: Adam Cooper
|
||||
name = "bespectacled mesonic surveyors"
|
||||
desc = "One of the older meson scanner models retrofitted to perform like its modern counterparts."
|
||||
@@ -140,6 +146,28 @@
|
||||
desc = "A weathered Vox thermonocle, doesn't seem to work anymore."
|
||||
icon_state = "thermoncle"
|
||||
|
||||
/obj/item/device/fluff/rapid_wheelchair_kit //Rapidvalj: Hakikarahiti
|
||||
name = "wheelchair conversion kit"
|
||||
desc = "An assorted set of exchangable parts for a wheelchair."
|
||||
icon_state = "modkit"
|
||||
|
||||
/obj/item/device/fluff/rapid_wheelchair_kit/afterattack(atom/target, mob/user, proximity)
|
||||
if(!proximity || !ishuman(user) || user.incapacitated())
|
||||
return
|
||||
|
||||
if(istype(target, /obj/structure/stool/bed/chair/wheelchair) && !istype(target, /obj/structure/stool/bed/chair/wheelchair/bike))
|
||||
to_chat(user, "<span class='notice'>You modify the appearance of [target].</span>")
|
||||
var/obj/structure/stool/bed/chair/wheelchair/chair = target
|
||||
chair.icon = 'icons/obj/custom_items.dmi'
|
||||
chair.icon_state = "vox_wheelchair"
|
||||
chair.name = "vox wheelchair"
|
||||
chair.desc = "A luxurious Vox Wheelchair, weathered from use."
|
||||
chair.handle_rotation()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='warning'>You can't modify [target]!</span>")
|
||||
|
||||
/obj/item/weapon/lighter/zippo/fluff/purple // GodOfOreos: Jason Conrad
|
||||
name = "purple engraved zippo"
|
||||
desc = "All craftsspacemanship is of the highest quality. It is encrusted with refined plasma sheets. On the item is an image of a dwarf and the words 'Strike the Earth!' etched onto the side."
|
||||
@@ -235,6 +263,32 @@
|
||||
to_chat(target, "<span class='notice'>You comb your tail with the [src].</span>")
|
||||
used = 1
|
||||
|
||||
/obj/item/device/fluff/desolate_baton_kit //DesolateG: Michael steampunk_witch
|
||||
name = "stun baton converstion kit"
|
||||
desc = "Some sci-fi looking parts for a stun baton."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "scifikit"
|
||||
w_class = 2
|
||||
|
||||
/obj/item/device/fluff/desolate_baton_kit/afterattack(atom/target, mob/user, proximity)
|
||||
if(!proximity || !ishuman(user) || user.incapacitated())
|
||||
return
|
||||
|
||||
if(istype(target, /obj/item/weapon/melee/baton) && !istype(target, /obj/item/weapon/melee/baton/cattleprod))
|
||||
to_chat(user, "<span class='notice'>You modify the appearance of [target].</span>")
|
||||
var/obj/item/weapon/melee/baton/the_baton = target
|
||||
the_baton.base_icon = "desolate_baton"
|
||||
the_baton.item_state = "desolate_baton"
|
||||
the_baton.icon = 'icons/obj/custom_items.dmi'
|
||||
the_baton.lefthand_file = 'icons/mob/inhands/fluff_lefthand.dmi'
|
||||
the_baton.righthand_file = 'icons/mob/inhands/fluff_righthand.dmi'
|
||||
the_baton.update_icon()
|
||||
user.update_icons()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='warning'>You can't modify [target]!</span>")
|
||||
|
||||
/obj/item/device/fluff/cardgage_helmet_kit //captain cardgage: Richard Ulery
|
||||
name = "welding helmet modkit"
|
||||
desc = "Some spraypaint and a stencil, perfect for painting flames onto a welding helmet!"
|
||||
@@ -244,14 +298,14 @@
|
||||
throwforce = 0
|
||||
|
||||
/obj/item/device/fluff/cardgage_helmet_kit/afterattack(atom/target, mob/user, proximity)
|
||||
if(!proximity || !ishuman(user) || user.lying)
|
||||
if(!proximity || !ishuman(user) || user.incapacitated())
|
||||
return
|
||||
|
||||
if(istype(target, /obj/item/clothing/head/welding))
|
||||
to_chat(user, "<span class='notice'>You modify the appearance of [target].</span>")
|
||||
|
||||
var/obj/item/clothing/head/welding/flamedecal/P = new(get_turf(target))
|
||||
transfer_fingerprints_to(P)
|
||||
target.transfer_fingerprints_to(P)
|
||||
qdel(target)
|
||||
qdel(src)
|
||||
return
|
||||
@@ -269,7 +323,7 @@
|
||||
throwforce = 0
|
||||
|
||||
/obj/item/device/fluff/shadey_plasman_modkit/afterattack(atom/target, mob/user, proximity)
|
||||
if(!proximity || !ishuman(user) || user.lying)
|
||||
if(!proximity || !ishuman(user) || user.incapacitated())
|
||||
return
|
||||
var/mob/living/carbon/human/H = user
|
||||
|
||||
@@ -326,6 +380,7 @@
|
||||
/obj/item/clothing/glasses/hud/security/sunglasses/fluff/voxxyhud //LP Spartan: Kaskreyarawkta
|
||||
name = "VoxxyHUD"
|
||||
desc = "A worn down visor from a vox raider's gear, crudely ripped from its helmet and linked into the security systems of the station. The word 'Kask' is scratched into the side."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "hud-spartan"
|
||||
|
||||
//////////// Hats ////////////
|
||||
@@ -341,13 +396,12 @@
|
||||
desc = "Fuzzy, and also stained with blood."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "polarbearpelt"
|
||||
item_state = "polarbearpelt"
|
||||
|
||||
/obj/item/clothing/head/fluff/sparkyninja_beret // Sparkyninja: Neil Wilkinson
|
||||
name = "royal marines commando beret"
|
||||
desc = "Dark Green beret with an old insignia on it."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "sparkyninja_beret"
|
||||
item_state = "sparkyninja_beret"
|
||||
|
||||
/obj/item/clothing/head/beret/fluff/sigholt //sigholtstarsong: Sigholt Starsong
|
||||
name = "Lieutenant Starsong's beret"
|
||||
@@ -378,25 +432,29 @@
|
||||
/obj/item/clothing/head/beret/fluff/linda //Epic_Charger: Linda Clark
|
||||
name = "Green beret"
|
||||
desc = "A beret, an artist's favorite headwear. This one has two holes cut on the edges."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "linda_beret"
|
||||
|
||||
/obj/item/clothing/head/fluff/kaki //Rapidvalj: Kakicharakiti
|
||||
name = "sleek fancy leader hat"
|
||||
desc = "A uniquely colored vox leader hat. Has some signs of wear."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "kakicharakiti"
|
||||
|
||||
//////////// Suits ////////////
|
||||
/obj/item/clothing/suit/fluff
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
actions_types = list()
|
||||
ignore_suitadjust = 1
|
||||
adjust_flavour = null
|
||||
species_fit = null
|
||||
sprite_sheets = null
|
||||
|
||||
/obj/item/clothing/suit/fluff/dusty_jacket //ComputerlessCitizen: Screech
|
||||
name = "Dusty Jacket"
|
||||
desc = "A worn leather jacket. Some burn holes have been patched."
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "dusty_jacket"
|
||||
ignore_suitadjust = 1
|
||||
actions_types = list()
|
||||
adjust_flavour = null
|
||||
species_fit = null
|
||||
sprite_sheets = null
|
||||
|
||||
/obj/item/clothing/suit/storage/labcoat/fluff/aeneas_rinil //Socialsystem: Lynn Fea
|
||||
name = "Robotics labcoat"
|
||||
@@ -421,6 +479,7 @@
|
||||
/obj/item/clothing/suit/fluff/kluys // Kluys: Cripty Pandaen
|
||||
name = "Nano Fibre Jacket"
|
||||
desc = "A Black Suit made out of nanofibre. The newest of cyberpunk fashion using hightech liquid to solid materials."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "Kluysfluff1"
|
||||
item_state = "Kluysfluff1"
|
||||
blood_overlay_type = "coat"
|
||||
@@ -467,15 +526,29 @@
|
||||
/obj/item/clothing/suit/hooded/hoodie/fluff/linda // Epic_Charger: Linda Clark
|
||||
name = "Green Nanotrasen Hoodie"
|
||||
desc = "A green hoodie with the Nanotrasen logo on the back. It looks weathered."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "linda_hoodie"
|
||||
hoodtype = /obj/item/clothing/head/hood/fluff/linda
|
||||
|
||||
/obj/item/clothing/head/hood/fluff/linda //Epic_Charger: Linda Clark
|
||||
icon_state = "greenhood"
|
||||
|
||||
/obj/item/clothing/suit/hooded/fluff/bone //Doru7: Jack Bone
|
||||
name = "skeleton suit"
|
||||
desc = "A spooky full-body suit! This one doesn't glow in the dark."
|
||||
body_parts_covered = HEAD|UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "skeleton_suit"
|
||||
hoodtype = /obj/item/clothing/head/hood/fluff/skeleton
|
||||
|
||||
/obj/item/clothing/head/hood/fluff/skeleton
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "skeleton_hood"
|
||||
|
||||
/obj/item/clothing/suit/armor/shodanscoat // RazekPraxis: SHODAN
|
||||
name = "SHODAN's Captain's Coat"
|
||||
desc = "A black coat with gold trim and an old US Chevron printed on the back. Edgy."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "shodancoat"
|
||||
|
||||
//////////// Uniforms ////////////
|
||||
@@ -496,6 +569,15 @@
|
||||
item_color = "elishirt"
|
||||
displays_id = 0
|
||||
|
||||
/obj/item/clothing/under/fluff/jay_turtleneck // Jayfeather: Jay Wingler
|
||||
name = "Mar's Pattern Custom Turtleneck"
|
||||
desc = "It seems to be lightly dusted in orange fuzz, and damp with the smell of anti-freeze. It has a strange symbol in the middle."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "jaywingler"
|
||||
item_state = "jaywingler"
|
||||
item_color = "jaywingler"
|
||||
displays_id = 0
|
||||
|
||||
/obj/item/clothing/under/psysuit/fluff/isaca_sirius_1 // Xilia: Isaca Sirius
|
||||
name = "Isaca's suit"
|
||||
desc = "Black, comfortable and nicely fitting suit. Made not to hinder the wearer in any way. Made of some exotic fabric. And some strange glowing jewel at the waist. Name labels says; Property of Isaca Sirius; The Seeder."
|
||||
@@ -542,6 +624,9 @@
|
||||
/obj/item/clothing/under/fluff/aegis //PlagueWalker: A.E.G.I.S.
|
||||
name = "gilded waistcoat"
|
||||
desc = "This black, gold-trimmed, rather expensive-looking uniform laced with fine materials appears comfortable despite its stiffness."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
lefthand_file = 'icons/mob/inhands/fluff_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/fluff_righthand.dmi'
|
||||
icon_state = "aegisuniform"
|
||||
item_state = "aegisuniform"
|
||||
item_color = "aegisuniform"
|
||||
@@ -552,9 +637,9 @@
|
||||
/obj/item/clothing/mask/bandana/fluff/dar //sasanek12: Dar'Konr
|
||||
name = "camo bandana"
|
||||
desc = "It's a worn-out bandana in camo paint"
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "bandcamo"
|
||||
|
||||
|
||||
/obj/item/clothing/mask/gas/sechailer/fluff/spartan //LP Spartan: Kaskreyarawkta
|
||||
name = "minimal gasmask"
|
||||
desc = "Designed to cover as little of face as possible while still being a functional gasmask."
|
||||
@@ -696,6 +781,7 @@
|
||||
/obj/item/weapon/storage/backpack/fluff/krich_back //lizardzsi: Krichahka
|
||||
name = "Voxcaster"
|
||||
desc = "Battered, Sol-made military radio backpack that had its speakers fried from playing Vox opera. The words 'Swift-Talon' are crudely scratched onto its side."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "voxcaster_fluff"
|
||||
|
||||
/obj/item/clothing/head/wizard/fake/fluff/dreamy //phantasmicdream : Dreamy Rockwall
|
||||
@@ -744,4 +830,3 @@
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/bottle/fluff/moonshine(src)
|
||||
|
||||
|
||||
@@ -242,9 +242,7 @@ log transactions
|
||||
T.date = current_date_string
|
||||
T.time = worldtime2text()
|
||||
authenticated_account.transaction_log.Add(T)
|
||||
|
||||
to_chat(usr, "[bicon(src)]<span class='notice'>Access granted. Welcome user '[authenticated_account.owner_name].'</span>")
|
||||
|
||||
previous_account_number = tried_account_num
|
||||
if("withdrawal")
|
||||
var/amount = max(text2num(href_list["funds_amount"]),0)
|
||||
|
||||
+12
-12
@@ -403,7 +403,7 @@ var/const/POS_HEADER = {"<html>
|
||||
src.attack_hand(usr)
|
||||
return
|
||||
if(usr != logged_in)
|
||||
to_chat(usr, "\red [logged_in.name] is already logged in. You cannot use this machine until they log out.")
|
||||
to_chat(usr, "<span class='warning'>[logged_in.name] is already logged in. You cannot use this machine until they log out.</span>")
|
||||
return
|
||||
if("act" in href_list)
|
||||
switch(href_list["act"])
|
||||
@@ -431,7 +431,7 @@ var/const/POS_HEADER = {"<html>
|
||||
for(var/list/line in splittext(href_list["csv"],"\n"))
|
||||
var/list/cells = splittext(line,",")
|
||||
if(cells.len<2)
|
||||
to_chat(usr, "\red The CSV must have at least two columns: Product Name, followed by Price (as a number).")
|
||||
to_chat(usr, "<span class='warning'>The CSV must have at least two columns: Product Name, followed by Price (as a number).</span>")
|
||||
src.attack_hand(usr)
|
||||
return
|
||||
var/line_item/LI = new
|
||||
@@ -445,7 +445,7 @@ var/const/POS_HEADER = {"<html>
|
||||
if("Save Settings")
|
||||
var/datum/money_account/new_linked_account = get_money_account(text2num(href_list["payableto"]),z)
|
||||
if(!new_linked_account)
|
||||
to_chat(usr, "\red Unable to link new account.")
|
||||
to_chat(usr, "<span class='warning'>Unable to link new account.</span>")
|
||||
else
|
||||
linked_account = new_linked_account
|
||||
screen=POS_SCREEN_SETTINGS
|
||||
@@ -482,7 +482,7 @@ var/const/POS_HEADER = {"<html>
|
||||
if(istype(A,/obj/item/weapon/card/id))
|
||||
var/obj/item/weapon/card/id/I = A
|
||||
if(!logged_in)
|
||||
user.visible_message("\blue The machine beeps, and logs you in","You hear a beep.")
|
||||
user.visible_message("<span class='notice'>The machine beeps, and logs you in</span>","You hear a beep.")
|
||||
logged_in = user
|
||||
screen=POS_SCREEN_ORDER
|
||||
update_icon()
|
||||
@@ -490,23 +490,23 @@ var/const/POS_HEADER = {"<html>
|
||||
return
|
||||
else
|
||||
if(!linked_account)
|
||||
visible_message("\red The machine buzzes, and flashes \"NO LINKED ACCOUNT\" on the screen.","You hear a buzz.")
|
||||
visible_message("<span class='warning'>The machine buzzes, and flashes \"NO LINKED ACCOUNT\" on the screen.</span>","You hear a buzz.")
|
||||
flick(src,"pos-error")
|
||||
return
|
||||
if(screen!=POS_SCREEN_FINALIZE)
|
||||
visible_message("\blue The machine buzzes.","\red You hear a buzz.")
|
||||
visible_message("<span class='notice'>The machine buzzes.</span>","<span class='warning'>You hear a buzz.</span>")
|
||||
flick(src,"pos-error")
|
||||
return
|
||||
var/datum/money_account/acct = get_card_account(I)
|
||||
if(!acct)
|
||||
visible_message("\red The machine buzzes, and flashes \"NO ACCOUNT\" on the screen.","You hear a buzz.")
|
||||
visible_message("<span class='warning'>The machine buzzes, and flashes \"NO ACCOUNT\" on the screen.</span>","You hear a buzz.")
|
||||
flick(src,"pos-error")
|
||||
return
|
||||
if(credits_needed > acct.money)
|
||||
visible_message("\red The machine buzzes, and flashes \"NOT ENOUGH FUNDS\" on the screen.","You hear a buzz.")
|
||||
visible_message("<span class='warning'>The machine buzzes, and flashes \"NOT ENOUGH FUNDS\" on the screen.</span>","You hear a buzz.")
|
||||
flick(src,"pos-error")
|
||||
return
|
||||
visible_message("\blue The machine beeps, and begins printing a receipt","You hear a beep.")
|
||||
visible_message("<span class='notice'>The machine beeps, and begins printing a receipt</span>","You hear a beep.")
|
||||
PrintReceipt()
|
||||
NewOrder()
|
||||
acct.charge(credits_needed,linked_account,"Purchase at POS #[id].")
|
||||
@@ -514,17 +514,17 @@ var/const/POS_HEADER = {"<html>
|
||||
screen=POS_SCREEN_ORDER
|
||||
else if(istype(A, /obj/item/stack/spacecash))
|
||||
if(!linked_account)
|
||||
visible_message("\red The machine buzzes, and flashes \"NO LINKED ACCOUNT\" on the screen.","You hear a buzz.")
|
||||
visible_message("<span class='warning'>The machine buzzes, and flashes \"NO LINKED ACCOUNT\" on the screen.</span>","You hear a buzz.")
|
||||
flick(src,"pos-error")
|
||||
return
|
||||
if(!logged_in || screen!=POS_SCREEN_FINALIZE)
|
||||
visible_message("\blue The machine buzzes.","\red You hear a buzz.")
|
||||
visible_message("<span class='notice'>The machine buzzes.</span>","<span class='warning'>You hear a buzz.</span>")
|
||||
flick(src,"pos-error")
|
||||
return
|
||||
var/obj/item/stack/spacecash/C = A
|
||||
credits_held += C.amount
|
||||
if(credits_held >= credits_needed)
|
||||
visible_message("\blue The machine beeps, and begins printing a receipt","You hear a beep and the sound of paper being shredded.")
|
||||
visible_message("<span class='notice'>The machine beeps, and begins printing a receipt</span>","You hear a beep and the sound of paper being shredded.")
|
||||
PrintReceipt()
|
||||
NewOrder()
|
||||
credits_held -= credits_needed
|
||||
|
||||
@@ -133,7 +133,7 @@ var/global/Holiday = null
|
||||
world.update_status()
|
||||
Holiday_Game_Start()
|
||||
|
||||
message_admins("\blue ADMIN: Event: [key_name_admin(src)] force-set Holiday to \"[Holiday]\"")
|
||||
message_admins("<span class='notice'>ADMIN: Event: [key_name_admin(src)] force-set Holiday to \</span>"[Holiday]\"")
|
||||
log_admin("[key_name(src)] force-set Holiday to \"[Holiday]\"")
|
||||
|
||||
|
||||
@@ -174,7 +174,7 @@ var/global/Holiday = null
|
||||
if(!is_station_level(S.z)) continue
|
||||
containers += S
|
||||
|
||||
message_admins("\blue DEBUG: Event: Egg spawned at [Egg.loc] ([Egg.x],[Egg.y],[Egg.z])")*/
|
||||
message_admins("<span class='notice'>DEBUG: Event: Egg spawned at [Egg.loc] ([Egg.x],[Egg.y],[Egg.z])</span>")*/
|
||||
if("End of the World")
|
||||
if(prob(eventchance)) GameOver()
|
||||
|
||||
|
||||
@@ -179,7 +179,7 @@ var/list/ingredients_source = list(
|
||||
return
|
||||
if(href_list["dispense"])
|
||||
dispense_flavour = text2num(href_list["dispense"])
|
||||
visible_message("\blue[usr] sets [src] to dispense [get_icecream_flavour_string(dispense_flavour)] flavoured icecream.")
|
||||
visible_message("<span class='notice'>[usr] sets [src] to dispense [get_icecream_flavour_string(dispense_flavour)] flavoured icecream.</span>")
|
||||
|
||||
if(href_list["cone"])
|
||||
var/dispense_cone = text2num(href_list["cone"])
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
garbageCollector.del_everything = !garbageCollector.del_everything
|
||||
// to_chat(world, "<b>GC: qdel turned [garbageCollector.del_everything ? "off" : "on"].</b>")
|
||||
log_admin("[key_name(usr)] turned qdel [garbageCollector.del_everything ? "off" : "on"].")
|
||||
message_admins("\blue [key_name_admin(usr)] turned qdel [garbageCollector.del_everything ? "off" : "on"].", 1)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] turned qdel [garbageCollector.del_everything ? "off" : "on"].</span>", 1)
|
||||
|
||||
/client/proc/cmd_display_del_log()
|
||||
set category = "Debug"
|
||||
|
||||
@@ -354,5 +354,5 @@
|
||||
//update our hub status
|
||||
world.update_status()
|
||||
|
||||
message_admins("\blue ADMIN: Event: [key_name(src)] force-set Holiday to \"[H]\"")
|
||||
message_admins("<span class='notice'>ADMIN: Event: [key_name_admin(src)] force-set Holiday to \"[H]\"</span>")
|
||||
log_admin("[key_name(src)] force-set Holiday to \"[H]\"")
|
||||
@@ -79,7 +79,7 @@ var/list/karma_spenders = list()
|
||||
to_chat(src, "<span class='warning'>You can't spend karma on someone connected from the same IP.</span>")
|
||||
return 0
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
/mob/verb/spend_karma_list()
|
||||
set name = "Award Karma"
|
||||
@@ -118,8 +118,6 @@ var/list/karma_spenders = list()
|
||||
if(!M)
|
||||
to_chat(usr, "Please right click a mob to award karma directly, or use the 'Award Karma' verb to select a player from the player listing.")
|
||||
return
|
||||
if(!can_give_karma_to_mob(M))
|
||||
return
|
||||
if(alert("Give [M.name] good karma?", "Karma", "Yes", "No") != "Yes")
|
||||
return
|
||||
if(!can_give_karma_to_mob(M))
|
||||
@@ -154,7 +152,7 @@ var/list/karma_spenders = list()
|
||||
/client/proc/verify_karma()
|
||||
var/currentkarma=0
|
||||
if(!dbcon.IsConnected())
|
||||
to_chat(usr, "\red Unable to connect to karma database. Please try again later.<br>")
|
||||
to_chat(usr, "<span class='warning'>Unable to connect to karma database. Please try again later.<br></span>")
|
||||
return
|
||||
else
|
||||
var/DBQuery/query = dbcon.NewQuery("SELECT karma, karmaspent FROM [format_table_name("karmatotals")] WHERE byondkey='[src.ckey]'")
|
||||
@@ -380,7 +378,7 @@ You've gained <b>[totalkarma]</b> total karma in your time here.<br>"}
|
||||
else if(name == "Nanotrasen Recruiter")
|
||||
cost = 10
|
||||
else
|
||||
to_chat(usr, "\red That job is not refundable.")
|
||||
to_chat(usr, "<span class='warning'>That job is not refundable.</span>")
|
||||
return
|
||||
|
||||
var/DBQuery/query = dbcon.NewQuery("SELECT * FROM [format_table_name("whitelist")] WHERE ckey='[usr.ckey]'")
|
||||
@@ -401,7 +399,7 @@ You've gained <b>[totalkarma]</b> total karma in your time here.<br>"}
|
||||
else if(type == "species")
|
||||
typelist = splittext(dbspecies,",")
|
||||
else
|
||||
to_chat(usr, "\red Type [type] is not a valid column.")
|
||||
to_chat(usr, "<span class='warning'>Type [type] is not a valid column.</span>")
|
||||
|
||||
if(name in typelist)
|
||||
typelist -= name
|
||||
@@ -417,10 +415,10 @@ You've gained <b>[totalkarma]</b> total karma in your time here.<br>"}
|
||||
message_admins("[key_name(usr)] has been refunded [cost] karma for [type] [name].")
|
||||
karmacharge(text2num(cost),1)
|
||||
else
|
||||
to_chat(usr, "\red You have not bought [name].")
|
||||
to_chat(usr, "<span class='warning'>You have not bought [name].</span>")
|
||||
|
||||
else
|
||||
to_chat(usr, "\red Your ckey ([dbckey]) was not found.")
|
||||
to_chat(usr, "<span class='warning'>Your ckey ([dbckey]) was not found.</span>")
|
||||
|
||||
/client/proc/checkpurchased(var/name = null) // If the first parameter is null, return a full list of purchases
|
||||
var/DBQuery/query = dbcon.NewQuery("SELECT * FROM [format_table_name("whitelist")] WHERE ckey='[usr.ckey]'")
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
"uranium" = /obj/item/clothing/gloves/ring/uranium)
|
||||
var/typekey = typelist[cmineral]
|
||||
if(ispath(typekey))
|
||||
to_chat(user, "\blue You make [src] into a ring.")
|
||||
to_chat(user, "<span class='notice'>You make [src] into a ring.</span>")
|
||||
new typekey(get_turf(loc))
|
||||
qdel(src)
|
||||
else ..()
|
||||
|
||||
@@ -308,7 +308,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
set name = "Toggle AntagHUD"
|
||||
set desc = "Toggles AntagHUD allowing you to see who is the antagonist"
|
||||
if(!config.antag_hud_allowed && !client.holder)
|
||||
to_chat(src, "\red Admins have disabled this for this round.")
|
||||
to_chat(src, "<span class='warning'>Admins have disabled this for this round.</span>")
|
||||
return
|
||||
if(!client)
|
||||
return
|
||||
@@ -462,11 +462,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
/mob/dead/observer/memory()
|
||||
set hidden = 1
|
||||
to_chat(src, "\red You are dead! You have no mind to store memory!")
|
||||
to_chat(src, "<span class='warning'>You are dead! You have no mind to store memory!</span>")
|
||||
|
||||
/mob/dead/observer/add_memory()
|
||||
set hidden = 1
|
||||
to_chat(src, "\red You are dead! You have no mind to store memory!")
|
||||
to_chat(src, "<span class='warning'>You are dead! You have no mind to store memory!</span>")
|
||||
|
||||
/mob/dead/observer/verb/analyze_air()
|
||||
set name = "Analyze Air"
|
||||
@@ -485,9 +485,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
to_chat(src, "<span class='boldnotice'>Results:</span>")
|
||||
if(abs(pressure - ONE_ATMOSPHERE) < 10)
|
||||
to_chat(src, "\blue Pressure: [round(pressure,0.1)] kPa")
|
||||
to_chat(src, "<span class='notice'>Pressure: [round(pressure,0.1)] kPa</span>")
|
||||
else
|
||||
to_chat(src, "\red Pressure: [round(pressure,0.1)] kPa")
|
||||
to_chat(src, "<span class='warning'>Pressure: [round(pressure,0.1)] kPa</span>")
|
||||
if(total_moles)
|
||||
var/o2_concentration = environment.oxygen/total_moles
|
||||
var/n2_concentration = environment.nitrogen/total_moles
|
||||
@@ -496,28 +496,28 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration)
|
||||
if(abs(n2_concentration - N2STANDARD) < 20)
|
||||
to_chat(src, "\blue Nitrogen: [round(n2_concentration*100)]% ([round(environment.nitrogen,0.01)] moles)")
|
||||
to_chat(src, "<span class='notice'>Nitrogen: [round(n2_concentration*100)]% ([round(environment.nitrogen,0.01)] moles)</span>")
|
||||
else
|
||||
to_chat(src, "\red Nitrogen: [round(n2_concentration*100)]% ([round(environment.nitrogen,0.01)] moles)")
|
||||
to_chat(src, "<span class='warning'>Nitrogen: [round(n2_concentration*100)]% ([round(environment.nitrogen,0.01)] moles)</span>")
|
||||
|
||||
if(abs(o2_concentration - O2STANDARD) < 2)
|
||||
to_chat(src, "\blue Oxygen: [round(o2_concentration*100)]% ([round(environment.oxygen,0.01)] moles)")
|
||||
to_chat(src, "<span class='notice'>Oxygen: [round(o2_concentration*100)]% ([round(environment.oxygen,0.01)] moles)</span>")
|
||||
else
|
||||
to_chat(src, "\red Oxygen: [round(o2_concentration*100)]% ([round(environment.oxygen,0.01)] moles)")
|
||||
to_chat(src, "<span class='warning'>Oxygen: [round(o2_concentration*100)]% ([round(environment.oxygen,0.01)] moles)</span>")
|
||||
|
||||
if(co2_concentration > 0.01)
|
||||
to_chat(src, "\red CO2: [round(co2_concentration*100)]% ([round(environment.carbon_dioxide,0.01)] moles)")
|
||||
to_chat(src, "<span class='warning'>CO2: [round(co2_concentration*100)]% ([round(environment.carbon_dioxide,0.01)] moles)</span>")
|
||||
else
|
||||
to_chat(src, "\blue CO2: [round(co2_concentration*100)]% ([round(environment.carbon_dioxide,0.01)] moles)")
|
||||
to_chat(src, "<span class='notice'>CO2: [round(co2_concentration*100)]% ([round(environment.carbon_dioxide,0.01)] moles)</span>")
|
||||
|
||||
if(plasma_concentration > 0.01)
|
||||
to_chat(src, "\red Plasma: [round(plasma_concentration*100)]% ([round(environment.toxins,0.01)] moles)")
|
||||
to_chat(src, "<span class='warning'>Plasma: [round(plasma_concentration*100)]% ([round(environment.toxins,0.01)] moles)</span>")
|
||||
|
||||
if(unknown_concentration > 0.01)
|
||||
to_chat(src, "\red Unknown: [round(unknown_concentration*100)]% ([round(unknown_concentration*total_moles,0.01)] moles)")
|
||||
to_chat(src, "<span class='warning'>Unknown: [round(unknown_concentration*100)]% ([round(unknown_concentration*total_moles,0.01)] moles)</span>")
|
||||
|
||||
to_chat(src, "\blue Temperature: [round(environment.temperature-T0C,0.1)]°C")
|
||||
to_chat(src, "\blue Heat Capacity: [round(environment.heat_capacity(),0.1)]")
|
||||
to_chat(src, "<span class='notice'>Temperature: [round(environment.temperature-T0C,0.1)]°C</span>")
|
||||
to_chat(src, "<span class='notice'>Heat Capacity: [round(environment.heat_capacity(),0.1)]</span>")
|
||||
|
||||
/mob/dead/observer/verb/view_manifest()
|
||||
set name = "View Crew Manifest"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
if(src.client)
|
||||
if(src.client.prefs.muted & MUTE_DEADCHAT)
|
||||
to_chat(src, "\red You cannot talk in deadchat (muted).")
|
||||
to_chat(src, "<span class='warning'>You cannot talk in deadchat (muted).</span>")
|
||||
return
|
||||
|
||||
if(src.client.handle_spam_prevention(message,MUTE_DEADCHAT))
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
if(src.client)
|
||||
if(src.client.prefs.muted & MUTE_DEADCHAT)
|
||||
to_chat(src, "\red You cannot emote in deadchat (muted).")
|
||||
to_chat(src, "<span class='warning'>You cannot emote in deadchat (muted).</span>")
|
||||
return
|
||||
|
||||
if(src.client.handle_spam_prevention(message, MUTE_DEADCHAT))
|
||||
|
||||
@@ -13,6 +13,16 @@
|
||||
return 0 // Proceed with emote
|
||||
//--FalseIncarnate
|
||||
|
||||
/mob/proc/handle_emote_param(var/target, var/not_self, var/vicinity, var/return_mob) //Only returns not null if the target param is valid.
|
||||
var/view_vicinity = vicinity ? vicinity : null //not_self means we'll only return if target is valid and not us
|
||||
if(target) //vicinity is the distance passed to the view proc.
|
||||
for(var/mob/A in view(view_vicinity, null)) //if set, return_mob will cause this proc to return the mob instead of just its name if the target is valid.
|
||||
if(target == A.name && (!not_self || (not_self && target != name)))
|
||||
if(return_mob)
|
||||
return A
|
||||
else
|
||||
return target
|
||||
|
||||
// All mobs should have custom emote, really..
|
||||
/mob/proc/custom_emote(var/m_type=1,var/message = null)
|
||||
|
||||
@@ -86,16 +96,16 @@
|
||||
/mob/proc/emote_dead(var/message)
|
||||
|
||||
if(client.prefs.muted & MUTE_DEADCHAT)
|
||||
to_chat(src, "\red You cannot send deadchat emotes (muted).")
|
||||
to_chat(src, "<span class='warning'>You cannot send deadchat emotes (muted).</span>")
|
||||
return
|
||||
|
||||
if(!(client.prefs.toggles & CHAT_DEAD))
|
||||
to_chat(src, "\red You have deadchat muted.")
|
||||
to_chat(src, "<span class='warning'>You have deadchat muted.</span>")
|
||||
return
|
||||
|
||||
if(!src.client.holder)
|
||||
if(!config.dsay_allowed)
|
||||
to_chat(src, "\red Deadchat is globally muted")
|
||||
to_chat(src, "<span class='warning'>Deadchat is globally muted</span>")
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -220,7 +220,7 @@
|
||||
threatcount += 4
|
||||
|
||||
//Mindshield implants imply trustworthyness
|
||||
if(isloyal(src))
|
||||
if(ismindshielded(src))
|
||||
threatcount -= 1
|
||||
|
||||
return threatcount
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
if(powerc(250))
|
||||
adjustToxLoss(-250)
|
||||
to_chat(src, "\green You begin to evolve!")
|
||||
to_chat(src, "<span class=notice'>You begin to evolve!</span>")
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message(text("<span class='alertalien'>[src] begins to twist and contort!</span>"), 1)
|
||||
var/mob/living/carbon/alien/humanoid/sentinel/praetorian/new_xeno = new(loc)
|
||||
|
||||
@@ -85,6 +85,6 @@
|
||||
if(powerc(250,1))//Can't plant eggs on spess tiles. That's silly.
|
||||
adjustPlasma(-250)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message(text("\green <B>[src] has laid an egg!</B>"), 1)
|
||||
O.show_message(text("<span class=notice'><B>[src] has laid an egg!</B></span>"), 1)
|
||||
new /obj/structure/alien/egg(loc)
|
||||
return
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
return
|
||||
if(src.client)
|
||||
if(client.prefs.muted & MUTE_IC)
|
||||
to_chat(src, "\red You cannot send IC messages (muted).")
|
||||
to_chat(src, "<span class='warning'>You cannot send IC messages (muted).</span>")
|
||||
return
|
||||
if(src.client.handle_spam_prevention(message,MUTE_IC))
|
||||
return
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
to_chat(O, text("<B>[] scurries to the ground!</B>", src))
|
||||
else
|
||||
layer = MOB_LAYER
|
||||
to_chat(src, text("\green You have stopped hiding."))
|
||||
to_chat(src, text("<span class=notice'>You have stopped hiding.</span>"))
|
||||
for(var/mob/O in oviewers(src, null))
|
||||
if((O.client && !( O.blinded )))
|
||||
to_chat(O, text("[] slowly peaks up from the ground...", src))
|
||||
@@ -29,15 +29,15 @@
|
||||
return
|
||||
|
||||
if(handcuffed || legcuffed)
|
||||
to_chat(src, "\red You cannot evolve when you are cuffed.")
|
||||
to_chat(src, "<span class='warning'>You cannot evolve when you are cuffed.</span>")
|
||||
|
||||
if(amount_grown >= max_grown) //TODO ~Carn
|
||||
//green is impossible to read, so i made these blue and changed the formatting slightly
|
||||
to_chat(src, "<span class='boldnotice'>You are growing into a beautiful alien! It is time to choose a caste.</span>")
|
||||
to_chat(src, "\blue There are three to choose from:")
|
||||
to_chat(src, "<B>Hunters</B> \blue are strong and agile, able to hunt away from the hive and rapidly move through ventilation shafts. Hunters generate plasma slowly and have low reserves.")
|
||||
to_chat(src, "<B>Sentinels</B> \blue are tasked with protecting the hive and are deadly up close and at a range. They are not as physically imposing nor fast as the hunters.")
|
||||
to_chat(src, "<B>Drones</B> \blue are the working class, offering the largest plasma storage and generation. They are the only caste which may evolve again, turning into the dreaded alien queen.")
|
||||
to_chat(src, "<span class='notice'>There are three to choose from:</span>")
|
||||
to_chat(src, "<B>Hunters</B> <span class='notice'>are strong and agile, able to hunt away from the hive and rapidly move through ventilation shafts. Hunters generate plasma slowly and have low reserves.</span>")
|
||||
to_chat(src, "<B>Sentinels</B> <span class='notice'>are tasked with protecting the hive and are deadly up close and at a range. They are not as physically imposing nor fast as the hunters.</span>")
|
||||
to_chat(src, "<B>Drones</B> <span class='notice'>are the working class, offering the largest plasma storage and generation. They are the only caste which may evolve again, turning into the dreaded alien queen.</span>")
|
||||
var/alien_caste = alert(src, "Please choose which alien caste you shall belong to.",,"Hunter","Sentinel","Drone")
|
||||
|
||||
var/mob/living/carbon/alien/humanoid/new_xeno
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
if(stat == DEAD) return
|
||||
if(!gibbed && container && istype(container, /obj/item/device/mmi))//If not gibbed but in a container.
|
||||
for(var/mob/O in viewers(container, null))
|
||||
O.show_message(text("<span class='danger'>[]'s MMI flatlines!</span>", src), 1, "\red You hear something flatline.", 2)
|
||||
O.show_message(text("<span class='danger'>[]'s MMI flatlines!</span>", src), 1, "<span class='warning'>You hear something flatline.</span>", 2)
|
||||
container.icon_state = "mmi_dead"
|
||||
stat = DEAD
|
||||
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
|
||||
var/turf/T = get_turf_or_move(src.loc)
|
||||
for(var/mob/M in viewers(T))
|
||||
M.show_message("\blue The positronic brain chimes quietly.")
|
||||
M.show_message("<span class='notice'>The positronic brain chimes quietly.</span>")
|
||||
icon_state = "posibrain-occupied"
|
||||
|
||||
/obj/item/device/mmi/posibrain/proc/reset_search() //We give the players sixty seconds to decide, then reset the timer.
|
||||
@@ -109,7 +109,7 @@
|
||||
|
||||
var/turf/T = get_turf_or_move(src.loc)
|
||||
for(var/mob/M in viewers(T))
|
||||
M.show_message("\blue The positronic brain buzzes quietly, and the golden lights fade away. Perhaps you could try again?")
|
||||
M.show_message("<span class='notice'>The positronic brain buzzes quietly, and the golden lights fade away. Perhaps you could try again?</span>")
|
||||
|
||||
/obj/item/device/mmi/posibrain/Topic(href,href_list)
|
||||
if("signup" in href_list)
|
||||
@@ -122,22 +122,22 @@
|
||||
to_chat(O, "Not looking for a ghost, yet.")
|
||||
return
|
||||
if(!istype(O))
|
||||
to_chat(O, "\red Error.")
|
||||
to_chat(O, "<span class='warning'>Error.</span>")
|
||||
return
|
||||
if(O in ghost_volunteers)
|
||||
to_chat(O, "\blue Removed from registration list.")
|
||||
to_chat(O, "<span class='notice'>Removed from registration list.</span>")
|
||||
ghost_volunteers.Remove(O)
|
||||
return
|
||||
if(!check_observer(O))
|
||||
to_chat(O, "\red You cannot be \a [src].")
|
||||
to_chat(O, "<span class='warning'>You cannot be \a [src].</span>")
|
||||
return
|
||||
if(O.has_enabled_antagHUD == 1 && config.antag_hud_restricted)
|
||||
to_chat(O, "\red Upon using the antagHUD you forfeited the ability to join the round.")
|
||||
to_chat(O, "<span class='warning'>Upon using the antagHUD you forfeited the ability to join the round.</span>")
|
||||
return
|
||||
if(jobban_isbanned(O, "Cyborg") || jobban_isbanned(O,"nonhumandept"))
|
||||
to_chat(O, "\red You are job banned from this role.")
|
||||
to_chat(O, "<span class='warning'>You are job banned from this role.</span>")
|
||||
return
|
||||
to_chat(O., "\blue You've been added to the list of ghosts that may become this [src]. Click again to unvolunteer.")
|
||||
to_chat(O., "<span class='notice'>You've been added to the list of ghosts that may become this [src]. Click again to unvolunteer.</span>")
|
||||
ghost_volunteers.Add(O)
|
||||
|
||||
|
||||
@@ -196,7 +196,7 @@
|
||||
playsound(get_turf(src), 'sound/items/posiping.ogg', 80, 0)
|
||||
var/turf/T = get_turf_or_move(src.loc)
|
||||
for(var/mob/M in viewers(T))
|
||||
M.show_message("\blue The positronic brain pings softly.")
|
||||
M.show_message("<span class='notice'>The positronic brain pings softly.</span>")
|
||||
|
||||
/obj/item/device/mmi/posibrain/ipc
|
||||
desc = "A cube of shining metal, four inches to a side and covered in shallow grooves. The speaker switch is set to 'off'."
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
last_stomach_attack = world.time
|
||||
for(var/mob/M in hearers(4, src))
|
||||
if(M.client)
|
||||
M.show_message(text("\red You hear something rumbling inside [src]'s stomach..."), 2)
|
||||
M.show_message(text("<span class='warning'>You hear something rumbling inside [src]'s stomach...</span>"), 2)
|
||||
|
||||
var/obj/item/I = user.get_active_hand()
|
||||
if(I && I.force)
|
||||
@@ -76,7 +76,7 @@
|
||||
|
||||
for(var/mob/M in viewers(user, null))
|
||||
if(M.client)
|
||||
M.show_message(text("\red <B>[user] attacks [src]'s stomach wall with the [I.name]!"), 2)
|
||||
M.show_message(text("<span class='warning'><B>[user] attacks [src]'s stomach wall with the [I.name]!</span>"), 2)
|
||||
playsound(user.loc, 'sound/effects/attackblob.ogg', 50, 1)
|
||||
|
||||
if(prob(src.getBruteLoss() - 50))
|
||||
@@ -217,8 +217,8 @@
|
||||
if(src == M && istype(src, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = src
|
||||
src.visible_message( \
|
||||
text("\blue [src] examines [].",src.gender==MALE?"himself":"herself"), \
|
||||
"\blue You check yourself for injuries." \
|
||||
text("<span class='notice'>[src] examines [].</span>",src.gender==MALE?"himself":"herself"), \
|
||||
"<span class='notice'>You check yourself for injuries.</span>" \
|
||||
)
|
||||
|
||||
for(var/obj/item/organ/external/org in H.organs)
|
||||
@@ -247,7 +247,7 @@
|
||||
status = "weirdly shapen."
|
||||
if(status == "")
|
||||
status = "OK"
|
||||
src.show_message(text("\t []My [] is [].",status=="OK"?"\blue ":"\red ",org.name,status),1)
|
||||
src.show_message(text("\t []My [] is [].",status=="OK"?"<span class='notice'></span>":"<span class='warning'></span>",org.name,status),1)
|
||||
if(staminaloss)
|
||||
if(staminaloss > 30)
|
||||
to_chat(src, "<span class='info'>You're completely exhausted.</span>")
|
||||
|
||||
@@ -53,6 +53,19 @@
|
||||
|
||||
if(!found_slime_bodypart) //Everyone else fails, skip the emote attempt
|
||||
return
|
||||
|
||||
if("clack", "clacks")
|
||||
if(species.name == "Kidan") //Only Kidan can clack and rightfully so.
|
||||
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm'
|
||||
else //Everyone else fails, skip the emote attempt
|
||||
return
|
||||
|
||||
if("click", "clicks")
|
||||
if(species.name == "Kidan") //Only Kidan can click and rightfully so.
|
||||
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm'
|
||||
else //Everyone else fails, skip the emote attempt
|
||||
return
|
||||
|
||||
if("scream", "screams")
|
||||
on_CD = handle_emote_CD(50) //longer cooldown
|
||||
if("fart", "farts", "flip", "flips", "snap", "snaps")
|
||||
@@ -72,128 +85,73 @@
|
||||
if("me") //OKAY SO RANT TIME, THIS FUCKING HAS TO BE HERE OR A SHITLOAD OF THINGS BREAK
|
||||
return custom_emote(m_type, message) //DO YOU KNOW WHY SHIT BREAKS? BECAUSE SO MUCH OLDCODE CALLS mob.emote("me",1,"whatever_the_fuck_it_wants_to_emote")
|
||||
//WHO THE FUCK THOUGHT THAT WAS A GOOD FUCKING IDEA!?!?
|
||||
|
||||
if("ping", "pings")
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(null, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
var/M = handle_emote_param(param) //Check to see if the param is valid (mob with the param name is in view).
|
||||
|
||||
if(param)
|
||||
message = "<B>[src]</B> pings at [param]."
|
||||
else
|
||||
message = "<B>[src]</B> pings."
|
||||
message = "<B>[src]</B> pings[M ? " at [M]" : ""]."
|
||||
playsound(loc, 'sound/machines/ping.ogg', 50, 0)
|
||||
m_type = 2
|
||||
|
||||
if("buzz2")
|
||||
message = "<B>[src]</B> emits an irritated buzzing sound."
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
message = "<B>[src]</B> emits an irritated buzzing sound[M ? " at [M]" : ""]."
|
||||
playsound(loc, 'sound/machines/buzz-two.ogg', 50, 0)
|
||||
m_type = 2
|
||||
|
||||
if("buzz", "buzzes")
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(null, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
if(param)
|
||||
message = "<B>[src]</B> buzzes at [param]."
|
||||
else
|
||||
message = "<B>[src]</B> buzzes."
|
||||
message = "<B>[src]</B> buzzes[M ? " at [M]" : ""]."
|
||||
playsound(loc, 'sound/machines/buzz-sigh.ogg', 50, 0)
|
||||
m_type = 2
|
||||
|
||||
if("beep", "beeps")
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(null, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
if(param)
|
||||
message = "<B>[src]</B> beeps at [param]."
|
||||
else
|
||||
message = "<B>[src]</B> beeps."
|
||||
message = "<B>[src]</B> beeps[M ? " at [M]" : ""]."
|
||||
playsound(loc, 'sound/machines/twobeep.ogg', 50, 0)
|
||||
m_type = 2
|
||||
|
||||
if("drone", "drones", "hum", "hums", "rumble", "rumbles")
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(null, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
if(param)
|
||||
message = "<B>[src]</B> drones at [param]."
|
||||
else
|
||||
message = "<B>[src]</B> rumbles."
|
||||
message = "<B>[src]</B> [M ? "drones at [M]" : "rumbles"]."
|
||||
playsound(loc, 'sound/voice/DraskTalk.ogg', 50, 0)
|
||||
m_type = 2
|
||||
|
||||
if("squish", "squishes")
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(null, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
if(param)
|
||||
message = "<B>[src]</B> squishes at [param]."
|
||||
else
|
||||
message = "<B>[src]</B> squishes."
|
||||
message = "<B>[src]</B> squishes[M ? " at [M]" : ""]."
|
||||
playsound(loc, 'sound/effects/slime_squish.ogg', 50, 0) //Credit to DrMinky (freesound.org) for the sound.
|
||||
m_type = 2
|
||||
|
||||
if("yes")
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(null, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
if("clack", "clacks")
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
if(param)
|
||||
message = "<B>[src]</B> emits an affirmative blip at [param]."
|
||||
else
|
||||
message = "<B>[src]</B> emits an affirmative blip."
|
||||
message = "<B>[src]</B> clacks their mandibles[M ? " at [M]" : ""]."
|
||||
playsound(loc, 'sound/effects/Kidanclack.ogg', 50, 0) //Credit to DrMinky (freesound.org) for the sound.
|
||||
m_type = 2
|
||||
|
||||
if("click", "clicks")
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
message = "<B>[src]</B> clicks their mandibles[M ? " at [M]" : ""]."
|
||||
playsound(loc, 'sound/effects/Kidanclack2.ogg', 50, 0) //Credit to DrMinky (freesound.org) for the sound.
|
||||
m_type = 2
|
||||
|
||||
if("yes")
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
message = "<B>[src]</B> emits an affirmative blip[M ? " at [M]" : ""]."
|
||||
playsound(loc, 'sound/machines/synth_yes.ogg', 50, 0)
|
||||
m_type = 2
|
||||
|
||||
if("no")
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(null, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
if(param)
|
||||
message = "<B>[src]</B> emits a negative blip at [param]."
|
||||
else
|
||||
message = "<B>[src]</B> emits a negative blip."
|
||||
message = "<B>[src]</B> emits a negative blip[M ? " at [M]" : ""]."
|
||||
playsound(loc, 'sound/machines/synth_no.ogg', 50, 0)
|
||||
m_type = 2
|
||||
|
||||
@@ -225,12 +183,12 @@
|
||||
if(!restrained())
|
||||
message = "<B>[src]</B> is strumming the air and headbanging like a safari chimp."
|
||||
m_type = 1
|
||||
|
||||
|
||||
if("dance")
|
||||
if(!restrained())
|
||||
message = "<B>[src]</B> dances around happily."
|
||||
m_type = 1
|
||||
|
||||
|
||||
if("jump")
|
||||
if(!restrained())
|
||||
message = "<B>[src]</B> jumps!"
|
||||
@@ -246,36 +204,16 @@
|
||||
|
||||
if("bow", "bows")
|
||||
if(!buckled)
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(null, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
if(param)
|
||||
message = "<B>[src]</B> bows to [param]."
|
||||
else
|
||||
message = "<B>[src]</B> bows."
|
||||
message = "<B>[src]</B> bows[M ? " to [M]" : ""]."
|
||||
m_type = 1
|
||||
|
||||
if("salute", "salutes")
|
||||
if(!buckled)
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(null, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
if(param)
|
||||
message = "<B>[src]</B> salutes to [param]."
|
||||
else
|
||||
message = "<B>[src]</b> salutes."
|
||||
message = "<B>[src]</B> salutes[M ? " to [M]" : ""]."
|
||||
m_type = 1
|
||||
|
||||
if("choke", "chokes")
|
||||
@@ -414,11 +352,15 @@
|
||||
m_type = 2
|
||||
|
||||
if("frown", "frowns")
|
||||
message = "<B>[src]</B> frowns."
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
message = "<B>[src]</B> frowns[M ? " at [M]" : ""]."
|
||||
m_type = 1
|
||||
|
||||
if("nod", "nods")
|
||||
message = "<B>[src]</B> nods."
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
message = "<B>[src]</B> nods[M ? " at [M]" : ""]."
|
||||
m_type = 1
|
||||
|
||||
if("blush", "blushes")
|
||||
@@ -426,7 +368,9 @@
|
||||
m_type = 1
|
||||
|
||||
if("wave", "waves")
|
||||
message = "<B>[src]</B> waves."
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
message = "<B>[src]</B> waves[M ? " at [M]" : ""]."
|
||||
m_type = 1
|
||||
|
||||
if("quiver", "quivers")
|
||||
@@ -462,56 +406,27 @@
|
||||
m_type = 2
|
||||
|
||||
if("glare", "glares")
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(null, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
if(param)
|
||||
message = "<B>[src]</B> glares at [param]."
|
||||
else
|
||||
message = "<B>[src]</B> glares."
|
||||
message = "<B>[src]</B> glares[M ? " at [M]" : ""]."
|
||||
m_type = 1
|
||||
|
||||
if("stare", "stares")
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(null, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
if(param)
|
||||
message = "<B>[src]</B> stares at [param]."
|
||||
else
|
||||
message = "<B>[src]</B> stares."
|
||||
message = "<B>[src]</B> stares[M ? " at [M]" : ""]."
|
||||
m_type = 1
|
||||
|
||||
if("look", "looks")
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(null, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
if(!M)
|
||||
param = null
|
||||
|
||||
if(param)
|
||||
message = "<B>[src]</B> looks at [param]."
|
||||
else
|
||||
message = "<B>[src]</B> looks."
|
||||
message = "<B>[src]</B> looks[M ? " at [M]" : ""]."
|
||||
m_type = 1
|
||||
|
||||
if("grin", "grins")
|
||||
message = "<B>[src]</B> grins."
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
message = "<B>[src]</B> grins[M ? " at [M]" : ""]."
|
||||
m_type = 1
|
||||
|
||||
if("cry", "cries")
|
||||
@@ -527,24 +442,26 @@
|
||||
m_type = 2
|
||||
|
||||
if("sigh", "sighs")
|
||||
var/M = handle_emote_param(param)
|
||||
if(miming)
|
||||
message = "<B>[src]</B> sighs."
|
||||
message = "<B>[src]</B> sighs[M ? " at [M]" : ""]."
|
||||
m_type = 1
|
||||
else
|
||||
if(!muzzled)
|
||||
message = "<B>[src]</B> sighs."
|
||||
message = "<B>[src]</B> sighs[M ? " at [M]" : ""]."
|
||||
m_type = 2
|
||||
else
|
||||
message = "<B>[src]</B> makes a weak noise."
|
||||
message = "<B>[src]</B> makes a weak noise"
|
||||
m_type = 2
|
||||
|
||||
if("laugh", "laughs")
|
||||
var/M = handle_emote_param(param)
|
||||
if(miming)
|
||||
message = "<B>[src]</B> acts out a laugh."
|
||||
message = "<B>[src]</B> acts out a laugh[M ? " at [M]" : ""]."
|
||||
m_type = 1
|
||||
else
|
||||
if(!muzzled)
|
||||
message = "<B>[src]</B> laughs."
|
||||
message = "<B>[src]</B> laughs[M ? " at [M]" : ""]."
|
||||
m_type = 2
|
||||
else
|
||||
message = "<B>[src]</B> makes a noise."
|
||||
@@ -557,11 +474,12 @@
|
||||
m_type = 1
|
||||
|
||||
if("grumble", "grumbles")
|
||||
var/M = handle_emote_param(param)
|
||||
if(miming)
|
||||
message = "<B>[src]</B> grumbles!"
|
||||
message = "<B>[src]</B> grumbles[M ? " at [M]" : ""]!"
|
||||
m_type = 1
|
||||
if(!muzzled)
|
||||
message = "<B>[src]</B> grumbles!"
|
||||
message = "<B>[src]</B> grumbles[M ? " at [M]" : ""]!"
|
||||
m_type = 2
|
||||
else
|
||||
message = "<B>[src]</B> makes a noise."
|
||||
@@ -622,7 +540,9 @@
|
||||
m_type = 1
|
||||
|
||||
if("shake", "shakes")
|
||||
message = "<B>[src]</B> shakes \his head."
|
||||
var/M = handle_emote_param(param, 1) //Check to see if the param is valid (mob with the param name is in view) but exclude ourselves.
|
||||
|
||||
message = "<B>[src]</B> shakes \his head[M ? " at [M]" : ""]."
|
||||
m_type = 1
|
||||
|
||||
if("shrug", "shrugs")
|
||||
@@ -640,7 +560,9 @@
|
||||
m_type = 1
|
||||
|
||||
if("smile", "smiles")
|
||||
message = "<B>[src]</B> smiles."
|
||||
var/M = handle_emote_param(param, 1)
|
||||
|
||||
message = "<B>[src]</B> smiles[M ? " at [M]" : ""]."
|
||||
m_type = 1
|
||||
|
||||
if("shiver", "shivers")
|
||||
@@ -704,7 +626,9 @@
|
||||
m_type = 2
|
||||
|
||||
if("wink", "winks")
|
||||
message = "<B>[src]</B> winks."
|
||||
var/M = handle_emote_param(param, 1)
|
||||
|
||||
message = "<B>[src]</B> winks[M ? " at [M]" : ""]."
|
||||
m_type = 1
|
||||
|
||||
if("yawn", "yawns")
|
||||
@@ -724,14 +648,7 @@
|
||||
if("hug", "hugs")
|
||||
m_type = 1
|
||||
if(!restrained())
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(1, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(M == src)
|
||||
M = null
|
||||
var/M = handle_emote_param(param, 1, 1) //Check to see if the param is valid (mob with the param name is in view) but exclude ourselves and only check mobs in our immediate vicinity (1 tile distance).
|
||||
|
||||
if(M)
|
||||
message = "<B>[src]</B> hugs [M]."
|
||||
@@ -741,14 +658,7 @@
|
||||
if("handshake")
|
||||
m_type = 1
|
||||
if(!restrained() && !r_hand)
|
||||
var/mob/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(1, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(M == src)
|
||||
M = null
|
||||
var/mob/M = handle_emote_param(param, 1, 1, 1) //Check to see if the param is valid (mob with the param name is in view) but exclude ourselves, only check mobs in our immediate vicinity (1 tile distance) and return the whole mob instead of just its name.
|
||||
|
||||
if(M)
|
||||
if(M.canmove && !M.r_hand && !M.restrained())
|
||||
@@ -759,12 +669,8 @@
|
||||
if("dap", "daps")
|
||||
m_type = 1
|
||||
if(!restrained())
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(1, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
var/M = handle_emote_param(param, null, 1)
|
||||
|
||||
if(M)
|
||||
message = "<B>[src]</B> gives daps to [M]."
|
||||
else
|
||||
@@ -773,27 +679,23 @@
|
||||
if("slap", "slaps")
|
||||
m_type = 1
|
||||
if(!restrained())
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(1, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
var/M = handle_emote_param(param, null, 1)
|
||||
|
||||
if(M)
|
||||
message = "<span class='danger'>[src] slaps [M] across the face. Ouch!</span>"
|
||||
playsound(loc, 'sound/effects/snap.ogg', 50, 1)
|
||||
else
|
||||
message = "<span class='danger'>[src] slaps \himself!</span>"
|
||||
playsound(loc, 'sound/effects/snap.ogg', 50, 1)
|
||||
adjustFireLoss(4)
|
||||
playsound(loc, 'sound/effects/snap.ogg', 50, 1)
|
||||
|
||||
if("scream", "screams")
|
||||
var/M = handle_emote_param(param)
|
||||
if(miming)
|
||||
message = "<B>[src]</B> acts out a scream!"
|
||||
message = "<B>[src]</B> acts out a scream[M ? " at [M]" : ""]!"
|
||||
m_type = 1
|
||||
else
|
||||
if(!muzzled)
|
||||
message = "<B>[src]</B> [species.scream_verb]!"
|
||||
message = "<B>[src]</B> [species.scream_verb][M ? " at [M]" : ""]!"
|
||||
m_type = 2
|
||||
if(gender == FEMALE)
|
||||
playsound(loc, "[species.female_scream_sound]", 80, 1, 0, pitch = get_age_pitch())
|
||||
@@ -801,10 +703,9 @@
|
||||
playsound(loc, "[species.male_scream_sound]", 80, 1, 0, pitch = get_age_pitch()) //default to male screams if no gender is present.
|
||||
|
||||
else
|
||||
message = "<B>[src]</B> makes a very loud noise."
|
||||
message = "<B>[src]</B> makes a very loud noise[M ? " at [M]" : ""]."
|
||||
m_type = 2
|
||||
|
||||
|
||||
if("snap", "snaps")
|
||||
if(prob(95))
|
||||
m_type = 2
|
||||
@@ -822,13 +723,14 @@
|
||||
to_chat(usr, "You need at least one hand in good working order to snap your fingers.")
|
||||
return
|
||||
|
||||
message = "<b>[src]</b> snaps \his fingers."
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
message = "<b>[src]</b> snaps \his fingers[M ? " at [M]" : ""]."
|
||||
playsound(loc, 'sound/effects/fingersnap.ogg', 50, 1, -3)
|
||||
else
|
||||
message = "<span class='danger'><b>[src]</b> snaps \his fingers right off!</span>"
|
||||
playsound(loc, 'sound/effects/snap.ogg', 50, 1)
|
||||
|
||||
|
||||
// Needed for M_TOXIC_FART
|
||||
if("fart", "farts")
|
||||
if(reagents.has_reagent("simethicone"))
|
||||
@@ -836,11 +738,11 @@
|
||||
// playsound(loc, 'sound/effects/fart.ogg', 50, 1, -3) //Admins still vote no to fun
|
||||
if(locate(/obj/item/weapon/storage/bible) in get_turf(src))
|
||||
to_chat(viewers(src), "<span class='warning'><b>[src] farts on the Bible!</b></span>")
|
||||
var/image/cross = image('icons/obj/storage.dmi',"bible")
|
||||
var/adminbfmessage = "\blue [bicon(cross)] <b><font color=red>Bible Fart: </font>[key_name(src, 1)] (<A HREF='?_src_=holder;adminmoreinfo=\ref[src]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=\ref[src]'>PP</A>) (<A HREF='?_src_=vars;Vars=[UID()]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[src]'>SM</A>) ([admin_jump_link(src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;Smite=[UID()]'>SMITE</A>):</b>"
|
||||
for(var/client/X in admins)
|
||||
if(check_rights(R_EVENT,0,X.mob))
|
||||
to_chat(X, adminbfmessage)
|
||||
var/image/cross = image('icons/obj/storage.dmi',"bible")
|
||||
var/adminbfmessage = "\blue [bicon(cross)] <b><font color=red>Bible Fart: </font>[key_name(src, 1)] (<A HREF='?_src_=holder;adminmoreinfo=\ref[src]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=\ref[src]'>PP</A>) (<A HREF='?_src_=vars;Vars=[UID()]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[src]'>SM</A>) ([admin_jump_link(src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;Smite=[UID()]'>SMITE</A>):</b>"
|
||||
for(var/client/X in admins)
|
||||
if(check_rights(R_EVENT,0,X.mob))
|
||||
to_chat(X, adminbfmessage)
|
||||
else if(TOXIC_FARTS in mutations)
|
||||
message = "<b>[src]</b> unleashes a [pick("horrible","terrible","foul","disgusting","awful")] fart."
|
||||
else if(SUPER_FART in mutations)
|
||||
@@ -877,13 +779,9 @@
|
||||
to_chat(src, emotelist)
|
||||
|
||||
else
|
||||
to_chat(src, "\blue Unusable emote '[act]'. Say *help for a list.")
|
||||
to_chat(src, "<span class='notice'>Unusable emote '[act]'. Say *help for a list.</span>")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if(message) //Humans are special fucking snowflakes and have 735 lines of emotes, they get to handle their own emotes, not call the parent
|
||||
if(message) //Humans are special fucking snowflakes and have 800 lines of emotes, they get to handle their own emotes, not call the parent.
|
||||
log_emote("[name]/[key] : [message]")
|
||||
|
||||
//Hearing gasp and such every five seconds is not good emotes were not global for a reason.
|
||||
|
||||
@@ -872,7 +872,7 @@
|
||||
sec_hud_set_security_status()
|
||||
|
||||
if(!modified)
|
||||
to_chat(usr, "\red Unable to locate a data core entry for this person.")
|
||||
to_chat(usr, "<span class='warning'>Unable to locate a data core entry for this person.</span>")
|
||||
|
||||
if(href_list["secrecord"])
|
||||
if(hasHUD(usr,"security"))
|
||||
@@ -902,7 +902,7 @@
|
||||
read = 1
|
||||
|
||||
if(!read)
|
||||
to_chat(usr, "\red Unable to locate a data core entry for this person.")
|
||||
to_chat(usr, "<span class='warning'>Unable to locate a data core entry for this person.</span>")
|
||||
|
||||
if(href_list["secrecordComment"])
|
||||
if(hasHUD(usr,"security"))
|
||||
@@ -931,7 +931,7 @@
|
||||
to_chat(usr, "<a href='?src=[UID()];secrecordadd=`'>\[Add comment\]</a>")
|
||||
|
||||
if(!read)
|
||||
to_chat(usr, "\red Unable to locate a data core entry for this person.")
|
||||
to_chat(usr, "<span class='warning'>Unable to locate a data core entry for this person.</span>")
|
||||
|
||||
if(href_list["secrecordadd"])
|
||||
if(hasHUD(usr,"security"))
|
||||
@@ -993,7 +993,7 @@
|
||||
sec_hud_set_security_status()
|
||||
|
||||
if(!modified)
|
||||
to_chat(usr, "\red Unable to locate a data core entry for this person.")
|
||||
to_chat(usr, "<span class='warning'>Unable to locate a data core entry for this person.</span>")
|
||||
|
||||
if(href_list["medrecord"])
|
||||
if(hasHUD(usr,"medical"))
|
||||
@@ -1024,7 +1024,7 @@
|
||||
read = 1
|
||||
|
||||
if(!read)
|
||||
to_chat(usr, "\red Unable to locate a data core entry for this person.")
|
||||
to_chat(usr, "<span class='warning'>Unable to locate a data core entry for this person.</span>")
|
||||
|
||||
if(href_list["medrecordComment"])
|
||||
if(hasHUD(usr,"medical"))
|
||||
@@ -1053,7 +1053,7 @@
|
||||
to_chat(usr, "<a href='?src=[UID()];medrecordadd=`'>\[Add comment\]</a>")
|
||||
|
||||
if(!read)
|
||||
to_chat(usr, "\red Unable to locate a data core entry for this person.")
|
||||
to_chat(usr, "<span class='warning'>Unable to locate a data core entry for this person.</span>")
|
||||
|
||||
if(href_list["medrecordadd"])
|
||||
if(hasHUD(usr,"medical"))
|
||||
@@ -1168,7 +1168,7 @@
|
||||
|
||||
/mob/living/carbon/human/proc/play_xylophone()
|
||||
if(!src.xylophone)
|
||||
visible_message("\red [src] begins playing his ribcage like a xylophone. It's quite spooky.","\blue You begin to play a spooky refrain on your ribcage.","\red You hear a spooky xylophone melody.")
|
||||
visible_message("<span class='warning'>[src] begins playing his ribcage like a xylophone. It's quite spooky.</span>","<span class='notice'>You begin to play a spooky refrain on your ribcage.</span>","<span class='warning'>You hear a spooky xylophone melody.</span>")
|
||||
var/song = pick('sound/effects/xylophone1.ogg','sound/effects/xylophone2.ogg','sound/effects/xylophone3.ogg')
|
||||
playsound(loc, song, 50, 1, -1)
|
||||
xylophone = 1
|
||||
@@ -1456,16 +1456,16 @@
|
||||
if(usr == src)
|
||||
self = 1
|
||||
if(!self)
|
||||
usr.visible_message("\blue [usr] kneels down, puts \his hand on [src]'s wrist and begins counting their pulse.",\
|
||||
usr.visible_message("<span class='notice'>[usr] kneels down, puts \his hand on [src]'s wrist and begins counting their pulse.</span>",\
|
||||
"You begin counting [src]'s pulse")
|
||||
else
|
||||
usr.visible_message("\blue [usr] begins counting their pulse.",\
|
||||
usr.visible_message("<span class='notice'>[usr] begins counting their pulse.</span>",\
|
||||
"You begin counting your pulse.")
|
||||
|
||||
if(src.pulse)
|
||||
to_chat(usr, "\blue [self ? "You have a" : "[src] has a"] pulse! Counting...")
|
||||
to_chat(usr, "<span class='notice'>[self ? "You have a" : "[src] has a"] pulse! Counting...</span>")
|
||||
else
|
||||
to_chat(usr, "\red [src] has no pulse!")//it is REALLY UNLIKELY that a dead person would check his own pulse
|
||||
to_chat(usr, "<span class='warning'>[src] has no pulse!</span>")//it is REALLY UNLIKELY that a dead person would check his own pulse
|
||||
|
||||
return
|
||||
|
||||
@@ -1475,7 +1475,7 @@
|
||||
if(usr.l_move_time >= time) //checks if our mob has moved during the sleep()
|
||||
to_chat(usr, "You moved while counting. Try again.")
|
||||
else
|
||||
to_chat(usr, "\blue [self ? "Your" : "[src]'s"] pulse is [src.get_pulse(GETPULSE_HAND)].")
|
||||
to_chat(usr, "<span class='notice'>[self ? "Your" : "[src]'s"] pulse is [src.get_pulse(GETPULSE_HAND)].</span>")
|
||||
|
||||
/mob/living/carbon/human/proc/set_species(var/new_species, var/default_colour, var/delay_icon_update = 0)
|
||||
var/datum/species/oldspecies = species
|
||||
@@ -1765,7 +1765,7 @@
|
||||
if(status_flags & LEAPING) status_flags &= ~LEAPING
|
||||
|
||||
if(!src.Adjacent(T))
|
||||
to_chat(src, "\red You miss!")
|
||||
to_chat(src, "<span class='warning'>You miss!</span>")
|
||||
return
|
||||
|
||||
T.Weaken(5)
|
||||
@@ -1778,7 +1778,7 @@
|
||||
var/use_hand = "left"
|
||||
if(l_hand)
|
||||
if(r_hand)
|
||||
to_chat(src, "\red You need to have one hand free to grab someone.")
|
||||
to_chat(src, "<span class='warning'>You need to have one hand free to grab someone.</span>")
|
||||
return
|
||||
else
|
||||
use_hand = "right"
|
||||
@@ -1804,16 +1804,16 @@
|
||||
return
|
||||
|
||||
if(!canmove)
|
||||
to_chat(src, "\red You cannot do that in your current state.")
|
||||
to_chat(src, "<span class='warning'>You cannot do that in your current state.</span>")
|
||||
return
|
||||
|
||||
var/obj/item/weapon/grab/G = locate() in src
|
||||
if(!G || !istype(G))
|
||||
to_chat(src, "\red You are not grabbing anyone.")
|
||||
to_chat(src, "<span class='warning'>You are not grabbing anyone.</span>")
|
||||
return
|
||||
|
||||
if(G.state < GRAB_AGGRESSIVE)
|
||||
to_chat(src, "\red You must have an aggressive grab to gut your prey!")
|
||||
to_chat(src, "<span class='warning'>You must have an aggressive grab to gut your prey!</span>")
|
||||
return
|
||||
|
||||
last_special = world.time + 50
|
||||
@@ -1892,7 +1892,7 @@
|
||||
|
||||
|
||||
//Mindshield implants imply slight trustworthiness
|
||||
if(isloyal(src))
|
||||
if(ismindshielded(src))
|
||||
threatcount -= 1
|
||||
|
||||
//Agent cards lower threatlevel.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
return
|
||||
|
||||
if(frozen)
|
||||
to_chat(M, "\red Do not touch Admin-Frozen people.")
|
||||
to_chat(M, "<span class='warning'>Do not touch Admin-Frozen people.</span>")
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
@@ -178,12 +178,12 @@ emp_act
|
||||
if(!istype(affecting))
|
||||
return
|
||||
if(!(affecting.status & ORGAN_ROBOT))
|
||||
to_chat(user, "\red That limb isn't robotic.")
|
||||
to_chat(user, "<span class='warning'>That limb isn't robotic.</span>")
|
||||
return
|
||||
if(affecting.sabotaged)
|
||||
to_chat(user, "\red [src]'s [affecting.name] is already sabotaged!")
|
||||
to_chat(user, "<span class='warning'>[src]'s [affecting.name] is already sabotaged!</span>")
|
||||
else
|
||||
to_chat(user, "\red You sneakily slide the card into the dataport on [src]'s [affecting.name] and short out the safeties.")
|
||||
to_chat(user, "<span class='warning'>You sneakily slide the card into the dataport on [src]'s [affecting.name] and short out the safeties.</span>")
|
||||
affecting.sabotaged = 1
|
||||
return 1
|
||||
|
||||
@@ -200,7 +200,7 @@ emp_act
|
||||
src.reagents.trans_to (newmeat, round ((src.reagents.total_volume) / 3, 1))
|
||||
src.loc.add_blood(src)
|
||||
--src.meatleft
|
||||
to_chat(user, "\red You hack off a chunk of meat from [src.name]")
|
||||
to_chat(user, "<span class='warning'>You hack off a chunk of meat from [src.name]</span>")
|
||||
if(!src.meatleft)
|
||||
src.create_attack_log("Was chopped up into meat by <b>[key_name(user)]</b>")
|
||||
user.create_attack_log("Chopped up <b>[key_name(src)]</b> into meat</b>")
|
||||
@@ -345,7 +345,7 @@ emp_act
|
||||
return
|
||||
var/hit_area = affecting.name
|
||||
|
||||
src.visible_message("\red [src] has been hit in the [hit_area] by [I].")
|
||||
src.visible_message("<span class='warning'>[src] has been hit in the [hit_area] by [I].</span>")
|
||||
var/armor = run_armor_check(affecting, "melee", "Your armor has protected your [hit_area].", "Your armor has softened hit to your [hit_area].", I.armour_penetration) //I guess "melee" is the best fit here
|
||||
|
||||
apply_damage(throw_damage, dtype, zone, armor, is_sharp(I), has_edge(I), I)
|
||||
@@ -378,7 +378,7 @@ emp_act
|
||||
var/momentum = speed/2
|
||||
var/dir = get_dir(I.throw_source, src)
|
||||
|
||||
visible_message("\red [src] staggers under the impact!","\red You stagger under the impact!")
|
||||
visible_message("<span class='warning'>[src] staggers under the impact!</span>","<span class='warning'>You stagger under the impact!</span>")
|
||||
src.throw_at(get_edge_target_turf(src,dir),1,momentum)
|
||||
|
||||
if(!W || !src) return
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
var/global/default_martial_art = new/datum/martial_art
|
||||
/mob/living/carbon/human
|
||||
|
||||
hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD,SPECIALROLE_HUD,NATIONS_HUD)
|
||||
hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPMINDSHIELD_HUD,IMPCHEM_HUD,IMPTRACK_HUD,SPECIALROLE_HUD,NATIONS_HUD)
|
||||
|
||||
//Marking colour and style
|
||||
var/list/m_colours = DEFAULT_MARKING_COLOURS //All colours set to #000000.
|
||||
|
||||
@@ -1181,7 +1181,8 @@
|
||||
else
|
||||
AdjustLoseBreath(2, bound_lower = 0, bound_upper = 3)
|
||||
adjustOxyLoss(5)
|
||||
adjustBruteLoss(1)
|
||||
Paralyse(4)
|
||||
adjustBruteLoss(2)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"eyes" = /obj/item/organ/internal/eyes/abductor //3 darksight.
|
||||
)
|
||||
|
||||
flags = HAS_LIPS | NO_BLOOD | NO_BREATHE
|
||||
flags = HAS_LIPS | NO_BLOOD | NO_BREATHE | NOGUNS
|
||||
|
||||
oxy_mod = 0
|
||||
|
||||
@@ -27,11 +27,14 @@
|
||||
dietflags = DIET_OMNI
|
||||
reagent_tag = PROCESS_ORG
|
||||
blood_color = "#FF5AFF"
|
||||
female_scream_sound = 'sound/goonstation/voice/male_scream.ogg'
|
||||
female_cough_sounds = list('sound/effects/mob_effects/m_cougha.ogg','sound/effects/mob_effects/m_coughb.ogg', 'sound/effects/mob_effects/m_coughc.ogg')
|
||||
female_sneeze_sound = 'sound/effects/mob_effects/sneeze.ogg' //Abductors always scream like guys
|
||||
|
||||
/datum/species/abductor/can_understand(var/mob/other) //Abductors can understand everyone, but they can only speak over their mindlink to another team-member
|
||||
/datum/species/abductor/can_understand(mob/other) //Abductors can understand everyone, but they can only speak over their mindlink to another team-member
|
||||
return 1
|
||||
|
||||
/datum/species/abductor/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
/datum/species/abductor/handle_post_spawn(mob/living/carbon/human/H)
|
||||
H.gender = NEUTER
|
||||
if(H.mind)
|
||||
H.mind.abductor = new /datum/abductor
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
|
||||
/datum/species/nucleation/handle_death(var/mob/living/carbon/human/H)
|
||||
var/turf/T = get_turf(H)
|
||||
H.visible_message("\red[H]'s body explodes, leaving behind a pile of microscopic crystals!")
|
||||
H.visible_message("<span class='warning'>[H]'s body explodes, leaving behind a pile of microscopic crystals!</span>")
|
||||
explosion(T, 0, 0, 2, 2) // Create a small explosion burst upon death
|
||||
// new /obj/item/weapon/shard/supermatter( T )
|
||||
qdel(H)
|
||||
@@ -210,10 +210,10 @@
|
||||
return 1 //godmode
|
||||
if(breath.temperature < cold_level_1)
|
||||
if(prob(20))
|
||||
to_chat(src, "\red You feel your face freezing and an icicle forming in your lungs!")
|
||||
to_chat(src, "<span class='warning'>You feel your face freezing and an icicle forming in your lungs!</span>")
|
||||
else if(breath.temperature > heat_level_1)
|
||||
if(prob(20))
|
||||
to_chat(src, "\red You feel your face burning and a searing heat in your lungs!")
|
||||
to_chat(src, "<span class='warning'>You feel your face burning and a searing heat in your lungs!</span>")
|
||||
|
||||
switch(breath.temperature)
|
||||
if(-INFINITY to cold_level_3)
|
||||
|
||||
@@ -486,7 +486,7 @@
|
||||
brute_mod = 0.8
|
||||
|
||||
flags = IS_WHITELISTED
|
||||
clothing_flags = HAS_SOCKS
|
||||
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
|
||||
bodyflags = FEET_CLAWS | HAS_HEAD_ACCESSORY
|
||||
eyes = "kidan_eyes_s"
|
||||
dietflags = DIET_HERB
|
||||
@@ -512,6 +512,8 @@
|
||||
"is attempting to bite their antenna off!",
|
||||
"is jamming their claws into their eye sockets!",
|
||||
"is twisting their own neck!",
|
||||
"is cracking their exoskeleton!",
|
||||
"is stabbing themselves with their mandibles!",
|
||||
"is holding their breath!")
|
||||
|
||||
/datum/species/slime
|
||||
|
||||
@@ -638,7 +638,7 @@ var/global/list/damage_icon_parts = list()
|
||||
if(w_uniform.flags_size & ONESIZEFITSALL)
|
||||
standing.icon = 'icons/mob/uniform_fat.dmi'
|
||||
else
|
||||
to_chat(src, "\red You burst out of \the [w_uniform]!")
|
||||
to_chat(src, "<span class='warning'>You burst out of \the [w_uniform]!</span>")
|
||||
unEquip(w_uniform)
|
||||
return
|
||||
else
|
||||
@@ -957,7 +957,7 @@ var/global/list/damage_icon_parts = list()
|
||||
if(wear_suit.flags_size & ONESIZEFITSALL)
|
||||
standing = image("icon" = 'icons/mob/suit_fat.dmi', "icon_state" = "[wear_suit.icon_state]")
|
||||
else
|
||||
to_chat(src, "\red You burst out of \the [wear_suit]!")
|
||||
to_chat(src, "<span class='warning'>You burst out of \the [wear_suit]!</span>")
|
||||
unEquip(wear_suit)
|
||||
return
|
||||
else
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
return
|
||||
if(src.client)
|
||||
if(client.prefs.muted & MUTE_IC)
|
||||
to_chat(src, "\red You cannot send IC messages (muted).")
|
||||
to_chat(src, "<span class='warning'>You cannot send IC messages (muted).</span>")
|
||||
return
|
||||
if(src.client.handle_spam_prevention(message,MUTE_IC))
|
||||
return
|
||||
@@ -62,7 +62,7 @@
|
||||
to_chat(src, "Help for slime emotes. You can use these emotes with say \"*emote\":\n\nbounce, custom, jiggle, light, moan, shiver, sway, twitch, vibrate")
|
||||
|
||||
else
|
||||
to_chat(src, "\blue Unusable emote '[act]'. Say *help for a list.")
|
||||
to_chat(src, "<span class='notice'>Unusable emote '[act]'. Say *help for a list.</span>")
|
||||
if((message && src.stat == 0))
|
||||
if(m_type & 1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
if(met.Victim == M && met != src)
|
||||
to_chat(src, "<i>The [met.name] is already feeding on this subject...</i>")
|
||||
return
|
||||
to_chat(src, "\blue <i>I have latched onto the subject and begun feeding...</i>")
|
||||
to_chat(src, "<span class='notice'><i>I have latched onto the subject and begun feeding...</i></span>")
|
||||
to_chat(M, "<span class='danger'>The [src.name] has latched onto your head!</span>")
|
||||
Feedon(M)
|
||||
|
||||
|
||||
@@ -371,7 +371,7 @@
|
||||
visible_message("<span class='warning'>[src] has been touched with the stun gloves by [M]!</span>")
|
||||
return
|
||||
else
|
||||
to_chat(M, "\red Not enough charge! ")
|
||||
to_chat(M, "<span class='warning'>Not enough charge! </span>")
|
||||
return
|
||||
*/
|
||||
|
||||
|
||||
@@ -14,15 +14,19 @@
|
||||
assign_genes(H)
|
||||
assign_spells(H)
|
||||
equip(H)
|
||||
fixflags(H)
|
||||
assign_id(H)
|
||||
|
||||
/datum/superheroes/proc/equip(var/mob/living/carbon/human/H)
|
||||
H.rename_character(H.real_name, name)
|
||||
for(var/obj/item/W in H)
|
||||
if(istype(W,/obj/item/organ)) continue
|
||||
for(var/obj/item/W in H.get_all_slots())
|
||||
H.unEquip(W)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset(H), slot_l_ear)
|
||||
|
||||
/datum/superheroes/proc/fixflags(var/mob/living/carbon/human/H)
|
||||
for(var/obj/item/W in H.get_all_slots())
|
||||
W.flags |= NODROP
|
||||
|
||||
/datum/superheroes/proc/assign_genes(var/mob/living/carbon/human/H)
|
||||
if(default_genes.len)
|
||||
for(var/gene in default_genes)
|
||||
@@ -42,14 +46,17 @@
|
||||
W.registered_name = H.real_name
|
||||
W.access = list(access_maint_tunnels)
|
||||
if(class == "Superhero")
|
||||
W.name = "[H.real_name]'s ID Card (Superhero)"
|
||||
W.assignment = "Superhero"
|
||||
W.rank = "Superhero"
|
||||
ticker.mode.superheroes += H.mind
|
||||
else if(class == "Supervillain")
|
||||
W.name = "[H.real_name]'s ID Card (Supervillain)"
|
||||
W.assignment = "Supervillain"
|
||||
W.rank = "Supervillain"
|
||||
ticker.mode.supervillains += H.mind
|
||||
|
||||
W.icon_state = "lifetimeid"
|
||||
W.SetOwnerInfo(H)
|
||||
W.UpdateName()
|
||||
W.flags |= NODROP
|
||||
H.equip_to_slot_or_del(W, slot_wear_id)
|
||||
H.regenerate_icons()
|
||||
|
||||
@@ -66,8 +73,8 @@
|
||||
..()
|
||||
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black/greytide(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/owl/super_hero(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/owlwings/super_hero(H), slot_wear_suit)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/owl(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/owlwings(H), slot_wear_suit)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/owl_mask/super_hero(H), slot_wear_mask)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/bluespace/owlman(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/night(H), slot_glasses)
|
||||
@@ -84,15 +91,13 @@
|
||||
/datum/superheroes/griffin/equip(var/mob/living/carbon/human/H)
|
||||
..()
|
||||
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/griffin/super_hero(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/griffin/super_hero(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/owlwings/griffinwings/super_hero(H), slot_wear_suit)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/head/griffin/super_hero(H), slot_head)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/griffin(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/griffin(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/suit/toggle/owlwings/griffinwings(H), slot_wear_suit)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/head/griffin/(H), slot_head)
|
||||
|
||||
var/obj/item/weapon/implant/freedom/L = new/obj/item/weapon/implant/freedom(H)
|
||||
L.imp_in = H
|
||||
L.implanted = 1
|
||||
return 1
|
||||
L.implant(H, H)
|
||||
|
||||
|
||||
/datum/superheroes/lightnian
|
||||
@@ -189,7 +194,7 @@
|
||||
to_chat(target, "<span class='danger'>You feel yourself agreeing with [user], and a surge of loyalty begins building.</span>")
|
||||
target.Weaken(12)
|
||||
sleep(20)
|
||||
if(isloyal(target))
|
||||
if(ismindshielded(target))
|
||||
to_chat(user, "<span class='notice'>They are enslaved by Nanotrasen. You feel their interest in your cause wane and disappear.</span>")
|
||||
user.visible_message("<span class='danger'>[user] stops talking for a moment, then moves back away from [target].</span>")
|
||||
to_chat(target, "<span class='danger'>Your mindshield implant activates, protecting you from conversion.</span>")
|
||||
@@ -217,18 +222,20 @@
|
||||
target.s_tone = 35
|
||||
// No `update_dna=0` here because the character is being over-written
|
||||
target.change_eye_color(1,1,1)
|
||||
for(var/obj/item/W in target)
|
||||
if(istype(W,/obj/item/organ)) continue
|
||||
for(var/obj/item/W in target.get_all_slots())
|
||||
target.unEquip(W)
|
||||
target.rename_character(target.real_name, "Generic Henchman ([rand(1, 1000)])")
|
||||
target.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey/greytide(target), slot_w_uniform)
|
||||
target.equip_to_slot_or_del(new /obj/item/clothing/shoes/black/greytide(target), slot_shoes)
|
||||
target.equip_to_slot_or_del(new /obj/item/weapon/storage/toolbox/mechanical/greytide(target), slot_l_hand)
|
||||
var/obj/item/weapon/card/id/syndicate/W = new(target)
|
||||
W.registered_name = target.real_name
|
||||
W.access = list(access_maint_tunnels)
|
||||
W.name = "[target.real_name]'s ID Card (Greyshirt)"
|
||||
W.assignment = "Greyshirt"
|
||||
target.equip_to_slot_or_del(W, slot_wear_id)
|
||||
target.equip_to_slot_or_del(new /obj/item/device/radio/headset(target), slot_l_ear)
|
||||
var/obj/item/weapon/card/id/syndicate/W = new(target)
|
||||
W.icon_state = "lifetimeid"
|
||||
W.access = list(access_maint_tunnels)
|
||||
W.assignment = "Greyshirt"
|
||||
W.rank = "Greyshirt"
|
||||
W.flags |= NODROP
|
||||
W.SetOwnerInfo(target)
|
||||
W.UpdateName()
|
||||
target.equip_to_slot_or_del(W, slot_wear_id)
|
||||
target.regenerate_icons()
|
||||
|
||||
@@ -471,7 +471,7 @@
|
||||
var/obj/item/weapon/grab/G = pick(M.grabbed_by)
|
||||
if(istype(G, /obj/item/weapon/grab))
|
||||
for(var/mob/O in viewers(M, null))
|
||||
O.show_message(text("\red [] has been pulled from []'s grip by []", G.affecting, G.assailant, src), 1)
|
||||
O.show_message(text("<span class='warning'>[] has been pulled from []'s grip by []</span>", G.affecting, G.assailant, src), 1)
|
||||
//G = null
|
||||
qdel(G)
|
||||
else
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
|
||||
var/throw_damage = I.throwforce*(speed/5)
|
||||
|
||||
src.visible_message("\red [src] has been hit by [I].")
|
||||
src.visible_message("<span class='warning'>[src] has been hit by [I].</span>")
|
||||
var/armor = run_armor_check(zone, "melee", "Your armor has protected your [parse_zone(zone)].", "Your armor has softened hit to your [parse_zone(zone)].", I.armour_penetration)
|
||||
|
||||
apply_damage(throw_damage, dtype, zone, armor, is_sharp(I), has_edge(I), I)
|
||||
@@ -102,7 +102,7 @@
|
||||
var/momentum = speed/2
|
||||
var/dir = get_dir(I.throw_source, src)
|
||||
|
||||
visible_message("\red [src] staggers under the impact!","\red You stagger under the impact!")
|
||||
visible_message("<span class='warning'>[src] staggers under the impact!</span>","<span class='warning'>You stagger under the impact!</span>")
|
||||
src.throw_at(get_edge_target_turf(src,dir),1,momentum)
|
||||
|
||||
if(!W || !src) return
|
||||
|
||||
@@ -331,7 +331,7 @@ proc/get_radio_key_from_channel(var/channel)
|
||||
|
||||
else //everything else failed, emote is probably invalid
|
||||
if(act == "help") return //except help, because help is handled individually
|
||||
to_chat(src, "\blue Unusable emote '[act]'. Say *help for a list.")
|
||||
to_chat(src, "<span class='notice'>Unusable emote '[act]'. Say *help for a list.</span>")
|
||||
|
||||
/mob/living/whisper(message as text)
|
||||
message = trim_strip_html_properly(message)
|
||||
|
||||
@@ -837,7 +837,7 @@ var/list/ai_verbs_default = list(
|
||||
if(network in C.network)
|
||||
U.eyeobj.setLoc(get_turf(C))
|
||||
break
|
||||
to_chat(src, "\blue Switched to [network] camera network.")
|
||||
to_chat(src, "<span class='notice'>Switched to [network] camera network.</span>")
|
||||
//End of code by Mord_Sith
|
||||
|
||||
|
||||
@@ -1023,7 +1023,7 @@ var/list/ai_verbs_default = list(
|
||||
|
||||
var/obj/machinery/power/apc/apc = loc
|
||||
if(!istype(apc))
|
||||
to_chat(src, "\blue You are already in your Main Core.")
|
||||
to_chat(src, "<span class='notice'>You are already in your Main Core.</span>")
|
||||
return
|
||||
apc.malfvacate()
|
||||
|
||||
@@ -1098,19 +1098,19 @@ var/list/ai_verbs_default = list(
|
||||
/mob/living/silicon/ai/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/wrench))
|
||||
if(anchored)
|
||||
user.visible_message("\blue \The [user] starts to unbolt \the [src] from the plating...")
|
||||
user.visible_message("<span class='notice'>\The [user] starts to unbolt \the [src] from the plating...</span>")
|
||||
if(!do_after(user, 40 * W.toolspeed, target = src))
|
||||
user.visible_message("\blue \The [user] decides not to unbolt \the [src].")
|
||||
user.visible_message("<span class='notice'>\The [user] decides not to unbolt \the [src].</span>")
|
||||
return
|
||||
user.visible_message("\blue \The [user] finishes unfastening \the [src]!")
|
||||
user.visible_message("<span class='notice'>\The [user] finishes unfastening \the [src]!</span>")
|
||||
anchored = 0
|
||||
return
|
||||
else
|
||||
user.visible_message("\blue \The [user] starts to bolt \the [src] to the plating...")
|
||||
user.visible_message("<span class='notice'>\The [user] starts to bolt \the [src] to the plating...</span>")
|
||||
if(!do_after(user, 40 * W.toolspeed, target = src))
|
||||
user.visible_message("\blue \The [user] decides not to bolt \the [src].")
|
||||
user.visible_message("<span class='notice'>\The [user] decides not to bolt \the [src].</span>")
|
||||
return
|
||||
user.visible_message("\blue \The [user] finishes fastening down \the [src]!")
|
||||
user.visible_message("<span class='notice'>\The [user] finishes fastening down \the [src]!</span>")
|
||||
anchored = 1
|
||||
return
|
||||
else
|
||||
|
||||
@@ -26,97 +26,51 @@
|
||||
|
||||
switch(act)
|
||||
if("ping","pings")
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(null, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
if(param)
|
||||
message = "<B>[src]</B> pings at [param]."
|
||||
else
|
||||
message = "<B>[src]</B> pings."
|
||||
message = "<B>[src]</B> pings[M ? " at [M]" : ""]."
|
||||
playsound(src.loc, 'sound/machines/ping.ogg', 50, 0)
|
||||
m_type = 2
|
||||
|
||||
if("buzz","buzzs","buzzes")
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(null, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
if(param)
|
||||
message = "<B>[src]</B> buzzes at [param]."
|
||||
else
|
||||
message = "<B>[src]</B> buzzes."
|
||||
message = "<B>[src]</B> buzzes[M ? " at [M]" : ""]."
|
||||
playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 0)
|
||||
m_type = 2
|
||||
|
||||
if("beep","beeps")
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(null, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
if(param)
|
||||
message = "<B>[src]</B> beeps at [param]."
|
||||
else
|
||||
message = "<B>[src]</B> beeps."
|
||||
message = "<B>[src]</B> beeps[M ? " at [M]" : ""]."
|
||||
playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 0)
|
||||
m_type = 2
|
||||
|
||||
if("yes")
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(null, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
if(param)
|
||||
message = "<B>[src]</B> emits an affirmative blip at [param]."
|
||||
else
|
||||
message = "<B>[src]</B> emits an affirmative blip."
|
||||
message = "<B>[src]</B> emits an affirmative blip[M ? " at [M]" : ""]."
|
||||
playsound(src.loc, 'sound/machines/synth_yes.ogg', 50, 0)
|
||||
m_type = 2
|
||||
|
||||
if("no")
|
||||
var/M = null
|
||||
if(param)
|
||||
for(var/mob/A in view(null, null))
|
||||
if(param == A.name)
|
||||
M = A
|
||||
break
|
||||
if(!M)
|
||||
param = null
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
if(param)
|
||||
message = "<B>[src]</B> emits a negative blip at [param]."
|
||||
else
|
||||
message = "<B>[src]</B> emits a negative blip."
|
||||
message = "<B>[src]</B> emits a negative blip[M ? " at [M]" : ""]."
|
||||
playsound(src.loc, 'sound/machines/synth_no.ogg', 50, 0)
|
||||
m_type = 2
|
||||
|
||||
if("scream", "screams")
|
||||
message = "<B>[src]</B> screams!"
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
message = "<B>[src]</B> screams[M ? " at [M]" : ""]!"
|
||||
playsound(src.loc, 'sound/goonstation/voice/robot_scream.ogg', 80, 0)
|
||||
m_type = 2
|
||||
|
||||
if("buzz2")
|
||||
message = "<B>[src]</B> emits an irritated buzzing sound."
|
||||
var/M = handle_emote_param(param)
|
||||
|
||||
message = "<B>[src]</B> emits an irritated buzzing sound[M ? " at [M]" : ""]."
|
||||
playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, 0)
|
||||
m_type = 2
|
||||
|
||||
@@ -124,4 +78,4 @@
|
||||
if("help")
|
||||
to_chat(src, "yes, no, beep, ping, buzz, scream, buzz2")
|
||||
|
||||
..(act, m_type, message)
|
||||
..(act, m_type, message)
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
if(get_dist(src, cable) > 1)
|
||||
var/turf/T = get_turf_or_move(loc)
|
||||
for(var/mob/M in viewers(T))
|
||||
M.show_message("\red The data cable rapidly retracts back into its spool.", 3, "\red You hear a click and the sound of wire spooling rapidly.", 2)
|
||||
M.show_message("<span class='warning'>The data cable rapidly retracts back into its spool.</span>", 3, "<span class='warning'>You hear a click and the sound of wire spooling rapidly.</span>", 2)
|
||||
qdel(src.cable)
|
||||
cable = null
|
||||
|
||||
|
||||
@@ -173,7 +173,7 @@
|
||||
if(prob(20))
|
||||
var/turf/T = get_turf_or_move(loc)
|
||||
for(var/mob/M in viewers(T))
|
||||
M.show_message("\red A shower of sparks spray from [src]'s inner workings.", 3, "\red You hear and smell the ozone hiss of electrical sparks being expelled violently.", 2)
|
||||
M.show_message("<span class='warning'>A shower of sparks spray from [src]'s inner workings.</span>", 3, "<span class='warning'>You hear and smell the ozone hiss of electrical sparks being expelled violently.</span>", 2)
|
||||
return death(0)
|
||||
|
||||
switch(pick(1,2,3))
|
||||
@@ -242,7 +242,7 @@
|
||||
if(I_HELP)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if((O.client && !( O.blinded )))
|
||||
O.show_message(text("\blue [M] caresses [src]'s casing with its scythe like arm."), 1)
|
||||
O.show_message(text("<span class='notice'>[M] caresses [src]'s casing with its scythe like arm.</span>"), 1)
|
||||
|
||||
else //harm
|
||||
M.do_attack_animation(src)
|
||||
@@ -320,7 +320,7 @@
|
||||
cameralist[C.network] = C.network
|
||||
|
||||
network = input(usr, "Which network would you like to view?") as null|anything in cameralist
|
||||
to_chat(src, "\blue Switched to [network] camera network.")
|
||||
to_chat(src, "<span class='notice'>Switched to [network] camera network.</span>")
|
||||
//End of code by Mord_Sith
|
||||
*/
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
/mob/living/silicon/robot/drone/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
|
||||
if(istype(W, /obj/item/borg/upgrade/))
|
||||
to_chat(user, "\red The maintenance drone chassis not compatible with \the [W].")
|
||||
to_chat(user, "<span class='warning'>The maintenance drone chassis not compatible with \the [W].</span>")
|
||||
return
|
||||
|
||||
else if(istype(W, /obj/item/weapon/crowbar))
|
||||
@@ -127,20 +127,20 @@
|
||||
if(stat == 2)
|
||||
|
||||
if(!config.allow_drone_spawn || emagged || health < -35) //It's dead, Dave.
|
||||
to_chat(user, "\red The interface is fried, and a distressing burned smell wafts from the robot's interior. You're not rebooting this one.")
|
||||
to_chat(user, "<span class='warning'>The interface is fried, and a distressing burned smell wafts from the robot's interior. You're not rebooting this one.</span>")
|
||||
return
|
||||
|
||||
if(!allowed(usr))
|
||||
to_chat(user, "\red Access denied.")
|
||||
to_chat(user, "<span class='warning'>Access denied.</span>")
|
||||
return
|
||||
|
||||
var/delta = (world.time / 10) - last_reboot
|
||||
if(reboot_cooldown > delta)
|
||||
var/cooldown_time = round(reboot_cooldown - ((world.time / 10) - last_reboot), 1)
|
||||
to_chat(usr, "\red The reboot system is currently offline. Please wait another [cooldown_time] seconds.")
|
||||
to_chat(usr, "<span class='warning'>The reboot system is currently offline. Please wait another [cooldown_time] seconds.</span>")
|
||||
return
|
||||
|
||||
user.visible_message("\red \the [user] swipes \his ID card through \the [src], attempting to reboot it.", "\red You swipe your ID card through \the [src], attempting to reboot it.")
|
||||
user.visible_message("<span class='warning'>\the [user] swipes \his ID card through \the [src], attempting to reboot it.</span>", "<span class='warning'>You swipe your ID card through \the [src], attempting to reboot it.</span>")
|
||||
last_reboot = world.time / 10
|
||||
var/drones = 0
|
||||
for(var/mob/living/silicon/robot/drone/D in world)
|
||||
@@ -151,7 +151,7 @@
|
||||
return
|
||||
|
||||
else
|
||||
user.visible_message("\red \the [user] swipes \his ID card through \the [src], attempting to shut it down.", "\red You swipe your ID card through \the [src], attempting to shut it down.")
|
||||
user.visible_message("<span class='warning'>\the [user] swipes \his ID card through \the [src], attempting to shut it down.</span>", "<span class='warning'>You swipe your ID card through \the [src], attempting to shut it down.</span>")
|
||||
|
||||
if(emagged)
|
||||
return
|
||||
@@ -159,7 +159,7 @@
|
||||
if(allowed(usr))
|
||||
shut_down()
|
||||
else
|
||||
to_chat(user, "\red Access denied.")
|
||||
to_chat(user, "<span class='warning'>Access denied.</span>")
|
||||
|
||||
return
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
|
||||
/mob/living/silicon/robot/drone/emag_act(user as mob)
|
||||
if(!client || stat == 2)
|
||||
to_chat(user, "\red There's not much point subverting this heap of junk.")
|
||||
to_chat(user, "<span class='warning'>There's not much point subverting this heap of junk.</span>")
|
||||
return
|
||||
|
||||
if(!ishuman(user))
|
||||
@@ -175,12 +175,12 @@
|
||||
var/mob/living/carbon/human/H = user
|
||||
|
||||
if(emagged)
|
||||
to_chat(src, "\red [user] attempts to load subversive software into you, but your hacked subroutined ignore the attempt.")
|
||||
to_chat(user, "\red You attempt to subvert [src], but the sequencer has no effect.")
|
||||
to_chat(src, "<span class='warning'>[user] attempts to load subversive software into you, but your hacked subroutined ignore the attempt.</span>")
|
||||
to_chat(user, "<span class='warning'>You attempt to subvert [src], but the sequencer has no effect.</span>")
|
||||
return
|
||||
|
||||
to_chat(user, "\red You swipe the sequencer across [src]'s interface and watch its eyes flicker.")
|
||||
to_chat(src, "\red You feel a sudden burst of malware loaded into your execute-as-root buffer. Your tiny brain methodically parses, loads and executes the script.")
|
||||
to_chat(user, "<span class='warning'>You swipe the sequencer across [src]'s interface and watch its eyes flicker.</span>")
|
||||
to_chat(src, "<span class='warning'>You feel a sudden burst of malware loaded into your execute-as-root buffer. Your tiny brain methodically parses, loads and executes the script.</span>")
|
||||
|
||||
message_admins("[key_name_admin(user)] emagged drone [key_name_admin(src)]. Laws overridden.")
|
||||
log_game("[key_name(user)] emagged drone [key_name(src)]. Laws overridden.")
|
||||
@@ -197,7 +197,7 @@
|
||||
|
||||
to_chat(src, "<b>Obey these laws:</b>")
|
||||
laws.show_laws(src)
|
||||
to_chat(src, "\red \b ALERT: [H.real_name] is your new master. Obey your new laws and his commands.")
|
||||
to_chat(src, "<span class='boldwarning'>ALERT: [H.real_name] is your new master. Obey your new laws and his commands.</span>")
|
||||
return
|
||||
|
||||
//DRONE LIFE/DEATH
|
||||
@@ -236,18 +236,18 @@
|
||||
/mob/living/silicon/robot/drone/proc/law_resync()
|
||||
if(stat != 2)
|
||||
if(emagged)
|
||||
to_chat(src, "\red You feel something attempting to modify your programming, but your hacked subroutines are unaffected.")
|
||||
to_chat(src, "<span class='warning'>You feel something attempting to modify your programming, but your hacked subroutines are unaffected.</span>")
|
||||
else
|
||||
to_chat(src, "\red A reset-to-factory directive packet filters through your data connection, and you obediently modify your programming to suit it.")
|
||||
to_chat(src, "<span class='warning'>A reset-to-factory directive packet filters through your data connection, and you obediently modify your programming to suit it.</span>")
|
||||
full_law_reset()
|
||||
show_laws()
|
||||
|
||||
/mob/living/silicon/robot/drone/proc/shut_down()
|
||||
if(stat != 2)
|
||||
if(emagged)
|
||||
to_chat(src, "\red You feel a system kill order percolate through your tiny brain, but it doesn't seem like a good idea to you.")
|
||||
to_chat(src, "<span class='warning'>You feel a system kill order percolate through your tiny brain, but it doesn't seem like a good idea to you.</span>")
|
||||
else
|
||||
to_chat(src, "\red You feel a system kill order percolate through your tiny brain, and you obediently destroy yourself.")
|
||||
to_chat(src, "<span class='warning'>You feel a system kill order percolate through your tiny brain, and you obediently destroy yourself.</span>")
|
||||
death()
|
||||
|
||||
/mob/living/silicon/robot/drone/proc/full_law_reset()
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
mail_destination = 0
|
||||
return
|
||||
|
||||
to_chat(src, "\blue You configure your internal beacon, tagging yourself for delivery to '[tag]'.")
|
||||
to_chat(src, "<span class='notice'>You configure your internal beacon, tagging yourself for delivery to '[tag]'.</span>")
|
||||
mail_destination = TAGGERLOCATIONS.Find(tag)
|
||||
|
||||
//Auto flush if we use this verb inside a disposal chute.
|
||||
var/obj/machinery/disposal/D = src.loc
|
||||
if(istype(D))
|
||||
to_chat(src, "\blue \The [D] acknowledges your signal.")
|
||||
to_chat(src, "<span class='notice'>\The [D] acknowledges your signal.</span>")
|
||||
D.flush_count = D.flush_every_ticks
|
||||
|
||||
return
|
||||
@@ -28,10 +28,10 @@
|
||||
|
||||
if(layer != TURF_LAYER+0.2)
|
||||
layer = TURF_LAYER+0.2
|
||||
to_chat(src, text("\blue You are now hiding."))
|
||||
to_chat(src, text("<span class='notice'>You are now hiding.</span>"))
|
||||
else
|
||||
layer = MOB_LAYER
|
||||
to_chat(src, text("\blue You have stopped hiding."))
|
||||
to_chat(src, text("<span class='notice'>You have stopped hiding.</span>"))
|
||||
|
||||
/mob/living/silicon/robot/drone/verb/light()
|
||||
set name = "Light On/Off"
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
return
|
||||
|
||||
if(!allowed(user))
|
||||
to_chat(user, "\red Access denied.")
|
||||
to_chat(user, "<span class='warning'>Access denied.</span>")
|
||||
return
|
||||
|
||||
interact(user)
|
||||
@@ -54,7 +54,7 @@
|
||||
return
|
||||
|
||||
if(!allowed(usr))
|
||||
to_chat(usr, "\red Access denied.")
|
||||
to_chat(usr, "<span class='warning'>Access denied.</span>")
|
||||
return
|
||||
|
||||
if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
|
||||
@@ -69,11 +69,11 @@
|
||||
return
|
||||
|
||||
drone_call_area = t_area
|
||||
to_chat(usr, "\blue You set the area selector to [drone_call_area].")
|
||||
to_chat(usr, "<span class='notice'>You set the area selector to [drone_call_area].</span>")
|
||||
|
||||
else if(href_list["ping"])
|
||||
|
||||
to_chat(usr, "\blue You issue a maintenance request for all active drones, highlighting [drone_call_area].")
|
||||
to_chat(usr, "<span class='notice'>You issue a maintenance request for all active drones, highlighting [drone_call_area].</span>")
|
||||
for(var/mob/living/silicon/robot/drone/D in world)
|
||||
if(D.client && D.stat == 0)
|
||||
to_chat(D, "-- Maintenance drone presence requested in: [drone_call_area].")
|
||||
@@ -83,7 +83,7 @@
|
||||
var/mob/living/silicon/robot/drone/D = locate(href_list["resync"])
|
||||
|
||||
if(D.stat != 2)
|
||||
to_chat(usr, "\red You issue a law synchronization directive for the drone.")
|
||||
to_chat(usr, "<span class='warning'>You issue a law synchronization directive for the drone.</span>")
|
||||
D.law_resync()
|
||||
|
||||
else if(href_list["shutdown"])
|
||||
@@ -91,7 +91,7 @@
|
||||
var/mob/living/silicon/robot/drone/D = locate(href_list["shutdown"])
|
||||
|
||||
if(D.stat != 2)
|
||||
to_chat(usr, "\red You issue a kill command for the unfortunate drone.")
|
||||
to_chat(usr, "<span class='warning'>You issue a kill command for the unfortunate drone.</span>")
|
||||
message_admins("[key_name_admin(usr)] issued kill order for drone [key_name_admin(D)] from control console.")
|
||||
log_game("[key_name(usr)] issued kill order for [key_name(src)] from control console.")
|
||||
D.shut_down()
|
||||
@@ -106,10 +106,10 @@
|
||||
continue
|
||||
|
||||
dronefab = fab
|
||||
to_chat(usr, "\blue Drone fabricator located.")
|
||||
to_chat(usr, "<span class='notice'>Drone fabricator located.</span>")
|
||||
return
|
||||
|
||||
to_chat(usr, "\red Unable to locate drone fabricator.")
|
||||
to_chat(usr, "<span class='warning'>Unable to locate drone fabricator.</span>")
|
||||
|
||||
else if(href_list["toggle_fab"])
|
||||
|
||||
@@ -118,10 +118,10 @@
|
||||
|
||||
if(get_dist(src,dronefab) > 3)
|
||||
dronefab = null
|
||||
to_chat(usr, "\red Unable to locate drone fabricator.")
|
||||
to_chat(usr, "<span class='warning'>Unable to locate drone fabricator.</span>")
|
||||
return
|
||||
|
||||
dronefab.produce_drones = !dronefab.produce_drones
|
||||
to_chat(usr, "\blue You [dronefab.produce_drones ? "enable" : "disable"] drone production in the nearby fabricator.")
|
||||
to_chat(usr, "<span class='notice'>You [dronefab.produce_drones ? "enable" : "disable"] drone production in the nearby fabricator.</span>")
|
||||
|
||||
src.updateUsrDialog()
|
||||
@@ -85,7 +85,7 @@
|
||||
set desc = "If there is a powered, enabled fabricator in the game world with a prepared chassis, join as a maintenance drone."
|
||||
|
||||
if(!(config.allow_drone_spawn))
|
||||
to_chat(src, "\red That verb is not currently permitted.")
|
||||
to_chat(src, "<span class='warning'>That verb is not currently permitted.</span>")
|
||||
return
|
||||
|
||||
if(!src.stat)
|
||||
@@ -95,7 +95,7 @@
|
||||
return 0 //something is terribly wrong
|
||||
|
||||
if(jobban_isbanned(src,"nonhumandept") || jobban_isbanned(src,"Drone"))
|
||||
to_chat(usr, "\red You are banned from playing drones and cannot spawn as a drone.")
|
||||
to_chat(usr, "<span class='warning'>You are banned from playing drones and cannot spawn as a drone.</span>")
|
||||
return
|
||||
|
||||
if(!ticker || ticker.current_state < 3)
|
||||
@@ -141,11 +141,11 @@
|
||||
continue
|
||||
|
||||
if(DF.count_drones() >= config.max_maint_drones)
|
||||
to_chat(src, "\red There are too many active drones in the world for you to spawn.")
|
||||
to_chat(src, "<span class='warning'>There are too many active drones in the world for you to spawn.</span>")
|
||||
return
|
||||
|
||||
if(DF.drone_progress >= 100)
|
||||
DF.create_drone(src.client)
|
||||
return
|
||||
|
||||
to_chat(src, "\red There are no available drone spawn points, sorry.")
|
||||
to_chat(src, "<span class='warning'>There are no available drone spawn points, sorry.</span>")
|
||||
|
||||
@@ -229,7 +229,7 @@
|
||||
weaponlock_time --
|
||||
if(weaponlock_time <= 0)
|
||||
if(src.client)
|
||||
to_chat(src, "\red <B>Weapon Lock Timed Out!")
|
||||
to_chat(src, "<span class='warning'><B>Weapon Lock Timed Out!</span>")
|
||||
weapon_lock = 0
|
||||
weaponlock_time = 120
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user