fixes merge conflict

This commit is contained in:
Kyep
2017-04-21 00:40:38 -07:00
408 changed files with 3018 additions and 2352 deletions
+87
View File
@@ -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)
+41
View File
@@ -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)
+7 -7
View File
@@ -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>"
+1 -1
View File
@@ -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
-1
View File
@@ -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++
+2 -2
View File
@@ -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()
+2 -2
View File
@@ -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
View File
@@ -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")
+3 -3
View File
@@ -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)]-&gt;IRC-Admins:</B> \blue [msg]</font>")
to_chat(X, "<B><font color='blue'>PM: [key_name(src, X, 0)]-&gt;IRC-Admins:</B> <span class='notice'>[msg]</span></font>")
+6 -6
View File
@@ -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
+1 -1
View File
@@ -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]")
+5 -5
View File
@@ -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]")
+3 -3
View File
@@ -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
+3 -3
View File
@@ -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)
+2 -2
View File
@@ -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))
+16 -16
View File
@@ -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)
+5 -5
View File
@@ -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!
+1 -1
View File
@@ -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>")
+2 -2
View File
@@ -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
+3 -3
View File
@@ -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
+4 -4
View File
@@ -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"))
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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()
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -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()
..()
+5
View File
@@ -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."
-3
View File
@@ -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()
+6 -6
View File
@@ -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"
+3 -3
View File
@@ -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)
+2 -6
View File
@@ -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>", \
+4 -4
View File
@@ -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
+1 -7
View File
@@ -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
..()
+6 -6
View File
@@ -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()
+19 -19
View File
@@ -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)
+1 -1
View File
@@ -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()
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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
+9 -9
View File
@@ -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)
+3 -3
View File
@@ -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))
+98 -13
View File
@@ -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)
-2
View File
@@ -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
View File
@@ -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
+2 -2
View File
@@ -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"
+1 -1
View File
@@ -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]\"")
+6 -8
View File
@@ -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]'")
+1 -1
View File
@@ -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 ..()
+15 -15
View File
@@ -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)]&deg;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)]&deg;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"
+2 -2
View File
@@ -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 -3
View File
@@ -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'."
+5 -5
View File
@@ -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>")
+109 -211
View File
@@ -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.
+18 -18
View File
@@ -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.
+2 -1
View File
@@ -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
*/
+30 -23
View File
@@ -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()
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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)
+8 -8
View File
@@ -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
+17 -63
View File
@@ -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)
+1 -1
View File
@@ -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
+3 -3
View File
@@ -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