From bde5d6253a5aa4b5bd33e3743cb81428b8a13a4e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 26 Apr 2017 17:05:23 -0500 Subject: [PATCH 01/50] Unorphans the blackbox --- code/controllers/admin.dm | 4 +- .../subsystem/blackbox.dm} | 0 code/controllers/subsystem/blackbox.dm.rej | 512 ++++++++++++++++++ code/controllers/subsystem/job.dm | 2 +- code/controllers/subsystem/mapping.dm | 2 +- code/controllers/subsystem/ping.dm | 16 +- code/controllers/subsystem/server_maint.dm | 39 +- .../controllers/subsystem/server_maint.dm.rej | 7 + code/datums/helper_datums/getrev.dm | 2 +- code/game/gamemodes/blob/blob_finish.dm | 6 +- code/game/gamemodes/changeling/changeling.dm | 8 +- .../gamemodes/changeling/changeling_power.dm | 4 +- .../gamemodes/changeling/evolution_menu.dm | 2 +- .../gamemodes/changeling/powers/absorb.dm | 4 +- .../gamemodes/changeling/powers/linglink.dm | 2 +- code/game/gamemodes/clock_cult/clock_cult.dm | 6 +- .../gamemodes/clock_cult/clock_scripture.dm | 2 +- code/game/gamemodes/cult/cult.dm | 22 +- code/game/gamemodes/cult/ritual.dm | 2 +- code/game/gamemodes/game_mode.dm | 12 +- code/game/gamemodes/game_mode.dm.rej | 18 + code/game/gamemodes/gang/gang.dm | 4 +- code/game/gamemodes/meteor/meteor.dm | 4 +- .../gamemodes/miniantags/monkey/monkey.dm | 8 +- code/game/gamemodes/nuclear/nuclear.dm | 20 +- .../gamemodes/nuclear/nuclear_challenge.dm | 2 +- code/game/gamemodes/revolution/revolution.dm | 4 +- code/game/gamemodes/traitor/traitor.dm | 8 +- code/game/gamemodes/wizard/raginmages.dm | 2 +- code/game/gamemodes/wizard/spellbook.dm | 14 +- code/game/gamemodes/wizard/wizard.dm | 10 +- code/game/machinery/computer/arcade.dm | 12 +- .../game/machinery/computer/communications.dm | 10 +- code/game/machinery/newscaster.dm | 6 +- .../machinery/telecomms/broadcasting.dm.rej | 33 ++ code/game/machinery/vending.dm.rej | 10 + code/game/mecha/mecha_construction_paths.dm | 14 +- code/game/objects/items/robot/robot_parts.dm | 4 +- .../objects/items/weapons/handcuffs.dm.rej | 31 ++ .../objects/items/weapons/holy_weapons.dm | 2 +- .../objects/items/weapons/storage/book.dm | 2 +- code/game/objects/structures/ai_core.dm | 2 +- .../turfs/simulated/floor/plating/asteroid.dm | 2 +- code/game/turfs/simulated/minerals.dm.rej | 19 + code/modules/admin/NewBan.dm | 2 +- code/modules/admin/admin.dm | 34 +- code/modules/admin/admin.dm.rej | 10 + code/modules/admin/admin_verbs.dm | 40 +- code/modules/admin/secrets.dm.rej | 291 ++++++++++ code/modules/admin/topic.dm | 28 +- code/modules/admin/topic.dm.rej | 10 + code/modules/admin/verbs/adminhelp.dm.rej | 10 + code/modules/admin/verbs/adminjump.dm | 12 +- code/modules/admin/verbs/adminjump.dm.rej | 16 + code/modules/admin/verbs/adminpm.dm | 4 +- code/modules/admin/verbs/adminsay.dm | 2 +- code/modules/admin/verbs/atmosdebug.dm | 4 +- code/modules/admin/verbs/deadsay.dm | 2 +- code/modules/admin/verbs/debug.dm | 24 +- code/modules/admin/verbs/debug.dm.rej | 28 + code/modules/admin/verbs/diagnostics.dm | 8 +- code/modules/admin/verbs/fps.dm | 2 +- code/modules/admin/verbs/getlogs.dm | 4 +- code/modules/admin/verbs/machine_upgrade.dm | 2 +- code/modules/admin/verbs/mapping.dm | 16 +- code/modules/admin/verbs/massmodvar.dm | 2 +- code/modules/admin/verbs/panicbunker.dm.rej | 8 + code/modules/admin/verbs/playsound.dm | 8 +- code/modules/admin/verbs/possess.dm | 6 +- code/modules/admin/verbs/pray.dm | 2 +- code/modules/admin/verbs/randomverbs.dm | 54 +- code/modules/admin/verbs/randomverbs.dm.rej | 46 ++ .../verbs/reestablish_db_connection.dm.rej | 15 + code/modules/assembly/holder.dm | 2 +- code/modules/cargo/exports.dm | 4 +- code/modules/client/preferences_toggles.dm | 50 +- code/modules/client/verbs/ooc.dm | 2 +- code/modules/crafting/craft.dm | 2 +- code/modules/events/_event.dm.rej | 17 + code/modules/food_and_drinks/food/snacks.dm | 4 +- .../kitchen_machinery/processor.dm | 2 +- code/modules/hydroponics/seeds.dm | 2 +- .../jobs/job_types/civilian_chaplain.dm | 4 +- code/modules/mining/aux_base.dm | 2 +- code/modules/mining/equipment.dm | 2 +- code/modules/mining/equipment.dm.rej | 26 + .../mining/lavaland/necropolis_chests.dm | 2 +- .../mining/lavaland/necropolis_chests.dm.rej | 28 + code/modules/mining/machine_vending.dm | 4 +- code/modules/mob/living/brain/MMI.dm | 2 +- code/modules/mob/living/carbon/human/death.dm | 2 +- .../mob/living/carbon/human/human_defense.dm | 4 +- .../modules/mob/living/silicon/robot/death.dm | 2 +- .../mob/living/silicon/robot/robot_modules.dm | 2 +- .../hostile/megafauna/megafauna.dm | 2 +- .../simple_animal/hostile/mining_mobs.dm | 12 +- .../mob/living/simple_animal/slime/powers.dm | 2 +- code/modules/power/cell.dm | 2 +- code/modules/power/singularity/generator.dm | 2 +- code/modules/projectiles/gun.dm | 2 +- code/modules/projectiles/guns/medbeam.dm | 2 +- code/modules/reagents/chemistry/holder.dm | 2 +- .../chemistry/recipes/slime_extracts.dm.rej | 442 +++++++++++++++ code/modules/recycling/disposal-unit.dm | 2 +- code/modules/research/rdconsole.dm | 8 +- .../security_levels/keycard_authentication.dm | 4 +- code/modules/shuttle/arrivals.dm | 2 +- code/modules/shuttle/emergency.dm | 2 +- code/modules/shuttle/manipulator.dm | 4 +- code/modules/shuttle/shuttle.dm | 4 +- code/modules/shuttle/supply.dm | 2 +- code/modules/surgery/surgery.dm | 2 +- code/modules/uplink/uplink_item.dm.rej | 17 + code/world.dm.rej | 19 + tgstation.dme | 1 - tgstation.dme.rej | 17 + 116 files changed, 1980 insertions(+), 322 deletions(-) rename code/{orphaned_procs/statistics.dm => controllers/subsystem/blackbox.dm} (100%) create mode 100644 code/controllers/subsystem/blackbox.dm.rej create mode 100644 code/controllers/subsystem/server_maint.dm.rej create mode 100644 code/game/gamemodes/game_mode.dm.rej create mode 100644 code/game/machinery/telecomms/broadcasting.dm.rej create mode 100644 code/game/machinery/vending.dm.rej create mode 100644 code/game/objects/items/weapons/handcuffs.dm.rej create mode 100644 code/game/turfs/simulated/minerals.dm.rej create mode 100644 code/modules/admin/admin.dm.rej create mode 100644 code/modules/admin/secrets.dm.rej create mode 100644 code/modules/admin/topic.dm.rej create mode 100644 code/modules/admin/verbs/adminhelp.dm.rej create mode 100644 code/modules/admin/verbs/adminjump.dm.rej create mode 100644 code/modules/admin/verbs/debug.dm.rej create mode 100644 code/modules/admin/verbs/panicbunker.dm.rej create mode 100644 code/modules/admin/verbs/randomverbs.dm.rej create mode 100644 code/modules/admin/verbs/reestablish_db_connection.dm.rej create mode 100644 code/modules/events/_event.dm.rej create mode 100644 code/modules/mining/equipment.dm.rej create mode 100644 code/modules/mining/lavaland/necropolis_chests.dm.rej create mode 100644 code/modules/reagents/chemistry/recipes/slime_extracts.dm.rej create mode 100644 code/modules/uplink/uplink_item.dm.rej create mode 100644 code/world.dm.rej create mode 100644 tgstation.dme.rej diff --git a/code/controllers/admin.dm b/code/controllers/admin.dm index 99f6a148a4..06aa66fd33 100644 --- a/code/controllers/admin.dm +++ b/code/controllers/admin.dm @@ -43,9 +43,9 @@ switch(controller) if("Master") Recreate_MC() - feedback_add_details("admin_verb","Restart Master Controller") + SSblackbox.add_details("admin_verb","Restart Master Controller") if("Failsafe") new /datum/controller/failsafe() - feedback_add_details("admin_verb","Restart Failsafe Controller") + SSblackbox.add_details("admin_verb","Restart Failsafe Controller") message_admins("Admin [key_name_admin(usr)] has restarted the [controller] controller.") diff --git a/code/orphaned_procs/statistics.dm b/code/controllers/subsystem/blackbox.dm similarity index 100% rename from code/orphaned_procs/statistics.dm rename to code/controllers/subsystem/blackbox.dm diff --git a/code/controllers/subsystem/blackbox.dm.rej b/code/controllers/subsystem/blackbox.dm.rej new file mode 100644 index 0000000000..79c407851f --- /dev/null +++ b/code/controllers/subsystem/blackbox.dm.rej @@ -0,0 +1,512 @@ +diff a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm (rejected hunks) +@@ -1,253 +1,257 @@ +-GLOBAL_DATUM_INIT(blackbox, /datum/feedback, new) +- +-//the feedback datum; stores all feedback +-/datum/feedback +- var/list/messages = list() +- var/list/messages_admin = list() +- +- var/list/msg_common = list() +- var/list/msg_science = list() +- var/list/msg_command = list() +- var/list/msg_medical = list() +- var/list/msg_engineering = list() +- var/list/msg_security = list() +- var/list/msg_deathsquad = list() +- var/list/msg_syndicate = list() +- var/list/msg_service = list() +- var/list/msg_cargo = list() +- +- var/list/datum/feedback_variable/feedback = new() +- +-/datum/feedback/proc/find_feedback_datum(variable) +- for (var/datum/feedback_variable/FV in feedback) +- if (FV.get_variable() == variable) +- return FV +- var/datum/feedback_variable/FV = new(variable) +- feedback += FV +- return FV +- +-/datum/feedback/proc/get_round_feedback() +- return feedback +- +-/datum/feedback/proc/round_end_data_gathering() +- var/pda_msg_amt = 0 +- var/rc_msg_amt = 0 +- +- for (var/obj/machinery/message_server/MS in GLOB.message_servers) +- if (MS.pda_msgs.len > pda_msg_amt) +- pda_msg_amt = MS.pda_msgs.len +- if (MS.rc_msgs.len > rc_msg_amt) +- rc_msg_amt = MS.rc_msgs.len +- +- feedback_set_details("radio_usage","") +- +- feedback_add_details("radio_usage","COM-[msg_common.len]") +- feedback_add_details("radio_usage","SCI-[msg_science.len]") +- feedback_add_details("radio_usage","HEA-[msg_command.len]") +- feedback_add_details("radio_usage","MED-[msg_medical.len]") +- feedback_add_details("radio_usage","ENG-[msg_engineering.len]") +- feedback_add_details("radio_usage","SEC-[msg_security.len]") +- feedback_add_details("radio_usage","DTH-[msg_deathsquad.len]") +- feedback_add_details("radio_usage","SYN-[msg_syndicate.len]") +- feedback_add_details("radio_usage","SRV-[msg_service.len]") +- feedback_add_details("radio_usage","CAR-[msg_cargo.len]") +- feedback_add_details("radio_usage","OTH-[messages.len]") +- feedback_add_details("radio_usage","PDA-[pda_msg_amt]") +- feedback_add_details("radio_usage","RC-[rc_msg_amt]") +- +- feedback_set_details("round_end","[time2text(world.realtime)]") //This one MUST be the last one that gets set. +- +-//This proc is only to be called at round end. +-/datum/feedback/proc/save_all_data_to_sql() +- if (!feedback) return +- +- round_end_data_gathering() //round_end time logging and some other data processing +- if (!GLOB.dbcon.Connect()) return +- var/round_id +- +- var/DBQuery/query_feedback_max_id = GLOB.dbcon.NewQuery("SELECT MAX(round_id) AS round_id FROM [format_table_name("feedback")]") +- if(!query_feedback_max_id.Execute()) +- return +- while (query_feedback_max_id.NextRow()) +- round_id = query_feedback_max_id.item[1] +- +- if (!isnum(round_id)) +- round_id = text2num(round_id) +- round_id++ +- +- var/sqlrowlist = "" +- +- for (var/datum/feedback_variable/FV in feedback) +- if (sqlrowlist != "") +- sqlrowlist += ", " //a comma (,) at the start of the first row to insert will trigger a SQL error +- +- sqlrowlist += "(null, Now(), [round_id], \"[sanitizeSQL(FV.get_variable())]\", [FV.get_value()], \"[sanitizeSQL(FV.get_details())]\")" +- +- if (sqlrowlist == "") +- return +- +- var/DBQuery/query_feedback_save = GLOB.dbcon.NewQuery("INSERT DELAYED IGNORE INTO [format_table_name("feedback")] VALUES " + sqlrowlist) +- query_feedback_save.Execute() +- +- +-/proc/feedback_set(variable,value) +- if(!GLOB.blackbox) +- return +- +- var/datum/feedback_variable/FV = GLOB.blackbox.find_feedback_datum(variable) +- +- if(!FV) +- return +- +- FV.set_value(value) +- +-/proc/feedback_inc(variable,value) +- if(!GLOB.blackbox) +- return +- +- var/datum/feedback_variable/FV = GLOB.blackbox.find_feedback_datum(variable) +- +- if(!FV) +- return +- +- FV.inc(value) +- +-/proc/feedback_dec(variable,value) +- if(!GLOB.blackbox) +- return +- +- var/datum/feedback_variable/FV = GLOB.blackbox.find_feedback_datum(variable) +- +- if(!FV) +- return +- +- FV.dec(value) +- +-/proc/feedback_set_details(variable,details) +- if(!GLOB.blackbox) +- return +- +- var/datum/feedback_variable/FV = GLOB.blackbox.find_feedback_datum(variable) +- +- if(!FV) +- return +- +- FV.set_details(details) +- +-/proc/feedback_add_details(variable,details) +- if(!GLOB.blackbox) +- return +- +- var/datum/feedback_variable/FV = GLOB.blackbox.find_feedback_datum(variable) +- +- if(!FV) +- return +- +- FV.add_details(details) +- +-//feedback variable datum, for storing all kinds of data +-/datum/feedback_variable +- var/variable +- var/value +- var/details +- +-/datum/feedback_variable/New(var/param_variable,var/param_value = 0) +- variable = param_variable +- value = param_value +- +-/datum/feedback_variable/proc/inc(num = 1) +- if (isnum(value)) +- value += num +- else +- value = text2num(value) +- if (isnum(value)) +- value += num +- else +- value = num +- +-/datum/feedback_variable/proc/dec(num = 1) +- if (isnum(value)) +- value -= num +- else +- value = text2num(value) +- if (isnum(value)) +- value -= num +- else +- value = -num +- +-/datum/feedback_variable/proc/set_value(num) +- if (isnum(num)) +- value = num +- +-/datum/feedback_variable/proc/get_value() +- if (!isnum(value)) +- return 0 +- return value +- +-/datum/feedback_variable/proc/get_variable() +- return variable +- +-/datum/feedback_variable/proc/set_details(text) +- if (istext(text)) +- details = text +- +-/datum/feedback_variable/proc/add_details(text) +- if (istext(text)) +- text = replacetext(text, " ", "_") +- if (!details) +- details = text +- else +- details += " [text]" +- +-/datum/feedback_variable/proc/get_details() +- return details +- +-/datum/feedback_variable/proc/get_parsed() +- return list(variable,value,details) +- +-//sql reporting procs +-/proc/sql_poll_population() +- if(!config.sql_enabled) +- return +- if(!GLOB.dbcon.Connect()) +- return +- var/playercount = 0 +- for(var/mob/M in GLOB.player_list) +- if(M.client) +- playercount += 1 +- var/admincount = GLOB.admins.len +- var/DBQuery/query_record_playercount = GLOB.dbcon.NewQuery("INSERT INTO [format_table_name("legacy_population")] (playercount, admincount, time, server_ip, server_port) VALUES ([playercount], [admincount], '[SQLtime()]', INET_ATON('[world.internet_address]'), '[world.port]')") +- query_record_playercount.Execute() +- +-/proc/sql_report_death(mob/living/L) +- if(!config.sql_enabled) +- return +- if(!GLOB.dbcon.Connect()) +- return +- if(!L || !L.key || !L.mind) +- return +- var/turf/T = get_turf(L) +- var/area/placeofdeath = get_area(T.loc) +- var/sqlname = sanitizeSQL(L.real_name) +- var/sqlkey = sanitizeSQL(L.ckey) +- var/sqljob = sanitizeSQL(L.mind.assigned_role) +- var/sqlspecial = sanitizeSQL(L.mind.special_role) +- var/sqlpod = sanitizeSQL(placeofdeath.name) +- var/laname +- var/lakey +- if(L.lastattacker && ismob(L.lastattacker)) +- var/mob/LA = L.lastattacker +- laname = sanitizeSQL(LA.real_name) +- lakey = sanitizeSQL(LA.key) +- var/sqlgender = sanitizeSQL(L.gender) +- var/sqlbrute = sanitizeSQL(L.getBruteLoss()) +- var/sqlfire = sanitizeSQL(L.getFireLoss()) +- var/sqlbrain = sanitizeSQL(L.getBrainLoss()) +- var/sqloxy = sanitizeSQL(L.getOxyLoss()) +- var/sqltox = sanitizeSQL(L.getStaminaLoss()) +- var/sqlclone = sanitizeSQL(L.getStaminaLoss()) +- var/sqlstamina = sanitizeSQL(L.getStaminaLoss()) +- var/coord = sanitizeSQL("[L.x], [L.y], [L.z]") +- var/map = sanitizeSQL(SSmapping.config.map_name) +- var/DBQuery/query_report_death = GLOB.dbcon.NewQuery("INSERT INTO [format_table_name("death")] (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss, toxloss, cloneloss, staminaloss, coord, mapname, server_ip, server_port) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[SQLtime()]', '[laname]', '[lakey]', '[sqlgender]', [sqlbrute], [sqlfire], [sqlbrain], [sqloxy], [sqltox], [sqlclone], [sqlstamina], '[coord]', '[map]', INET_ATON('[world.internet_address]'), '[world.port]')") +- query_report_death.Execute() ++SUBSYSTEM_DEF(blackbox) ++ name = "Blackbox" ++ wait = 6000 ++ flags = SS_NO_TICK_CHECK ++ ++ var/list/msg_common = list() ++ var/list/msg_science = list() ++ var/list/msg_command = list() ++ var/list/msg_medical = list() ++ var/list/msg_engineering = list() ++ var/list/msg_security = list() ++ var/list/msg_deathsquad = list() ++ var/list/msg_syndicate = list() ++ var/list/msg_service = list() ++ var/list/msg_cargo = list() ++ var/list/msg_other = list() ++ ++ var/list/feedback = list() //list of datum/feedback_variable ++ ++//poll population ++/datum/controller/subsystem/blackbox/fire() ++ if(!GLOB.dbcon.Connect()) ++ return ++ var/playercount = 0 ++ for(var/mob/M in GLOB.player_list) ++ if(M.client) ++ playercount += 1 ++ var/admincount = GLOB.admins.len ++ var/DBQuery/query_record_playercount = GLOB.dbcon.NewQuery("INSERT INTO [format_table_name("legacy_population")] (playercount, admincount, time, server_ip, server_port) VALUES ([playercount], [admincount], '[SQLtime()]', INET_ATON('[world.internet_address]'), '[world.port]')") ++ query_record_playercount.Execute() ++ ++/datum/controller/subsystem/blackbox/Recover() ++ msg_common = SSblackbox.msg_common ++ msg_science = SSblackbox.msg_science ++ msg_command = SSblackbox.msg_command ++ msg_medical = SSblackbox.msg_medical ++ msg_engineering = SSblackbox.msg_engineering ++ msg_security = SSblackbox.msg_security ++ msg_deathsquad = SSblackbox.msg_deathsquad ++ msg_syndicate = SSblackbox.msg_syndicate ++ msg_service = SSblackbox.msg_service ++ msg_cargo = SSblackbox.msg_cargo ++ msg_other = SSblackbox.msg_other ++ ++ feedback = SSblackbox.feedback ++ ++//no touchie ++/datum/controller/subsystem/blackbox/can_vv_get(var_name) ++ if(var_name == "feedback") ++ return FALSE ++ return ..() ++ ++/datum/controller/subsystem/blackbox/vv_edit_var(var_name, var_value) ++ return FALSE ++ ++/datum/controller/subsystem/blackbox/Shutdown() ++ var/pda_msg_amt = 0 ++ var/rc_msg_amt = 0 ++ ++ for (var/obj/machinery/message_server/MS in GLOB.message_servers) ++ if (MS.pda_msgs.len > pda_msg_amt) ++ pda_msg_amt = MS.pda_msgs.len ++ if (MS.rc_msgs.len > rc_msg_amt) ++ rc_msg_amt = MS.rc_msgs.len ++ ++ set_details("radio_usage","") ++ ++ add_details("radio_usage","COM-[msg_common.len]") ++ add_details("radio_usage","SCI-[msg_science.len]") ++ add_details("radio_usage","HEA-[msg_command.len]") ++ add_details("radio_usage","MED-[msg_medical.len]") ++ add_details("radio_usage","ENG-[msg_engineering.len]") ++ add_details("radio_usage","SEC-[msg_security.len]") ++ add_details("radio_usage","DTH-[msg_deathsquad.len]") ++ add_details("radio_usage","SYN-[msg_syndicate.len]") ++ add_details("radio_usage","SRV-[msg_service.len]") ++ add_details("radio_usage","CAR-[msg_cargo.len]") ++ add_details("radio_usage","OTH-[msg_other.len]") ++ add_details("radio_usage","PDA-[pda_msg_amt]") ++ add_details("radio_usage","RC-[rc_msg_amt]") ++ ++ set_details("round_end","[time2text(world.realtime)]") //This one MUST be the last one that gets set. ++ ++ if (!GLOB.dbcon.Connect()) ++ return ++ ++ var/round_id ++ ++ var/DBQuery/query_feedback_max_id = GLOB.dbcon.NewQuery("SELECT MAX(round_id) AS round_id FROM [format_table_name("feedback")]") ++ if(!query_feedback_max_id.Execute()) ++ return ++ while (query_feedback_max_id.NextRow()) ++ round_id = query_feedback_max_id.item[1] ++ ++ if (!isnum(round_id)) ++ round_id = text2num(round_id) ++ round_id++ ++ ++ var/sqlrowlist = "" ++ ++ for (var/datum/feedback_variable/FV in feedback) ++ if (sqlrowlist != "") ++ sqlrowlist += ", " //a comma (,) at the start of the first row to insert will trigger a SQL error ++ ++ sqlrowlist += "(null, Now(), [round_id], \"[sanitizeSQL(FV.get_variable())]\", [FV.get_value()], \"[sanitizeSQL(FV.get_details())]\")" ++ ++ if (sqlrowlist == "") ++ return ++ ++ var/DBQuery/query_feedback_save = GLOB.dbcon.NewQuery("INSERT DELAYED IGNORE INTO [format_table_name("feedback")] VALUES " + sqlrowlist) ++ query_feedback_save.Execute() ++ ++/datum/controller/subsystem/blackbox/proc/LogBroadcast(blackbox_msg, freq) ++ switch(freq) ++ if(1459) ++ msg_common += blackbox_msg ++ if(1351) ++ msg_science += blackbox_msg ++ if(1353) ++ msg_command += blackbox_msg ++ if(1355) ++ msg_medical += blackbox_msg ++ if(1357) ++ msg_engineering += blackbox_msg ++ if(1359) ++ msg_security += blackbox_msg ++ if(1441) ++ msg_deathsquad += blackbox_msg ++ if(1213) ++ msg_syndicate += blackbox_msg ++ if(1349) ++ msg_service += blackbox_msg ++ if(1347) ++ msg_cargo += blackbox_msg ++ else ++ msg_other += blackbox_msg ++ ++/datum/controller/subsystem/blackbox/proc/find_feedback_datum(variable) ++ for(var/datum/feedback_variable/FV in feedback) ++ if(FV.get_variable() == variable) ++ return FV ++ ++ var/datum/feedback_variable/FV = new(variable) ++ feedback += FV ++ return FV ++ ++/datum/controller/subsystem/blackbox/proc/set_val(variable, value) ++ var/datum/feedback_variable/FV = find_feedback_datum(variable) ++ FV.set_value(value) ++ ++/datum/controller/subsystem/blackbox/proc/inc(variable, value) ++ var/datum/feedback_variable/FV = find_feedback_datum(variable) ++ FV.inc(value) ++ ++/datum/controller/subsystem/blackbox/proc/dec(variable,value) ++ var/datum/feedback_variable/FV = find_feedback_datum(variable) ++ FV.dec(value) ++ ++/datum/controller/subsystem/blackbox/proc/set_details(variable,details) ++ var/datum/feedback_variable/FV = find_feedback_datum(variable) ++ FV.set_details(details) ++ ++/datum/controller/subsystem/blackbox/proc/add_details(variable,details) ++ var/datum/feedback_variable/FV = find_feedback_datum(variable) ++ FV.add_details(details) ++ ++/datum/controller/subsystem/blackbox/proc/ReportDeath(mob/living/L) ++ if(!GLOB.dbcon.Connect()) ++ return ++ if(!L || !L.key || !L.mind) ++ return ++ var/turf/T = get_turf(L) ++ var/area/placeofdeath = get_area(T.loc) ++ var/sqlname = sanitizeSQL(L.real_name) ++ var/sqlkey = sanitizeSQL(L.ckey) ++ var/sqljob = sanitizeSQL(L.mind.assigned_role) ++ var/sqlspecial = sanitizeSQL(L.mind.special_role) ++ var/sqlpod = sanitizeSQL(placeofdeath.name) ++ var/laname ++ var/lakey ++ if(L.lastattacker && ismob(L.lastattacker)) ++ var/mob/LA = L.lastattacker ++ laname = sanitizeSQL(LA.real_name) ++ lakey = sanitizeSQL(LA.key) ++ var/sqlgender = sanitizeSQL(L.gender) ++ var/sqlbrute = sanitizeSQL(L.getBruteLoss()) ++ var/sqlfire = sanitizeSQL(L.getFireLoss()) ++ var/sqlbrain = sanitizeSQL(L.getBrainLoss()) ++ var/sqloxy = sanitizeSQL(L.getOxyLoss()) ++ var/sqltox = sanitizeSQL(L.getStaminaLoss()) ++ var/sqlclone = sanitizeSQL(L.getStaminaLoss()) ++ var/sqlstamina = sanitizeSQL(L.getStaminaLoss()) ++ var/coord = sanitizeSQL("[L.x], [L.y], [L.z]") ++ var/map = sanitizeSQL(SSmapping.config.map_name) ++ var/DBQuery/query_report_death = GLOB.dbcon.NewQuery("INSERT INTO [format_table_name("death")] (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss, toxloss, cloneloss, staminaloss, coord, mapname, server_ip, server_port) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[SQLtime()]', '[laname]', '[lakey]', '[sqlgender]', [sqlbrute], [sqlfire], [sqlbrain], [sqloxy], [sqltox], [sqlclone], [sqlstamina], '[coord]', '[map]', INET_ATON('[world.internet_address]'), '[world.port]')") ++ query_report_death.Execute() ++ ++ ++//feedback variable datum, for storing all kinds of data ++/datum/feedback_variable ++ var/variable ++ var/value ++ var/details ++ ++/datum/feedback_variable/New(param_variable, param_value = 0) ++ variable = param_variable ++ value = param_value ++ ++/datum/feedback_variable/proc/inc(num = 1) ++ if (isnum(value)) ++ value += num ++ else ++ value = text2num(value) ++ if (isnum(value)) ++ value += num ++ else ++ value = num ++ ++/datum/feedback_variable/proc/dec(num = 1) ++ if (isnum(value)) ++ value -= num ++ else ++ value = text2num(value) ++ if (isnum(value)) ++ value -= num ++ else ++ value = -num ++ ++/datum/feedback_variable/proc/set_value(num) ++ if (isnum(num)) ++ value = num ++ ++/datum/feedback_variable/proc/get_value() ++ if (!isnum(value)) ++ return 0 ++ return value ++ ++/datum/feedback_variable/proc/get_variable() ++ return variable ++ ++/datum/feedback_variable/proc/set_details(text) ++ if (istext(text)) ++ details = text ++ ++/datum/feedback_variable/proc/add_details(text) ++ if (istext(text)) ++ text = replacetext(text, " ", "_") ++ if (!details) ++ details = text ++ else ++ details += " [text]" ++ ++/datum/feedback_variable/proc/get_details() ++ return details ++ ++/datum/feedback_variable/proc/get_parsed() ++ return list(variable,value,details) diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 137bd2a2c1..a3255b73e4 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -483,7 +483,7 @@ SUBSYSTEM_DEF(job) else level4++ //not selected tmp_str += "HIGH=[level1]|MEDIUM=[level2]|LOW=[level3]|NEVER=[level4]|BANNED=[level5]|YOUNG=[level6]|-" - feedback_add_details("job_preferences",tmp_str) + SSblackbox.add_details("job_preferences",tmp_str) /datum/controller/subsystem/job/proc/PopcapReached() if(config.hard_popcap || config.extreme_popcap) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 1499bc5029..d73d417f5f 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -116,7 +116,7 @@ SUBSYSTEM_DEF(mapping) INIT_ANNOUNCE("Loading [config.map_name]...") TryLoadZ(config.GetFullMapPath(), FailedZs, ZLEVEL_STATION) INIT_ANNOUNCE("Loaded station in [(REALTIMEOFDAY - start_time)/10]s!") - feedback_add_details("map_name", config.map_name) + SSblackbox.add_details("map_name", config.map_name) if(config.minetype != "lavaland") INIT_ANNOUNCE("WARNING: A map without lavaland set as it's minetype was loaded! This is being ignored! Update the maploader code!") diff --git a/code/controllers/subsystem/ping.dm b/code/controllers/subsystem/ping.dm index 0829766174..a6b444c4e7 100644 --- a/code/controllers/subsystem/ping.dm +++ b/code/controllers/subsystem/ping.dm @@ -3,14 +3,20 @@ SUBSYSTEM_DEF(ping) name = "Ping" wait = 6 - flags = SS_NO_INIT|SS_POST_FIRE_TIMING|SS_FIRE_IN_LOBBY + flags = SS_POST_FIRE_TIMING|SS_FIRE_IN_LOBBY priority = 10 var/list/currentrun +/datum/controller/subsystem/ping/Initialize() + if (config.hub) + world.visibility = 1 + ..() + /datum/controller/subsystem/ping/fire(resumed = FALSE) if (!resumed) src.currentrun = GLOB.clients.Copy() + var/round_started = Master.round_started var/list/currentrun = src.currentrun while (length(currentrun)) var/client/C = currentrun[currentrun.len] @@ -19,7 +25,15 @@ SUBSYSTEM_DEF(ping) if (MC_TICK_CHECK) return continue + + if(round_started && C.is_afk(INACTIVITY_KICK)) + if(!istype(C.mob, /mob/dead)) + log_access("AFK: [key_name(C)]") + to_chat(C, "You have been inactive for more than 10 minutes and have been disconnected.") + qdel(C) + winset(C, null, "command=.update_ping+[world.time+world.tick_lag*world.tick_usage/100]") + if (MC_TICK_CHECK) //one day, when ss13 has 1000 people per server, you guys are gonna be glad I added this tick check return diff --git a/code/controllers/subsystem/server_maint.dm b/code/controllers/subsystem/server_maint.dm index 3ef088b328..9c730e92b1 100644 --- a/code/controllers/subsystem/server_maint.dm +++ b/code/controllers/subsystem/server_maint.dm @@ -1,23 +1,38 @@ +#define PING_BUFFER_TIME 25 + SUBSYSTEM_DEF(server_maint) name = "Server Tasks" - wait = 6000 - flags = SS_NO_TICK_CHECK + wait = 6 + flags = SS_POST_FIRE_TIMING|SS_FIRE_IN_LOBBY + priority = 10 + var/list/currentrun /datum/controller/subsystem/server_maint/Initialize(timeofday) if (config.hub) world.visibility = 1 ..() -/datum/controller/subsystem/server_maint/fire() - //handle kicking inactive players - if(config.kick_inactive) - for(var/client/C in GLOB.clients) - if(C.is_afk(config.afk_period)) - var/cmob = C.mob - if(!(istype(cmob, /mob/dead/observer) || (istype(cmob, /mob/dead) && C.holder))) +/datum/controller/subsystem/server_maint/fire(resumed = FALSE) + if (!resumed) + src.currentrun = GLOB.clients.Copy() + + var/round_started = Master.round_started + var/list/currentrun = src.currentrun + while (length(currentrun)) + var/client/C = currentrun[currentrun.len] + currentrun.len-- + + if(config.kick_inactive) + if(round_started && C.is_afk(INACTIVITY_KICK)) + if(!istype(C.mob, /mob/dead)) log_access("AFK: [key_name(C)]") - to_chat(C, "You have been inactive for more than [config.afk_period / 600] minutes and have been disconnected.") + to_chat(C, "You have been inactive for more than 10 minutes and have been disconnected.") qdel(C) - if(config.sql_enabled) - sql_poll_population() + if (!(!C || world.time - C.connection_time < PING_BUFFER_TIME || C.inactivity >= (wait-1))) + winset(C, null, "command=.update_ping+[world.time+world.tick_lag*world.tick_usage/100]") + + if (MC_TICK_CHECK) //one day, when ss13 has 1000 people per server, you guys are gonna be glad I added this tick check + return + +#undef PING_BUFFER_TIME diff --git a/code/controllers/subsystem/server_maint.dm.rej b/code/controllers/subsystem/server_maint.dm.rej new file mode 100644 index 0000000000..f759db5330 --- /dev/null +++ b/code/controllers/subsystem/server_maint.dm.rej @@ -0,0 +1,7 @@ +diff a/code/controllers/subsystem/server_maint.dm b/code/controllers/subsystem/server_maint.dm (rejected hunks) +@@ -18,5 +18,3 @@ SUBSYSTEM_DEF(server_maint) + to_chat(C, "You have been inactive for more than 10 minutes and have been disconnected.") + qdel(C) + +- if(config.sql_enabled) +- sql_poll_population() diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm index f1b5d3a973..526f64cee7 100644 --- a/code/datums/helper_datums/getrev.dm +++ b/code/datums/helper_datums/getrev.dm @@ -25,7 +25,7 @@ for(var/line in testmerge) if(line) log_world("Test merge active of PR #[line]") - feedback_add_details("testmerged_prs","[line]") + SSblackbox.add_details("testmerged_prs","[line]") log_world("Based off master commit [parentcommit]") else log_world(parentcommit) diff --git a/code/game/gamemodes/blob/blob_finish.dm b/code/game/gamemodes/blob/blob_finish.dm index a5fc5e339a..47e2ce6a14 100644 --- a/code/game/gamemodes/blob/blob_finish.dm +++ b/code/game/gamemodes/blob/blob_finish.dm @@ -20,7 +20,7 @@ if(round_converted) //So badmin blobs later don't step on the dead natural blobs metaphorical toes ..() if(blobwincount <= GLOB.blobs_legit.len) - feedback_set_details("round_end_result","win - blob took over") + SSblackbox.set_details("round_end_result","win - blob took over") to_chat(world, "The blob has taken over the station!") to_chat(world, "The entire station was eaten by the Blob!") log_game("Blob mode completed with a blob victory.") @@ -28,7 +28,7 @@ SSticker.news_report = BLOB_WIN else if(station_was_nuked) - feedback_set_details("round_end_result","halfwin - nuke") + SSblackbox.set_details("round_end_result","halfwin - nuke") to_chat(world, "Partial Win: The station has been destroyed!") to_chat(world, "Directive 7-12 has been successfully carried out, preventing the Blob from spreading.") log_game("Blob mode completed with a tie (station destroyed).") @@ -36,7 +36,7 @@ SSticker.news_report = BLOB_NUKE else if(!GLOB.blob_cores.len) - feedback_set_details("round_end_result","loss - blob eliminated") + SSblackbox.set_details("round_end_result","loss - blob eliminated") to_chat(world, "The staff has won!") to_chat(world, "The alien organism has been eradicated from the station!") log_game("Blob mode completed with a crew victory.") diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index fc39f2222e..9d281b5f2f 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -254,19 +254,19 @@ GLOBAL_LIST_INIT(slot2type, list("head" = /obj/item/clothing/head/changeling, "w for(var/datum/objective/objective in changeling.objectives) if(objective.check_completion()) text += "
Objective #[count]: [objective.explanation_text] Success!" - feedback_add_details("changeling_objective","[objective.type]|SUCCESS") + SSblackbox.add_details("changeling_objective","[objective.type]|SUCCESS") else text += "
Objective #[count]: [objective.explanation_text] Fail." - feedback_add_details("changeling_objective","[objective.type]|FAIL") + SSblackbox.add_details("changeling_objective","[objective.type]|FAIL") changelingwin = 0 count++ if(changelingwin) text += "
The changeling was successful!" - feedback_add_details("changeling_success","SUCCESS") + SSblackbox.add_details("changeling_success","SUCCESS") else text += "
The changeling has failed." - feedback_add_details("changeling_success","FAIL") + SSblackbox.add_details("changeling_success","FAIL") text += "
" to_chat(world, text) diff --git a/code/game/gamemodes/changeling/changeling_power.dm b/code/game/gamemodes/changeling/changeling_power.dm index 1673e59f49..67eb216d58 100644 --- a/code/game/gamemodes/changeling/changeling_power.dm +++ b/code/game/gamemodes/changeling/changeling_power.dm @@ -21,7 +21,7 @@ /obj/effect/proc_holder/changeling/proc/on_purchase(mob/user, is_respec) if(!is_respec) - feedback_add_details("changeling_power_purchase",name) + SSblackbox.add_details("changeling_power_purchase",name) /obj/effect/proc_holder/changeling/proc/on_refund(mob/user) return @@ -37,7 +37,7 @@ return var/datum/changeling/c = user.mind.changeling if(sting_action(user, target)) - feedback_add_details("changeling_powers",name) + SSblackbox.add_details("changeling_powers",name) sting_feedback(user, target) take_chemical_cost(c) diff --git a/code/game/gamemodes/changeling/evolution_menu.dm b/code/game/gamemodes/changeling/evolution_menu.dm index db1405537f..fdfec9e270 100644 --- a/code/game/gamemodes/changeling/evolution_menu.dm +++ b/code/game/gamemodes/changeling/evolution_menu.dm @@ -68,7 +68,7 @@ mind.changeling.purchasedpowers+=S S.on_purchase(src, is_respec) if(is_respec) - feedback_add_details("changeling_power_purchase","Readapt") + SSblackbox.add_details("changeling_power_purchase","Readapt") var/mob/living/carbon/C = src //only carbons have dna now, so we have to typecaste if(ishuman(C)) diff --git a/code/game/gamemodes/changeling/powers/absorb.dm b/code/game/gamemodes/changeling/powers/absorb.dm index 0f1fb93071..6a52ab9312 100644 --- a/code/game/gamemodes/changeling/powers/absorb.dm +++ b/code/game/gamemodes/changeling/powers/absorb.dm @@ -42,13 +42,13 @@ to_chat(target, "You feel a sharp stabbing pain!") target.take_overall_damage(40) - feedback_add_details("changeling_powers","Absorb DNA|[i]") + SSblackbox.add_details("changeling_powers","Absorb DNA|[i]") if(!do_mob(user, target, 150)) to_chat(user, "Our absorption of [target] has been interrupted!") changeling.isabsorbing = 0 return - feedback_add_details("changeling_powers","Absorb DNA|4") + SSblackbox.add_details("changeling_powers","Absorb DNA|4") user.visible_message("[user] sucks the fluids from [target]!", "We have absorbed [target].") to_chat(target, "You are absorbed by the changeling!") diff --git a/code/game/gamemodes/changeling/powers/linglink.dm b/code/game/gamemodes/changeling/powers/linglink.dm index 5a64d551b5..fc4b91b650 100644 --- a/code/game/gamemodes/changeling/powers/linglink.dm +++ b/code/game/gamemodes/changeling/powers/linglink.dm @@ -56,7 +56,7 @@ to_chat(target, "You can now communicate in the changeling hivemind, say \":g message\" to communicate!") target.reagents.add_reagent("salbutamol", 40) // So they don't choke to death while you interrogate them sleep(1800) - feedback_add_details("changeling_powers","Hivemind Link|[i]") + SSblackbox.add_details("changeling_powers","Hivemind Link|[i]") if(!do_mob(user, target, 20)) to_chat(user, "Our link with [target] has ended!") changeling.islinking = 0 diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index 670e08e7a2..deb5ad7e1a 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -194,7 +194,7 @@ Credit where due: var/datum/game_mode/clockwork_cult/C = SSticker.mode if(C.check_clockwork_victory()) text += "Ratvar's servants have succeeded in fulfilling His goals!" - feedback_set_details("round_end_result", "win - servants completed their objective (summon ratvar)") + SSblackbox.set_details("round_end_result", "win - servants completed their objective (summon ratvar)") else var/half_victory = FALSE var/obj/structure/destructible/clockwork/massive/celestial_gateway/G = locate() in GLOB.all_clockwork_objects @@ -203,10 +203,10 @@ Credit where due: if(half_victory) text += "The crew escaped before Ratvar could rise, but the gateway \ was successfully constructed!" - feedback_set_details("round_end_result", "halfwin - servants constructed the gateway but their objective was not completed (summon ratvar)") + SSblackbox.set_details("round_end_result", "halfwin - servants constructed the gateway but their objective was not completed (summon ratvar)") else text += "Ratvar's servants have failed!" - feedback_set_details("round_end_result", "loss - servants failed their objective (summon ratvar)") + SSblackbox.set_details("round_end_result", "loss - servants failed their objective (summon ratvar)") text += "
The servants' objective was:
[CLOCKCULT_OBJECTIVE]" text += "
Ratvar's servants had [GLOB.clockwork_caches] Tinkerer's Caches." text += "
Construction Value(CV) was: [GLOB.clockwork_construction_value]" diff --git a/code/game/gamemodes/clock_cult/clock_scripture.dm b/code/game/gamemodes/clock_cult/clock_scripture.dm index 8e688f30aa..e8f1e8dbbc 100644 --- a/code/game/gamemodes/clock_cult/clock_scripture.dm +++ b/code/game/gamemodes/clock_cult/clock_scripture.dm @@ -86,7 +86,7 @@ Judgement: 12 servants, 5 caches, 300 CV, and any existing AIs are converted or else successful = TRUE if(slab && !slab.no_cost && !GLOB.ratvar_awakens) //if the slab exists and isn't debug and ratvar isn't up, log the scripture as being used - feedback_add_details("clockcult_scripture_recited", name) + SSblackbox.add_details("clockcult_scripture_recited", name) if(slab) slab.busy = null qdel(src) diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 65dcb863eb..f3832a830b 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -218,12 +218,12 @@ /datum/game_mode/cult/declare_completion() if(!check_cult_victory()) - feedback_set_details("round_end_result","win - cult win") - feedback_set("round_end_result",acolytes_survived) + SSblackbox.set_details("round_end_result","win - cult win") + SSblackbox.set_val("round_end_result",acolytes_survived) to_chat(world, "The cult has succeeded! Nar-sie has snuffed out another torch in the void!") else - feedback_set_details("round_end_result","loss - staff stopped the cult") - feedback_set("round_end_result",acolytes_survived) + SSblackbox.set_details("round_end_result","loss - staff stopped the cult") + SSblackbox.set_val("round_end_result",acolytes_survived) to_chat(world, "The staff managed to stop the cult! Dark words and heresy are no match for Nanotrasen's finest!") var/text = "" @@ -236,31 +236,31 @@ if("survive") if(!check_survive()) explanation = "Make sure at least [acolytes_needed] acolytes escape on the shuttle. ([acolytes_survived] escaped) Success!" - feedback_add_details("cult_objective","cult_survive|SUCCESS|[acolytes_needed]") + SSblackbox.add_details("cult_objective","cult_survive|SUCCESS|[acolytes_needed]") SSticker.news_report = CULT_ESCAPE else explanation = "Make sure at least [acolytes_needed] acolytes escape on the shuttle. ([acolytes_survived] escaped) Fail." - feedback_add_details("cult_objective","cult_survive|FAIL|[acolytes_needed]") + SSblackbox.add_details("cult_objective","cult_survive|FAIL|[acolytes_needed]") SSticker.news_report = CULT_FAILURE if("sacrifice") if(sacrifice_target) if(sacrifice_target in GLOB.sacrificed) explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. Success!" - feedback_add_details("cult_objective","cult_sacrifice|SUCCESS") + SSblackbox.add_details("cult_objective","cult_sacrifice|SUCCESS") else if(sacrifice_target && sacrifice_target.current) explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. Fail." - feedback_add_details("cult_objective","cult_sacrifice|FAIL") + SSblackbox.add_details("cult_objective","cult_sacrifice|FAIL") else explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. Fail (Gibbed)." - feedback_add_details("cult_objective","cult_sacrifice|FAIL|GIBBED") + SSblackbox.add_details("cult_objective","cult_sacrifice|FAIL|GIBBED") if("eldergod") if(!eldergod) explanation = "Summon Nar-Sie. Success!" - feedback_add_details("cult_objective","cult_narsie|SUCCESS") + SSblackbox.add_details("cult_objective","cult_narsie|SUCCESS") SSticker.news_report = CULT_SUMMON else explanation = "Summon Nar-Sie. Fail." - feedback_add_details("cult_objective","cult_narsie|FAIL") + SSblackbox.add_details("cult_objective","cult_narsie|FAIL") SSticker.news_report = CULT_FAILURE text += "
Objective #[obj_count]: [explanation]" diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 2ed6840c91..843d16592a 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -247,7 +247,7 @@ This file contains the arcane tome files. var/obj/effect/rune/R = new rune_to_scribe(Turf, chosen_keyword) R.add_mob_blood(user) to_chat(user, "The [lowertext(R.cultist_name)] rune [R.cultist_desc]") - feedback_add_details("cult_runes_scribed", R.cultist_name) + SSblackbox.add_details("cult_runes_scribed", R.cultist_name) /obj/item/weapon/tome/proc/check_rune_turf(turf/T, mob/user) var/area/A = get_area(T) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 2564d1b262..44d1121f45 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -246,17 +246,17 @@ ghosts++ if(clients > 0) - feedback_set("round_end_clients",clients) + SSblackbox.set_val("round_end_clients",clients) if(ghosts > 0) - feedback_set("round_end_ghosts",ghosts) + SSblackbox.set_val("round_end_ghosts",ghosts) if(surviving_humans > 0) - feedback_set("survived_human",surviving_humans) + SSblackbox.set_val("survived_human",surviving_humans) if(surviving_total > 0) - feedback_set("survived_total",surviving_total) + SSblackbox.set_val("survived_total",surviving_total) if(escaped_humans > 0) - feedback_set("escaped_human",escaped_humans) + SSblackbox.set_val("escaped_human",escaped_humans) if(escaped_total > 0) - feedback_set("escaped_total",escaped_total) + SSblackbox.set_val("escaped_total",escaped_total) send2irc("Server", "Round just ended.") return 0 diff --git a/code/game/gamemodes/game_mode.dm.rej b/code/game/gamemodes/game_mode.dm.rej new file mode 100644 index 0000000000..2ee380eecf --- /dev/null +++ b/code/game/gamemodes/game_mode.dm.rej @@ -0,0 +1,18 @@ +diff a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm (rejected hunks) +@@ -81,12 +81,12 @@ + spawn (ROUNDSTART_LOGOUT_REPORT_TIME) + display_roundstart_logout_report() + +- feedback_set_details("round_start","[time2text(world.realtime)]") ++ SSblackbox.set_details("round_start","[time2text(world.realtime)]") + if(SSticker && SSticker.mode) +- feedback_set_details("game_mode","[SSticker.mode]") ++ SSblackbox.set_details("game_mode","[SSticker.mode]") + if(GLOB.revdata.commit) +- feedback_set_details("revision","[GLOB.revdata.commit]") +- feedback_set_details("server_ip","[world.internet_address]:[world.port]") ++ SSblackbox.set_details("revision","[GLOB.revdata.commit]") ++ SSblackbox.set_details("server_ip","[world.internet_address]:[world.port]") + if(report) + spawn (rand(waittime_l, waittime_h)) + send_intercept(0) diff --git a/code/game/gamemodes/gang/gang.dm b/code/game/gamemodes/gang/gang.dm index 22ca4b2298..9c31edf55f 100644 --- a/code/game/gamemodes/gang/gang.dm +++ b/code/game/gamemodes/gang/gang.dm @@ -260,12 +260,12 @@ GLOBAL_LIST_INIT(gang_colors_pool, list("red","orange","yellow","green","blue"," return if(!winner) to_chat(world, "The station was [station_was_nuked ? "destroyed!" : "evacuated before a gang could claim it! The station wins!"]
") - feedback_set_details("round_end_result","loss - gangs failed takeover") + SSblackbox.set_details("round_end_result","loss - gangs failed takeover") SSticker.news_report = GANG_LOSS else to_chat(world, "The [winner.name] Gang successfully performed a hostile takeover of the station!
") - feedback_set_details("round_end_result","win - gang domination complete") + SSblackbox.set_details("round_end_result","win - gang domination complete") SSticker.news_report = GANG_TAKEOVER diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm index e1a2ddf78f..400b38309b 100644 --- a/code/game/gamemodes/meteor/meteor.dm +++ b/code/game/gamemodes/meteor/meteor.dm @@ -50,8 +50,8 @@ else to_chat(world, "Nobody survived the meteor storm!") - feedback_set_details("round_end_result","end - evacuation") - feedback_set("round_end_result",survivors) + SSblackbox.set_details("round_end_result","end - evacuation") + SSblackbox.set_val("round_end_result",survivors) ..() return 1 diff --git a/code/game/gamemodes/miniantags/monkey/monkey.dm b/code/game/gamemodes/miniantags/monkey/monkey.dm index ecb15bc221..f9ea8dcc2c 100644 --- a/code/game/gamemodes/miniantags/monkey/monkey.dm +++ b/code/game/gamemodes/miniantags/monkey/monkey.dm @@ -107,10 +107,10 @@ /datum/game_mode/monkey/declare_completion() if(check_monkey_victory()) - feedback_set_details("round_end_result","win - monkey win") - feedback_set("round_end_result",escaped_monkeys) + SSblackbox.set_details("round_end_result","win - monkey win") + SSblackbox.set_val("round_end_result",escaped_monkeys) to_chat(world, "The monkeys have overthrown their captors! Eeek eeeek!!") else - feedback_set_details("round_end_result","loss - staff stopped the monkeys") - feedback_set("round_end_result",escaped_monkeys) + SSblackbox.set_details("round_end_result","loss - staff stopped the monkeys") + SSblackbox.set_val("round_end_result",escaped_monkeys) to_chat(world, "The staff managed to contain the monkey infestation!") diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index d4d788e049..b12dcc3bcc 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -199,70 +199,70 @@ if(nuke_off_station == NUKE_SYNDICATE_BASE) - feedback_set_details("round_end_result","loss - syndicate nuked - disk secured") + SSblackbox.set_details("round_end_result","loss - syndicate nuked - disk secured") to_chat(world, "Humiliating Syndicate Defeat") to_chat(world, "The crew of [station_name()] gave [syndicate_name()] operatives back their bomb! The syndicate base was destroyed! Next time, don't lose the nuke!") SSticker.news_report = NUKE_SYNDICATE_BASE else if(!disk_rescued && station_was_nuked && !syndies_didnt_escape) - feedback_set_details("round_end_result","win - syndicate nuke") + SSblackbox.set_details("round_end_result","win - syndicate nuke") to_chat(world, "Syndicate Major Victory!") to_chat(world, "[syndicate_name()] operatives have destroyed [station_name()]!") SSticker.news_report = STATION_NUKED else if (!disk_rescued && station_was_nuked && syndies_didnt_escape) - feedback_set_details("round_end_result","halfwin - syndicate nuke - did not evacuate in time") + SSblackbox.set_details("round_end_result","halfwin - syndicate nuke - did not evacuate in time") to_chat(world, "Total Annihilation") to_chat(world, "[syndicate_name()] operatives destroyed [station_name()] but did not leave the area in time and got caught in the explosion. Next time, don't lose the disk!") SSticker.news_report = STATION_NUKED else if (!disk_rescued && !station_was_nuked && nuke_off_station && !syndies_didnt_escape) - feedback_set_details("round_end_result","halfwin - blew wrong station") + SSblackbox.set_details("round_end_result","halfwin - blew wrong station") to_chat(world, "Crew Minor Victory") to_chat(world, "[syndicate_name()] operatives secured the authentication disk but blew up something that wasn't [station_name()]. Next time, don't do that!") SSticker.news_report = NUKE_MISS else if (!disk_rescued && !station_was_nuked && nuke_off_station && syndies_didnt_escape) - feedback_set_details("round_end_result","halfwin - blew wrong station - did not evacuate in time") + SSblackbox.set_details("round_end_result","halfwin - blew wrong station - did not evacuate in time") to_chat(world, "[syndicate_name()] operatives have earned Darwin Award!") to_chat(world, "[syndicate_name()] operatives blew up something that wasn't [station_name()] and got caught in the explosion. Next time, don't do that!") SSticker.news_report = NUKE_MISS else if ((disk_rescued || SSshuttle.emergency.mode != SHUTTLE_ENDGAME) && are_operatives_dead()) - feedback_set_details("round_end_result","loss - evacuation - disk secured - syndi team dead") + SSblackbox.set_details("round_end_result","loss - evacuation - disk secured - syndi team dead") to_chat(world, "Crew Major Victory!") to_chat(world, "The Research Staff has saved the disk and killed the [syndicate_name()] Operatives") SSticker.news_report = OPERATIVES_KILLED else if (disk_rescued) - feedback_set_details("round_end_result","loss - evacuation - disk secured") + SSblackbox.set_details("round_end_result","loss - evacuation - disk secured") to_chat(world, "Crew Major Victory") to_chat(world, "The Research Staff has saved the disk and stopped the [syndicate_name()] Operatives!") SSticker.news_report = OPERATIVES_KILLED else if (!disk_rescued && are_operatives_dead()) - feedback_set_details("round_end_result","halfwin - evacuation - disk not secured") + SSblackbox.set_details("round_end_result","halfwin - evacuation - disk not secured") to_chat(world, "Neutral Victory!") to_chat(world, "The Research Staff failed to secure the authentication disk but did manage to kill most of the [syndicate_name()] Operatives!") SSticker.news_report = OPERATIVE_SKIRMISH else if (!disk_rescued && crew_evacuated) - feedback_set_details("round_end_result","halfwin - detonation averted") + SSblackbox.set_details("round_end_result","halfwin - detonation averted") to_chat(world, "Syndicate Minor Victory!") to_chat(world, "[syndicate_name()] operatives survived the assault but did not achieve the destruction of [station_name()]. Next time, don't lose the disk!") SSticker.news_report = OPERATIVE_SKIRMISH else if (!disk_rescued && !crew_evacuated) - feedback_set_details("round_end_result","halfwin - interrupted") + SSblackbox.set_details("round_end_result","halfwin - interrupted") to_chat(world, "Neutral Victory") to_chat(world, "Round was mysteriously interrupted!") diff --git a/code/game/gamemodes/nuclear/nuclear_challenge.dm b/code/game/gamemodes/nuclear/nuclear_challenge.dm index 3e47aa517d..cad958ee64 100644 --- a/code/game/gamemodes/nuclear/nuclear_challenge.dm +++ b/code/game/gamemodes/nuclear/nuclear_challenge.dm @@ -57,7 +57,7 @@ U.hidden_uplink.telecrystals = CHALLENGE_TELECRYSTALS U.hidden_uplink.set_gamemode(/datum/game_mode/nuclear) config.shuttle_refuel_delay = max(config.shuttle_refuel_delay, CHALLENGE_SHUTTLE_DELAY) - feedback_set("nuclear_challenge_mode",1) + SSblackbox.set_val("nuclear_challenge_mode",1) qdel(src) /obj/item/device/nuclear_challenge/proc/check_allowed(mob/living/user) diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index 634c68e89a..7a31d1f3cd 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -345,13 +345,13 @@ ////////////////////////////////////////////////////////////////////// /datum/game_mode/revolution/declare_completion() if(finished == 1) - feedback_set_details("round_end_result","win - heads killed") + SSblackbox.set_details("round_end_result","win - heads killed") to_chat(world, "The heads of staff were killed or exiled! The revolutionaries win!") SSticker.news_report = REVS_WIN else if(finished == 2) - feedback_set_details("round_end_result","loss - rev heads killed") + SSblackbox.set_details("round_end_result","loss - rev heads killed") to_chat(world, "The heads of staff managed to stop the revolution!") SSticker.news_report = REVS_LOSE diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index c26945801b..c748484c1b 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -260,10 +260,10 @@ for(var/datum/objective/objective in traitor.objectives) if(objective.check_completion()) objectives += "
Objective #[count]: [objective.explanation_text] Success!" - feedback_add_details("traitor_objective","[objective.type]|SUCCESS") + SSblackbox.add_details("traitor_objective","[objective.type]|SUCCESS") else objectives += "
Objective #[count]: [objective.explanation_text] Fail." - feedback_add_details("traitor_objective","[objective.type]|FAIL") + SSblackbox.add_details("traitor_objective","[objective.type]|FAIL") traitorwin = 0 count++ @@ -283,10 +283,10 @@ if(traitorwin) text += "
The [special_role_text] was successful!" - feedback_add_details("traitor_success","SUCCESS") + SSblackbox.add_details("traitor_success","SUCCESS") else text += "
The [special_role_text] has failed!" - feedback_add_details("traitor_success","FAIL") + SSblackbox.add_details("traitor_success","FAIL") text += "
" diff --git a/code/game/gamemodes/wizard/raginmages.dm b/code/game/gamemodes/wizard/raginmages.dm index 01eb8a52c4..1eb51a95b4 100644 --- a/code/game/gamemodes/wizard/raginmages.dm +++ b/code/game/gamemodes/wizard/raginmages.dm @@ -132,7 +132,7 @@ /datum/game_mode/wizard/raginmages/declare_completion() if(finished) - feedback_set_details("round_end_result","loss - wizard killed") + SSblackbox.set_details("round_end_result","loss - wizard killed") to_chat(world, "The crew has managed to hold off the wizard attack! The Space Wizards Federation has been taught a lesson they will not soon forget!") ..(1) diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index e9e1a95e73..8541fd154c 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -57,10 +57,10 @@ aspell.name = "Instant [aspell.name]" if(aspell.spell_level >= aspell.level_max) to_chat(user, "This spell cannot be strengthened any further.") - feedback_add_details("wizard_spell_improved", "[name]|[aspell.level]") + SSblackbox.add_details("wizard_spell_improved", "[name]|[aspell.level]") return 1 //No same spell found - just learn it - feedback_add_details("wizard_spell_learned", name) + SSblackbox.add_details("wizard_spell_learned", name) user.mind.AddSpell(S) to_chat(user, "You have learned [S.name].") return 1 @@ -266,7 +266,7 @@ /datum/spellbook_entry/item/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) new item_path(get_turf(user)) - feedback_add_details("wizard_spell_learned", name) + SSblackbox.add_details("wizard_spell_learned", name) return 1 /datum/spellbook_entry/item/GetInfo() @@ -465,7 +465,7 @@ return TRUE /datum/spellbook_entry/summon/ghosts/Buy(mob/living/carbon/human/user, obj/item/weapon/spellbook/book) - feedback_add_details("wizard_spell_learned", name) + SSblackbox.add_details("wizard_spell_learned", name) new /datum/round_event/wizard/ghost() active = TRUE to_chat(user, "You have cast summon ghosts!") @@ -482,7 +482,7 @@ return (SSticker.mode.name != "ragin' mages" && !config.no_summon_guns) /datum/spellbook_entry/summon/guns/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) - feedback_add_details("wizard_spell_learned", name) + SSblackbox.add_details("wizard_spell_learned", name) rightandwrong(0, user, 25) active = 1 playsound(get_turf(user), 'sound/magic/CastSummon.ogg', 50, 1) @@ -499,7 +499,7 @@ return (SSticker.mode.name != "ragin' mages" && !config.no_summon_magic) /datum/spellbook_entry/summon/magic/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) - feedback_add_details("wizard_spell_learned", name) + SSblackbox.add_details("wizard_spell_learned", name) rightandwrong(1, user, 25) active = 1 playsound(get_turf(user), 'sound/magic/CastSummon.ogg', 50, 1) @@ -517,7 +517,7 @@ return (SSticker.mode.name != "ragin' mages" && !config.no_summon_events) /datum/spellbook_entry/summon/events/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) - feedback_add_details("wizard_spell_learned", name) + SSblackbox.add_details("wizard_spell_learned", name) summonevents() times++ playsound(get_turf(user), 'sound/magic/CastSummon.ogg', 50, 1) diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index 34d148f03c..35bccb692a 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -176,7 +176,7 @@ /datum/game_mode/wizard/declare_completion() if(finished) - feedback_set_details("round_end_result","loss - wizard killed") + SSblackbox.set_details("round_end_result","loss - wizard killed") to_chat(world, "The wizard[(wizards.len>1)?"s":""] has been killed by the crew! The Space Wizards Federation has been taught a lesson they will not soon forget!") SSticker.news_report = WIZARD_KILLED @@ -208,19 +208,19 @@ for(var/datum/objective/objective in wizard.objectives) if(objective.check_completion()) text += "
Objective #[count]: [objective.explanation_text] Success!" - feedback_add_details("wizard_objective","[objective.type]|SUCCESS") + SSblackbox.add_details("wizard_objective","[objective.type]|SUCCESS") else text += "
Objective #[count]: [objective.explanation_text] Fail." - feedback_add_details("wizard_objective","[objective.type]|FAIL") + SSblackbox.add_details("wizard_objective","[objective.type]|FAIL") wizardwin = 0 count++ if(wizard.current && wizard.current.stat!=2 && wizardwin) text += "
The wizard was successful!" - feedback_add_details("wizard_success","SUCCESS") + SSblackbox.add_details("wizard_success","SUCCESS") else text += "
The wizard has failed!" - feedback_add_details("wizard_success","FAIL") + SSblackbox.add_details("wizard_success","FAIL") if(wizard.spell_list.len>0) text += "
[wizard.name] used the following spells: " var/i = 1 diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 514cf590af..643282ab4a 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -234,7 +234,7 @@ playsound(loc, 'sound/arcade/Win.ogg', 50, 1, extrarange = -3, falloff = 10) if(emagged) - feedback_inc("arcade_win_emagged") + SSblackbox.inc("arcade_win_emagged") new /obj/effect/spawner/newbomb/timer/syndicate(loc) new /obj/item/clothing/head/collectable/petehat(loc) message_admins("[key_name_admin(usr)] has outbombed Cuban Pete and been awarded a bomb.") @@ -242,7 +242,7 @@ Reset() emagged = 0 else - feedback_inc("arcade_win_normal") + SSblackbox.inc("arcade_win_normal") prizevend() else if (emagged && (turtle >= 4)) @@ -264,10 +264,10 @@ temp = "You have been drained! GAME OVER" playsound(loc, 'sound/arcade/Lose.ogg', 50, 1, extrarange = -3, falloff = 10) if(emagged) - feedback_inc("arcade_loss_mana_emagged") + SSblackbox.inc("arcade_loss_mana_emagged") usr.gib() else - feedback_inc("arcade_loss_mana_normal") + SSblackbox.inc("arcade_loss_mana_normal") else if ((enemy_hp <= 10) && (enemy_mp > 4)) temp = "[enemy_name] heals for 4 health!" @@ -286,10 +286,10 @@ temp = "You have been crushed! GAME OVER" playsound(loc, 'sound/arcade/Lose.ogg', 50, 1, extrarange = -3, falloff = 10) if(emagged) - feedback_inc("arcade_loss_hp_emagged") + SSblackbox.inc("arcade_loss_hp_emagged") usr.gib() else - feedback_inc("arcade_loss_hp_normal") + SSblackbox.inc("arcade_loss_hp_normal") blocked = FALSE return diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 5af4f9c281..c9a448fc7b 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -115,9 +115,9 @@ message_admins("[key_name_admin(usr)] has changed the security level to [get_security_level()].") switch(GLOB.security_level) if(SEC_LEVEL_GREEN) - feedback_inc("alert_comms_green",1) + SSblackbox.inc("alert_comms_green",1) if(SEC_LEVEL_BLUE) - feedback_inc("alert_comms_blue",1) + SSblackbox.inc("alert_comms_blue",1) tmp_alertlevel = 0 else to_chat(usr, "You are not authorized to do this!") @@ -176,7 +176,7 @@ SSshuttle.points -= S.credit_cost minor_announce("[usr.name] has purchased [S.name] for [S.credit_cost] credits." , "Shuttle Purchase") message_admins("[key_name_admin(usr)] purchased [S.name].") - feedback_add_details("shuttle_purchase", S.name) + SSblackbox.add_details("shuttle_purchase", S.name) else to_chat(usr, "Something went wrong! The shuttle exchange system seems to be down.") else @@ -368,9 +368,9 @@ message_admins("[key_name_admin(usr)] has changed the security level to [get_security_level()].") switch(GLOB.security_level) if(SEC_LEVEL_GREEN) - feedback_inc("alert_comms_green",1) + SSblackbox.inc("alert_comms_green",1) if(SEC_LEVEL_BLUE) - feedback_inc("alert_comms_blue",1) + SSblackbox.inc("alert_comms_blue",1) tmp_alertlevel = 0 src.aistate = STATE_DEFAULT if("ai-changeseclevel") diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index a50a2973fc..7c3251a1be 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -535,7 +535,7 @@ GLOBAL_LIST_EMPTY(allCasters) if(choice=="Confirm") scan_user(usr) GLOB.news_network.CreateFeedChannel(channel_name, scanned_user, c_locked) - feedback_inc("newscaster_channels",1) + SSblackbox.inc("newscaster_channels",1) screen=5 updateUsrDialog() else if(href_list["set_channel_receiving"]) @@ -558,7 +558,7 @@ GLOBAL_LIST_EMPTY(allCasters) screen=6 else GLOB.news_network.SubmitArticle("[parsepencode(msg, usr, SIGNFONT)]", scanned_user, channel_name, photo, 0, allow_comments) - feedback_inc("newscaster_stories",1) + SSblackbox.inc("newscaster_stories",1) screen=4 msg = "" updateUsrDialog() @@ -850,7 +850,7 @@ GLOBAL_LIST_EMPTY(allCasters) return /obj/machinery/newscaster/proc/print_paper() - feedback_inc("newscaster_newspapers_printed",1) + SSblackbox.inc("newscaster_newspapers_printed",1) var/obj/item/weapon/newspaper/NEWSPAPER = new /obj/item/weapon/newspaper for(var/datum/newscaster/feed_channel/FC in GLOB.news_network.network_channels) NEWSPAPER.news_content += FC diff --git a/code/game/machinery/telecomms/broadcasting.dm.rej b/code/game/machinery/telecomms/broadcasting.dm.rej new file mode 100644 index 0000000000..7033970bd3 --- /dev/null +++ b/code/game/machinery/telecomms/broadcasting.dm.rej @@ -0,0 +1,33 @@ +diff a/code/game/machinery/telecomms/broadcasting.dm b/code/game/machinery/telecomms/broadcasting.dm (rejected hunks) +@@ -142,30 +142,7 @@ + // --- This following recording is intended for research and feedback in the use of department radio channels --- + + var/blackbox_msg = "[AM] [AM.say_quote(message, spans)]" +- if(istype(GLOB.blackbox)) +- switch(freq) +- if(1459) +- GLOB.blackbox.msg_common += blackbox_msg +- if(1351) +- GLOB.blackbox.msg_science += blackbox_msg +- if(1353) +- GLOB.blackbox.msg_command += blackbox_msg +- if(1355) +- GLOB.blackbox.msg_medical += blackbox_msg +- if(1357) +- GLOB.blackbox.msg_engineering += blackbox_msg +- if(1359) +- GLOB.blackbox.msg_security += blackbox_msg +- if(1441) +- GLOB.blackbox.msg_deathsquad += blackbox_msg +- if(1213) +- GLOB.blackbox.msg_syndicate += blackbox_msg +- if(1349) +- GLOB.blackbox.msg_service += blackbox_msg +- if(1347) +- GLOB.blackbox.msg_cargo += blackbox_msg +- else +- GLOB.blackbox.messages += blackbox_msg ++ SSblackbox.LogBroadcast(blackbox_msg, freq) + + spawn(50) + qdel(virt) diff --git a/code/game/machinery/vending.dm.rej b/code/game/machinery/vending.dm.rej new file mode 100644 index 0000000000..a487eb51a1 --- /dev/null +++ b/code/game/machinery/vending.dm.rej @@ -0,0 +1,10 @@ +diff a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm (rejected hunks) +@@ -528,7 +528,7 @@ + if(icon_vend) //Show the vending animation if needed + flick(icon_vend,src) + new R.product_path(get_turf(src)) +- feedback_add_details("vending_machine_usage","[R.product_path]|[src.type]") ++ SSblackbox.add_details("vending_machine_usage","[R.product_path]|[src.type]") + vend_ready = 1 + return + diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index b065de37ca..be6e85448b 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -277,7 +277,7 @@ /datum/construction/reversible/mecha/ripley/spawn_result() ..() - feedback_inc("mecha_ripley_created",1) + SSblackbox.inc("mecha_ripley_created",1) return @@ -564,7 +564,7 @@ var/obj/mecha/combat/gygax/M = new result(get_turf(holder)) M.CheckParts(holder.contents) qdel(holder) - feedback_inc("mecha_gygax_created",1) + SSblackbox.inc("mecha_gygax_created",1) return /datum/construction/mecha/firefighter_chassis @@ -786,7 +786,7 @@ /datum/construction/reversible/mecha/firefighter/spawn_result() ..() - feedback_inc("mecha_firefighter_created",1) + SSblackbox.inc("mecha_firefighter_created",1) return @@ -864,7 +864,7 @@ /datum/construction/mecha/honker/spawn_result() ..() - feedback_inc("mecha_honker_created",1) + SSblackbox.inc("mecha_honker_created",1) return /datum/construction/mecha/durand_chassis @@ -1149,7 +1149,7 @@ var/obj/mecha/combat/gygax/M = new result(get_turf(holder)) M.CheckParts(holder.contents) qdel(holder) - feedback_inc("mecha_durand_created",1) + SSblackbox.inc("mecha_durand_created",1) return //PHAZON @@ -1481,7 +1481,7 @@ var/obj/mecha/combat/gygax/M = new result(get_turf(holder)) M.CheckParts(holder.contents) qdel(holder) - feedback_inc("mecha_phazon_created",1) + SSblackbox.inc("mecha_phazon_created",1) return //ODYSSEUS @@ -1692,5 +1692,5 @@ /datum/construction/reversible/mecha/odysseus/spawn_result() ..() - feedback_inc("mecha_odysseus_created",1) + SSblackbox.inc("mecha_odysseus_created",1) return diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 1028ca1429..1f923ddd5e 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -58,7 +58,7 @@ if(src.l_arm && src.r_arm) if(src.l_leg && src.r_leg) if(src.chest && src.head) - feedback_inc("cyborg_frames_built",1) + SSblackbox.inc("cyborg_frames_built",1) return 1 return 0 @@ -235,7 +235,7 @@ O.mmi = W //and give the real mmi to the borg. O.updatename() - feedback_inc("cyborg_birth",1) + SSblackbox.inc("cyborg_birth",1) forceMove(O) O.robot_suit = src diff --git a/code/game/objects/items/weapons/handcuffs.dm.rej b/code/game/objects/items/weapons/handcuffs.dm.rej new file mode 100644 index 0000000000..cfc1658267 --- /dev/null +++ b/code/game/objects/items/weapons/handcuffs.dm.rej @@ -0,0 +1,31 @@ +diff a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm (rejected hunks) +@@ -46,9 +46,9 @@ + apply_cuffs(C,user) + to_chat(user, "You handcuff [C].") + if(istype(src, /obj/item/weapon/restraints/handcuffs/cable)) +- feedback_add_details("handcuffs","C") ++ SSblackbox.add_details("handcuffs","C") + else +- feedback_add_details("handcuffs","H") ++ SSblackbox.add_details("handcuffs","H") + + add_logs(user, C, "handcuffed") + else +@@ -278,7 +278,7 @@ + C.legcuffed = src + src.loc = C + C.update_inv_legcuffed() +- feedback_add_details("handcuffs","B") //Yes, I know they're legcuffs. Don't change this, no need for an extra variable. The "B" is used to tell them apart. ++ SSblackbox.add_details("handcuffs","B") //Yes, I know they're legcuffs. Don't change this, no need for an extra variable. The "B" is used to tell them apart. + else if(isanimal(L)) + var/mob/living/simple_animal/SA = L + if(SA.mob_size > MOB_SIZE_TINY) +@@ -341,7 +341,7 @@ + C.legcuffed = src + src.loc = C + C.update_inv_legcuffed() +- feedback_add_details("handcuffs","B") ++ SSblackbox.add_details("handcuffs","B") + to_chat(C, "\The [src] ensnares you!") + C.Weaken(weaken) + diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm index 571aece4c3..aa720f1979 100644 --- a/code/game/objects/items/weapons/holy_weapons.dm +++ b/code/game/objects/items/weapons/holy_weapons.dm @@ -39,7 +39,7 @@ SSreligion.holy_weapon_type = holy_weapon.type - feedback_set_details("chaplain_weapon","[choice]") + SSblackbox.set_details("chaplain_weapon","[choice]") if(holy_weapon) holy_weapon.reskinned = TRUE diff --git a/code/game/objects/items/weapons/storage/book.dm b/code/game/objects/items/weapons/storage/book.dm index 83805d969a..7775b3692a 100644 --- a/code/game/objects/items/weapons/storage/book.dm +++ b/code/game/objects/items/weapons/storage/book.dm @@ -62,7 +62,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", SSreligion.bible_icon_state = B.icon_state SSreligion.bible_item_state = B.item_state - feedback_set_details("religion_book","[biblename]") + SSblackbox.set_details("religion_book","[biblename]") usr << browse(null, "window=editicon") /obj/item/weapon/storage/book/bible/proc/bless(mob/living/carbon/human/H, mob/living/user) diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm index 3cf35daa03..7820031700 100644 --- a/code/game/objects/structures/ai_core.dm +++ b/code/game/objects/structures/ai_core.dm @@ -180,7 +180,7 @@ var/mob/living/silicon/ai/A = new /mob/living/silicon/ai(loc, laws, brain.brainmob) if(brain.force_replace_ai_name) A.fully_replace_character_name(A.name, brain.replacement_ai_name()) - feedback_inc("cyborg_ais_created",1) + SSblackbox.inc("cyborg_ais_created",1) qdel(src) else state = AI_READY_CORE diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm index a17fcf2ca8..f4a3403ee5 100644 --- a/code/game/turfs/simulated/floor/plating/asteroid.dm +++ b/code/game/turfs/simulated/floor/plating/asteroid.dm @@ -63,7 +63,7 @@ if(istype(src, /turf/open/floor/plating/asteroid)) to_chat(user, "You dig a hole.") gets_dug() - feedback_add_details("pick_used_mining","[W.type]") + SSblackbox.add_details("pick_used_mining","[W.type]") if(istype(W,/obj/item/weapon/storage/bag/ore)) var/obj/item/weapon/storage/bag/ore/S = W diff --git a/code/game/turfs/simulated/minerals.dm.rej b/code/game/turfs/simulated/minerals.dm.rej new file mode 100644 index 0000000000..2ac5181cc8 --- /dev/null +++ b/code/game/turfs/simulated/minerals.dm.rej @@ -0,0 +1,19 @@ +diff a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm (rejected hunks) +@@ -64,7 +64,7 @@ + if(ismineralturf(src)) + to_chat(user, "You finish cutting into the rock.") + gets_drilled(user) +- feedback_add_details("pick_used_mining","[P.type]") ++ SSblackbox.add_details("pick_used_mining","[P.type]") + else + return attack_hand(user) + return +@@ -74,7 +74,7 @@ + var/i + for (i=0;i[usr.client.holder.fakekey ? "Administrator" : usr.key] Announces:\n \t [message]") log_admin("Announce: [key_name(usr)] : [message]") - feedback_add_details("admin_verb","Announce") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Announce") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/set_admin_notice() set category = "Special Verbs" @@ -471,7 +471,7 @@ message_admins("[key_name(usr)] set the admin notice.") log_admin("[key_name(usr)] set the admin notice:\n[new_admin_notice]") to_chat(world, "Admin Notice:\n \t [new_admin_notice]") - feedback_add_details("admin_verb","Set Admin Notice") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Set Admin Notice") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! GLOB.admin_notice = new_admin_notice return @@ -482,7 +482,7 @@ toggle_ooc() log_admin("[key_name(usr)] toggled OOC.") message_admins("[key_name_admin(usr)] toggled OOC.") - feedback_add_details("admin_toggle","Toggle OOC|[GLOB.ooc_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle OOC|[GLOB.ooc_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/toggleoocdead() set category = "Server" @@ -492,7 +492,7 @@ log_admin("[key_name(usr)] toggled OOC.") message_admins("[key_name_admin(usr)] toggled Dead OOC.") - feedback_add_details("admin_toggle","Toggle Dead OOC|[GLOB.dooc_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Dead OOC|[GLOB.dooc_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/startnow() set category = "Server" @@ -507,7 +507,7 @@ started as soon as possible.)" message_admins("\ [usr.key] has started the game.[msg]") - feedback_add_details("admin_verb","Start Now") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Start Now") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return 1 else to_chat(usr, "Error: Start Now: Game has already started.") @@ -526,7 +526,7 @@ log_admin("[key_name(usr)] toggled new player game entering.") message_admins("[key_name_admin(usr)] toggled new player game entering.") world.update_status() - feedback_add_details("admin_toggle","Toggle Entering|[GLOB.enter_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Entering|[GLOB.enter_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/toggleAI() set category = "Server" @@ -539,7 +539,7 @@ to_chat(world, "The AI job is chooseable now.") log_admin("[key_name(usr)] toggled AI allowed.") world.update_status() - feedback_add_details("admin_toggle","Toggle AI|[config.allow_ai]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle AI|[config.allow_ai]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/toggleaban() set category = "Server" @@ -553,7 +553,7 @@ message_admins("[key_name_admin(usr)] toggled respawn to [GLOB.abandon_allowed ? "On" : "Off"].") log_admin("[key_name(usr)] toggled respawn to [GLOB.abandon_allowed ? "On" : "Off"].") world.update_status() - feedback_add_details("admin_toggle","Toggle Respawn|[GLOB.abandon_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Respawn|[GLOB.abandon_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/delay() set category = "Server" @@ -572,7 +572,7 @@ to_chat(world, "The game will start in [newtime] seconds.") world << 'sound/ai/attention.ogg' log_admin("[key_name(usr)] set the pre-game delay to [newtime] seconds.") - feedback_add_details("admin_verb","Delay Game Start") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Delay Game Start") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/unprison(mob/M in GLOB.mob_list) set category = "Admin" @@ -583,7 +583,7 @@ log_admin("[key_name(usr)] has unprisoned [key_name(M)]") else alert("[M.name] is not prisoned.") - feedback_add_details("admin_verb","Unprison") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Unprison") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! ////////////////////////////////////////////////////////////////////////////////////////////////ADMIN HELPER PROCS @@ -624,7 +624,7 @@ A.admin_spawned = TRUE log_admin("[key_name(usr)] spawned [chosen] at ([usr.x],[usr.y],[usr.z])") - feedback_add_details("admin_verb","Spawn Atom") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Spawn Atom") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/show_traitor_panel(mob/M in GLOB.mob_list) @@ -640,7 +640,7 @@ return M.mind.edit_memory() - feedback_add_details("admin_verb","Traitor Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Traitor Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/toggletintedweldhelmets() @@ -654,7 +654,7 @@ to_chat(world, "The tinted_weldhelh has been disabled!") log_admin("[key_name(usr)] toggled tinted_weldhelh.") message_admins("[key_name_admin(usr)] toggled tinted_weldhelh.") - feedback_add_details("admin_toggle","Toggle Tinted Welding Helmets|[GLOB.tinted_weldhelh]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Tinted Welding Helmets|[GLOB.tinted_weldhelh]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/toggleguests() set category = "Server" @@ -667,7 +667,7 @@ to_chat(world, "Guests may now enter the game.") log_admin("[key_name(usr)] toggled guests game entering [GLOB.guests_allowed?"":"dis"]allowed.") message_admins("[key_name_admin(usr)] toggled guests game entering [GLOB.guests_allowed?"":"dis"]allowed.") - feedback_add_details("admin_toggle","Toggle Guests|[GLOB.guests_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Guests|[GLOB.guests_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/output_ai_laws() var/ai_number = 0 @@ -796,7 +796,7 @@ message_admins("[key_name_admin(usr)] has put [frommob.ckey] in control of [tomob.name].") log_admin("[key_name(usr)] stuffed [frommob.ckey] into [tomob.name].") - feedback_add_details("admin_verb","Ghost Drag Control") + SSblackbox.add_details("admin_verb","Ghost Drag Control") tomob.ckey = frommob.ckey qdel(frommob) diff --git a/code/modules/admin/admin.dm.rej b/code/modules/admin/admin.dm.rej new file mode 100644 index 0000000000..58a209fb70 --- /dev/null +++ b/code/modules/admin/admin.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm (rejected hunks) +@@ -419,7 +419,7 @@ + return + if(confirm == "Yes") + SSticker.delay_end = 0 +- feedback_add_details("admin_verb","Hard Restart") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! ++ SSblackbox.add_details("admin_verb","Hard Restart") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + world.Reboot("Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key].", "end_error", "admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]", 10) + + /datum/admins/proc/end_round() diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 22045b99ff..ba1cdd679e 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -331,7 +331,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) verbs += /client/proc/show_verbs to_chat(src, "Most of your adminverbs have been hidden.") - feedback_add_details("admin_verb","Hide Most Adminverbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Hide Most Adminverbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return /client/proc/hide_verbs() @@ -342,7 +342,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) verbs += /client/proc/show_verbs to_chat(src, "Almost all of your adminverbs have been hidden.") - feedback_add_details("admin_verb","Hide All Adminverbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Hide All Adminverbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return /client/proc/show_verbs() @@ -353,7 +353,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) add_admin_verbs() to_chat(src, "All of your adminverbs are now visible.") - feedback_add_details("admin_verb","Show Adminverbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Show Adminverbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -373,7 +373,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) message_admins("[key_name_admin(usr)] re-entered corpse") ghost.can_reenter_corpse = 1 //force re-entering even when otherwise not possible ghost.reenter_corpse() - feedback_add_details("admin_verb","Admin Reenter") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Admin Reenter") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! else if(isnewplayer(mob)) to_chat(src, "Error: Aghost: Can't admin-ghost whilst in the lobby. Join or Observe first.") else @@ -384,7 +384,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) body.ghostize(1) if(body && !body.key) body.key = "@[key]" //Haaaaaaaack. But the people have spoken. If it breaks; blame adminbus - feedback_add_details("admin_verb","Admin Ghost") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Admin Ghost") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/invisimin() @@ -404,7 +404,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) set category = "Admin" if(holder) holder.player_panel_new() - feedback_add_details("admin_verb","Player Panel New") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Player Panel New") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/check_antagonists() set name = "Check Antagonists" @@ -414,7 +414,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) log_admin("[key_name(usr)] checked antagonists.") //for tsar~ if(!isobserver(usr)) message_admins("[key_name_admin(usr)] checked antagonists.") - feedback_add_details("admin_verb","Check Antagonists") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Check Antagonists") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/unban_panel() set name = "Unban Panel" @@ -424,21 +424,21 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) holder.unbanpanel() else holder.DB_ban_panel() - feedback_add_details("admin_verb","Unban Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Unban Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/game_panel() set name = "Game Panel" set category = "Admin" if(holder) holder.Game() - feedback_add_details("admin_verb","Game Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Game Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/secrets() set name = "Secrets" set category = "Admin" if (holder) holder.Secrets() - feedback_add_details("admin_verb","Secrets Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Secrets Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/findStealthKey(txt) @@ -486,7 +486,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) mob.mouse_opacity = 0 log_admin("[key_name(usr)] has turned stealth mode [holder.fakekey ? "ON" : "OFF"]") message_admins("[key_name_admin(usr)] has turned stealth mode [holder.fakekey ? "ON" : "OFF"]") - feedback_add_details("admin_verb","Stealth Mode") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Stealth Mode") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/drop_bomb() set category = "Special Verbs" @@ -528,7 +528,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) explosion(epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, TRUE, TRUE) message_admins("[ADMIN_LOOKUPFLW(usr)] creating an admin explosion at [epicenter.loc].") log_admin("[key_name(usr)] created an admin explosion at [epicenter.loc].") - feedback_add_details("admin_verb","Drop Bomb") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Drop Bomb") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/drop_dynex_bomb() set category = "Special Verbs" @@ -541,7 +541,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) dyn_explosion(epicenter, ex_power) message_admins("[ADMIN_LOOKUPFLW(usr)] creating an admin explosion at [epicenter.loc].") log_admin("[key_name(usr)] created an admin explosion at [epicenter.loc].") - feedback_add_details("admin_verb","Drop Dynamic Bomb") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Drop Dynamic Bomb") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/get_dynex_range() set category = "Debug" @@ -586,7 +586,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) if(!S) return - feedback_add_details("admin_verb","Give Spell") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Give Spell") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] gave [key_name(T)] the spell [S].") message_admins("[key_name_admin(usr)] gave [key_name(T)] the spell [S].") @@ -608,7 +608,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) T.mind.RemoveSpell(S) log_admin("[key_name(usr)] removed the spell [S] from [key_name(T)].") message_admins("[key_name_admin(usr)] removed the spell [S] from [key_name(T)].") - feedback_add_details("admin_verb","Remove Spell") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Remove Spell") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/give_disease(mob/T in GLOB.mob_list) set category = "Fun" @@ -617,7 +617,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in SSdisease.diseases if(!D) return T.ForceContractDisease(new D) - feedback_add_details("admin_verb","Give Disease") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Give Disease") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] gave [key_name(T)] the disease [D].") message_admins("[key_name_admin(usr)] gave [key_name(T)] the disease [D].") @@ -631,13 +631,13 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) O.say(message) log_admin("[key_name(usr)] made [O] at [O.x], [O.y], [O.z] say \"[message]\"") message_admins("[key_name_admin(usr)] made [O] at [O.x], [O.y], [O.z]. say \"[message]\"") - feedback_add_details("admin_verb","Object Say") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Object Say") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/togglebuildmodeself() set name = "Toggle Build Mode Self" set category = "Special Verbs" if(src.mob) togglebuildmode(src.mob) - feedback_add_details("admin_verb","Toggle Build Mode") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Toggle Build Mode") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/toggle_log_hrefs() set name = "Toggle href logging" @@ -679,7 +679,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) to_chat(src, "You are now a normal player.") log_admin("[src] deadmined themself.") message_admins("[src] deadmined themself.") - feedback_add_details("admin_verb","Deadmin") + SSblackbox.add_details("admin_verb","Deadmin") /client/proc/readmin() set name = "Readmin" @@ -697,7 +697,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, AVerbsHideable()) to_chat(src, "You are now an admin.") message_admins("[src] re-adminned themselves.") log_admin("[src] re-adminned themselves.") - feedback_add_details("admin_verb","Readmin") + SSblackbox.add_details("admin_verb","Readmin") /client/proc/populate_world(amount = 50 as num) set name = "Populate World" diff --git a/code/modules/admin/secrets.dm.rej b/code/modules/admin/secrets.dm.rej new file mode 100644 index 0000000000..5cf52e0fb0 --- /dev/null +++ b/code/modules/admin/secrets.dm.rej @@ -0,0 +1,291 @@ +diff a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm (rejected hunks) +@@ -197,8 +197,8 @@ + if("moveminingshuttle") + if(!check_rights(R_ADMIN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","ShM") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","ShM") + if(!SSshuttle.toggleShuttle("mining","mining_home","mining_away")) + message_admins("[key_name_admin(usr)] moved mining shuttle") + log_admin("[key_name(usr)] moved the mining shuttle") +@@ -206,8 +206,8 @@ + if("movelaborshuttle") + if(!check_rights(R_ADMIN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","ShL") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","ShL") + if(!SSshuttle.toggleShuttle("laborcamp","laborcamp_home","laborcamp_away")) + message_admins("[key_name_admin(usr)] moved labor shuttle") + log_admin("[key_name(usr)] moved the labor shuttle") +@@ -215,8 +215,8 @@ + if("moveferry") + if(!check_rights(R_ADMIN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","ShF") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","ShF") + if(!SSshuttle.toggleShuttle("ferry","ferry_home","ferry_away")) + message_admins("[key_name_admin(usr)] moved the centcom ferry") + log_admin("[key_name(usr)] moved the centcom ferry") +@@ -228,8 +228,8 @@ + if(A) + var/new_perma = !A.perma_docked + A.perma_docked = new_perma +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","ShA[new_perma ? "s" : "g"]") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","ShA[new_perma ? "s" : "g"]") + message_admins("[key_name_admin(usr)] [new_perma ? "stopped" : "started"] the arrivals shuttle") + log_admin("[key_name(usr)] [new_perma ? "stopped" : "started"] the arrivals shuttle") + else +@@ -279,8 +279,8 @@ + if("monkey") + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","M") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","M") + for(var/mob/living/carbon/human/H in GLOB.mob_list) + spawn(0) + H.monkeyize() +@@ -300,8 +300,8 @@ + if("corgi") + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","M") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","M") + for(var/mob/living/carbon/human/H in GLOB.mob_list) + spawn(0) + H.corgize() +@@ -311,14 +311,14 @@ + if(!check_rights(R_FUN)) + return + usr.client.triple_ai() +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","TriAI") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","TriAI") + + if("power") + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","P") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","P") + log_admin("[key_name(usr)] made all areas powered", 1) + message_admins("[key_name_admin(usr)] made all areas powered") + power_restore() +@@ -326,8 +326,8 @@ + if("unpower") + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","UP") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","UP") + log_admin("[key_name(usr)] made all areas unpowered", 1) + message_admins("[key_name_admin(usr)] made all areas unpowered") + power_failure() +@@ -335,8 +335,8 @@ + if("quickpower") + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","QP") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","QP") + log_admin("[key_name(usr)] made all SMESs powered", 1) + message_admins("[key_name_admin(usr)] made all SMESs powered") + power_restore_quick() +@@ -350,8 +350,8 @@ + var/objective = copytext(sanitize(input("Enter an objective")),1,MAX_MESSAGE_LEN) + if(!objective) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","TA([objective])") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","TA([objective])") + for(var/mob/living/carbon/human/H in GLOB.player_list) + if(H.stat == 2 || !H.client || !H.mind) continue + if(is_special_character(H)) continue +@@ -383,8 +383,8 @@ + if("changebombcap") + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","BC") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","BC") + + var/newBombCap = input(usr,"What would you like the new bomb cap to be. (entered as the light damage range (the 3rd number in common (1,2,3) notation)) Must be above 4)", "New Bomb Cap", GLOB.MAX_EX_LIGHT_RANGE) as num|null + if (newBombCap < 4) +@@ -404,16 +404,16 @@ + if("lightsout") + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","LO") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","LO") + message_admins("[key_name_admin(usr)] has broke a lot of lights") + E = new /datum/round_event/electrical_storm{lightsoutAmount = 2}() + + if("blackout") + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","BO") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","BO") + message_admins("[key_name_admin(usr)] broke all lights") + for(var/obj/machinery/light/L in GLOB.machines) + L.break_light_tube() +@@ -429,8 +429,8 @@ + + if(animetype == "Cancel" || droptype == "Cancel") + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","CC") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","CC") + message_admins("[key_name_admin(usr)] made everything kawaii.") + for(var/mob/living/carbon/human/H in GLOB.mob_list) + H << sound('sound/AI/animes.ogg') +@@ -460,8 +460,8 @@ + if("whiteout") + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","WO") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","WO") + message_admins("[key_name_admin(usr)] fixed all lights") + for(var/obj/machinery/light/L in GLOB.machines) + L.fix() +@@ -472,8 +472,8 @@ + if("virus") + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","V") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","V") + switch(alert("Do you want this to be a random disease or do you have something in mind?",,"Make Your Own","Random","Choose")) + if("Make Your Own") + AdminCreateVirus(usr.client) +@@ -488,8 +488,8 @@ + if("retardify") + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","RET") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","RET") + for(var/mob/living/carbon/human/H in GLOB.player_list) + to_chat(H, "You suddenly feel stupid.") + H.setBrainLoss(60) +@@ -498,8 +498,8 @@ + if("eagles")//SCRAW + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","EgL") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","EgL") + for(var/obj/machinery/door/airlock/W in GLOB.machines) + if(W.z == ZLEVEL_STATION && !istype(get_area(W), /area/bridge) && !istype(get_area(W), /area/crew_quarters) && !istype(get_area(W), /area/security/prison)) + W.req_access = list() +@@ -509,8 +509,8 @@ + if("guns") + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","SG") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","SG") + var/survivor_probability = 0 + switch(alert("Do you want this to create survivors antagonists?",,"No Antags","Some Antags","All Antags!")) + if("Some Antags") +@@ -523,8 +523,8 @@ + if("magic") + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","SM") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","SM") + var/survivor_probability = 0 + switch(alert("Do you want this to create survivors antagonists?",,"No Antags","Some Antags","All Antags!")) + if("Some Antags") +@@ -540,15 +540,15 @@ + if(!SSevents.wizardmode) + if(alert("Do you want to toggle summon events on?",,"Yes","No") == "Yes") + summonevents() +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","SE") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","SE") + + else + switch(alert("What would you like to do?",,"Intensify Summon Events","Turn Off Summon Events","Nothing")) + if("Intensify Summon Events") + summonevents() +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","SE") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","SE") + if("Turn Off Summon Events") + SSevents.toggleWizardmode() + SSevents.resetFrequency() +@@ -556,8 +556,8 @@ + if("dorf") + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","DF") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","DF") + for(var/mob/living/carbon/human/B in GLOB.mob_list) + B.facial_hair_style = "Dward Beard" + B.update_hair() +@@ -566,8 +566,8 @@ + if("onlyone") + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","OO") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","OO") + usr.client.only_one() + send_to_playing_players('sound/misc/highlander.ogg') + // message_admins("[key_name_admin(usr)] has triggered a battle to the death (only one)") +@@ -575,16 +575,16 @@ + if("delayed_onlyone") + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","OO") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","OO") + usr.client.only_one_delayed() + send_to_playing_players('sound/misc/highlander_delayed.ogg') + + if("onlyme") + if(!check_rights(R_FUN)) + return +- feedback_inc("admin_secrets_fun_used",1) +- feedback_add_details("admin_secrets_fun_used","OM") ++ SSblackbox.inc("admin_secrets_fun_used",1) ++ SSblackbox.add_details("admin_secrets_fun_used","OM") + only_me() + + if("maint_access_brig") diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index dd32085681..5d46c1d409 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -498,7 +498,7 @@ GLOB.Banlist["minutes"] << minutes GLOB.Banlist["bannedby"] << usr.ckey GLOB.Banlist.cd = "/base" - feedback_inc("ban_edit",1) + SSblackbox.inc("ban_edit",1) unbanpanel() /////////////////////////////////////new ban stuff @@ -520,7 +520,7 @@ if("Yes") ban_unban_log_save("[key_name(usr)] removed [key_name(M)]'s appearance ban.") log_admin_private("[key_name(usr)] removed [key_name(M)]'s appearance ban.") - feedback_inc("ban_appearance_unban", 1) + SSblackbox.inc("ban_appearance_unban", 1) DB_ban_unban(M.ckey, BANTYPE_ANY_JOB, "appearance") if(M.client) jobban_buildcache(M.client) @@ -539,7 +539,7 @@ jobban_buildcache(M.client) ban_unban_log_save("[key_name(usr)] appearance banned [key_name(M)]. reason: [reason]") log_admin_private("[key_name(usr)] appearance banned [key_name(M)]. \nReason: [reason]") - feedback_inc("ban_appearance",1) + SSblackbox.inc("ban_appearance",1) create_message("note", M.ckey, null, "Appearance banned - [reason]", null, null, 0, 0) message_admins("[key_name_admin(usr)] appearance banned [key_name_admin(M)].") to_chat(M, "You have been appearance banned by [usr.client.ckey].") @@ -924,8 +924,8 @@ jobban_buildcache(M.client) ban_unban_log_save("[key_name(usr)] temp-jobbanned [key_name(M)] from [job] for [mins] minutes. reason: [reason]") log_admin_private("[key_name(usr)] temp-jobbanned [key_name(M)] from [job] for [mins] minutes.") - feedback_inc("ban_job_tmp",1) - feedback_add_details("ban_job_tmp","- [job]") + SSblackbox.inc("ban_job_tmp",1) + SSblackbox.add_details("ban_job_tmp","- [job]") if(!msg) msg = job else @@ -949,8 +949,8 @@ jobban_buildcache(M.client) ban_unban_log_save("[key_name(usr)] perma-jobbanned [key_name(M)] from [job]. reason: [reason]") log_admin_private("[key_name(usr)] perma-banned [key_name(M)] from [job]") - feedback_inc("ban_job",1) - feedback_add_details("ban_job","- [job]") + SSblackbox.inc("ban_job",1) + SSblackbox.add_details("ban_job","- [job]") if(!msg) msg = job else @@ -980,8 +980,8 @@ DB_ban_unban(M.ckey, BANTYPE_ANY_JOB, job) if(M.client) jobban_buildcache(M.client) - feedback_inc("ban_job_unban",1) - feedback_add_details("ban_job_unban","- [job]") + SSblackbox.inc("ban_job_unban",1) + SSblackbox.add_details("ban_job_unban","- [job]") if(!msg) msg = job else @@ -1116,8 +1116,8 @@ ban_unban_log_save("[key_name(usr)] has banned [key_name(M)]. - Reason: [reason] - This will be removed in [mins] minutes.") to_chat(M, "You have been banned by [usr.client.ckey].\nReason: [reason]") to_chat(M, "This is a temporary ban, it will be removed in [mins] minutes.") - feedback_inc("ban_tmp",1) - feedback_inc("ban_tmp_mins",mins) + SSblackbox.inc("ban_tmp",1) + SSblackbox.inc("ban_tmp_mins",mins) if(config.banappeals) to_chat(M, "To try to resolve this matter head to [config.banappeals]") else @@ -1687,7 +1687,7 @@ log_admin("[key_name(H)] got their cookie, spawned by [key_name(src.owner)].") message_admins("[key_name(H)] got their cookie, spawned by [key_name(src.owner)].") - feedback_inc("admin_cookies_spawned",1) + SSblackbox.inc("admin_cookies_spawned",1) to_chat(H, "Your prayers have been answered!! You received the best cookie!") H << 'sound/effects/pray_chaplain.ogg' @@ -1987,7 +1987,7 @@ var/choice = alert("Please confirm Feed channel creation.","Network Channel Handler","Confirm","Cancel") if(choice=="Confirm") GLOB.news_network.CreateFeedChannel(src.admincaster_feed_channel.channel_name, src.admin_signature, src.admincaster_feed_channel.locked, 1) - feedback_inc("newscaster_channels",1) + SSblackbox.inc("newscaster_channels",1) log_admin("[key_name(usr)] created command feed channel: [src.admincaster_feed_channel.channel_name]!") src.admincaster_screen=5 src.access_news_network() @@ -2010,7 +2010,7 @@ src.admincaster_screen = 6 else GLOB.news_network.SubmitArticle(src.admincaster_feed_message.returnBody(-1), src.admin_signature, src.admincaster_feed_channel.channel_name, null, 1) - feedback_inc("newscaster_stories",1) + SSblackbox.inc("newscaster_stories",1) src.admincaster_screen=4 for(var/obj/machinery/newscaster/NEWSCASTER in GLOB.allCasters) diff --git a/code/modules/admin/topic.dm.rej b/code/modules/admin/topic.dm.rej new file mode 100644 index 0000000000..5cbae46c98 --- /dev/null +++ b/code/modules/admin/topic.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm (rejected hunks) +@@ -1175,7 +1175,7 @@ + ban_unban_log_save("[key_name(usr)] has permabanned [key_name(M)]. - Reason: [reason] - This is a permanent ban.") + log_admin_private("[key_name(usr)] has banned [key_name_admin(M)].\nReason: [reason]\nThis is a permanent ban.") + message_admins("[key_name_admin(usr)] has banned [key_name_admin(M)].\nReason: [reason]\nThis is a permanent ban.") +- feedback_inc("ban_perma",1) ++ SSblackbox.inc("ban_perma",1) + qdel(M.client) + if("Cancel") + return diff --git a/code/modules/admin/verbs/adminhelp.dm.rej b/code/modules/admin/verbs/adminhelp.dm.rej new file mode 100644 index 0000000000..047041a5fc --- /dev/null +++ b/code/modules/admin/verbs/adminhelp.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm (rejected hunks) +@@ -127,7 +127,7 @@ + log_admin_private("HELP: [key_name(src)]: [original_msg] - heard by [admin_number_present] non-AFK admins who have +BAN.") + if(admin_number_present <= 0) + to_chat(src, "No active admins are online, your adminhelp was sent to the admin irc.") +- feedback_add_details("admin_verb","Adminhelp") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! ++ SSblackbox.add_details("admin_verb","Adminhelp") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return + + /proc/get_admin_counts(requiredflags = R_BAN) diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm index e02b71a4d4..7a6167a986 100644 --- a/code/modules/admin/verbs/adminjump.dm +++ b/code/modules/admin/verbs/adminjump.dm @@ -23,7 +23,7 @@ usr.forceMove(T) log_admin("[key_name(usr)] jumped to [A]") message_admins("[key_name_admin(usr)] jumped to [A]") - feedback_add_details("admin_verb","Jump To Area") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Jump To Area") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/jumptoturf(turf/T in world) set name = "Jump to Turf" @@ -35,7 +35,7 @@ log_admin("[key_name(usr)] jumped to [T.x],[T.y],[T.z] in [T.loc]") message_admins("[key_name_admin(usr)] jumped to [T.x],[T.y],[T.z] in [T.loc]") usr.loc = T - feedback_add_details("admin_verb","Jump To Turf") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Jump To Turf") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return /client/proc/jumptomob(mob/M in GLOB.mob_list) @@ -52,7 +52,7 @@ var/mob/A = src.mob var/turf/T = get_turf(M) if(T && isturf(T)) - feedback_add_details("admin_verb","Jump To Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Jump To Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! A.forceMove(M.loc) else to_chat(A, "This mob is not located in the game world.") @@ -70,7 +70,7 @@ A.x = tx A.y = ty A.z = tz - feedback_add_details("admin_verb","Jump To Coordiate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Jump To Coordiate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! message_admins("[key_name_admin(usr)] jumped to coordinates [tx], [ty], [tz]") /client/proc/jumptokey() @@ -94,7 +94,7 @@ usr.forceMove(M.loc) - feedback_add_details("admin_verb","Jump To Key") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Jump To Key") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/Getmob(mob/M in GLOB.mob_list) set category = "Admin" @@ -138,7 +138,7 @@ if(M) M.forceMove(get_turf(usr)) usr.loc = M.loc - feedback_add_details("admin_verb","Get Key") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Get Key") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/sendmob(mob/M in sortmobs()) set category = "Admin" diff --git a/code/modules/admin/verbs/adminjump.dm.rej b/code/modules/admin/verbs/adminjump.dm.rej new file mode 100644 index 0000000000..d5eeea0944 --- /dev/null +++ b/code/modules/admin/verbs/adminjump.dm.rej @@ -0,0 +1,16 @@ +diff a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm (rejected hunks) +@@ -107,7 +107,7 @@ + log_admin("[key_name(usr)] teleported [key_name(M)]") + message_admins("[key_name_admin(usr)] teleported [key_name_admin(M)]") + M.forceMove(get_turf(usr)) +- feedback_add_details("admin_verb","Get Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! ++ SSblackbox.add_details("admin_verb","Get Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + /client/proc/Getkey() + set category = "Admin" +@@ -149,4 +149,4 @@ + message_admins("[key_name_admin(usr)] teleported [key_name_admin(M)] to [A]") + else + to_chat(src, "Failed to move mob to a valid location.") +- feedback_add_details("admin_verb","Send Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! ++ SSblackbox.add_details("admin_verb","Send Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index 5c76df805a..df59c1a7bb 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -11,7 +11,7 @@ if( !ismob(M) || !M.client ) return cmd_admin_pm(M.client,null) - feedback_add_details("admin_verb","Admin PM Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Admin PM Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //shows a list of clients we could send PMs to, then forwards our choice to cmd_admin_pm /client/proc/cmd_admin_pm_panel() @@ -33,7 +33,7 @@ targets["(No Mob) - [T]"] = T var/target = input(src,"To whom shall we send a message?","Admin PM",null) as null|anything in sortList(targets) cmd_admin_pm(targets[target],null) - feedback_add_details("admin_verb","Admin PM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Admin PM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_ahelp_reply(whom) if(prefs.muted & MUTE_ADMINHELP) diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm index fff294e800..173b90edca 100644 --- a/code/modules/admin/verbs/adminsay.dm +++ b/code/modules/admin/verbs/adminsay.dm @@ -18,5 +18,5 @@ msg = "ADMIN: [key_name(usr, 1)]: [msg]" to_chat(GLOB.admins, msg) - feedback_add_details("admin_verb","Asay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Asay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/atmosdebug.dm b/code/modules/admin/verbs/atmosdebug.dm index 03017f494e..9a16414132 100644 --- a/code/modules/admin/verbs/atmosdebug.dm +++ b/code/modules/admin/verbs/atmosdebug.dm @@ -4,7 +4,7 @@ if(!src.holder) to_chat(src, "Only administrators may use this command.") return - feedback_add_details("admin_verb","Check Plumbing") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Check Plumbing") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //all plumbing - yes, some things might get stated twice, doesn't matter. for (var/obj/machinery/atmospherics/plumbing in GLOB.machines) @@ -27,7 +27,7 @@ if(!src.holder) to_chat(src, "Only administrators may use this command.") return - feedback_add_details("admin_verb","Check Power") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Check Power") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! for (var/datum/powernet/PN in GLOB.powernets) if (!PN.nodes || !PN.nodes.len) diff --git a/code/modules/admin/verbs/deadsay.dm b/code/modules/admin/verbs/deadsay.dm index 8703784fc6..37af9e8601 100644 --- a/code/modules/admin/verbs/deadsay.dm +++ b/code/modules/admin/verbs/deadsay.dm @@ -29,4 +29,4 @@ if (M.stat == DEAD || (M.client && M.client.holder && (M.client.prefs.chat_toggles & CHAT_DEAD))) //admins can toggle deadchat on and off. This is a proc in admin.dm and is only give to Administrators and above M.show_message(rendered, 2) - feedback_add_details("admin_verb","Dsay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! \ No newline at end of file + SSblackbox.add_details("admin_verb","Dsay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! \ No newline at end of file diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 54be219a48..38b0052eaf 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -13,7 +13,7 @@ message_admins("[key_name(src)] toggled debugging on.") log_admin("[key_name(src)] toggled debugging on.") - feedback_add_details("admin_verb","Toggle Debug Two") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Toggle Debug Two") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -201,7 +201,7 @@ GLOBAL_PROTECT(AdminProcCall) t+= "[env_gases[id][GAS_META][META_GAS_NAME]] : [env_gases[id][MOLES]]\n" to_chat(usr, t) - feedback_add_details("admin_verb","Air Status In Location") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Air Status In Location") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_robotize(mob/M in GLOB.mob_list) set category = "Fun" @@ -283,7 +283,7 @@ GLOBAL_PROTECT(AdminProcCall) for(var/datum/paiCandidate/candidate in SSpai.candidates) if(candidate.key == choice.key) SSpai.candidates.Remove(candidate) - feedback_add_details("admin_verb","Make pAI") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Make pAI") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_alienize(mob/M in GLOB.mob_list) set category = "Fun" @@ -296,7 +296,7 @@ GLOBAL_PROTECT(AdminProcCall) log_admin("[key_name(src)] has alienized [M.key].") spawn(0) M:Alienize() - feedback_add_details("admin_verb","Make Alien") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Make Alien") //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("[key_name_admin(usr)] made [key_name(M)] into an alien.") else @@ -313,7 +313,7 @@ GLOBAL_PROTECT(AdminProcCall) log_admin("[key_name(src)] has slimeized [M.key].") spawn(0) M:slimeize() - feedback_add_details("admin_verb","Make Slime") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Make Slime") //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("[key_name_admin(usr)] made [key_name(M)] into a slime.") else @@ -402,7 +402,7 @@ GLOBAL_PROTECT(AdminProcCall) CHECK_TICK log_admin("[key_name(src)] has deleted all ([counter]) instances of [hsbitem].") message_admins("[key_name_admin(src)] has deleted all ([counter]) instances of [hsbitem].", 0) - feedback_add_details("admin_verb","Delete All") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Delete All") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_debug_make_powernets() @@ -411,7 +411,7 @@ GLOBAL_PROTECT(AdminProcCall) SSmachines.makepowernets() log_admin("[key_name(src)] has remade the powernet. makepowernets() called.") message_admins("[key_name_admin(src)] has remade the powernets. makepowernets() called.", 0) - feedback_add_details("admin_verb","Make Powernets") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Make Powernets") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_grantfullaccess(mob/M in GLOB.mob_list) set category = "Admin" @@ -449,7 +449,7 @@ GLOBAL_PROTECT(AdminProcCall) else alert("Invalid mob") - feedback_add_details("admin_verb","Grant Full Access") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Grant Full Access") //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("[key_name_admin(usr)] has granted [M.key] full access.") @@ -470,7 +470,7 @@ GLOBAL_PROTECT(AdminProcCall) M.ckey = src.ckey if( isobserver(adminmob) ) qdel(adminmob) - feedback_add_details("admin_verb","Assume Direct Control") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Assume Direct Control") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_areatest() set category = "Mapping" @@ -605,7 +605,7 @@ GLOBAL_PROTECT(AdminProcCall) if(isnull(custom)) return - feedback_add_details("admin_verb","Select Equipment") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Select Equipment") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! for (var/obj/item/I in M.get_equipped_items()) qdel(I) switch(dresscode) @@ -770,7 +770,7 @@ GLOBAL_PROTECT(AdminProcCall) return SSshuttle.clear_transit = TRUE message_admins("[key_name_admin(src)] cleared dynamic transit space.") - feedback_add_details("admin_verb","Clear Dynamic Transit") // If... + SSblackbox.add_details("admin_verb","Clear Dynamic Transit") // If... log_admin("[key_name(src)] cleared dynamic transit space.") @@ -807,5 +807,5 @@ GLOBAL_PROTECT(AdminProcCall) SSevents.scheduled = world.time message_admins("[key_name_admin(src)] pumped a random event.") - feedback_add_details("admin_verb","Pump Random Event") + SSblackbox.add_details("admin_verb","Pump Random Event") log_admin("[key_name(src)] pumped a random event.") \ No newline at end of file diff --git a/code/modules/admin/verbs/debug.dm.rej b/code/modules/admin/verbs/debug.dm.rej new file mode 100644 index 0000000000..5849ad1f2c --- /dev/null +++ b/code/modules/admin/verbs/debug.dm.rej @@ -0,0 +1,28 @@ +diff a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm (rejected hunks) +@@ -79,7 +79,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that + . = get_callproc_returnval(returnval, procname) + if(.) + to_chat(usr, .) +- feedback_add_details("admin_verb","Advanced ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! ++ SSblackbox.add_details("admin_verb","Advanced ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + /client/proc/callproc_datum(datum/A as null|area|mob|obj|turf) + set category = "Debug" +@@ -104,7 +104,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that + return + log_admin("[key_name(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") + message_admins("[key_name(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") +- feedback_add_details("admin_verb","Atom ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! ++ SSblackbox.add_details("admin_verb","Atom ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + var/returnval = call(A,procname)(arglist(lst)) // Pass the lst as an argument list to the proc + . = get_callproc_returnval(returnval,procname) +@@ -758,7 +758,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that + GLOB.medals_enabled = !GLOB.medals_enabled + + message_admins("[key_name_admin(src)] [GLOB.medals_enabled ? "disabled" : "enabled"] the medal hub lockout.") +- feedback_add_details("admin_verb","Toggle Medal Disable") // If... ++ SSblackbox.add_details("admin_verb","Toggle Medal Disable") // If... + log_admin("[key_name(src)] [GLOB.medals_enabled ? "disabled" : "enabled"] the medal hub lockout.") + + /client/proc/view_runtimes() diff --git a/code/modules/admin/verbs/diagnostics.dm b/code/modules/admin/verbs/diagnostics.dm index 26bfe6883b..15b619f653 100644 --- a/code/modules/admin/verbs/diagnostics.dm +++ b/code/modules/admin/verbs/diagnostics.dm @@ -16,7 +16,7 @@ to_chat(usr, "@[target.x],[target.y]: [GM.temperature] Kelvin, [GM.return_pressure()] kPa [(burning)?("\red BURNING"):(null)]") for(var/id in GM_gases) to_chat(usr, "[GM_gases[id][GAS_META][META_GAS_NAME]]: [GM_gases[id][MOLES]]") - feedback_add_details("admin_verb","Show Air Status") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Show Air Status") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/fix_next_move() set category = "Debug" @@ -46,7 +46,7 @@ message_admins("[key_name_admin(largest_move_mob)] had the largest move delay with [largest_move_time] frames / [largest_move_time/10] seconds!") message_admins("[key_name_admin(largest_click_mob)] had the largest click delay with [largest_click_time] frames / [largest_click_time/10] seconds!") message_admins("world.time = [world.time]") - feedback_add_details("admin_verb","Unfreeze Everyone") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Unfreeze Everyone") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return /client/proc/radio_report() @@ -84,7 +84,7 @@ output += "    [device]
" usr << browse(output,"window=radioreport") - feedback_add_details("admin_verb","Show Radio Report") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Show Radio Report") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/reload_admins() set name = "Reload Admins" @@ -98,5 +98,5 @@ return load_admins() - feedback_add_details("admin_verb","Reload All Admins") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Reload All Admins") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! message_admins("[key_name_admin(usr)] manually reloaded admins") diff --git a/code/modules/admin/verbs/fps.dm b/code/modules/admin/verbs/fps.dm index 7ec0569807..6f77ee7e50 100644 --- a/code/modules/admin/verbs/fps.dm +++ b/code/modules/admin/verbs/fps.dm @@ -19,6 +19,6 @@ var/msg = "[key_name(src)] has modified world.fps to [new_fps]" log_admin(msg, 0) message_admins(msg, 0) - feedback_add_details("admin_toggle","Set Server FPS|[new_fps]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Set Server FPS|[new_fps]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! world.fps = new_fps diff --git a/code/modules/admin/verbs/getlogs.dm b/code/modules/admin/verbs/getlogs.dm index c4db5305d4..7624a9443e 100644 --- a/code/modules/admin/verbs/getlogs.dm +++ b/code/modules/admin/verbs/getlogs.dm @@ -90,7 +90,7 @@ else to_chat(src, "Server log not found, try using .getserverlog.") return - feedback_add_details("admin_verb","Show Server Log") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Show Server Log") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return //Shows today's attack log @@ -104,5 +104,5 @@ else to_chat(src, "Server attack log not found, try using .getserverlog.") return - feedback_add_details("admin_verb","Show Server Attack log") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Show Server Attack log") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return diff --git a/code/modules/admin/verbs/machine_upgrade.dm b/code/modules/admin/verbs/machine_upgrade.dm index 340130bb75..9a22623bfe 100644 --- a/code/modules/admin/verbs/machine_upgrade.dm +++ b/code/modules/admin/verbs/machine_upgrade.dm @@ -7,4 +7,4 @@ P.rating = new_rating M.RefreshParts() - feedback_add_details("admin_toggle","Machine Upgrade|[new_rating]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Machine Upgrade|[new_rating]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index 9b8948cd13..66d04a4159 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -81,7 +81,7 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( seen[T]++ for(var/turf/T in seen) T.maptext = "[seen[T]]" - feedback_add_details("admin_verb","Show Camera Range") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Show Camera Range") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -123,7 +123,7 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( output += "" usr << browse(output,"window=airreport;size=1000x500") - feedback_add_details("admin_verb","Show Camera Report") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Show Camera Report") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/intercom_view() set category = "Mapping" @@ -144,7 +144,7 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( var/obj/effect/debugging/marker/F = new/obj/effect/debugging/marker(T) if (!(F in view(7,I.loc))) qdel(F) - feedback_add_details("admin_verb","Show Intercom Range") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Show Intercom Range") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_show_at_list() set category = "Mapping" @@ -160,7 +160,7 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( usr << browse(dat, "window=at_list") - feedback_add_details("admin_verb","Show Roundstart Active Turfs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Show Roundstart Active Turfs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/enable_debug_verbs() set category = "Debug" @@ -169,14 +169,14 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( return verbs -= /client/proc/enable_debug_verbs verbs.Add(/client/proc/disable_debug_verbs, GLOB.admin_verbs_debug_mapping) - feedback_add_details("admin_verb","Enable Debug Verbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Enable Debug Verbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/disable_debug_verbs() set category = "Debug" set name = "Debug verbs - Disable" verbs.Remove(/client/proc/disable_debug_verbs, GLOB.admin_verbs_debug_mapping) verbs += /client/proc/enable_debug_verbs - feedback_add_details("admin_verb", "Disable Debug Verbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb", "Disable Debug Verbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/count_objects_on_z_level() set category = "Mapping" @@ -219,7 +219,7 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( to_chat(world, line)*/ to_chat(world, "There are [count] objects of type [type_path] on z-level [num_level]") - feedback_add_details("admin_verb","Count Objects Zlevel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Count Objects Zlevel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/count_objects_all() set category = "Mapping" @@ -246,7 +246,7 @@ GLOBAL_LIST_INIT(admin_verbs_debug_mapping, list( to_chat(world, line)*/ to_chat(world, "There are [count] objects of type [type_path] in the game world") - feedback_add_details("admin_verb","Count Objects All") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Count Objects All") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //This proc is intended to detect lag problems relating to communication procs diff --git a/code/modules/admin/verbs/massmodvar.dm b/code/modules/admin/verbs/massmodvar.dm index 3423f9ebd9..eace5e471d 100644 --- a/code/modules/admin/verbs/massmodvar.dm +++ b/code/modules/admin/verbs/massmodvar.dm @@ -12,7 +12,7 @@ method = vv_subtype_prompt(A.type) src.massmodify_variables(A, var_name, method) - feedback_add_details("admin_verb","Mass Edit Variables") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Mass Edit Variables") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/massmodify_variables(datum/O, var_name = "", method = 0) if(!check_rights(R_VAREDIT)) diff --git a/code/modules/admin/verbs/panicbunker.dm.rej b/code/modules/admin/verbs/panicbunker.dm.rej new file mode 100644 index 0000000000..5a4748cc3a --- /dev/null +++ b/code/modules/admin/verbs/panicbunker.dm.rej @@ -0,0 +1,8 @@ +diff a/code/modules/admin/verbs/panicbunker.dm b/code/modules/admin/verbs/panicbunker.dm (rejected hunks) +@@ -11,5 +11,5 @@ + message_admins("[key_name_admin(usr)] has toggled the Panic Bunker, it is now [(config.panic_bunker?"enabled":"disabled")].") + if (config.panic_bunker && (!GLOB.dbcon || !GLOB.dbcon.IsConnected())) + message_admins("The Database is not connected! Panic bunker will not work until the connection is reestablished.") +- feedback_add_details("admin_toggle","Toggle Panic Bunker|[config.panic_bunker]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! ++ SSblackbox.add_details("admin_toggle","Toggle Panic Bunker|[config.panic_bunker]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm index cb2d0553b1..019fda5a23 100644 --- a/code/modules/admin/verbs/playsound.dm +++ b/code/modules/admin/verbs/playsound.dm @@ -25,7 +25,7 @@ if(M.client.prefs.toggles & SOUND_MIDI) M << admin_sound - feedback_add_details("admin_verb","Play Global Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Play Global Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/play_local_sound(S as sound) @@ -37,7 +37,7 @@ log_admin("[key_name(src)] played a local sound [S]") message_admins("[key_name_admin(src)] played a local sound [S]") playsound(get_turf(src.mob), S, 50, 0, 0) - feedback_add_details("admin_verb","Play Local Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Play Local Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/set_round_end_sound(S as sound) set category = "Fun" @@ -52,7 +52,7 @@ log_admin("[key_name(src)] set the round end sound to [S]") message_admins("[key_name_admin(src)] set the round end sound to [S]") - feedback_add_details("admin_verb","Set Round End Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Set Round End Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/stop_sounds() set category = "Debug" @@ -65,4 +65,4 @@ for(var/mob/M in GLOB.player_list) if(M.client) M << sound(null) - feedback_add_details("admin_verb","Stop All Playing Sounds") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Stop All Playing Sounds") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/possess.dm b/code/modules/admin/verbs/possess.dm index a7039512f7..86408df8a7 100644 --- a/code/modules/admin/verbs/possess.dm +++ b/code/modules/admin/verbs/possess.dm @@ -23,7 +23,7 @@ usr.name = O.name usr.client.eye = O usr.control_object = O - feedback_add_details("admin_verb","Possess Object") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Possess Object") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /proc/release(obj/O in world) set name = "Release Obj" @@ -41,7 +41,7 @@ usr.loc = O.loc usr.client.eye = usr usr.control_object = null - feedback_add_details("admin_verb","Release Object") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Release Object") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /proc/givetestverbs(mob/M in GLOB.mob_list) set desc = "Give this guy possess/release verbs" @@ -49,4 +49,4 @@ set name = "Give Possessing Verbs" M.verbs += /proc/possess M.verbs += /proc/release - feedback_add_details("admin_verb","Give Possessing Verbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Give Possessing Verbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index 39f31183a2..5a1caafc43 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -43,7 +43,7 @@ C << 'sound/effects/pray.ogg' to_chat(usr, "Your prayers have been received by the gods.") - feedback_add_details("admin_verb","Prayer") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Prayer") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //log_admin("HELP: [key_name(src)]: [msg]") /proc/Centcomm_announce(text , mob/Sender) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index b447c2a745..6e77b8daf8 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -62,7 +62,7 @@ to_chat(world, "[msg]") log_admin("GlobalNarrate: [key_name(usr)] : [msg]") message_admins("[key_name_admin(usr)] Sent a global narrate") - feedback_add_details("admin_verb","Global Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Global Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_direct_narrate(mob/M) set category = "Special Verbs" @@ -110,7 +110,7 @@ log_admin("LocalNarrate: [key_name(usr)] at ([get_area(A)]): [msg]") message_admins(" LocalNarrate: [key_name_admin(usr)] at ([get_area(A)]): [msg]
") - feedback_add_details("admin_verb","Local Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Local Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_godmode(mob/M in GLOB.mob_list) set category = "Special Verbs" @@ -187,7 +187,7 @@ message_admins("SPAM AUTOMUTE: [muteunmute] [key_name_admin(whom)] from [mute_string].") if(C) to_chat(C, "You have been [muteunmute] from [mute_string] by the SPAM AUTOMUTE system. Contact an admin.") - feedback_add_details("admin_toggle","Auto Mute [feedback_string]|1") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Auto Mute [feedback_string]|1") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return if(P.muted & mute_type) @@ -201,7 +201,7 @@ message_admins("[key_name_admin(usr)] has [muteunmute] [key_name_admin(whom)] from [mute_string].") if(C) to_chat(C, "You have been [muteunmute] from [mute_string] by [key_name(usr, include_name = FALSE)].") - feedback_add_details("admin_toggle","Mute [feedback_string]|[P.muted & mute_type]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Mute [feedback_string]|[P.muted & mute_type]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //I use this proc for respawn character too. /N @@ -423,7 +423,7 @@ Traitors and the like can also be revived with the previous role mostly intact. to_chat(new_character, "You have been fully respawned. Enjoy the game.") - feedback_add_details("admin_verb","Respawn Character") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Respawn Character") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return new_character /client/proc/cmd_admin_add_freeform_ai_law() @@ -446,7 +446,7 @@ Traitors and the like can also be revived with the previous role mostly intact. ion.announceEvent = announce_ion_laws ion.ionMessage = input - feedback_add_details("admin_verb","Add Custom AI Law") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Add Custom AI Law") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_rejuvenate(mob/living/M in GLOB.mob_list) set category = "Special Verbs" @@ -490,7 +490,7 @@ Traitors and the like can also be revived with the previous role mostly intact. log_admin("[key_name(src)] has created a command report: [input]") message_admins("[key_name_admin(src)] has created a command report") - feedback_add_details("admin_verb","Create Command Report") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Create Command Report") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_change_command_name() set category = "Special Verbs" @@ -516,7 +516,7 @@ Traitors and the like can also be revived with the previous role mostly intact. if (alert(src, "Are you sure you want to delete:\n[O]\nat ([O.x], [O.y], [O.z])?", "Confirmation", "Yes", "No") == "Yes") log_admin("[key_name(usr)] deleted [O] at ([O.x],[O.y],[O.z])") message_admins("[key_name_admin(usr)] deleted [O] at ([O.x],[O.y],[O.z])") - feedback_add_details("admin_verb","Delete") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Delete") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! if(isturf(O)) var/turf/T = O T.ChangeTurf(T.baseturf) @@ -531,7 +531,7 @@ Traitors and the like can also be revived with the previous role mostly intact. to_chat(src, "Only administrators may use this command.") return holder.manage_free_slots() - feedback_add_details("admin_verb","Manage Job Slots") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Manage Job Slots") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_explosion(atom/O as obj|mob|turf in world) set category = "Special Verbs" @@ -560,7 +560,7 @@ Traitors and the like can also be revived with the previous role mostly intact. explosion(O, devastation, heavy, light, flash, null, null,flames) log_admin("[key_name(usr)] created an explosion ([devastation],[heavy],[light],[flames]) at ([O.x],[O.y],[O.z])") message_admins("[key_name_admin(usr)] created an explosion ([devastation],[heavy],[light],[flames]) at ([O.x],[O.y],[O.z])") - feedback_add_details("admin_verb","Explosion") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Explosion") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return else return @@ -583,7 +583,7 @@ Traitors and the like can also be revived with the previous role mostly intact. empulse(O, heavy, light) log_admin("[key_name(usr)] created an EM Pulse ([heavy],[light]) at ([O.x],[O.y],[O.z])") message_admins("[key_name_admin(usr)] created an EM PUlse ([heavy],[light]) at ([O.x],[O.y],[O.z])") - feedback_add_details("admin_verb","EM Pulse") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","EM Pulse") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return else @@ -614,7 +614,7 @@ Traitors and the like can also be revived with the previous role mostly intact. M.gib() else M.gib(1) - feedback_add_details("admin_verb","Gib") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Gib") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_gib_self() set name = "Gibself" @@ -624,7 +624,7 @@ Traitors and the like can also be revived with the previous role mostly intact. if(confirm == "Yes") log_admin("[key_name(usr)] used gibself.") message_admins("[key_name_admin(usr)] used gibself.") - feedback_add_details("admin_verb","Gib Self") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Gib Self") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! mob.gib(1, 1, 1) /client/proc/cmd_admin_check_contents(mob/living/M in GLOB.mob_list) @@ -634,7 +634,7 @@ Traitors and the like can also be revived with the previous role mostly intact. var/list/L = M.get_contents() for(var/t in L) to_chat(usr, "[t]") - feedback_add_details("admin_verb","Check Contents") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Check Contents") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/toggle_view_range() set category = "Special Verbs" @@ -649,7 +649,7 @@ Traitors and the like can also be revived with the previous role mostly intact. log_admin("[key_name(usr)] changed their view range to [view].") //message_admins("\blue [key_name_admin(usr)] changed their view range to [view].") //why? removed by order of XSI - feedback_add_details("admin_toggle","Change View Range|[view]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Change View Range|[view]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/admin_call_shuttle() @@ -668,7 +668,7 @@ Traitors and the like can also be revived with the previous role mostly intact. return SSshuttle.emergency.request() - feedback_add_details("admin_verb","Call Shuttle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Call Shuttle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] admin-called the emergency shuttle.") message_admins("[key_name_admin(usr)] admin-called the emergency shuttle.") return @@ -685,7 +685,7 @@ Traitors and the like can also be revived with the previous role mostly intact. return SSshuttle.emergency.cancel() - feedback_add_details("admin_verb","Cancel Shuttle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Cancel Shuttle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] admin-recalled the emergency shuttle.") message_admins("[key_name_admin(usr)] admin-recalled the emergency shuttle.") @@ -720,7 +720,7 @@ Traitors and the like can also be revived with the previous role mostly intact. to_chat(usr, "Remember: you can always disable the randomness by using the verb again, assuming the round hasn't started yet.") config.force_random_names = 1 - feedback_add_details("admin_verb","Make Everyone Random") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Make Everyone Random") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/toggle_random_events() @@ -735,7 +735,7 @@ Traitors and the like can also be revived with the previous role mostly intact. config.allow_random_events = 0 to_chat(usr, "Random events disabled") message_admins("Admin [key_name_admin(usr)] has disabled random events.") - feedback_add_details("admin_toggle","Toggle Random Events|[config.allow_random_events]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Random Events|[config.allow_random_events]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/admin_change_sec_level() @@ -753,7 +753,7 @@ Traitors and the like can also be revived with the previous role mostly intact. log_admin("[key_name(usr)] changed the security level to [level]") message_admins("[key_name_admin(usr)] changed the security level to [level]") - feedback_add_details("admin_verb","Set Security Level [capitalize(level)]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Set Security Level [capitalize(level)]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/toggle_nuke(obj/machinery/nuclearbomb/N in GLOB.nuke_list) set name = "Toggle Nuke" @@ -772,7 +772,7 @@ Traitors and the like can also be revived with the previous role mostly intact. log_admin("[key_name(usr)] [N.timing ? "activated" : "deactivated"] a nuke at ([N.x],[N.y],[N.z]).") message_admins("[ADMIN_LOOKUPFLW(usr)] [N.timing ? "activated" : "deactivated"] a nuke at [ADMIN_COORDJMP(N)].") - feedback_add_details("admin_toggle","Toggle Nuke|[N.timing]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Nuke|[N.timing]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits @@ -970,7 +970,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits to_chat(usr, "You toggled your admin antag HUD [adding_hud ? "ON" : "OFF"].") message_admins("[key_name_admin(usr)] toggled their admin antag HUD [adding_hud ? "ON" : "OFF"].") log_admin("[key_name(usr)] toggled their admin antag HUD [adding_hud ? "ON" : "OFF"].") - feedback_add_details("admin_toggle","Toggle Antag HUD|[adding_hud]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Antag HUD|[adding_hud]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/has_antag_hud() var/datum/atom_hud/A = GLOB.huds[ANTAG_HUD_TRAITOR] @@ -1002,7 +1002,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits message_admins("[key_name_admin(usr)] added a latent zombie infection to all humans.") log_admin("[key_name(usr)] added a latent zombie infection to all humans.") - feedback_add_details("admin_verb","Mass Zombie Infection") + SSblackbox.add_details("admin_verb","Mass Zombie Infection") /client/proc/mass_zombie_cure() set category = "Fun" @@ -1020,7 +1020,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits message_admins("[key_name_admin(usr)] cured all zombies.") log_admin("[key_name(usr)] cured all zombies.") - feedback_add_details("admin_verb","Mass Zombie Cure") + SSblackbox.add_details("admin_verb","Mass Zombie Cure") /client/proc/polymorph_all() set category = "Fun" @@ -1039,7 +1039,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits message_admins("[key_name_admin(usr)] started polymorphed all living mobs.") log_admin("[key_name(usr)] polymorphed all living mobs.") - feedback_add_details("admin_verb","Polymorph All") + SSblackbox.add_details("admin_verb","Polymorph All") for(var/mob/living/M in mobs) CHECK_TICK @@ -1080,7 +1080,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits message_admins("[key_name_admin(usr)] sent a tip of the round.") log_admin("[key_name(usr)] sent \"[input]\" as the Tip of the Round.") - feedback_add_details("admin_verb","Show Tip") + SSblackbox.add_details("admin_verb","Show Tip") #define ON_PURRBATION(H) (!(H.dna.features["tail_human"] == "None" && H.dna.features["ears"] == "None")) @@ -1157,7 +1157,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits if (world.visibility && !world.reachable) message_admins("WARNING: The server will not show up on the hub because byond is detecting that a filewall is blocking incoming connections.") - feedback_add_details("admin_toggle","Toggled Hub Visibility|[world.visibility]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggled Hub Visibility|[world.visibility]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/smite(mob/living/carbon/human/target as mob) set name = "Smite" diff --git a/code/modules/admin/verbs/randomverbs.dm.rej b/code/modules/admin/verbs/randomverbs.dm.rej new file mode 100644 index 0000000000..5622cb5975 --- /dev/null +++ b/code/modules/admin/verbs/randomverbs.dm.rej @@ -0,0 +1,46 @@ +diff a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm (rejected hunks) +@@ -16,7 +16,7 @@ + + log_admin("[key_name(usr)] made [key_name(M)] drop everything!") + message_admins("[key_name_admin(usr)] made [key_name_admin(M)] drop everything!") +- feedback_add_details("admin_verb","Drop Everything") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! ++ SSblackbox.add_details("admin_verb","Drop Everything") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + + /client/proc/cmd_admin_subtle_message(mob/M in GLOB.mob_list) +@@ -42,7 +42,7 @@ + + log_admin("SubtlePM: [key_name(usr)] -> [key_name(M)] : [msg]") + message_admins(" SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] : [msg]") +- feedback_add_details("admin_verb","Subtle Message") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! ++ SSblackbox.add_details("admin_verb","Subtle Message") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + /client/proc/cmd_admin_world_narrate() + set category = "Special Verbs" +@@ -83,7 +83,7 @@ + to_chat(M, msg) + log_admin("DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]") + message_admins(" DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]
") +- feedback_add_details("admin_verb","Direct Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! ++ SSblackbox.add_details("admin_verb","Direct Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + /client/proc/cmd_admin_local_narrate(atom/A) + set category = "Special Verbs" +@@ -118,7 +118,7 @@ + + 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"]") +- feedback_add_details("admin_toggle","Godmode|[M.status_flags & GODMODE]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! ++ SSblackbox.add_details("admin_toggle","Godmode|[M.status_flags & GODMODE]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + + /proc/cmd_admin_mute(whom, mute_type, automute = 0) +@@ -448,7 +448,7 @@ Traitors and the like can also be revived with the previous role mostly intact. + + log_admin("[key_name(usr)] healed / revived [key_name(M)]") + message_admins("Admin [key_name_admin(usr)] healed / revived [key_name_admin(M)]!") +- feedback_add_details("admin_verb","Rejuvinate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! ++ SSblackbox.add_details("admin_verb","Rejuvinate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + /client/proc/cmd_admin_create_centcom_report() + set category = "Special Verbs" diff --git a/code/modules/admin/verbs/reestablish_db_connection.dm.rej b/code/modules/admin/verbs/reestablish_db_connection.dm.rej new file mode 100644 index 0000000000..b0aca5351d --- /dev/null +++ b/code/modules/admin/verbs/reestablish_db_connection.dm.rej @@ -0,0 +1,15 @@ +diff a/code/modules/admin/verbs/reestablish_db_connection.dm b/code/modules/admin/verbs/reestablish_db_connection.dm (rejected hunks) +@@ -17,11 +17,11 @@ + GLOB.dbcon.Disconnect() + log_admin("[key_name(usr)] has forced the database to disconnect") + message_admins("[key_name_admin(usr)] has forced the database to disconnect!") +- feedback_add_details("admin_verb","Force Reestablished Database Connection") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! ++ SSblackbox.add_details("admin_verb","Force Reestablished Database Connection") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + log_admin("[key_name(usr)] is attempting to re-established the DB Connection") + message_admins("[key_name_admin(usr)] is attempting to re-established the DB Connection") +- feedback_add_details("admin_verb","Reestablished Database Connection") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! ++ SSblackbox.add_details("admin_verb","Reestablished Database Connection") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + GLOB.dbcon.failed_connections = 0 + if(!GLOB.dbcon.Connect()) diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index 0b6f2db5b7..7b49145895 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -21,7 +21,7 @@ attach(A2,user) name = "[A.name]-[A2.name] assembly" update_icon() - feedback_add_details("assembly_made","[initial(A.name)]-[initial(A2.name)]") + SSblackbox.add_details("assembly_made","[initial(A.name)]-[initial(A2.name)]") /obj/item/device/assembly_holder/proc/attach(obj/item/device/assembly/A, mob/user) if(!A.remove_item_from_storage(src)) diff --git a/code/modules/cargo/exports.dm b/code/modules/cargo/exports.dm index dda86e5257..6f81d884e0 100644 --- a/code/modules/cargo/exports.dm +++ b/code/modules/cargo/exports.dm @@ -103,8 +103,8 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they var/amount = get_amount(O) total_cost += cost total_amount += amount - feedback_add_details("export_sold_amount","[O.type]|[amount]") - feedback_add_details("export_sold_cost","[O.type]|[cost]") + SSblackbox.add_details("export_sold_amount","[O.type]|[amount]") + SSblackbox.add_details("export_sold_cost","[O.type]|[cost]") // Total printout for the cargo console. // Called before the end of current export cycle. diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index 8ee179cdab..74cbc70b87 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -6,7 +6,7 @@ prefs.chat_toggles ^= CHAT_GHOSTEARS to_chat(src, "As a ghost, you will now [(prefs.chat_toggles & CHAT_GHOSTEARS) ? "see all speech in the world" : "only see speech from nearby mobs"].") prefs.save_preferences() - feedback_add_details("preferences_verb","Toggle Ghost Ears|[prefs.chat_toggles & CHAT_GHOSTEARS]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("preferences_verb","Toggle Ghost Ears|[prefs.chat_toggles & CHAT_GHOSTEARS]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/verb/toggle_ghost_sight() set name = "Show/Hide GhostSight" @@ -15,7 +15,7 @@ prefs.chat_toggles ^= CHAT_GHOSTSIGHT to_chat(src, "As a ghost, you will now [(prefs.chat_toggles & CHAT_GHOSTSIGHT) ? "see all emotes in the world" : "only see emotes from nearby mobs"].") prefs.save_preferences() - feedback_add_details("preferences_verb","Toggle Ghost Sight|[prefs.chat_toggles & CHAT_GHOSTSIGHT]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("preferences_verb","Toggle Ghost Sight|[prefs.chat_toggles & CHAT_GHOSTSIGHT]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/verb/toggle_ghost_whispers() set name = "Show/Hide GhostWhispers" @@ -24,7 +24,7 @@ prefs.chat_toggles ^= CHAT_GHOSTWHISPER to_chat(src, "As a ghost, you will now [(prefs.chat_toggles & CHAT_GHOSTWHISPER) ? "see all whispers in the world" : "only see whispers from nearby mobs"].") prefs.save_preferences() - feedback_add_details("preferences_verb","Toggle Ghost Whispers|[prefs.chat_toggles & CHAT_GHOSTWHISPER]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("preferences_verb","Toggle Ghost Whispers|[prefs.chat_toggles & CHAT_GHOSTWHISPER]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/verb/toggle_ghost_radio() set name = "Show/Hide GhostRadio" @@ -33,7 +33,7 @@ prefs.chat_toggles ^= CHAT_GHOSTRADIO to_chat(src, "As a ghost, you will now [(prefs.chat_toggles & CHAT_GHOSTRADIO) ? "see radio chatter" : "not see radio chatter"].") prefs.save_preferences() - feedback_add_details("preferences_verb","Toggle Ghost Radio|[prefs.chat_toggles & CHAT_GHOSTRADIO]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //social experiment, increase the generation whenever you copypaste this shamelessly GENERATION 1 + SSblackbox.add_details("preferences_verb","Toggle Ghost Radio|[prefs.chat_toggles & CHAT_GHOSTRADIO]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //social experiment, increase the generation whenever you copypaste this shamelessly GENERATION 1 /client/verb/toggle_ghost_pda() set name = "Show/Hide GhostPDA" @@ -42,7 +42,7 @@ prefs.chat_toggles ^= CHAT_GHOSTPDA to_chat(src, "As a ghost, you will now [(prefs.chat_toggles & CHAT_GHOSTPDA) ? "see all pda messages in the world" : "only see pda messages from nearby mobs"].") prefs.save_preferences() - feedback_add_details("preferences_verb","Toggle Ghost PDA|[prefs.chat_toggles & CHAT_GHOSTPDA]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("preferences_verb","Toggle Ghost PDA|[prefs.chat_toggles & CHAT_GHOSTPDA]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //please be aware that the following two verbs have inverted stat output, so that "Toggle Deathrattle|1" still means you activated it /client/verb/toggle_deathrattle() @@ -52,7 +52,7 @@ prefs.toggles ^= DISABLE_DEATHRATTLE prefs.save_preferences() to_chat(usr, "You will [(prefs.toggles & DISABLE_DEATHRATTLE) ? "no longer" : "now"] get messages when a sentient mob dies.") - feedback_add_details("preferences_verb", "Toggle Deathrattle|[!(prefs.toggles & DISABLE_DEATHRATTLE)]") //If you are copy-pasting this, maybe you should spend some time reading the comments. + SSblackbox.add_details("preferences_verb", "Toggle Deathrattle|[!(prefs.toggles & DISABLE_DEATHRATTLE)]") //If you are copy-pasting this, maybe you should spend some time reading the comments. /client/verb/toggle_arrivalrattle() set name = "Toggle Arrivalrattle" @@ -61,7 +61,7 @@ prefs.toggles ^= DISABLE_ARRIVALRATTLE to_chat(usr, "You will [(prefs.toggles & DISABLE_ARRIVALRATTLE) ? "no longer" : "now"] get messages when someone joins the station.") prefs.save_preferences() - feedback_add_details("preferences_verb", "Toggle Arrivalrattle|[!(prefs.toggles & DISABLE_ARRIVALRATTLE)]") //If you are copy-pasting this, maybe you should rethink where your life went so wrong. + SSblackbox.add_details("preferences_verb", "Toggle Arrivalrattle|[!(prefs.toggles & DISABLE_ARRIVALRATTLE)]") //If you are copy-pasting this, maybe you should rethink where your life went so wrong. /client/verb/togglemidroundantag() set name = "Toggle Midround Antagonist" @@ -70,7 +70,7 @@ prefs.toggles ^= MIDROUND_ANTAG prefs.save_preferences() to_chat(src, "You will [(prefs.toggles & MIDROUND_ANTAG) ? "now" : "no longer"] be considered for midround antagonist positions.") - feedback_add_details("preferences_verb","Toggle Midround Antag|[prefs.toggles & MIDROUND_ANTAG]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("preferences_verb","Toggle Midround Antag|[prefs.toggles & MIDROUND_ANTAG]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/verb/toggletitlemusic() set name = "Hear/Silence LobbyMusic" @@ -85,7 +85,7 @@ else to_chat(src, "You will no longer hear music in the game lobby.") mob.stop_sound_channel(CHANNEL_LOBBYMUSIC) - feedback_add_details("preferences_verb","Toggle Lobby Music|[prefs.toggles & SOUND_LOBBY]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("preferences_verb","Toggle Lobby Music|[prefs.toggles & SOUND_LOBBY]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/verb/togglemidis() set name = "Hear/Silence Midis" @@ -98,14 +98,14 @@ else to_chat(src, "You will no longer hear sounds uploaded by admins") mob.stop_sound_channel(CHANNEL_ADMIN) - feedback_add_details("preferences_verb","Toggle Hearing Midis|[prefs.toggles & SOUND_MIDI]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("preferences_verb","Toggle Hearing Midis|[prefs.toggles & SOUND_MIDI]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/verb/stop_client_sounds() set name = "Stop Sounds" set category = "Preferences" set desc = "Kills all currently playing sounds, use if admin taste in midis a shite" src << sound(null) - feedback_add_details("preferences_verb","Stop Self Sounds") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("preferences_verb","Stop Self Sounds") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/verb/listen_ooc() set name = "Show/Hide OOC" @@ -114,7 +114,7 @@ prefs.chat_toggles ^= CHAT_OOC prefs.save_preferences() to_chat(src, "You will [(prefs.chat_toggles & CHAT_OOC) ? "now" : "no longer"] see messages on the OOC channel.") - feedback_add_details("preferences_verb","Toggle Seeing OOC|[prefs.chat_toggles & CHAT_OOC]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("preferences_verb","Toggle Seeing OOC|[prefs.chat_toggles & CHAT_OOC]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/verb/Toggle_Soundscape() //All new ambience should be added here so it works with this verb until someone better at things comes up with a fix that isn't awful set name = "Hear/Silence Ambience" @@ -128,7 +128,7 @@ to_chat(src, "You will no longer hear ambient sounds.") src << sound(null, repeat = 0, wait = 0, volume = 0, channel = 1) src << sound(null, repeat = 0, wait = 0, volume = 0, channel = 2) - feedback_add_details("preferences_verb","Toggle Ambience|[prefs.toggles & SOUND_AMBIENCE]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("preferences_verb","Toggle Ambience|[prefs.toggles & SOUND_AMBIENCE]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! // This needs a toggle because you people are awful and spammed terrible music /client/verb/toggle_instruments() @@ -141,7 +141,7 @@ to_chat(src, "You will now hear people playing musical instruments.") else to_chat(src, "You will no longer hear musical instruments.") - feedback_add_details("preferences_verb","Toggle Instruments|[prefs.toggles & SOUND_INSTRUMENTS]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("preferences_verb","Toggle Instruments|[prefs.toggles & SOUND_INSTRUMENTS]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //Lots of people get headaches from the normal ship ambience, this is to prevent that /client/verb/toggle_ship_ambience() @@ -156,7 +156,7 @@ to_chat(src, "You will no longer hear ship ambience.") src << sound(null, repeat = 0, wait = 0, volume = 0, channel = 2) src.ambience_playing = 0 - feedback_add_details("preferences_verb", "Toggle Ship Ambience|[prefs.toggles & SOUND_SHIP_AMBIENCE]") //If you are copy-pasting this, I bet you read this comment expecting to see the same thing :^) + SSblackbox.add_details("preferences_verb", "Toggle Ship Ambience|[prefs.toggles & SOUND_SHIP_AMBIENCE]") //If you are copy-pasting this, I bet you read this comment expecting to see the same thing :^) GLOBAL_LIST_INIT(ghost_forms, list("ghost","ghostking","ghostian2","skeleghost","ghost_red","ghost_black", \ "ghost_blue","ghost_yellow","ghost_green","ghost_pink", \ @@ -244,7 +244,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS prefs.toggles ^= INTENT_STYLE to_chat(src, "[(prefs.toggles & INTENT_STYLE) ? "Clicking directly on intents selects them." : "Clicking on intents rotates selection clockwise."]") prefs.save_preferences() - feedback_add_details("preferences_verb","Toggle Intent Selection|[prefs.toggles & INTENT_STYLE]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("preferences_verb","Toggle Intent Selection|[prefs.toggles & INTENT_STYLE]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/verb/setup_character() set name = "Game Preferences" @@ -263,7 +263,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS prefs.save_preferences() if(isobserver(mob)) mob.hud_used.show_hud() - feedback_add_details("preferences_verb","Toggle Ghost HUD|[prefs.ghost_hud]") + SSblackbox.add_details("preferences_verb","Toggle Ghost HUD|[prefs.ghost_hud]") /client/verb/toggle_inquisition() // warning: unexpected inquisition set name = "Toggle Inquisitiveness" @@ -276,7 +276,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS to_chat(src, "You will now examine everything you click on.") else to_chat(src, "You will no longer examine things you click on.") - feedback_add_details("preferences_verb","Toggle Ghost Inquisitiveness|[prefs.inquisitive_ghost]") + SSblackbox.add_details("preferences_verb","Toggle Ghost Inquisitiveness|[prefs.inquisitive_ghost]") /client/verb/toggle_announcement_sound() set name = "Hear/Silence Announcements" @@ -285,7 +285,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS prefs.toggles ^= SOUND_ANNOUNCEMENTS to_chat(src, "You will now [(prefs.toggles & SOUND_ANNOUNCEMENTS) ? "hear announcement sounds" : "no longer hear announcements"].") prefs.save_preferences() - feedback_add_details("preferences_verb","Toggle Announcement Sound|[prefs.toggles & SOUND_ANNOUNCEMENTS]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("preferences_verb","Toggle Announcement Sound|[prefs.toggles & SOUND_ANNOUNCEMENTS]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //Admin Preferences /client/proc/toggleadminhelpsound() @@ -297,7 +297,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS prefs.toggles ^= SOUND_ADMINHELP prefs.save_preferences() to_chat(usr, "You will [(prefs.toggles & SOUND_ADMINHELP) ? "now" : "no longer"] hear a sound when adminhelps arrive.") - feedback_add_details("admin_toggle","Toggle Adminhelp Sound|[prefs.toggles & SOUND_ADMINHELP]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Adminhelp Sound|[prefs.toggles & SOUND_ADMINHELP]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/toggleannouncelogin() set name = "Do/Don't Announce Login" @@ -308,7 +308,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS prefs.toggles ^= ANNOUNCE_LOGIN prefs.save_preferences() to_chat(usr, "You will [(prefs.toggles & ANNOUNCE_LOGIN) ? "now" : "no longer"] have an announcement to other admins when you login.") - feedback_add_details("admin_toggle","Toggle Login Announcement|[prefs.toggles & ANNOUNCE_LOGIN]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Login Announcement|[prefs.toggles & ANNOUNCE_LOGIN]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/toggle_hear_radio() set name = "Show/Hide Radio Chatter" @@ -318,7 +318,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS prefs.chat_toggles ^= CHAT_RADIO prefs.save_preferences() to_chat(usr, "You will [(prefs.chat_toggles & CHAT_RADIO) ? "now" : "no longer"] see radio chatter from nearby radios or speakers") - feedback_add_details("admin_toggle","Toggle Radio Chatter|[prefs.chat_toggles & CHAT_RADIO]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Radio Chatter|[prefs.chat_toggles & CHAT_RADIO]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/deadchat() set name = "Show/Hide Deadchat" @@ -327,7 +327,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS prefs.chat_toggles ^= CHAT_DEAD prefs.save_preferences() to_chat(src, "You will [(prefs.chat_toggles & CHAT_DEAD) ? "now" : "no longer"] see deadchat.") - feedback_add_details("admin_toggle","Toggle Deadchat Visibility|[prefs.chat_toggles & CHAT_DEAD]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Deadchat Visibility|[prefs.chat_toggles & CHAT_DEAD]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/toggleprayers() set name = "Show/Hide Prayers" @@ -336,7 +336,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS prefs.chat_toggles ^= CHAT_PRAYER prefs.save_preferences() to_chat(src, "You will [(prefs.chat_toggles & CHAT_PRAYER) ? "now" : "no longer"] see prayerchat.") - feedback_add_details("admin_toggle","Toggle Prayer Visibility|[prefs.chat_toggles & CHAT_PRAYER]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Prayer Visibility|[prefs.chat_toggles & CHAT_PRAYER]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/verb/toggleprayersounds() set name = "Hear/Silence Prayer Sounds" @@ -348,4 +348,4 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS to_chat(src, "You will now hear prayer sounds.") else to_chat(src, "You will no longer prayer sounds.") - feedback_add_details("admin_toggle", "Toggle Prayer Sounds|[prefs.toggles & SOUND_PRAYERS]") + SSblackbox.add_details("admin_toggle", "Toggle Prayer Sounds|[prefs.toggles & SOUND_PRAYERS]") diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm index 79b21dccee..97e05ee221 100644 --- a/code/modules/client/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -108,7 +108,7 @@ GLOBAL_VAR_INIT(normal_ooc_colour, OOC_COLOR) if(new_ooccolor) prefs.ooccolor = sanitize_ooccolor(new_ooccolor) prefs.save_preferences() - feedback_add_details("admin_verb","Set OOC Color") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Set OOC Color") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return /client/verb/resetcolorooc() diff --git a/code/modules/crafting/craft.dm b/code/modules/crafting/craft.dm index 77d1e1d6d9..a14d301a31 100644 --- a/code/modules/crafting/craft.dm +++ b/code/modules/crafting/craft.dm @@ -124,7 +124,7 @@ var/atom/movable/I = new R.result (get_turf(user.loc)) I.CheckParts(parts, R) if(send_feedback) - feedback_add_details("object_crafted","[I.type]") + SSblackbox.add_details("object_crafted","[I.type]") return 0 return "." return ", missing tool." diff --git a/code/modules/events/_event.dm.rej b/code/modules/events/_event.dm.rej new file mode 100644 index 0000000000..fefa119632 --- /dev/null +++ b/code/modules/events/_event.dm.rej @@ -0,0 +1,17 @@ +diff a/code/modules/events/_event.dm b/code/modules/events/_event.dm (rejected hunks) +@@ -78,13 +78,13 @@ + triggering = FALSE + message_admins("[key_name_admin(usr)] cancelled event [name].") + log_admin_private("[key_name(usr)] cancelled event [name].") +- feedback_add_details("admin_verb","Cancel Event: [typepath]") ++ SSblackbox.add_details("admin_verb","Cancel Event: [typepath]") + + /datum/round_event_control/proc/runEvent(random) + var/datum/round_event/E = new typepath() + E.current_players = get_active_player_count(alive_check = 1, afk_check = 1, human_check = 1) + E.control = src +- feedback_add_details("event_ran","[E]") ++ SSblackbox.add_details("event_ran","[E]") + occurrences++ + + testing("[time2text(world.time, "hh:mm:ss")] [E.type]") diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index d50c80567a..148541922f 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -170,7 +170,7 @@ if(istype(A, B)) continue contents_loop qdel(A) - feedback_add_details("food_made","[type]") + SSblackbox.add_details("food_made","[type]") if(bonus_reagents && bonus_reagents.len) for(var/r_id in bonus_reagents) @@ -262,7 +262,7 @@ initialize_cooked_food(S, M.efficiency) else initialize_cooked_food(S, 1) - feedback_add_details("food_made","[type]") + SSblackbox.add_details("food_made","[type]") else new /obj/item/weapon/reagent_containers/food/snacks/badrecipe(src) if(M && M.dirty < 100) diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm index 6274716f0d..4a2f0948d9 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm @@ -142,7 +142,7 @@ return for(var/i in 1 to (C+processor.rating_amount-1)) new S.coretype(loc) - feedback_add_details("slime_core_harvested","[replacetext(S.colour," ","_")]") + SSblackbox.add_details("slime_core_harvested","[replacetext(S.colour," ","_")]") ..() /datum/food_processor_process/mob/slime/input = /mob/living/simple_animal/slime diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 42e424d109..0d3cdea2fc 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -150,7 +150,7 @@ t_amount++ product_name = t_prod.name if(getYield() >= 1) - feedback_add_details("food_harvested","[product_name]|[getYield()]") + SSblackbox.add_details("food_harvested","[product_name]|[getYield()]") parent.update_tray() return result diff --git a/code/modules/jobs/job_types/civilian_chaplain.dm b/code/modules/jobs/job_types/civilian_chaplain.dm index 19ae279c50..a4eb96b745 100644 --- a/code/modules/jobs/job_types/civilian_chaplain.dm +++ b/code/modules/jobs/job_types/civilian_chaplain.dm @@ -82,8 +82,8 @@ Chaplain H.equip_to_slot_or_del(B, slot_in_backpack) - feedback_set_details("religion_name","[new_religion]") - feedback_set_details("religion_deity","[new_deity]") + SSblackbox.set_details("religion_name","[new_religion]") + SSblackbox.set_details("religion_deity","[new_deity]") /datum/outfit/job/chaplain name = "Chaplain" diff --git a/code/modules/mining/aux_base.dm b/code/modules/mining/aux_base.dm index b98a3cfd98..8c2d1ca281 100644 --- a/code/modules/mining/aux_base.dm +++ b/code/modules/mining/aux_base.dm @@ -131,7 +131,7 @@ interface with the mining shuttle at the landing site if a mobile beacon is also /obj/machinery/computer/auxillary_base/onShuttleMove(turf/T1, rotation) ..() if(z == ZLEVEL_MINING) //Avoids double logging and landing on other Z-levels due to badminnery - feedback_add_details("colonies_dropped", "[x]|[y]|[z]") //Number of times a base has been dropped! + SSblackbox.add_details("colonies_dropped", "[x]|[y]|[z]") //Number of times a base has been dropped! /obj/machinery/computer/auxillary_base/proc/set_mining_mode() if(z == ZLEVEL_MINING) //The console switches to controlling the mining shuttle once landed. diff --git a/code/modules/mining/equipment.dm b/code/modules/mining/equipment.dm index 36c3053143..144a2634ba 100644 --- a/code/modules/mining/equipment.dm +++ b/code/modules/mining/equipment.dm @@ -320,7 +320,7 @@ H.attack_same = 0 loaded = 0 user.visible_message("[user] injects [M] with [src], reviving it.") - feedback_add_details("lazarus_injector", "[M.type]") + SSblackbox.add_details("lazarus_injector", "[M.type]") playsound(src,'sound/effects/refill.ogg',50,1) icon_state = "lazarus_empty" return diff --git a/code/modules/mining/equipment.dm.rej b/code/modules/mining/equipment.dm.rej new file mode 100644 index 0000000000..b8c7edb1c9 --- /dev/null +++ b/code/modules/mining/equipment.dm.rej @@ -0,0 +1,26 @@ +diff a/code/modules/mining/equipment.dm b/code/modules/mining/equipment.dm (rejected hunks) +@@ -68,7 +68,7 @@ + + /obj/item/device/wormhole_jaunter/attack_self(mob/user) + user.visible_message("[user.name] activates the [src.name]!") +- feedback_add_details("jaunter", "U") // user activated ++ SSblackbox.add_details("jaunter", "U") // user activated + activate(user) + + /obj/item/device/wormhole_jaunter/proc/turf_check(mob/user) +@@ -124,13 +124,13 @@ + + if(triggered) + usr.visible_message("The [src] overloads and activates!") +- feedback_add_details("jaunter","E") // EMP accidental activation ++ SSblackbox.add_details("jaunter","E") // EMP accidental activation + activate(usr) + + /obj/item/device/wormhole_jaunter/proc/chasm_react(mob/user) + if(user.get_item_by_slot(slot_belt) == src) + to_chat(user, "Your [src] activates, saving you from the chasm!") +- feedback_add_details("jaunter","C") // chasm automatic activation ++ SSblackbox.add_details("jaunter","C") // chasm automatic activation + activate(user) + else + to_chat(user, "The [src] is not attached to your belt, preventing it from saving you from the chasm. RIP.") diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 95f8d2d9bd..911a4d97df 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -140,7 +140,7 @@ return new /obj/effect/particle_effect/smoke(user.loc) user.forceMove(get_turf(linked)) - feedback_add_details("warp_cube","[src.type]") + SSblackbox.add_details("warp_cube","[src.type]") new /obj/effect/particle_effect/smoke(user.loc) /obj/item/device/warp_cube/red diff --git a/code/modules/mining/lavaland/necropolis_chests.dm.rej b/code/modules/mining/lavaland/necropolis_chests.dm.rej new file mode 100644 index 0000000000..60981a7456 --- /dev/null +++ b/code/modules/mining/lavaland/necropolis_chests.dm.rej @@ -0,0 +1,28 @@ +diff a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm (rejected hunks) +@@ -87,7 +87,7 @@ + user.sight |= SEE_MOBS + icon_state = "lantern" + wisp.orbit(user, 20) +- feedback_add_details("wisp_lantern","F") // freed ++ SSblackbox.add_details("wisp_lantern","F") // freed + + else + to_chat(user, "You return the wisp to the lantern.") +@@ -102,7 +102,7 @@ + wisp.stop_orbit() + wisp.loc = src + icon_state = "lantern-blue" +- feedback_add_details("wisp_lantern","R") // returned ++ SSblackbox.add_details("wisp_lantern","R") // returned + + /obj/item/device/wisp_lantern/Initialize() + ..() +@@ -229,7 +229,7 @@ + + /obj/item/device/immortality_talisman/attack_self(mob/user) + if(cooldown < world.time) +- feedback_add_details("immortality_talisman","U") // usage ++ SSblackbox.add_details("immortality_talisman","U") // usage + cooldown = world.time + 600 + user.visible_message("[user] vanishes from reality, leaving a a hole in [user.p_their()] place!") + var/obj/effect/immortality_talisman/Z = new(get_turf(src.loc)) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index dc6bc87d18..0d651518b7 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -136,7 +136,7 @@ else inserted_id.mining_points -= prize.cost new prize.equipment_path(src.loc) - feedback_add_details("mining_equipment_bought", + SSblackbox.add_details("mining_equipment_bought", "[src.type]|[prize.equipment_path]") // Add src.type to keep track of free golem purchases // seperately. @@ -189,7 +189,7 @@ if("Mining Conscription Kit") new /obj/item/weapon/storage/backpack/dufflebag/mining_conscript(loc) - feedback_add_details("mining_voucher_redeemed", selection) + SSblackbox.add_details("mining_voucher_redeemed", selection) qdel(voucher) /obj/machinery/mineral/equipment_vendor/ex_act(severity, target) diff --git a/code/modules/mob/living/brain/MMI.dm b/code/modules/mob/living/brain/MMI.dm index 397824d830..6247083747 100644 --- a/code/modules/mob/living/brain/MMI.dm +++ b/code/modules/mob/living/brain/MMI.dm @@ -73,7 +73,7 @@ name = "Man-Machine Interface: [brainmob.real_name]" update_icon() - feedback_inc("cyborg_mmis_filled",1) + SSblackbox.inc("cyborg_mmis_filled",1) else if(brainmob) O.attack(brainmob, user) //Oh noooeeeee diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index daa72b55fb..6c4fd0b80c 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -33,7 +33,7 @@ dna.species.spec_death(gibbed, src) if(SSticker && SSticker.mode) - sql_report_death(src) + SSblackbox.ReportDeath(src) if(mind && mind.devilinfo) INVOKE_ASYNC(mind.devilinfo, /datum/devilinfo.proc/beginResurrectionCheck, src) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index e03844a82e..d7a2282a98 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -177,8 +177,8 @@ var/obj/item/bodypart/affecting = get_bodypart(ran_zone(user.zone_selected)) //what we're actually ending up trying to hit. var/target_area = parse_zone(check_zone(user.zone_selected)) //our intended target - feedback_add_details("item_used_for_combat","[I.type]|[I.force]") - feedback_add_details("zone_targeted","[target_area]") + SSblackbox.add_details("item_used_for_combat","[I.type]|[I.force]") + SSblackbox.add_details("zone_targeted","[target_area]") // the attacked_by code varies among species return dna.species.spec_attacked_by(I, user, affecting, a_intent, src) diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm index 3e531eaaa0..6376ae4857 100644 --- a/code/modules/mob/living/silicon/robot/death.dm +++ b/code/modules/mob/living/silicon/robot/death.dm @@ -32,4 +32,4 @@ unbuckle_all_mobs(TRUE) - sql_report_death(src) + SSblackbox.ReportDeath(src) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 5795854ec9..834e053c07 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -222,7 +222,7 @@ if(R.hud_used) R.hud_used.update_robot_modules_display() if(feedback_key && !did_feedback) - feedback_inc(feedback_key, 1) + SSblackbox.inc(feedback_key, 1) /obj/item/weapon/robot_module/standard name = "Standard" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index 8af5c76f5b..0a0ff6bdd3 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -53,7 +53,7 @@ return else if(!admin_spawned) - feedback_set_details("megafauna_kills","[initial(name)]") + SSblackbox.set_details("megafauna_kills","[initial(name)]") if(!elimination) //used so the achievment only occurs for the last legion to die. grant_achievement(medal_type,score_type) ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm index ca0ef6a7ea..a68ccc4884 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm @@ -48,7 +48,7 @@ ..() /mob/living/simple_animal/hostile/asteroid/death(gibbed) - feedback_add_details("mobs_killed_mining","[src.type]") + SSblackbox.add_details("mobs_killed_mining","[src.type]") ..(gibbed) /mob/living/simple_animal/hostile/asteroid/basilisk @@ -266,15 +266,15 @@ update_icon() if(implanted) - feedback_add_details("hivelord_core", "[type]|implanted") + SSblackbox.add_details("hivelord_core", "[type]|implanted") else - feedback_add_details("hivelord_core", "[type]|stabilizer") + SSblackbox.add_details("hivelord_core", "[type]|stabilizer") /obj/item/organ/hivelord_core/proc/go_inert() inert = TRUE desc = "The remains of a hivelord that have become useless, having been left alone too long after being harvested." - feedback_add_details("hivelord_core", "[src.type]|inert") + SSblackbox.add_details("hivelord_core", "[src.type]|inert") update_icon() /obj/item/organ/hivelord_core/ui_action_click() @@ -298,10 +298,10 @@ return if(H != user) H.visible_message("[user] forces [H] to apply [src]... [H.p_they()] quickly regenerate all injuries!") - feedback_add_details("hivelord_core","[src.type]|used|other") + SSblackbox.add_details("hivelord_core","[src.type]|used|other") else to_chat(user, "You start to smear [src] on yourself. It feels and smells disgusting, but you feel amazingly refreshed in mere moments.") - feedback_add_details("hivelord_core","[src.type]|used|self") + SSblackbox.add_details("hivelord_core","[src.type]|used|self") H.revive(full_heal = 1) qdel(src) ..() diff --git a/code/modules/mob/living/simple_animal/slime/powers.dm b/code/modules/mob/living/simple_animal/slime/powers.dm index aec971fb37..dab6b717a4 100644 --- a/code/modules/mob/living/simple_animal/slime/powers.dm +++ b/code/modules/mob/living/simple_animal/slime/powers.dm @@ -166,7 +166,7 @@ M.Friends = Friends.Copy() babies += M M.mutation_chance = Clamp(mutation_chance+(rand(5,-5)),0,100) - feedback_add_details("slime_babies_born","slimebirth_[replacetext(M.colour," ","_")]") + SSblackbox.add_details("slime_babies_born","slimebirth_[replacetext(M.colour," ","_")]") var/mob/living/simple_animal/slime/new_slime = pick(babies) new_slime.a_intent = INTENT_HARM diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 0d92f21494..64d4077a12 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -69,7 +69,7 @@ return 0 charge = (charge - amount) if(!istype(loc, /obj/machinery/power/apc)) - feedback_add_details("cell_used","[src.type]") + SSblackbox.add_details("cell_used","[src.type]") return 1 // recharge the cell diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm index 6a1595043a..e07f97c6ca 100644 --- a/code/modules/power/singularity/generator.dm +++ b/code/modules/power/singularity/generator.dm @@ -32,7 +32,7 @@ if(energy > 0) if(energy >= 200) var/turf/T = get_turf(src) - feedback_add_details("engine_started","[src.type]") + SSblackbox.add_details("engine_started","[src.type]") var/obj/singularity/S = new creation_type(T, 50) transfer_fingerprints_to(S) qdel(src) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index f69d4cc23f..2dffe0a567 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -265,7 +265,7 @@ if(user) user.update_inv_hands() - feedback_add_details("gun_fired","[src.type]") + SSblackbox.add_details("gun_fired","[src.type]") return 1 /obj/item/weapon/gun/attack(mob/M as mob, mob/user) diff --git a/code/modules/projectiles/guns/medbeam.dm b/code/modules/projectiles/guns/medbeam.dm index da4346109a..32646ee1e8 100644 --- a/code/modules/projectiles/guns/medbeam.dm +++ b/code/modules/projectiles/guns/medbeam.dm @@ -55,7 +55,7 @@ current_beam = new(user,current_target,time=6000,beam_icon_state="medbeam",btype=/obj/effect/ebeam/medical) INVOKE_ASYNC(current_beam, /datum/beam.proc/Start) - feedback_add_details("gun_fired","[src.type]") + SSblackbox.add_details("gun_fired","[src.type]") /obj/item/weapon/gun/medbeam/process() diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index dbbb0b80b9..2c8ef5e065 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -396,7 +396,7 @@ remove_reagent(B, (multiplier * cached_required_reagents[B]), safety = 1) for(var/P in C.results) - feedback_add_details("chemical_reaction", "[P]|[cached_results[P]*multiplier]") + SSblackbox.add_details("chemical_reaction", "[P]|[cached_results[P]*multiplier]") multiplier = max(multiplier, 1) //this shouldnt happen ... add_reagent(P, cached_results[P]*multiplier, null, chem_temp) diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm.rej b/code/modules/reagents/chemistry/recipes/slime_extracts.dm.rej new file mode 100644 index 0000000000..7a34c24c52 --- /dev/null +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm.rej @@ -0,0 +1,442 @@ +diff a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm (rejected hunks) +@@ -19,7 +19,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimespawn/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/mob/living/simple_animal/slime/S + S = new(get_turf(holder.my_atom), "grey") + S.visible_message("Infused with plasma, the \ +@@ -36,7 +36,7 @@ + required_container = /obj/item/slime_extract/grey + + /datum/chemical_reaction/slime/slimeinaprov/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + ..() + + /datum/chemical_reaction/slime/slimemonkey +@@ -47,7 +47,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimemonkey/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + for(var/i = 1, i <= 3, i++) + var /obj/item/weapon/reagent_containers/food/snacks/monkeycube/M = new /obj/item/weapon/reagent_containers/food/snacks/monkeycube + M.loc = get_turf(holder.my_atom) +@@ -63,7 +63,7 @@ + required_container = /obj/item/slime_extract/green + + /datum/chemical_reaction/slime/slimemutate/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + ..() + + //Mutated Green +@@ -77,7 +77,7 @@ + mix_message = "The mixture rapidly expands and contracts, its appearance shifting into a sickening green." + + /datum/chemical_reaction/slime/slimemutate_unstable/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + ..() + + //Metal +@@ -89,7 +89,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimemetal/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/turf/location = get_turf(holder.my_atom) + new /obj/item/stack/sheet/plasteel (location, 5) + new /obj/item/stack/sheet/metal (location, 15) +@@ -103,7 +103,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimeglass/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/turf/location = get_turf(holder.my_atom) + new /obj/item/stack/sheet/rglass (location, 5) + new /obj/item/stack/sheet/glass (location, 15) +@@ -118,7 +118,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimecrit/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/turf/T = get_turf(holder.my_atom) + T.visible_message("The slime extract begins to vibrate violently !") + addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 5, "Gold Slime"), 50) +@@ -134,7 +134,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimecritlesser/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/turf/T = get_turf(holder.my_atom) + T.visible_message("The slime extract begins to vibrate violently !") + addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 3, "Lesser Gold Slime", "neutral"), 50) +@@ -150,7 +150,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimecritfriendly/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/turf/T = get_turf(holder.my_atom) + T.visible_message("The slime extract begins to vibrate adorably !") + addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 1, "Friendly Gold Slime", "neutral"), 50) +@@ -168,7 +168,7 @@ + + /datum/chemical_reaction/slime/slimebork/on_reaction(datum/reagents/holder) + +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/list/blocked = list(/obj/item/weapon/reagent_containers/food/snacks, + /obj/item/weapon/reagent_containers/food/snacks/store/bread, + /obj/item/weapon/reagent_containers/food/snacks/breadslice, +@@ -216,7 +216,7 @@ + + /datum/chemical_reaction/slime/slimebork2/on_reaction(datum/reagents/holder) + +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/list/borks = subtypesof(/obj/item/weapon/reagent_containers/food/drinks) + // BORK BORK BORK + +@@ -246,7 +246,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimefrost/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + ..() + + +@@ -258,7 +258,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimestabilizer/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/obj/item/slimepotion/stabilizer/P = new /obj/item/slimepotion/stabilizer + P.loc = get_turf(holder.my_atom) + ..() +@@ -273,7 +273,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimefoam/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + ..() + + +@@ -286,7 +286,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimefreeze/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/turf/T = get_turf(holder.my_atom) + T.visible_message("The slime extract begins to vibrate adorably!") + addtimer(CALLBACK(src, .proc/freeze, holder), 50) +@@ -310,7 +310,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimefireproof/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/obj/item/slimepotion/fireproof/P = new /obj/item/slimepotion/fireproof + P.loc = get_turf(holder.my_atom) + ..() +@@ -325,7 +325,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimecasp/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + ..() + + /datum/chemical_reaction/slime/slimefire +@@ -336,7 +336,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimefire/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/turf/TU = get_turf(holder.my_atom) + TU.visible_message("The slime extract begins to vibrate adorably!") + addtimer(CALLBACK(src, .proc/slime_burn, holder), 50) +@@ -360,7 +360,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimesmoke/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + ..() + + //Yellow +@@ -373,7 +373,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimeoverload/on_reaction(datum/reagents/holder, created_volume) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + empulse(get_turf(holder.my_atom), 3, 7) + ..() + +@@ -386,7 +386,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimecell/on_reaction(datum/reagents/holder, created_volume) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/obj/item/weapon/stock_parts/cell/high/slime/P = new /obj/item/weapon/stock_parts/cell/high/slime + P.loc = get_turf(holder.my_atom) + ..() +@@ -399,7 +399,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimeglow/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/turf/T = get_turf(holder.my_atom) + T.visible_message("The slime begins to emit a soft light. Squeezing it will cause it to grow brightly.") + var/obj/item/device/flashlight/slime/F = new /obj/item/device/flashlight/slime +@@ -416,7 +416,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimepsteroid/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/obj/item/slimepotion/steroid/P = new /obj/item/slimepotion/steroid + P.loc = get_turf(holder.my_atom) + ..() +@@ -430,7 +430,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimejam/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + ..() + + +@@ -443,7 +443,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimeplasma/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/turf/location = get_turf(holder.my_atom) + new /obj/item/stack/sheet/mineral/plasma (location, 3) + ..() +@@ -458,7 +458,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimemutator/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/obj/item/slimepotion/mutator/P = new /obj/item/slimepotion/mutator + P.loc = get_turf(holder.my_atom) + ..() +@@ -471,7 +471,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimebloodlust/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + for(var/mob/living/simple_animal/slime/slime in viewers(get_turf(holder.my_atom), null)) + slime.rabid = 1 + slime.visible_message("The [slime] is driven into a frenzy!") +@@ -486,7 +486,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimespeed/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/obj/item/slimepotion/speed/P = new /obj/item/slimepotion/speed + P.loc = get_turf(holder.my_atom) + ..() +@@ -501,7 +501,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/docility/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/obj/item/slimepotion/docility/P = new /obj/item/slimepotion/docility + P.loc = get_turf(holder.my_atom) + ..() +@@ -514,7 +514,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/gender/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/obj/item/slimepotion/genderchange/G = new /obj/item/slimepotion/genderchange + G.loc = get_turf(holder.my_atom) + ..() +@@ -529,7 +529,7 @@ + required_container = /obj/item/slime_extract/black + + /datum/chemical_reaction/slime/slimemutate2/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + ..() + + //Oil +@@ -541,7 +541,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimeexplosion/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/turf/T = get_turf(holder.my_atom) + var/lastkey = holder.my_atom.fingerprintslast + var/touch_msg = "N/A" +@@ -570,7 +570,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimecornoil/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + ..() + + //Light Pink +@@ -582,7 +582,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimepotion2/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/obj/item/slimepotion/sentience/P = new /obj/item/slimepotion/sentience + P.loc = get_turf(holder.my_atom) + ..() +@@ -596,7 +596,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimegolem/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/obj/effect/golemrune/Z = new /obj/effect/golemrune + Z.loc = get_turf(holder.my_atom) + notify_ghosts("Golem rune created in [get_area(Z)].", 'sound/effects/ghost2.ogg', source = Z) +@@ -610,7 +610,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimegolem2/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/obj/item/golem_shell/artificial/Z = new /obj/item/golem_shell/artificial + Z.loc = get_turf(holder.my_atom) + ..() +@@ -624,7 +624,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimefloor2/on_reaction(datum/reagents/holder, created_volume) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/obj/item/stack/tile/bluespace/P = new /obj/item/stack/tile/bluespace + P.amount = 25 + P.loc = get_turf(holder.my_atom) +@@ -639,7 +639,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimecrystal/on_reaction(datum/reagents/holder, created_volume) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + if(holder.my_atom) + var/obj/item/weapon/ore/bluespace_crystal/BC = new(get_turf(holder.my_atom)) + BC.visible_message("The [BC.name] appears out of thin air!") +@@ -654,7 +654,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimepsteroid2/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/obj/item/slimepotion/enhancer/P = new /obj/item/slimepotion/enhancer + P.loc = get_turf(holder.my_atom) + ..() +@@ -668,7 +668,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slime_territory/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/obj/item/areaeditor/blueprints/slime/P = new /obj/item/areaeditor/blueprints/slime + P.loc = get_turf(holder.my_atom) + ..() +@@ -682,7 +682,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimestop/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/mob/mob = get_mob_by_key(holder.my_atom.fingerprintslast) + var/obj/effect/timestop/T = new /obj/effect/timestop + T.loc = get_turf(holder.my_atom) +@@ -699,7 +699,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimecamera/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/obj/item/device/camera/P = new /obj/item/device/camera + P.loc = get_turf(holder.my_atom) + var/obj/item/device/camera_film/Z = new /obj/item/device/camera_film +@@ -714,7 +714,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimefloor/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/obj/item/stack/tile/sepia/P = new /obj/item/stack/tile/sepia + P.amount = 25 + P.loc = get_turf(holder.my_atom) +@@ -732,7 +732,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimepaint/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/list/paints = subtypesof(/obj/item/weapon/paint) + var/chosen = pick(paints) + var/obj/P = new chosen +@@ -749,7 +749,7 @@ + required_other = 1 + + /datum/chemical_reaction/slime/slimecrayon/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/list/crayons = difflist(subtypesof(/obj/item/toy/crayon),typesof(/obj/item/toy/crayon/spraycan)) + var/chosen = pick(crayons) + var/obj/P = new chosen +@@ -766,7 +766,7 @@ + required_container = /obj/item/slime_extract/rainbow + + /datum/chemical_reaction/slime/slimeRNG/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/mob/living/simple_animal/slime/random/S + S = new(get_turf(holder.my_atom)) + S.visible_message("Infused with plasma, the \ +@@ -782,7 +782,7 @@ + required_container = /obj/item/slime_extract/rainbow + + /datum/chemical_reaction/slime/slime_transfer/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + var/obj/item/slimepotion/transference/P = new /obj/item/slimepotion/transference + P.loc = get_turf(holder.my_atom) + ..() +@@ -795,7 +795,7 @@ + required_container = /obj/item/slime_extract/rainbow + + /datum/chemical_reaction/slime/flight_potion/on_reaction(datum/reagents/holder) +- feedback_add_details("slime_cores_used","[type]") ++ SSblackbox.add_details("slime_cores_used","[type]") + new/obj/item/weapon/reagent_containers/glass/bottle/potion/flight(get_turf(holder.my_atom)) + ..() + diff --git a/code/modules/recycling/disposal-unit.dm b/code/modules/recycling/disposal-unit.dm index 9b1d5e649f..1b4455e29c 100644 --- a/code/modules/recycling/disposal-unit.dm +++ b/code/modules/recycling/disposal-unit.dm @@ -391,7 +391,7 @@ if(contents.len) if(full_pressure) spawn(0) - feedback_inc("disposal_auto_flush",1) + SSblackbox.inc("disposal_auto_flush",1) flush() flush_count = 0 diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index ed5190a701..07a0cc6b8b 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -309,13 +309,13 @@ won't update every console in existence) but it's more of a hassle to do. Also, for(var/T in temp_tech) var/datum/tech/KT = files.known_tech[T] //For stat logging of high levels if(files.IsTechHigher(T, temp_tech[T]) && KT.level >= 5) //For stat logging of high levels - feedback_add_details("high_research_level","[KT][KT.level + 1]") //+1 to show the level which we're about to get + SSblackbox.add_details("high_research_level","[KT][KT.level + 1]") //+1 to show the level which we're about to get files.UpdateTech(T, temp_tech[T]) if(linked_lathe) //Also sends salvaged materials to a linked protolathe, if any. for(var/material in linked_destroy.loaded_item.materials) linked_lathe.materials.insert_amount(min((linked_lathe.materials.max_amount - linked_lathe.materials.total_amount), (linked_destroy.loaded_item.materials[material]*(linked_destroy.decon_mod/10))), material) - feedback_add_details("item_deconstructed","[linked_destroy.loaded_item.type]") + SSblackbox.add_details("item_deconstructed","[linked_destroy.loaded_item.type]") linked_destroy.loaded_item = null for(var/obj/I in linked_destroy.contents) for(var/mob/M in I.contents) @@ -452,7 +452,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, new_item.materials = efficient_mats.Copy() new_item.loc = linked_lathe.loc if(!already_logged) - feedback_add_details("item_printed","[new_item.type]|[amount]") + SSblackbox.add_details("item_printed","[new_item.type]|[amount]") already_logged = 1 screen = old_screen linked_lathe.busy = 0 @@ -519,7 +519,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/obj/item/new_item = new P(src) new_item.loc = linked_imprinter.loc new_item.materials = efficient_mats.Copy() - feedback_add_details("circuit_printed","[new_item.type]") + SSblackbox.add_details("circuit_printed","[new_item.type]") screen = old_screen linked_imprinter.busy = 0 else diff --git a/code/modules/security_levels/keycard_authentication.dm b/code/modules/security_levels/keycard_authentication.dm index 6f6533326b..2c37cd8757 100644 --- a/code/modules/security_levels/keycard_authentication.dm +++ b/code/modules/security_levels/keycard_authentication.dm @@ -95,10 +95,10 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) switch(event) if("Red Alert") set_security_level(SEC_LEVEL_RED) - feedback_inc("alert_keycard_auth_red",1) + SSblackbox.inc("alert_keycard_auth_red",1) if("Emergency Maintenance Access") make_maint_all_access() - feedback_inc("alert_keycard_auth_maint",1) + SSblackbox.inc("alert_keycard_auth_maint",1) GLOBAL_VAR_INIT(emergency_access, FALSE) diff --git a/code/modules/shuttle/arrivals.dm b/code/modules/shuttle/arrivals.dm index b4af9d9e17..6bf1a134b7 100644 --- a/code/modules/shuttle/arrivals.dm +++ b/code/modules/shuttle/arrivals.dm @@ -190,5 +190,5 @@ /obj/docking_port/mobile/arrivals/vv_edit_var(var_name, var_value) switch(var_name) if("perma_docked") - feedback_add_details("admin_secrets_fun_used","ShA[var_value ? "s" : "g"]") + SSblackbox.add_details("admin_secrets_fun_used","ShA[var_value ? "s" : "g"]") return ..() diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 553210a5f7..f13e29273e 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -290,7 +290,7 @@ setTimer(SSshuttle.emergencyDockTime) send2irc("Server", "The Emergency Shuttle has docked with the station.") priority_announce("The Emergency Shuttle has docked with the station. You have [timeLeft(600)] minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg', "Priority") - feedback_add_details("emergency_shuttle", src.name) + SSblackbox.add_details("emergency_shuttle", src.name) // Gangs only have one attempt left if the shuttle has // docked with the station to prevent suffering from diff --git a/code/modules/shuttle/manipulator.dm b/code/modules/shuttle/manipulator.dm index 594a6855da..d9d4eb7a71 100644 --- a/code/modules/shuttle/manipulator.dm +++ b/code/modules/shuttle/manipulator.dm @@ -155,7 +155,7 @@ message_admins("[key_name_admin(usr)] fast travelled \ [M]") log_admin("[key_name(usr)] fast travelled [M]") - feedback_add_details("shuttle_fasttravel", M.name) + SSblackbox.add_details("shuttle_fasttravel", M.name) break if("preview") @@ -182,7 +182,7 @@ with the shuttle manipulator.") log_admin("[key_name(usr)] loaded [mdp] with the \ shuttle manipulator.") - feedback_add_details("shuttle_manipulator", mdp.name) + SSblackbox.add_details("shuttle_manipulator", mdp.name) update_icon() diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index f214d018b4..eda3c3e6c6 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -583,9 +583,9 @@ "You feel an immense \ crushing pressure as the space around you ripples.") if(M.key || M.get_ghost(TRUE)) - feedback_add_details("shuttle_gib", "[type]") + SSblackbox.add_details("shuttle_gib", "[type]") else - feedback_add_details("shuttle_gib_unintelligent", "[type]") + SSblackbox.add_details("shuttle_gib_unintelligent", "[type]") M.gib() else //non-living mobs shouldn't be affected by shuttles, which is why this is an else diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index 1e3b9906be..82d5db8b20 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -90,7 +90,7 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( SSshuttle.orderhistory += SO SO.generate(pick_n_take(empty_turfs)) - feedback_add_details("cargo_imports", + SSblackbox.add_details("cargo_imports", "[SO.pack.type]|[SO.pack.name]|[SO.pack.cost]") investigate_log("Order #[SO.id] ([SO.pack.name], placed by [key_name(SO.orderer_ckey)]) has shipped.", "cargo") if(SO.pack.dangerous) diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index f9a3b5c0cf..eb02b91735 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -54,7 +54,7 @@ return new step_type /datum/surgery/proc/complete() - feedback_add_details("surgeries_completed", "[type]") + SSblackbox.add_details("surgeries_completed", "[type]") qdel(src) diff --git a/code/modules/uplink/uplink_item.dm.rej b/code/modules/uplink/uplink_item.dm.rej new file mode 100644 index 0000000000..7709867051 --- /dev/null +++ b/code/modules/uplink/uplink_item.dm.rej @@ -0,0 +1,17 @@ +diff a/code/modules/uplink/uplink_item.dm b/code/modules/uplink/uplink_item.dm (rejected hunks) +@@ -88,7 +88,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. + + /datum/uplink_item/proc/spawn_item(turf/loc, obj/item/device/uplink/U) + if(item) +- feedback_add_details("traitor_uplink_items_bought", "[item]") ++ SSblackbox.add_details("traitor_uplink_items_bought", "[item]") + return new item(loc) + + /datum/uplink_item/proc/buy(mob/user, obj/item/device/uplink/U) +@@ -1351,5 +1351,5 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. + var/datum/uplink_item/I = pick(possible_items) + U.telecrystals -= I.cost + U.spent_telecrystals += I.cost +- feedback_add_details("traitor_uplink_items_bought","RN") ++ SSblackbox.add_details("traitor_uplink_items_bought","RN") + return new I.item(loc) diff --git a/code/world.dm.rej b/code/world.dm.rej new file mode 100644 index 0000000000..61fdf99e06 --- /dev/null +++ b/code/world.dm.rej @@ -0,0 +1,19 @@ +diff a/code/world.dm b/code/world.dm (rejected hunks) +@@ -208,7 +208,7 @@ + #undef WORLD_REBOOT + + /world/proc/OnReboot(reason, feedback_c, feedback_r, round_end_sound_sent) +- feedback_set_details("[feedback_c]","[feedback_r]") ++ SSblackbox.set_details("[feedback_c]","[feedback_r]") + log_game("Rebooting World. [reason]") + #ifdef dellogging + var/log = file("data/logs/del.log") +@@ -218,8 +218,6 @@ + if(count > 10) + log << "#[count]\t[index]" + #endif +- if(GLOB.blackbox) +- GLOB.blackbox.save_all_data_to_sql() + Master.Shutdown() //run SS shutdowns + RoundEndAnimation(round_end_sound_sent) + kick_clients_in_lobby("The round came to an end with you in the lobby.", 1) //second parameter ensures only afk clients are kicked diff --git a/tgstation.dme b/tgstation.dme index 1647912f6c..cead10a6c2 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -209,7 +209,6 @@ #include "code\controllers\subsystem\pai.dm" #include "code\controllers\subsystem\parallax.dm" #include "code\controllers\subsystem\persistence.dm" -#include "code\controllers\subsystem\ping.dm" #include "code\controllers\subsystem\radio.dm" #include "code\controllers\subsystem\religion.dm" #include "code\controllers\subsystem\server_maint.dm" diff --git a/tgstation.dme.rej b/tgstation.dme.rej new file mode 100644 index 0000000000..02c9418835 --- /dev/null +++ b/tgstation.dme.rej @@ -0,0 +1,17 @@ +diff a/tgstation.dme b/tgstation.dme (rejected hunks) +@@ -158,6 +158,7 @@ + #include "code\controllers\subsystem\assets.dm" + #include "code\controllers\subsystem\atoms.dm" + #include "code\controllers\subsystem\augury.dm" ++#include "code\controllers\subsystem\blackbox.dm" + #include "code\controllers\subsystem\communications.dm" + #include "code\controllers\subsystem\disease.dm" + #include "code\controllers\subsystem\events.dm" +@@ -2078,7 +2079,6 @@ + #include "code\orphaned_procs\AStar.dm" + #include "code\orphaned_procs\dbcore.dm" + #include "code\orphaned_procs\priority_announce.dm" +-#include "code\orphaned_procs\statistics.dm" + #include "interface\interface.dm" + #include "interface\stylesheet.dm" + #include "interface\skin.dmf" From 08a01aa11b400053c88fdff57fc5237112aec725 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 26 Apr 2017 17:06:29 -0500 Subject: [PATCH 02/50] Refactors roundstart checks slightly --- code/__HELPERS/game.dm | 2 +- code/controllers/master.dm | 10 +++++----- code/controllers/subsystem/ticker.dm | 2 +- code/controllers/subsystem/ticker.dm.rej | 17 +++++++++++++++++ code/datums/helper_datums/getrev.dm | 2 +- code/game/gamemodes/objective.dm | 2 +- code/game/turfs/turf.dm | 2 +- code/modules/admin/admin.dm | 2 +- code/modules/admin/player_panel.dm | 2 +- code/modules/admin/topic.dm | 2 +- code/modules/awaymissions/capture_the_flag.dm | 2 +- code/modules/awaymissions/corpse.dm | 2 +- code/modules/mob/dead/new_player/new_player.dm | 2 +- .../mob/living/simple_animal/simple_animal.dm | 2 +- code/modules/mob/logout.dm.rej | 10 ++++++++++ code/modules/power/gravitygenerator.dm | 2 +- code/modules/power/singularity/emitter.dm.rej | 10 ++++++++++ code/modules/power/smes.dm | 2 +- code/world.dm | 3 +++ 19 files changed, 59 insertions(+), 19 deletions(-) create mode 100644 code/controllers/subsystem/ticker.dm.rej create mode 100644 code/modules/mob/logout.dm.rej create mode 100644 code/modules/power/singularity/emitter.dm.rej diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 6fd41f7ea1..6bc79fb7d5 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -513,7 +513,7 @@ winset(C, "mainwindow", "flash=5") /proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank) - if(SSticker.current_state != GAME_STATE_PLAYING || !character) + if(!SSticker.IsRoundInProgress() || !character) return var/area/A = get_area(character) var/message = "\ diff --git a/code/controllers/master.dm b/code/controllers/master.dm index ab4ff43b04..01d0ac3447 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -48,7 +48,7 @@ GLOBAL_VAR_INIT(CURRENT_TICKLIMIT, TICK_LIMIT_RUNNING) var/initializations_finished_with_no_players_logged_in //I wonder what this could be? // Has round started? (So we know what subsystems to run) - var/round_started = 0 + var/local_round_started = FALSE //Don't read this var, use SSticker.HasRoundStarted() instead // The type of the last subsystem to be process()'d. var/last_type_processed @@ -189,7 +189,7 @@ GLOBAL_VAR_INIT(CURRENT_TICKLIMIT, TICK_LIMIT_RUNNING) // Notify the MC that the round has started. /datum/controller/master/proc/RoundStart() - round_started = 1 + local_round_started = TRUE var/timer = world.time for (var/datum/controller/subsystem/SS in subsystems) if (SS.flags & SS_FIRE_IN_LOBBY || SS.flags & SS_TICKER) @@ -222,7 +222,7 @@ GLOBAL_VAR_INIT(CURRENT_TICKLIMIT, TICK_LIMIT_RUNNING) // local vars rock // Schedule the first run of the Subsystems. - round_started = world.has_round_started() + local_round_started = world.has_round_started() //all this shit is here so that flag edits can be refreshed by restarting the MC. (and for speed) var/list/tickersubsystems = list() var/list/normalsubsystems = list() @@ -245,7 +245,7 @@ GLOBAL_VAR_INIT(CURRENT_TICKLIMIT, TICK_LIMIT_RUNNING) lobbysubsystems += SS timer += world.tick_lag * rand(1, 5) SS.next_fire = timer - else if (round_started) + else if (local_round_started) timer += world.tick_lag * rand(1, 5) SS.next_fire = timer normalsubsystems += SS @@ -296,7 +296,7 @@ GLOBAL_VAR_INIT(CURRENT_TICKLIMIT, TICK_LIMIT_RUNNING) if (!Failsafe || (Failsafe.processing_interval > 0 && (Failsafe.lasttick+(Failsafe.processing_interval*5)) < world.time)) new/datum/controller/failsafe() // (re)Start the failsafe. if (!queue_head || !(iteration % 3)) - if (round_started) + if (local_round_started) subsystems_to_check = normalsubsystems else subsystems_to_check = lobbysubsystems diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index f701c051da..305dbc0678 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -243,7 +243,7 @@ SUBSYSTEM_DEF(ticker) send2irc("Server", "Round of [hide_mode ? "secret":"[mode.name]"] has started[allmins.len ? ".":" with no active admins online!"]") /datum/controller/subsystem/ticker/proc/OnRoundstart(datum/callback/cb) - if(current_state < GAME_STATE_PLAYING) + if(!HasRoundStarted()) LAZYADD(round_start_events, cb) else cb.InvokeAsync() diff --git a/code/controllers/subsystem/ticker.dm.rej b/code/controllers/subsystem/ticker.dm.rej new file mode 100644 index 0000000000..1dbd2f038a --- /dev/null +++ b/code/controllers/subsystem/ticker.dm.rej @@ -0,0 +1,17 @@ +diff a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm (rejected hunks) +@@ -667,11 +667,11 @@ SUBSYSTEM_DEF(ticker) + return + INVOKE_ASYNC(SSmapping, /datum/controller/subsystem/mapping/.proc/maprotate) + ++/datum/controller/subsystem/ticker/proc/HasRoundStarted() ++ return current_state >= GAME_STATE_PLAYING + +-/world/proc/has_round_started() +- if (SSticker && SSticker.current_state >= GAME_STATE_PLAYING) +- return TRUE +- return FALSE ++/datum/controller/subsystem/ticker/proc/IsRoundInProgress() ++ return current_state == GAME_STATE_PLAYING + + /datum/controller/subsystem/ticker/Recover() + current_state = SSticker.current_state diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm index f1b5d3a973..628949ebc0 100644 --- a/code/datums/helper_datums/getrev.dm +++ b/code/datums/helper_datums/getrev.dm @@ -89,7 +89,7 @@ to_chat(src, "Enforce Continuous Rounds: [config.continuous.len] of [config.modes.len] roundtypes") to_chat(src, "Allow Midround Antagonists: [config.midround_antag.len] of [config.modes.len] roundtypes") if(config.show_game_type_odds) - if(SSticker.current_state == GAME_STATE_PLAYING) + if(SSticker.IsRoundInProgress()) var/prob_sum = 0 var/current_odds_differ = FALSE var/list/probs = list() diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index c082a48224..6ac0ab8c7c 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -654,7 +654,7 @@ GLOBAL_LIST_EMPTY(possible_items_special) for(var/mob/dead/new_player/P in GLOB.player_list) if(P.client && P.ready && P.mind!=owner) n_p ++ - else if (SSticker.current_state == GAME_STATE_PLAYING) + else if (SSticker.IsRoundInProgress()) for(var/mob/living/carbon/human/P in GLOB.player_list) if(P.client && !(P.mind in SSticker.mode.changelings) && P.mind!=owner) n_p ++ diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 10eefc4b14..ffcf98ca09 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -397,7 +397,7 @@ /turf/proc/add_blueprints_preround(atom/movable/AM) - if(!SSticker || SSticker.current_state != GAME_STATE_PLAYING) + if(!SSticker.HasRoundStarted()) add_blueprints(AM) /turf/proc/empty(turf_type=/turf/open/space) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 25b7deba9b..f4e7cccff4 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -804,7 +804,7 @@ return 1 /client/proc/adminGreet(logout) - if(SSticker && SSticker.current_state == GAME_STATE_PLAYING) + if(SSticker.HasRoundStarted()) var/string if(logout && config && config.announce_admin_logout) string = pick( diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index bfa8553d52..09aced33a8 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -310,7 +310,7 @@ usr << browse(dat, "window=players;size=600x480") /datum/admins/proc/check_antagonists() - if (SSticker && SSticker.current_state >= GAME_STATE_PLAYING) + if (SSticker.HasRoundStarted()) var/dat = "Round Status

Round Status

" if(SSticker.mode.replacementmode) dat += "Former Game Mode: [SSticker.mode.name]
" diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index dd32085681..7210b4e625 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2161,7 +2161,7 @@ else if(href_list["kick_all_from_lobby"]) if(!check_rights(R_ADMIN)) return - if(SSticker && SSticker.current_state == GAME_STATE_PLAYING) + if(SSticker.IsRoundInProgress()) var/afkonly = text2num(href_list["afkonly"]) if(alert("Are you sure you want to kick all [afkonly ? "AFK" : ""] clients from the lobby??","Message","Yes","Cancel") != "Yes") to_chat(usr, "Kick clients from lobby aborted") diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 996b4a700b..93b9b6b3f9 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -206,7 +206,7 @@ toggle_all_ctf(user) return - if(SSticker.current_state < GAME_STATE_PLAYING) + if(!SSticker.HasRoundStarted()) return if(user.ckey in team_members) if(user.ckey in recently_dead_ckeys) diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index d9663f97c9..96c0bc35de 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -22,7 +22,7 @@ anchored = 1 /obj/effect/mob_spawn/attack_ghost(mob/user) - if(SSticker.current_state != GAME_STATE_PLAYING || !loc) + if(!SSticker.HasRoundStarted() || !loc) return if(!uses) to_chat(user, "This spawner is out of charges!") diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 72f83bf546..d2ef3097cf 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -148,7 +148,7 @@ return 1 if(href_list["late_join"]) - if(!SSticker || SSticker.current_state != GAME_STATE_PLAYING) + if(!SSticker || !SSticker.IsRoundInProgress()) to_chat(usr, "The round is either not ready, or has already finished...") return diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index d87573edd3..1211370b94 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -337,7 +337,7 @@ . = 1 /mob/living/simple_animal/proc/make_babies() // <3 <3 <3 - if(gender != FEMALE || stat || next_scan_time > world.time || !childtype || !animal_species || SSticker.current_state != GAME_STATE_PLAYING) + if(gender != FEMALE || stat || next_scan_time > world.time || !childtype || !animal_species || !SSticker.IsRoundInProgress()) return next_scan_time = world.time + 400 var/alone = 1 diff --git a/code/modules/mob/logout.dm.rej b/code/modules/mob/logout.dm.rej new file mode 100644 index 0000000000..809131d9f4 --- /dev/null +++ b/code/modules/mob/logout.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/mob/logout.dm b/code/modules/mob/logout.dm (rejected hunks) +@@ -3,7 +3,7 @@ + unset_machine() + GLOB.player_list -= src + if(GLOB.admin_datums[src.ckey]) +- if (SSticker && SSticker.current_state == GAME_STATE_PLAYING) //Only report this stuff if we are currently playing. ++ if (SSticker && SSticker.IsRoundInProgress()) //Only report this stuff if we are currently playing. + var/admins_number = GLOB.admins.len + if(admins_number == 0) //Apparently the admin logging out is no longer an admin at this point, so we have to check this towards 0 and not towards 1. Awell. + var/cheesy_message = pick( list( \ diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 7a5abbbba4..6ca3c8f620 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -304,7 +304,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne // Sound the alert if gravity was just enabled or disabled. var/alert = 0 var/area/area = get_area(src) - if(on && SSticker && SSticker.current_state == GAME_STATE_PLAYING) // If we turned on and the game is live. + if(on && SSticker.IsRoundInProgress()) // If we turned on and the game is live. if(gravity_in_level() == 0) alert = 1 investigate_log("was brought online and is now producing gravity for this level.", "gravity") diff --git a/code/modules/power/singularity/emitter.dm.rej b/code/modules/power/singularity/emitter.dm.rej new file mode 100644 index 0000000000..ea82e4cb0c --- /dev/null +++ b/code/modules/power/singularity/emitter.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm (rejected hunks) +@@ -88,7 +88,7 @@ + connect_to_network() + + /obj/machinery/power/emitter/Destroy() +- if(SSticker && SSticker.current_state == GAME_STATE_PLAYING) ++ if(SSticker && SSticker.IsRoundInProgress()) + message_admins("Emitter deleted at ([x],[y],[z] - JMP)",0,1) + log_game("Emitter deleted at ([x],[y],[z])") + investigate_log("deleted at ([x],[y],[z]) at [get_area(src)]","singulo") diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index fdb4699ae5..1e1737661e 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -191,7 +191,7 @@ cell.charge = (charge / capacity) * cell.maxcharge /obj/machinery/power/smes/Destroy() - if(SSticker && SSticker.current_state == GAME_STATE_PLAYING) + if(SSticker && SSticker.IsRoundInProgress()) var/area/area = get_area(src) message_admins("SMES deleted at ([area.name])") log_game("SMES deleted at ([area.name])") diff --git a/code/world.dm b/code/world.dm index 7af27a1504..0a7391ba62 100644 --- a/code/world.dm +++ b/code/world.dm @@ -317,3 +317,6 @@ s += ": [jointext(features, ", ")]" status = s + +/world/proc/has_round_started() + return SSticker.HasRoundStarted() \ No newline at end of file From dc1f66460855b4cf5789cacceedeac125f4bb50d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 26 Apr 2017 17:14:40 -0500 Subject: [PATCH 03/50] Admin proc calls are now serialized per admin --- code/modules/admin/verbs/debug.dm.rej | 41 +++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 code/modules/admin/verbs/debug.dm.rej diff --git a/code/modules/admin/verbs/debug.dm.rej b/code/modules/admin/verbs/debug.dm.rej new file mode 100644 index 0000000000..b5277b316c --- /dev/null +++ b/code/modules/admin/verbs/debug.dm.rej @@ -0,0 +1,41 @@ +diff a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm (rejected hunks) +@@ -83,17 +83,23 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that + to_chat(usr, .) + feedback_add_details("admin_verb","Advanced ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +-GLOBAL_VAR_INIT(AdminProcCall, null) +-GLOBAL_PROTECT(AdminProcCall) ++GLOBAL_VAR_INIT(AdminProcCaller, null) ++GLOBAL_PROTECT(AdminProcCaller) ++GLOBAL_VAR_INIT(AdminProcCallCount, 0) ++GLOBAL_PROTECT(AdminProcCallCount) + + /proc/WrapAdminProcCall(target, procname, list/arguments) +- if(GLOB.AdminProcCall) +- to_chat(usr, "Another admin called proc is still running, your proc will be run after theirs finishes") +- UNTIL(!GLOB.AdminProcCall) ++ var/current_caller = GLOB.AdminProcCaller ++ var/ckey = usr.client.ckey ++ if(current_caller && current_caller != ckey) ++ to_chat(usr, "Another set of admin called procs are still running, your proc will be run after theirs finish.") ++ UNTIL(!GLOB.AdminProcCaller) + to_chat(usr, "Running your proc") +- GLOB.AdminProcCall = usr.client.ckey //if this runtimes, too bad for you ++ GLOB.AdminProcCaller = ckey //if this runtimes, too bad for you ++ ++GLOB.AdminProcCallCount + world.WrapAdminProcCall(target, procname, arguments) +- GLOB.AdminProcCall = null ++ if(--GLOB.AdminProcCallCount == 0) ++ GLOB.AdminProcCaller = null + + //adv proc call this, ya nerds + /world/proc/WrapAdminProcCall(target, procname, list/arguments) +@@ -103,7 +109,7 @@ GLOBAL_PROTECT(AdminProcCall) + return call(procname)(arglist(arguments)) + + /proc/IsAdminAdvancedProcCall() +- return usr && usr.client && GLOB.AdminProcCall == usr.client.ckey ++ return usr && usr.client && GLOB.AdminProcCaller == usr.client.ckey + + /client/proc/callproc_datum(datum/A as null|area|mob|obj|turf) + set category = "Debug" From bcab389ca23810d47ed6ad008dbdb6a765cd7e38 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 26 Apr 2017 17:15:48 -0500 Subject: [PATCH 04/50] New() goes in the trash, we've gotta Initialize() --- .../miniantags/abduction/machinery/pad.dm | 6 +- .../gamemodes/miniantags/bot_swarm/swarmer.dm | 6 +- code/game/gamemodes/wizard/artefact.dm | 4 +- code/game/objects/effects/overlays.dm | 68 ++++++++++--------- code/game/objects/effects/overlays.dm.rej | 21 ++++++ code/game/objects/items/devices/flashlight.dm | 4 +- code/modules/VR/vr_sleeper.dm | 4 +- .../simple_animal/guardian/types/support.dm | 2 +- .../hostile/bosses/paperwizard.dm | 4 +- .../hostile/megafauna/colossus.dm.rej | 10 +++ .../hostile/megafauna/dragon.dm.rej | 23 +++++++ .../hostile/megafauna/hierophant.dm | 25 ++++--- .../modules/projectiles/projectile/special.dm | 25 ++++--- .../chemistry/machinery/chem_dispenser.dm | 8 +-- .../chemistry/machinery/chem_heater.dm | 4 +- .../chemistry/machinery/chem_master.dm | 4 +- .../reagents/chemistry/machinery/pandemic.dm | 4 +- .../chemistry/machinery/reagentgrinder.dm | 5 +- code/modules/reagents/reagent_containers.dm | 6 +- .../reagents/reagent_containers/blood_pack.dm | 8 +-- .../reagents/reagent_containers/borghydro.dm | 4 +- .../reagents/reagent_containers/bottle.dm | 8 +-- .../reagents/reagent_containers/glass.dm | 8 +-- .../reagents/reagent_containers/pill.dm | 4 +- .../reagents/reagent_containers/syringes.dm | 6 +- code/modules/reagents/reagent_dispenser.dm | 8 +-- code/modules/recycling/conveyor2.dm | 12 ++-- code/modules/recycling/disposal-structures.dm | 39 +++++------ code/modules/recycling/disposal-unit.dm | 9 ++- code/modules/research/circuitprinter.dm | 4 +- code/modules/research/designs.dm | 8 +-- code/modules/research/destructive_analyzer.dm | 4 +- code/modules/research/experimentor.dm | 8 +-- code/modules/research/message_server.dm | 5 +- code/modules/research/protolathe.dm | 4 +- code/modules/research/rdconsole.dm | 8 +-- code/modules/research/rdmachines.dm | 4 +- code/modules/research/research.dm | 12 ++-- code/modules/research/server.dm | 4 +- code/modules/research/stock_parts.dm | 8 +-- .../research/xenobiology/xenobiology.dm | 10 +-- code/modules/ruins/lavaland_ruin_code.dm | 4 +- .../ruins/objects_and_mobs/sin_ruins.dm | 2 +- .../security_levels/keycard_authentication.dm | 2 +- code/modules/shuttle/computer.dm | 4 +- code/modules/shuttle/emergency.dm | 11 ++- code/modules/shuttle/manipulator.dm | 2 +- code/modules/shuttle/shuttle.dm | 12 ++-- code/modules/shuttle/shuttle.dm.rej | 10 +++ code/modules/shuttle/special.dm | 2 +- code/modules/shuttle/syndicate.dm | 4 +- code/modules/shuttle/transit.dm | 2 +- code/modules/spells/spell.dm | 4 +- code/modules/spells/spell_types/forcewall.dm | 4 +- code/modules/spells/spell_types/godhand.dm | 6 +- code/modules/spells/spell_types/trigger.dm | 4 +- code/modules/station_goals/bsa.dm.rej | 12 ++++ code/modules/station_goals/shield.dm | 4 +- code/modules/surgery/organs/augments_arms.dm | 12 ++-- .../surgery/organs/augments_internal.dm | 3 +- .../surgery/organs/organ_internal.dm.rej | 10 +++ code/modules/telesci/telepad.dm | 4 +- code/modules/telesci/telesci_computer.dm | 4 +- code/modules/uplink/uplink.dm | 20 +++--- code/modules/vehicles/atv.dm | 2 +- code/modules/vehicles/atv.dm.rej | 12 ++++ code/modules/vehicles/bicycle.dm | 4 +- code/modules/vehicles/speedbike.dm.rej | 23 +++++++ code/modules/zombie/organs.dm | 2 +- 69 files changed, 358 insertions(+), 245 deletions(-) create mode 100644 code/game/objects/effects/overlays.dm.rej create mode 100644 code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm.rej create mode 100644 code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm.rej create mode 100644 code/modules/shuttle/shuttle.dm.rej create mode 100644 code/modules/station_goals/bsa.dm.rej create mode 100644 code/modules/surgery/organs/organ_internal.dm.rej create mode 100644 code/modules/vehicles/atv.dm.rej create mode 100644 code/modules/vehicles/speedbike.dm.rej diff --git a/code/game/gamemodes/miniantags/abduction/machinery/pad.dm b/code/game/gamemodes/miniantags/abduction/machinery/pad.dm index 5f8ad3de9d..083e610587 100644 --- a/code/game/gamemodes/miniantags/abduction/machinery/pad.dm +++ b/code/game/gamemodes/miniantags/abduction/machinery/pad.dm @@ -47,8 +47,8 @@ icon_state = "teleport" duration = 80 -/obj/effect/overlay/temp/teleport_abductor/New() +/obj/effect/overlay/temp/teleport_abductor/Initialize() + . = ..() var/datum/effect_system/spark_spread/S = new S.set_up(10,0,loc) - S.start() - ..() \ No newline at end of file + S.start() \ No newline at end of file diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index 6ce04bed14..c6248b03cc 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -527,9 +527,9 @@ icon_state = "disintegrate" duration = 10 -/obj/effect/overlay/temp/swarmer/disintegration/New() - playsound(src.loc, "sparks", 100, 1) - ..() +/obj/effect/overlay/temp/swarmer/disintegration/Initialize() + . = ..() + playsound(loc, "sparks", 100, 1) /obj/effect/overlay/temp/swarmer/dismantle icon_state = "dismantle" diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index c925a5cbd5..e409b087d8 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -630,6 +630,6 @@ duration = 40 pixel_x = 500 -/obj/effect/overlay/temp/tornado/New(loc) - ..() +/obj/effect/overlay/temp/tornado/Initialize() + . = ..() animate(src, pixel_x = -500, time = 40) diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index bc9251d9fc..ab17503447 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -44,10 +44,10 @@ /obj/effect/overlay/temp/dir_setting randomdir = FALSE -/obj/effect/overlay/temp/dir_setting/New(loc, set_dir) +/obj/effect/overlay/temp/dir_setting/Initialize(mapload, set_dir) if(set_dir) setDir(set_dir) - ..() + . = ..() /obj/effect/overlay/temp/dir_setting/bloodsplatter icon = 'icons/effects/blood.dmi' @@ -56,12 +56,12 @@ layer = BELOW_MOB_LAYER var/splatter_type = "splatter" -/obj/effect/overlay/temp/dir_setting/bloodsplatter/New(loc, set_dir) +/obj/effect/overlay/temp/dir_setting/bloodsplatter/Initialize(mapload, set_dir) if(set_dir in GLOB.diagonals) icon_state = "[splatter_type][pick(1, 2, 6)]" else icon_state = "[splatter_type][pick(3, 4, 5)]" - ..() + . = ..() var/target_pixel_x = 0 var/target_pixel_y = 0 switch(set_dir) @@ -93,6 +93,13 @@ /obj/effect/overlay/temp/dir_setting/bloodsplatter/xenosplatter splatter_type = "xsplatter" +/obj/effect/overlay/temp/dir_setting/speedbike_trail + name = "speedbike trails" + icon_state = "ion_fade" + layer = BELOW_MOB_LAYER + duration = 10 + randomdir = 0 + /obj/effect/overlay/temp/dir_setting/firing_effect icon = 'icons/effects/effects.dmi' icon_state = "firing_effect" @@ -189,8 +196,8 @@ desc = "It's a decoy!" duration = 15 -/obj/effect/overlay/temp/decoy/New(loc, atom/mimiced_atom) - ..() +/obj/effect/overlay/temp/decoy/Initialize(mapload, atom/mimiced_atom) + . = ..() alpha = initial(alpha) if(mimiced_atom) name = mimiced_atom.name @@ -198,8 +205,8 @@ setDir(mimiced_atom.dir) mouse_opacity = 0 -/obj/effect/overlay/temp/decoy/fading/New(loc, atom/mimiced_atom) - ..() +/obj/effect/overlay/temp/decoy/fading/Initialize(mapload, atom/mimiced_atom) + . = ..() animate(src, alpha = 0, time = duration) /obj/effect/overlay/temp/decoy/fading/fivesecond @@ -324,15 +331,15 @@ var/mob/user var/damage = 20 -/obj/effect/overlay/temp/ratvar/volt_hit/New(loc, caster, multiplier) +/obj/effect/overlay/temp/ratvar/volt_hit/Initialize(mapload, caster, multiplier) if(multiplier) damage *= multiplier duration = max(round(damage * 0.2), 1) - ..() + . = ..() set_light(1.5, 2, LIGHT_COLOR_ORANGE) -/obj/effect/overlay/temp/ratvar/volt_hit/true/New(loc, caster, multiplier) - ..() +/obj/effect/overlay/temp/ratvar/volt_hit/true/Initialize(mapload, caster, multiplier) + . = ..() user = caster if(user) var/matrix/M = new @@ -376,8 +383,8 @@ icon_state = "warden_gaze" duration = 3 -/obj/effect/overlay/temp/ratvar/ocular_warden/New() - ..() +/obj/effect/overlay/temp/ratvar/ocular_warden/Initialize() + . = ..() pixel_x = rand(-8, 8) pixel_y = rand(-10, 10) animate(src, alpha = 0, time = 3, easing = EASE_OUT) @@ -401,8 +408,8 @@ layer = ABOVE_MOB_LAYER duration = 10 -/obj/effect/overlay/temp/ratvar/component/New() - ..() +/obj/effect/overlay/temp/ratvar/component/Initialize() + . = ..() transform = matrix()*0.75 pixel_x = rand(-10, 10) pixel_y = rand(-10, -2) @@ -432,9 +439,8 @@ light_power = 2 light_color = "#FAE48C" -/obj/effect/overlay/temp/ratvar/sigil/transgression/New() - ..() - update_light() +/obj/effect/overlay/temp/ratvar/sigil/transgression/Initialize() + . = ..() var/oldtransform = transform animate(src, transform = matrix()*2, time = 5) animate(transform = oldtransform, alpha = 0, time = 65) @@ -447,10 +453,6 @@ light_power = 0.5 light_color = "#1E8CE1" -/obj/effect/overlay/temp/ratvar/sigil/vitality/New() - ..() - update_light() - /obj/effect/overlay/temp/ratvar/sigil/accession color = "#AF0AAF" layer = ABOVE_MOB_LAYER @@ -493,9 +495,9 @@ icon = 'icons/mob/mob.dmi' duration = 15 -/obj/effect/overlay/temp/gib_animation/New(loc, gib_icon) +/obj/effect/overlay/temp/gib_animation/Initialize(mapload, gib_icon) icon_state = gib_icon // Needs to be before ..() so icon is correct - ..() + . = ..() /obj/effect/overlay/temp/gib_animation/ex_act(severity) return //so the overlay isn't deleted by the explosion that gibbed the mob. @@ -507,9 +509,9 @@ icon = 'icons/mob/mob.dmi' duration = 15 -/obj/effect/overlay/temp/dust_animation/New(loc, dust_icon) +/obj/effect/overlay/temp/dust_animation/Initialize(mapload, dust_icon) icon_state = dust_icon // Before ..() so the correct icon is flick()'d - ..() + . = ..() /obj/effect/overlay/temp/mummy_animation icon = 'icons/mob/mob.dmi' @@ -521,12 +523,12 @@ icon_state = "heal" duration = 15 -/obj/effect/overlay/temp/heal/New(loc, colour) - ..() - pixel_x = rand(-12, 12) - pixel_y = rand(-9, 0) +/obj/effect/overlay/temp/heal/Initialize(mapload, colour) if(colour) color = colour + . = ..() + pixel_x = rand(-12, 12) + pixel_y = rand(-9, 0) /obj/effect/overlay/temp/kinetic_blast name = "kinetic explosion" @@ -558,14 +560,14 @@ icon_state = "impact_bullet" duration = 5 -/obj/effect/overlay/temp/impact_effect/New(loc, atom/target, obj/item/projectile/P) +/obj/effect/overlay/temp/impact_effect/Initialize(mapload, atom/target, obj/item/projectile/P) if(target == P.original) //the projectile hit the target originally clicked pixel_x = P.p_x + target.pixel_x - 16 + rand(-4,4) pixel_y = P.p_y + target.pixel_y - 16 + rand(-4,4) else pixel_x = target.pixel_x + rand(-4,4) pixel_y = target.pixel_y + rand(-4,4) - ..() + . = ..() /obj/effect/overlay/temp/impact_effect/red_laser icon_state = "impact_laser" diff --git a/code/game/objects/effects/overlays.dm.rej b/code/game/objects/effects/overlays.dm.rej new file mode 100644 index 0000000000..f25f8f24e9 --- /dev/null +++ b/code/game/objects/effects/overlays.dm.rej @@ -0,0 +1,21 @@ +diff a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm (rejected hunks) +@@ -31,8 +31,8 @@ + . = ..() + deltimer(timerid) + +-/obj/effect/overlay/temp/New() +- ..() ++/obj/effect/overlay/temp/Initialize() ++ . = ..() + if(randomdir) + setDir(pick(GLOB.cardinal)) + flick("[icon_state]", src) //Because we might be pulling it from a pool, flick whatever icon it uses so it starts at the start of the icon's animation. +@@ -214,7 +221,7 @@ + icon = 'icons/effects/fire.dmi' + icon_state = "3" + duration = 20 +- ++ + /obj/effect/overlay/temp/cult + randomdir = 0 + duration = 10 diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 496702aa4d..6955872c27 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -100,8 +100,8 @@ icon_state = "medi_holo" duration = 30 -/obj/effect/overlay/temp/medical_holosign/New(loc, creator) - ..() +/obj/effect/overlay/temp/medical_holosign/Initialize(mapload, creator) + . = ..() playsound(loc, 'sound/machines/ping.ogg', 50, 0) //make some noise! if(creator) visible_message("[creator] created a medical hologram!") diff --git a/code/modules/VR/vr_sleeper.dm b/code/modules/VR/vr_sleeper.dm index 41f3bbc001..9411917c39 100644 --- a/code/modules/VR/vr_sleeper.dm +++ b/code/modules/VR/vr_sleeper.dm @@ -17,8 +17,8 @@ var/allow_creating_vr_humans = TRUE //So you can have vr_sleepers that always spawn you as a specific person or 1 life/chance vr games var/outfit = /datum/outfit/vr_basic -/obj/machinery/vr_sleeper/New() - ..() +/obj/machinery/vr_sleeper/Initialize() + . = ..() sparks = new /datum/effect_system/spark_spread() sparks.set_up(2,0) sparks.attach(src) diff --git a/code/modules/mob/living/simple_animal/guardian/types/support.dm b/code/modules/mob/living/simple_animal/guardian/types/support.dm index 95d561abeb..159e6df5f4 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/support.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/support.dm @@ -16,7 +16,7 @@ var/toggle = FALSE /mob/living/simple_animal/hostile/guardian/healer/Initialize() - ..() + . = ..() var/datum/atom_hud/medsensor = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] medsensor.add_hud_to(src) diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm index 2829bf574e..951589daaf 100644 --- a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm @@ -149,8 +149,8 @@ duration = 18 randomdir = FALSE -/obj/effect/overlay/temp/paperwiz_dying/New() - ..() +/obj/effect/overlay/temp/paperwiz_dying/Initialize() + . = ..() visible_message("The wizard cries out in pain as a gate appears behind him, sucking him in!") playsound(get_turf(src),'sound/magic/MandSwap.ogg', 50, 1, 1) playsound(get_turf(src),'sound/hallucinations/wail.ogg', 50, 1, 1) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm.rej b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm.rej new file mode 100644 index 0000000000..3dab6ff0a6 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm (rejected hunks) +@@ -106,7 +106,7 @@ Difficulty: Very Hard + var/target + + /obj/effect/overlay/temp/at_shield/Initialize(mapload, new_target) +- ..() ++ . = ..() + target = new_target + INVOKE_ASYNC(src, /atom/movable/proc/orbit, target, 0, FALSE, 0, 0, FALSE, TRUE) + diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm.rej b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm.rej new file mode 100644 index 0000000000..84c2ab0b38 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm.rej @@ -0,0 +1,23 @@ +diff a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm (rejected hunks) +@@ -96,8 +96,8 @@ Difficulty: Medium + duration = 12 + pixel_z = 500 + +-/obj/effect/overlay/temp/fireball/Initialize(loc) +- ..() ++/obj/effect/overlay/temp/fireball/Initialize() ++ . = ..() + animate(src, pixel_z = 0, time = 12) + + /obj/effect/overlay/temp/target +@@ -121,8 +121,8 @@ Difficulty: Medium + /obj/effect/overlay/temp/target/ex_act() + return + +-/obj/effect/overlay/temp/target/Initialize(loc) +- ..() ++/obj/effect/overlay/temp/target/Initialize() ++ . = ..() + INVOKE_ASYNC(src, .proc/fall) + + /obj/effect/overlay/temp/target/proc/fall() diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index f0c1a7ec04..03f8ce63cf 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -426,8 +426,8 @@ Difficulty: Hard layer = BELOW_MOB_LAYER var/mob/living/caster //who made this, anyway -/obj/effect/overlay/temp/hierophant/New(loc, new_caster) - ..() +/obj/effect/overlay/temp/hierophant/Initialize(mapload, new_caster) + . = ..() if(new_caster) caster = new_caster @@ -437,13 +437,13 @@ Difficulty: Hard light_range = 1 randomdir = FALSE -/obj/effect/overlay/temp/hierophant/squares/New(loc, new_caster) - ..() +/obj/effect/overlay/temp/hierophant/squares/Initialize(mapload, new_caster) + . = ..() if(ismineralturf(loc)) var/turf/closed/mineral/M = loc M.gets_drilled(caster) -/obj/effect/overlay/temp/hierophant/wall //smoothing and pooling are not friends. TODO: figure this out +/obj/effect/overlay/temp/hierophant/wall //smoothing and pooling were not friends, but pooling is dead. name = "vortex wall" icon = 'icons/turf/walls/hierophant_wall_temp.dmi' icon_state = "wall" @@ -451,15 +451,14 @@ Difficulty: Hard duration = 100 smooth = SMOOTH_TRUE -/obj/effect/overlay/temp/hierophant/wall/New(loc, new_caster) - ..() +/obj/effect/overlay/temp/hierophant/wall/Initialize(mapload, new_caster) + . = ..() queue_smooth_neighbors(src) queue_smooth(src) /obj/effect/overlay/temp/hierophant/wall/Destroy() queue_smooth_neighbors(src) - ..() - return QDEL_HINT_QUEUE + return ..() /obj/effect/overlay/temp/hierophant/wall/CanPass(atom/movable/mover, turf/target, height = 0) if(mover == caster) @@ -480,8 +479,8 @@ Difficulty: Hard var/currently_seeking = FALSE var/friendly_fire_check = FALSE //if blasts produced apply friendly fire -/obj/effect/overlay/temp/hierophant/chaser/New(loc, new_caster, new_target, new_speed, is_friendly_fire) - ..() +/obj/effect/overlay/temp/hierophant/chaser/Initialize(mapload, new_caster, new_target, new_speed, is_friendly_fire) + . = ..() target = new_target friendly_fire_check = is_friendly_fire if(new_speed) @@ -558,8 +557,8 @@ Difficulty: Hard var/friendly_fire_check = FALSE var/bursting = FALSE //if we're bursting and need to hit anyone crossing us -/obj/effect/overlay/temp/hierophant/blast/New(loc, new_caster, friendly_fire) - ..() +/obj/effect/overlay/temp/hierophant/blast/Initialize(mapload, new_caster, friendly_fire) + . = ..() friendly_fire_check = friendly_fire if(new_caster) hit_things += new_caster diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index b5c2a93996..f5df46cb7b 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -204,7 +204,8 @@ dismemberment = 20 impact_effect_type = /obj/effect/overlay/temp/impact_effect/purple_laser -/obj/item/projectile/plasma/New() +/obj/item/projectile/plasma/Initialize() + . = ..() var/turf/proj_turf = get_turf(src) if(!isturf(proj_turf)) return @@ -215,7 +216,6 @@ name = "full strength [name]" damage *= 4 range *= 2 - ..() /obj/item/projectile/plasma/on_hit(atom/target) . = ..() @@ -254,9 +254,10 @@ var/power = 4 var/list/thrown_items = list() -/obj/item/projectile/gravityrepulse/New(var/obj/item/ammo_casing/energy/gravityrepulse/C) - ..() - if(C) //Hard-coded maximum power so servers can't be crashed by trying to throw the entire Z level's items +/obj/item/projectile/gravityrepulse/Initialize() + . = ..() + var/obj/item/ammo_casing/energy/gravityrepulse/C = loc + if(istype(C)) //Hard-coded maximum power so servers can't be crashed by trying to throw the entire Z level's items power = min(C.gun.power, 15) /obj/item/projectile/gravityrepulse/on_hit() @@ -284,9 +285,10 @@ var/power = 4 var/list/thrown_items = list() -/obj/item/projectile/gravityattract/New(var/obj/item/ammo_casing/energy/gravityattract/C) - ..() - if(C) //Hard-coded maximum power so servers can't be crashed by trying to throw the entire Z level's items +/obj/item/projectile/gravityattract/Initialize() + . = ..() + var/obj/item/ammo_casing/energy/gravityattract/C = loc + if(istype(C)) //Hard-coded maximum power so servers can't be crashed by trying to throw the entire Z level's items power = min(C.gun.power, 15) /obj/item/projectile/gravityattract/on_hit() @@ -313,9 +315,10 @@ var/power = 4 var/list/thrown_items = list() -/obj/item/projectile/gravitychaos/New(var/obj/item/ammo_casing/energy/gravitychaos/C) - ..() - if(C) //Hard-coded maximum power so servers can't be crashed by trying to throw the entire Z level's items +/obj/item/projectile/gravitychaos/Initialize() + . = ..() + var/obj/item/ammo_casing/energy/gravitychaos/C = loc + if(istype(C)) //Hard-coded maximum power so servers can't be crashed by trying to throw the entire Z level's items power = min(C.gun.power, 15) /obj/item/projectile/gravitychaos/on_hit() diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index f8989a2304..da1eb90685 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -52,8 +52,8 @@ "toxin" ) -/obj/machinery/chem_dispenser/New() - ..() +/obj/machinery/chem_dispenser/Initialize() + . = ..() recharge() dispensable_reagents = sortList(dispensable_reagents) @@ -244,8 +244,8 @@ ) ) -/obj/machinery/chem_dispenser/constructable/New() - ..() +/obj/machinery/chem_dispenser/constructable/Initialize() + . = ..() var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/chem_dispenser(null) B.apply_default_parts(src) diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index 2c6f7712e4..da728fea89 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -12,8 +12,8 @@ var/heater_coefficient = 0.10 var/on = FALSE -/obj/machinery/chem_heater/New() - ..() +/obj/machinery/chem_heater/Initialize() + . = ..() var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/chem_heater(null) B.apply_default_parts(src) diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index a94a1c01ff..93628a9cc1 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -17,12 +17,12 @@ var/useramount = 30 // Last used amount layer = BELOW_OBJ_LAYER -/obj/machinery/chem_master/New() +/obj/machinery/chem_master/Initialize() create_reagents(100) add_overlay("waitlight") var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/chem_master(null) B.apply_default_parts(src) - ..() + . = ..() /obj/item/weapon/circuitboard/machine/chem_master name = "ChemMaster 3000 (Machine Board)" diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index cfc8198b38..5a73c5dcf4 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -13,8 +13,8 @@ var/wait = null var/obj/item/weapon/reagent_containers/beaker = null -/obj/machinery/computer/pandemic/New() - ..() +/obj/machinery/computer/pandemic/Initialize() + . = ..() update_icon() /obj/machinery/computer/pandemic/proc/GetVirusByIndex(index) diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 5c8d695007..9f5073075f 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -89,10 +89,9 @@ var/list/holdingitems = list() -/obj/machinery/reagentgrinder/New() - ..() +/obj/machinery/reagentgrinder/Initialize() + . = ..() beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src) - return /obj/machinery/reagentgrinder/Destroy() if(beaker) diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 92662600d8..11b38d1e65 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -12,9 +12,9 @@ var/disease_amount = 20 var/spillable = 0 -/obj/item/weapon/reagent_containers/New(location, vol = 0) - ..() - if (isnum(vol) && vol > 0) +/obj/item/weapon/reagent_containers/Initialize(mapload, vol) + . = ..() + if(isnum(vol) && vol > 0) volume = vol create_reagents(volume) if(spawned_disease) diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index 1ed89a74db..ab46730873 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -7,8 +7,8 @@ var/blood_type = null var/labelled = 0 -/obj/item/weapon/reagent_containers/blood/New() - ..() +/obj/item/weapon/reagent_containers/blood/Initialize() + . = ..() if(blood_type != null) reagents.add_reagent("blood", 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=blood_type,"resistances"=null,"trace_chem"=null)) update_icon() @@ -43,9 +43,9 @@ if(51 to INFINITY) icon_state = "full" -/obj/item/weapon/reagent_containers/blood/random/New() +/obj/item/weapon/reagent_containers/blood/random/Initialize() blood_type = pick("A+", "A-", "B+", "B-", "O+", "O-", "L") - ..() + . = ..() /obj/item/weapon/reagent_containers/blood/APlus blood_type = "A+" diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index ee6da85de0..ee0cc3c8b4 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -30,8 +30,8 @@ Borg Hypospray //Used as list for input() in shakers. -/obj/item/weapon/reagent_containers/borghypo/New() - ..() +/obj/item/weapon/reagent_containers/borghypo/Initialize() + . = ..() for(var/R in reagent_ids) add_reagent(R) diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm index fc08ebdbe8..a92c52abf4 100644 --- a/code/modules/reagents/reagent_containers/bottle.dm +++ b/code/modules/reagents/reagent_containers/bottle.dm @@ -9,8 +9,8 @@ volume = 30 -/obj/item/weapon/reagent_containers/glass/bottle/New() - ..() +/obj/item/weapon/reagent_containers/glass/bottle/Initialize() + . = ..() if(!icon_state) icon_state = "bottle" update_icon() @@ -139,8 +139,8 @@ icon_state = "bottle16" var/extra_reagent = null -/obj/item/weapon/reagent_containers/glass/bottle/traitor/New() - ..() +/obj/item/weapon/reagent_containers/glass/bottle/traitor/Initialize() + . = ..() extra_reagent = pick("polonium", "histamine", "formaldehyde", "venom", "neurotoxin2", "cyanide") reagents.add_reagent("[extra_reagent]", 3) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 10b584cdfb..65574b5d34 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -122,8 +122,8 @@ item_state = "beaker" materials = list(MAT_GLASS=500) -/obj/item/weapon/reagent_containers/glass/beaker/New() - ..() +/obj/item/weapon/reagent_containers/glass/beaker/Initialize() + . = ..() update_icon() /obj/item/weapon/reagent_containers/glass/beaker/on_reagent_change() @@ -176,8 +176,8 @@ origin_tech = "materials=2;engineering=3;plasmatech=3" flags = OPENCONTAINER -/obj/item/weapon/reagent_containers/glass/beaker/noreact/New() - ..() +/obj/item/weapon/reagent_containers/glass/beaker/noreact/Initialize() + . = ..() reagents.set_reacting(FALSE) /obj/item/weapon/reagent_containers/glass/beaker/bluespace diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 11d4303ce8..b6bc9b2ccf 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -11,8 +11,8 @@ var/roundstart = 0 var/self_delay = 0 //pills are instant, this is because patches inheret their aplication from pills -/obj/item/weapon/reagent_containers/pill/New() - ..() +/obj/item/weapon/reagent_containers/pill/Initialize() + . = ..() if(!icon_state) icon_state = "pill[rand(1,20)]" if(reagents.total_volume && roundstart) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index eea1fe7a2b..f4f6d3a521 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -16,8 +16,8 @@ materials = list(MAT_METAL=10, MAT_GLASS=20) container_type = TRANSPARENT -/obj/item/weapon/reagent_containers/syringe/New() - ..() +/obj/item/weapon/reagent_containers/syringe/Initialize() + . = ..() if(list_reagents) //syringe starts in inject mode if its already got something inside mode = SYRINGE_INJECT update_icon() @@ -242,7 +242,7 @@ volume = 20 origin_tech = "materials=3;engineering=3" -/obj/item/weapon/reagent_containers/syringe/noreact/New() +/obj/item/weapon/reagent_containers/syringe/noreact/Initialize() . = ..() reagents.set_reacting(FALSE) diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index f3bc94c4e6..1844dc53ab 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -23,10 +23,10 @@ else return ..() -/obj/structure/reagent_dispensers/New() +/obj/structure/reagent_dispensers/Initialize() create_reagents(tank_volume) reagents.add_reagent(reagent_id, tank_volume) - ..() + . = ..() /obj/structure/reagent_dispensers/examine(mob/user) ..() @@ -129,8 +129,8 @@ density = 0 reagent_id = "condensedcapsaicin" -/obj/structure/reagent_dispensers/peppertank/New() - ..() +/obj/structure/reagent_dispensers/peppertank/Initialize() + . = ..() if(prob(1)) desc = "IT'S PEPPER TIME, BITCH!" diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 264b6a167d..21f663bd5d 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -24,8 +24,8 @@ // Auto conveyour is always on unless unpowered -/obj/machinery/conveyor/auto/New(loc, newdir) - ..(loc, newdir) +/obj/machinery/conveyor/auto/Initialize(mapload, newdir) + . = ..() operating = 1 update_move_direction() @@ -43,8 +43,8 @@ icon_state = "conveyor[operating * verted]" // create a conveyor -/obj/machinery/conveyor/New(loc, newdir) - ..(loc) +/obj/machinery/conveyor/Initialize(mapload, newdir) + . = ..() if(newdir) setDir(newdir) update_move_direction() @@ -326,8 +326,8 @@ w_class = WEIGHT_CLASS_BULKY var/id = "" //inherited by the switch -/obj/item/conveyor_switch_construct/New() - ..() +/obj/item/conveyor_switch_construct/Initialize() + . = ..() id = rand() //this couldn't possibly go wrong /obj/item/conveyor_switch_construct/afterattack(atom/A, mob/user, proximity) diff --git a/code/modules/recycling/disposal-structures.dm b/code/modules/recycling/disposal-structures.dm index 531af92238..6ea1d958b3 100644 --- a/code/modules/recycling/disposal-structures.dm +++ b/code/modules/recycling/disposal-structures.dm @@ -147,8 +147,8 @@ var/obj/structure/disposalconstruct/stored // new pipe, set the icon_state as on map -/obj/structure/disposalpipe/New(loc,var/obj/structure/disposalconstruct/make_from) - ..() +/obj/structure/disposalpipe/Initialize(mapload, obj/structure/disposalconstruct/make_from) + . = ..() if(make_from && !QDELETED(make_from)) base_icon_state = make_from.base_state @@ -176,7 +176,6 @@ stored.ptype = DISP_SORTJUNCTION if("pipe-j2s") stored.ptype = DISP_SORTJUNCTION_FLIP - return // pipe is deleted @@ -359,15 +358,14 @@ /obj/structure/disposalpipe/segment icon_state = "pipe-s" -/obj/structure/disposalpipe/segment/New() - ..() +/obj/structure/disposalpipe/segment/Initialize() + . = ..() if(stored.ptype == DISP_PIPE_STRAIGHT) dpdir = dir | turn(dir, 180) else dpdir = dir | turn(dir, -90) update() - return @@ -376,8 +374,8 @@ /obj/structure/disposalpipe/junction icon_state = "pipe-j1" -/obj/structure/disposalpipe/junction/New() - ..() +/obj/structure/disposalpipe/junction/Initialize() + . = ..() switch(stored.ptype) if(DISP_JUNCTION) dpdir = dir | turn(dir, -90) | turn(dir,180) @@ -386,7 +384,6 @@ if(DISP_YJUNCTION) dpdir = dir | turn(dir,90) | turn(dir, -90) update() - return // next direction to move @@ -452,8 +449,8 @@ dpdir = sortdir | posdir | negdir -/obj/structure/disposalpipe/sortjunction/New() - ..() +/obj/structure/disposalpipe/sortjunction/Initialize() + . = ..() // Generate a list of soring tags. if(sortType) @@ -468,7 +465,6 @@ updatedir() update() - return /obj/structure/disposalpipe/sortjunction/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/device/destTagger)) @@ -516,8 +512,8 @@ var/negdir = 0 var/sortdir = 0 -/obj/structure/disposalpipe/wrapsortjunction/New() - ..() +/obj/structure/disposalpipe/wrapsortjunction/Initialize() + . = ..() posdir = dir if(stored.ptype == DISP_SORTJUNCTION) sortdir = turn(posdir, -90) @@ -529,7 +525,6 @@ dpdir = sortdir | posdir | negdir update() - return // next direction to move // if coming in from negdir, then next is primary dir or sortdir @@ -557,14 +552,13 @@ icon_state = "pipe-t" var/obj/linked // the linked obj/machinery/disposal or obj/disposaloutlet -/obj/structure/disposalpipe/trunk/New() - ..() +/obj/structure/disposalpipe/trunk/Initialize() + . = ..() dpdir = dir spawn(1) getlinked() update() - return /obj/structure/disposalpipe/trunk/Destroy() if(linked) @@ -631,8 +625,8 @@ // i.e. will be treated as an empty turf desc = "A broken piece of disposal pipe." -/obj/structure/disposalpipe/broken/New() - ..() +/obj/structure/disposalpipe/broken/Initialize() + . = ..() update() // the disposal outlet machine @@ -655,9 +649,8 @@ var/start_eject = 0 var/eject_range = 2 -/obj/structure/disposaloutlet/New(loc, var/obj/structure/disposalconstruct/make_from) - ..() - +/obj/structure/disposaloutlet/Initialize(mapload, obj/structure/disposalconstruct/make_from) + . = ..() if(make_from) setDir(make_from.dir) make_from.loc = src diff --git a/code/modules/recycling/disposal-unit.dm b/code/modules/recycling/disposal-unit.dm index 9b1d5e649f..efb428f5f6 100644 --- a/code/modules/recycling/disposal-unit.dm +++ b/code/modules/recycling/disposal-unit.dm @@ -26,9 +26,8 @@ // create a new disposal // find the attached trunk (if present) and init gas resvr. -/obj/machinery/disposal/New(loc, var/obj/structure/disposalconstruct/make_from) - ..() - +/obj/machinery/disposal/Initialize(mapload, obj/structure/disposalconstruct/make_from) + . = ..() if(make_from) setDir(make_from.dir) make_from.loc = 0 @@ -445,8 +444,8 @@ icon_state = "intake" pressure_charging = FALSE // the chute doesn't need charging and always works -/obj/machinery/disposal/deliveryChute/New(loc,var/obj/structure/disposalconstruct/make_from) - ..() +/obj/machinery/disposal/deliveryChute/Initialize(mapload, obj/structure/disposalconstruct/make_from) + . = ..() stored.ptype = DISP_END_CHUTE spawn(5) trunk = locate() in loc diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index 7b40e91bc8..76c7a22f60 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -27,8 +27,8 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). "Computer Parts" ) -/obj/machinery/r_n_d/circuit_imprinter/New() - ..() +/obj/machinery/r_n_d/circuit_imprinter/Initialize() + . = ..() materials = new(src, list(MAT_GLASS, MAT_GOLD, MAT_DIAMOND, MAT_METAL, MAT_BLUESPACE)) create_reagents(0) var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/circuit_imprinter(null) diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index ab2ee3e9b2..15d8e5e80c 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -54,10 +54,10 @@ other types of metals and chemistry for reagents). var/list/blueprints = list() var/max_blueprints = 1 -/obj/item/weapon/disk/design_disk/New() - ..() - src.pixel_x = rand(-5, 5) - src.pixel_y = rand(-5, 5) +/obj/item/weapon/disk/design_disk/Initialize() + . = ..() + pixel_x = rand(-5, 5) + pixel_y = rand(-5, 5) for(var/i in 1 to max_blueprints) blueprints += null diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index 8ec99809bf..5adfb14f88 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -13,8 +13,8 @@ Note: Must be placed within 3 tiles of the R&D Console icon_state = "d_analyzer" var/decon_mod = 0 -/obj/machinery/r_n_d/destructive_analyzer/New() - ..() +/obj/machinery/r_n_d/destructive_analyzer/Initialize() + . = ..() var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/destructive_analyzer(null) B.apply_default_parts(src) diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index c8f580cc34..fba7f241d2 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -79,8 +79,8 @@ critical_items += I -/obj/machinery/r_n_d/experimentor/New() - ..() +/obj/machinery/r_n_d/experimentor/Initialize() + . = ..() var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/experimentor(null) B.apply_default_parts(src) @@ -589,8 +589,8 @@ var/cooldownMax = 60 var/cooldown -/obj/item/weapon/relic/New() - ..() +/obj/item/weapon/relic/Initialize() + . = ..() icon_state = pick("shock_kit","armor-igniter-analyzer","infra-igniter0","infra-igniter1","radio-multitool","prox-radio1","radio-radio","timer-multitool0","radio-igniter-tank") realName = "[pick("broken","twisted","spun","improved","silly","regular","badly made")] [pick("device","object","toy","illegal tech","weapon")]" diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index f0d563b1ff..46bfab3788 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -78,12 +78,11 @@ GLOBAL_LIST_INIT(message_servers, list()) var/active = 1 var/decryptkey = "password" -/obj/machinery/message_server/New() +/obj/machinery/message_server/Initialize() GLOB.message_servers += src decryptkey = GenerateKey() send_pda_message("System Administrator", "system", "This is an automated message. The messaging system is functioning correctly.") - ..() - return + . = ..() /obj/machinery/message_server/Destroy() GLOB.message_servers -= src diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index f6cbe90299..c6e742cbba 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -31,8 +31,8 @@ Note: Must be placed west/left of and R&D console to function. ) -/obj/machinery/r_n_d/protolathe/New() - ..() +/obj/machinery/r_n_d/protolathe/Initialize() + . = ..() create_reagents(0) materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE)) var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/protolathe(null) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index ed5190a701..b65ba70575 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -100,8 +100,8 @@ won't update every console in existence) but it's more of a hassle to do. Also, C.files.RefreshResearch() -/obj/machinery/computer/rdconsole/New() - ..() +/obj/machinery/computer/rdconsole/Initialize() + . = ..() files = new /datum/research(src) //Setup the research data holder. matching_designs = list() if(!id) @@ -1065,8 +1065,8 @@ won't update every console in existence) but it's more of a hassle to do. Also, req_access = null req_access_txt = "29" -/obj/machinery/computer/rdconsole/robotics/New() - ..() +/obj/machinery/computer/rdconsole/robotics/Initialize() + . = ..() if(circuit) circuit.name = "RD Console - Robotics (Computer Board)" circuit.build_path = /obj/machinery/computer/rdconsole/robotics diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 4dfcf3ff85..ea7f5e727b 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -16,8 +16,8 @@ var/obj/machinery/computer/rdconsole/linked_console var/obj/item/loaded_item = null //the item loaded inside the machine (currently only used by experimentor and destructive analyzer) -/obj/machinery/r_n_d/New() - ..() +/obj/machinery/r_n_d/Initialize() + . = ..() wires = new /datum/wires/r_n_d(src) /obj/machinery/r_n_d/Destroy() diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index deb8d34ffc..d6abc1b8fd 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -313,10 +313,10 @@ research holder datum. var/list/tech_stored = list() var/max_tech_stored = 1 -/obj/item/weapon/disk/tech_disk/New() - ..() - src.pixel_x = rand(-5, 5) - src.pixel_y = rand(-5, 5) +/obj/item/weapon/disk/tech_disk/Initialize() + . = ..() + pixel_x = rand(-5, 5) + pixel_y = rand(-5, 5) for(var/i in 1 to max_tech_stored) tech_stored += null @@ -339,8 +339,8 @@ research holder datum. materials = list() max_tech_stored = 0 -/obj/item/weapon/disk/tech_disk/debug/New() - ..() +/obj/item/weapon/disk/tech_disk/debug/Initialize() + . = ..() var/list/techs = subtypesof(/datum/tech) max_tech_stored = techs.len for(var/V in techs) diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index 42143f6e3a..468185e615 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -14,8 +14,8 @@ var/delay = 10 req_access = list(GLOB.access_rd) //Only the R&D can change server settings. -/obj/machinery/r_n_d/server/New() - ..() +/obj/machinery/r_n_d/server/Initialize() + . = ..() var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/rdserver(null) B.apply_default_parts(src) diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm index 74b5bc0121..0c32efbb64 100644 --- a/code/modules/research/stock_parts.dm +++ b/code/modules/research/stock_parts.dm @@ -72,10 +72,10 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi w_class = WEIGHT_CLASS_SMALL var/rating = 1 -/obj/item/weapon/stock_parts/New() - ..() - src.pixel_x = rand(-5, 5) - src.pixel_y = rand(-5, 5) +/obj/item/weapon/stock_parts/Initialize() + . = ..() + pixel_x = rand(-5, 5) + pixel_y = rand(-5, 5) //Rating 1 diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 38d742c5be..c668595699 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -25,9 +25,9 @@ qdel(O) ..() -/obj/item/slime_extract/New() - ..() - create_reagents(100) +/obj/item/slime_extract/Initialize() + . = ..() + create_reagents(100) /obj/item/slime_extract/grey name = "grey slime extract" @@ -559,8 +559,8 @@ var/duration = 140 alpha = 125 -/obj/effect/timestop/New() - ..() +/obj/effect/timestop/Initialize() + . = ..() for(var/mob/living/M in GLOB.player_list) for(var/obj/effect/proc_holder/spell/aoe_turf/conjure/timestop/T in M.mind.spell_list) //People who can stop time are immune to timestop immune |= M diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm index 376c8aa9f2..32fb4a46e5 100644 --- a/code/modules/ruins/lavaland_ruin_code.dm +++ b/code/modules/ruins/lavaland_ruin_code.dm @@ -24,8 +24,8 @@ icon_state = "datadisk1" max_blueprints = 1 -/obj/item/weapon/disk/design_disk/golem_shell/New() - ..() +/obj/item/weapon/disk/design_disk/golem_shell/Initialize() + . = ..() var/datum/design/golem_shell/G = new blueprints[1] = G diff --git a/code/modules/ruins/objects_and_mobs/sin_ruins.dm b/code/modules/ruins/objects_and_mobs/sin_ruins.dm index c5aacadecb..349d716d2d 100644 --- a/code/modules/ruins/objects_and_mobs/sin_ruins.dm +++ b/code/modules/ruins/objects_and_mobs/sin_ruins.dm @@ -45,7 +45,7 @@ anchored = FALSE density = TRUE -/obj/structure/cursed_money/New() +/obj/structure/cursed_money/Initialize() . = ..() addtimer(CALLBACK(src, .proc/collapse), 600) diff --git a/code/modules/security_levels/keycard_authentication.dm b/code/modules/security_levels/keycard_authentication.dm index 6f6533326b..66f29b28d0 100644 --- a/code/modules/security_levels/keycard_authentication.dm +++ b/code/modules/security_levels/keycard_authentication.dm @@ -18,7 +18,7 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) var/mob/triggerer = null var/waiting = 0 -/obj/machinery/keycard_auth/New() +/obj/machinery/keycard_auth/Initialize() . = ..() ev = GLOB.keycard_events.addEvent("triggerEvent", CALLBACK(src, .proc/triggerEvent)) diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm index 18aa94998e..0475a28068 100644 --- a/code/modules/shuttle/computer.dm +++ b/code/modules/shuttle/computer.dm @@ -10,8 +10,8 @@ var/admin_controlled var/no_destination_swap = 0 -/obj/machinery/computer/shuttle/New(location, obj/item/weapon/circuitboard/computer/shuttle/C) - ..() +/obj/machinery/computer/shuttle/Initialize(mapload, obj/item/weapon/circuitboard/computer/shuttle/C) + . = ..() if(istype(C)) possible_destinations = C.possible_destinations shuttleId = C.shuttleId diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 553210a5f7..147f607075 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -412,8 +412,8 @@ to_chat(usr, "Escape pods will only launch during \"Code Red\" security alert.") return 1 -/obj/docking_port/mobile/pod/New() - ..() +/obj/docking_port/mobile/pod/Initialize() + . = ..() if(id == "pod") WARNING("[type] id has not been changed from the default. Use the id convention \"pod1\" \"pod2\" etc.") @@ -492,8 +492,7 @@ icon_state = "safe" var/unlocked = FALSE -/obj/item/weapon/storage/pod/New() - ..() +/obj/item/weapon/storage/pod/PopulateContents() new /obj/item/clothing/head/helmet/space/orange(src) new /obj/item/clothing/head/helmet/space/orange(src) new /obj/item/clothing/suit/space/orange(src) @@ -533,13 +532,13 @@ dir = EAST roundstart_move = "backup_away" -/obj/docking_port/mobile/emergency/backup/New() +/obj/docking_port/mobile/emergency/backup/Initialize() // We want to be a valid emergency shuttle // but not be the main one, keep whatever's set // valid. // backup shuttle ignores `timid` because THERE SHOULD BE NO TOUCHING IT var/current_emergency = SSshuttle.emergency - ..() + . = ..() SSshuttle.emergency = current_emergency SSshuttle.backup_shuttle = src diff --git a/code/modules/shuttle/manipulator.dm b/code/modules/shuttle/manipulator.dm index 594a6855da..0ec4709301 100644 --- a/code/modules/shuttle/manipulator.dm +++ b/code/modules/shuttle/manipulator.dm @@ -20,7 +20,7 @@ var/obj/docking_port/mobile/preview_shuttle var/datum/map_template/shuttle/preview_template -/obj/machinery/shuttle_manipulator/New() +/obj/machinery/shuttle_manipulator/Initialize() . = ..() update_icon() diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index f214d018b4..de9338d55d 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -145,8 +145,8 @@ var/area_type = /area/space var/last_dock_time -/obj/docking_port/stationary/New() - ..() +/obj/docking_port/stationary/Initialize() + . = ..() SSshuttle.stationary += src if(!id) id = "[SSshuttle.stationary.len]" @@ -168,8 +168,8 @@ var/area/shuttle/transit/assigned_area var/obj/docking_port/mobile/owner -/obj/docking_port/stationary/transit/New() - ..() +/obj/docking_port/stationary/transit/Initialize() + . = ..() SSshuttle.transit += src /obj/docking_port/stationary/transit/proc/dezone() @@ -223,8 +223,8 @@ var/list/ripples = list() -/obj/docking_port/mobile/New() - ..() +/obj/docking_port/mobile/Initialize() + . = ..() if(!timid) register() diff --git a/code/modules/shuttle/shuttle.dm.rej b/code/modules/shuttle/shuttle.dm.rej new file mode 100644 index 0000000000..5dc3c5a13a --- /dev/null +++ b/code/modules/shuttle/shuttle.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm (rejected hunks) +@@ -316,7 +316,7 @@ + if(!check_dock(S)) + testing("check_dock failed on request for [src]") + return +- ++ + if(mode == SHUTTLE_IGNITING && destination == S) + return + diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm index b78d0efd84..78732d82e4 100644 --- a/code/modules/shuttle/special.dm +++ b/code/modules/shuttle/special.dm @@ -14,7 +14,7 @@ var/tables_required = 2 active = FALSE -/obj/machinery/power/emitter/energycannon/magical/New() +/obj/machinery/power/emitter/energycannon/magical/Initialize() . = ..() if(prob(50)) desc = "Oh no, not again." diff --git a/code/modules/shuttle/syndicate.dm b/code/modules/shuttle/syndicate.dm index 22a408ec6c..83ef7f06eb 100644 --- a/code/modules/shuttle/syndicate.dm +++ b/code/modules/shuttle/syndicate.dm @@ -31,9 +31,9 @@ var/challenge = FALSE var/moved = FALSE -/obj/item/weapon/circuitboard/computer/syndicate_shuttle/New() +/obj/item/weapon/circuitboard/computer/syndicate_shuttle/Initialize() + . = ..() GLOB.syndicate_shuttle_boards += src - ..() /obj/item/weapon/circuitboard/computer/syndicate_shuttle/Destroy() GLOB.syndicate_shuttle_boards -= src diff --git a/code/modules/shuttle/transit.dm b/code/modules/shuttle/transit.dm index c03d4a2645..7bf217d1ff 100644 --- a/code/modules/shuttle/transit.dm +++ b/code/modules/shuttle/transit.dm @@ -5,7 +5,7 @@ icon = 'icons/effects/effects.dmi' icon_state = "at_shield1" -/obj/effect/landmark/transit/New() +/obj/effect/landmark/transit/Initialize() . = ..() GLOB.transit_markers += src diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index bdab8b6c22..cc3f2c1ab9 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -223,8 +223,8 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th /obj/effect/proc_holder/spell/proc/playMagSound() playsound(get_turf(usr), sound,50,1) -/obj/effect/proc_holder/spell/New() - ..() +/obj/effect/proc_holder/spell/Initialize() + . = ..() action = new(src) still_recharging_msg = "[name] is still recharging." diff --git a/code/modules/spells/spell_types/forcewall.dm b/code/modules/spells/spell_types/forcewall.dm index 6579171738..8b2a40fe59 100644 --- a/code/modules/spells/spell_types/forcewall.dm +++ b/code/modules/spells/spell_types/forcewall.dm @@ -26,8 +26,8 @@ /obj/effect/forcefield/wizard var/mob/wizard -/obj/effect/forcefield/wizard/New(atom/loc, mob/summoner) - ..() +/obj/effect/forcefield/wizard/Initialize(mapload, mob/summoner) + . = ..() wizard = summoner QDEL_IN(src, 300) diff --git a/code/modules/spells/spell_types/godhand.dm b/code/modules/spells/spell_types/godhand.dm index 20d223354b..26c543537e 100644 --- a/code/modules/spells/spell_types/godhand.dm +++ b/code/modules/spells/spell_types/godhand.dm @@ -14,9 +14,9 @@ throw_range = 0 throw_speed = 0 -/obj/item/weapon/melee/touch_attack/New(var/spell) - attached_spell = spell - ..() +/obj/item/weapon/melee/touch_attack/Initialize() + attached_spell = loc + . = ..() /obj/item/weapon/melee/touch_attack/attack(mob/target, mob/living/carbon/user) if(!iscarbon(user)) //Look ma, no hands diff --git a/code/modules/spells/spell_types/trigger.dm b/code/modules/spells/spell_types/trigger.dm index 4cd8107b6a..d219a22fca 100644 --- a/code/modules/spells/spell_types/trigger.dm +++ b/code/modules/spells/spell_types/trigger.dm @@ -5,8 +5,8 @@ var/list/linked_spells = list() //those are just referenced by the trigger spell and are unaffected by it directly var/list/starting_spells = list() //those are added on New() to contents from default spells and are deleted when the trigger spell is deleted to prevent memory leaks -/obj/effect/proc_holder/spell/targeted/trigger/New() - ..() +/obj/effect/proc_holder/spell/targeted/trigger/Initialize() + . = ..() for(var/spell in starting_spells) var/spell_to_add = text2path(spell) diff --git a/code/modules/station_goals/bsa.dm.rej b/code/modules/station_goals/bsa.dm.rej new file mode 100644 index 0000000000..d252acd18d --- /dev/null +++ b/code/modules/station_goals/bsa.dm.rej @@ -0,0 +1,12 @@ +diff a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm (rejected hunks) +@@ -161,8 +161,8 @@ + return locate(world.maxx,y,z) + return get_turf(src) + +-/obj/machinery/bsa/full/New(loc,cannon_direction = WEST) +- ..() ++/obj/machinery/bsa/full/Initialize(mapload,cannon_direction = WEST) ++ . = ..() + switch(cannon_direction) + if(WEST) + dir = WEST diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm index 863d7d4bde..b89ed4bde0 100644 --- a/code/modules/station_goals/shield.dm +++ b/code/modules/station_goals/shield.dm @@ -99,8 +99,8 @@ var/static/gid = 0 var/id = 0 -/obj/machinery/satellite/New() - ..() +/obj/machinery/satellite/Initialize() + . = ..() id = gid++ /obj/machinery/satellite/interact(mob/user) diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index 1a0932f6e0..4fc22ec2c2 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -14,8 +14,8 @@ var/obj/item/holder = null // You can use this var for item path, it would be converted into an item on New() -/obj/item/organ/cyberimp/arm/New() - ..() +/obj/item/organ/cyberimp/arm/Initialize() + . = ..() if(ispath(holder)) holder = new holder(src) @@ -207,8 +207,8 @@ contents = newlist(/obj/item/device/assembly/flash/armimplant) origin_tech = "materials=4;combat=3;biotech=4;magnets=4;powerstorage=3" -/obj/item/organ/cyberimp/arm/flash/New() - ..() +/obj/item/organ/cyberimp/arm/flash/Initialize() + . = ..() if(locate(/obj/item/device/assembly/flash/armimplant) in items_list) var/obj/item/device/assembly/flash/armimplant/F = locate(/obj/item/device/assembly/flash/armimplant) in items_list F.I = src @@ -225,8 +225,8 @@ contents = newlist(/obj/item/weapon/melee/energy/blade/hardlight, /obj/item/weapon/gun/medbeam, /obj/item/borg/stun, /obj/item/device/assembly/flash/armimplant) origin_tech = "materials=5;combat=7;biotech=5;powerstorage=5;syndicate=6;programming=5" -/obj/item/organ/cyberimp/arm/combat/New() - ..() +/obj/item/organ/cyberimp/arm/combat/Initialize() + . = ..() if(locate(/obj/item/device/assembly/flash/armimplant) in items_list) var/obj/item/device/assembly/flash/armimplant/F = locate(/obj/item/device/assembly/flash/armimplant) in items_list F.I = src diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index 7b4f98693c..ff2a3f0312 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -155,8 +155,7 @@ /obj/item/device/autosurgeon/reviver) var/amount = 5 -/obj/item/weapon/storage/box/cyber_implants/bundle/New() - ..() +/obj/item/weapon/storage/box/cyber_implants/PopulateContents() var/implant while(contents.len <= amount) implant = pick(boxed) diff --git a/code/modules/surgery/organs/organ_internal.dm.rej b/code/modules/surgery/organs/organ_internal.dm.rej new file mode 100644 index 0000000000..51db3e41ea --- /dev/null +++ b/code/modules/surgery/organs/organ_internal.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm (rejected hunks) +@@ -655,7 +655,7 @@ + var/phomeme_type = "sans" + var/list/phomeme_types = list("sans", "papyrus") + +-/obj/item/organ/tongue/bone/New() ++/obj/item/organ/tongue/bone/Initialize() + . = ..() + phomeme_type = pick(phomeme_types) + diff --git a/code/modules/telesci/telepad.dm b/code/modules/telesci/telepad.dm index d4e49215ad..5d85cde569 100644 --- a/code/modules/telesci/telepad.dm +++ b/code/modules/telesci/telepad.dm @@ -10,8 +10,8 @@ active_power_usage = 5000 var/efficiency -/obj/machinery/telepad/New() - ..() +/obj/machinery/telepad/Initialize() + . = ..() var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telesci_pad(null) B.apply_default_parts(src) diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm index a6c909438e..9a0fdf55fc 100644 --- a/code/modules/telesci/telesci_computer.dm +++ b/code/modules/telesci/telesci_computer.dm @@ -30,9 +30,9 @@ var/list/crystals = list() var/obj/item/device/gps/inserted_gps -/obj/machinery/computer/telescience/New() +/obj/machinery/computer/telescience/Initialize() recalibrate() - ..() + . = ..() /obj/machinery/computer/telescience/Destroy() eject() diff --git a/code/modules/uplink/uplink.dm b/code/modules/uplink/uplink.dm index 8a72bd0566..f3379b9110 100644 --- a/code/modules/uplink/uplink.dm +++ b/code/modules/uplink/uplink.dm @@ -20,8 +20,8 @@ GLOBAL_LIST_EMPTY(uplinks) var/purchase_log = "" var/list/uplink_items -/obj/item/device/uplink/New() - ..() +/obj/item/device/uplink/Initialize() + . = ..() GLOB.uplinks += src uplink_items = get_uplink_items(gamemode) @@ -133,24 +133,24 @@ GLOBAL_LIST_EMPTY(uplinks) return hidden_uplink.attackby(I, user, params) // A collection of pre-set uplinks, for admin spawns. -/obj/item/device/radio/uplink/New() - ..() +/obj/item/device/radio/uplink/Initialize() + . = ..() icon_state = "radio" hidden_uplink = new(src) hidden_uplink.active = TRUE hidden_uplink.lockable = FALSE -/obj/item/device/radio/uplink/nuclear/New() - ..() +/obj/item/device/radio/uplink/nuclear/Initialize() + . = ..() hidden_uplink.set_gamemode(/datum/game_mode/nuclear) -/obj/item/device/multitool/uplink/New() - ..() +/obj/item/device/multitool/uplink/Initialize() + . = ..() hidden_uplink = new(src) hidden_uplink.active = TRUE hidden_uplink.lockable = FALSE -/obj/item/weapon/pen/uplink/New() - ..() +/obj/item/weapon/pen/uplink/Initialize() + . = ..() hidden_uplink = new(src) traitor_unlock_degrees = 360 diff --git a/code/modules/vehicles/atv.dm b/code/modules/vehicles/atv.dm index 5f663b85f8..4450f6bab8 100644 --- a/code/modules/vehicles/atv.dm +++ b/code/modules/vehicles/atv.dm @@ -34,7 +34,7 @@ density = 0 -/obj/vehicle/atv/turret/New() +/obj/vehicle/atv/turret/Initialize() . = ..() turret = new(loc) turret.base = src diff --git a/code/modules/vehicles/atv.dm.rej b/code/modules/vehicles/atv.dm.rej new file mode 100644 index 0000000000..4595beddc4 --- /dev/null +++ b/code/modules/vehicles/atv.dm.rej @@ -0,0 +1,12 @@ +diff a/code/modules/vehicles/atv.dm b/code/modules/vehicles/atv.dm (rejected hunks) +@@ -9,8 +9,8 @@ + . = ..() + riding_datum = new/datum/riding/atv + +-/obj/vehicle/atv/New() +- ..() ++/obj/vehicle/atv/Initialize() ++ . = ..() + if(!atvcover) + atvcover = image("icons/obj/vehicles.dmi", "atvcover") + atvcover.layer = ABOVE_MOB_LAYER diff --git a/code/modules/vehicles/bicycle.dm b/code/modules/vehicles/bicycle.dm index 184b03a6bf..d51de5809c 100644 --- a/code/modules/vehicles/bicycle.dm +++ b/code/modules/vehicles/bicycle.dm @@ -7,8 +7,8 @@ var/static/list/bike_music = list('sound/misc/bike1.mid', 'sound/misc/bike2.mid', 'sound/misc/bike3.mid') -/obj/vehicle/bicycle/New() - ..() +/obj/vehicle/bicycle/Initialize() + . = ..() riding_datum = new/datum/riding/bicycle /obj/vehicle/bicycle/buckle_mob(mob/living/M, force = 0, check_loc = 1) diff --git a/code/modules/vehicles/speedbike.dm.rej b/code/modules/vehicles/speedbike.dm.rej new file mode 100644 index 0000000000..26fe1428c9 --- /dev/null +++ b/code/modules/vehicles/speedbike.dm.rej @@ -0,0 +1,23 @@ +diff a/code/modules/vehicles/speedbike.dm b/code/modules/vehicles/speedbike.dm (rejected hunks) +@@ -16,20 +16,9 @@ + overlay.layer = ABOVE_MOB_LAYER + add_overlay(overlay) + +-/obj/effect/overlay/temp/speedbike_trail +- name = "speedbike trails" +- icon_state = "ion_fade" +- layer = BELOW_MOB_LAYER +- duration = 10 +- randomdir = 0 +- +-/obj/effect/overlay/temp/speedbike_trail/New(loc,move_dir) +- ..() +- setDir(move_dir) +- + /obj/vehicle/space/speedbike/Move(newloc,move_dir) + if(has_buckled_mobs()) +- new /obj/effect/overlay/temp/speedbike_trail(loc,move_dir) ++ new /obj/effect/overlay/temp/dir_setting/speedbike_trail(loc,move_dir) + . = ..() + + /obj/vehicle/space/speedbike/red diff --git a/code/modules/zombie/organs.dm b/code/modules/zombie/organs.dm index 295d774595..f254ef6337 100644 --- a/code/modules/zombie/organs.dm +++ b/code/modules/zombie/organs.dm @@ -13,7 +13,7 @@ var/revive_time_max = 700 var/timer_id -/obj/item/organ/zombie_infection/New(loc) +/obj/item/organ/zombie_infection/Initialize() . = ..() if(iscarbon(loc)) Insert(loc) From b45d053ac61fa5ff7a4051dc036054dfab037d9e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 27 Apr 2017 02:32:35 -0500 Subject: [PATCH 05/50] When jumpsuits take severe damage, their suit sensors break. --- code/__DEFINES/misc.dm | 15 ++++++++ code/game/data_huds.dm | 2 +- code/game/machinery/computer/crew.dm | 10 +++--- code/modules/clothing/chameleon.dm | 2 +- code/modules/clothing/clothing.dm | 36 +++++++++++-------- code/modules/clothing/clothing.dm.rej | 29 +++++++++++++++ code/modules/clothing/under/jobs/civilian.dm | 2 +- code/modules/clothing/under/jobs/security.dm | 4 +-- code/modules/clothing/under/miscellaneous.dm | 6 ++-- code/modules/clothing/under/syndicate.dm | 2 +- .../research/xenobiology/xenobiology.dm | 2 +- 11 files changed, 80 insertions(+), 30 deletions(-) create mode 100644 code/modules/clothing/clothing.dm.rej diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index efb9b3addf..321bbf7b67 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -201,6 +201,21 @@ GLOBAL_LIST_EMPTY(bloody_footprints_cache) #define BLOOD_STATE_XENO "xeno" #define BLOOD_STATE_OIL "oil" #define BLOOD_STATE_NOT_BLOODY "no blood whatsoever" + +//suit sensors: sensor_mode defines + +#define SENSOR_OFF 0 +#define SENSOR_LIVING 1 +#define SENSOR_VITALS 2 +#define SENSOR_COORDS 3 + +//suit sensors: has_sensor defines + +#define BROKEN_SENSORS -1 +#define NO_SENSORS 0 +#define HAS_SENSORS 1 +#define LOCKED_SENSORS 2 + //Turf wet states #define TURF_DRY 0 #define TURF_WET_WATER 1 diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index de830c856b..2e5854509a 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -24,7 +24,7 @@ if(!istype(H)) return 0 var/obj/item/clothing/under/U = H.w_uniform if(!istype(U)) return 0 - if(U.sensor_mode <= 2) return 0 + if(U.sensor_mode <= SENSOR_VITALS) return 0 return 1 /datum/atom_hud/data/human/medical/basic/add_to_single_hud(mob/M, mob/living/carbon/H) diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 1d331051e6..65fbee45f0 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -153,8 +153,8 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) U = H.w_uniform // Are the suit sensors on? - if (U.has_sensor && U.sensor_mode) - pos = H.z == 0 || U.sensor_mode == 3 ? get_turf(H) : null + if ((U.has_sensor > 0) && U.sensor_mode) + pos = H.z == 0 || U.sensor_mode == SENSOR_COORDS ? get_turf(H) : null // Special case: If the mob is inside an object confirm the z-level on turf level. if (H.z == 0 && (!pos || pos.z != z)) continue @@ -170,10 +170,10 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) assignment = "" ijob = 80 - if (U.sensor_mode >= 1) life_status = (!H.stat ? "true" : "false") + if (U.sensor_mode >= SENSOR_LIVING) life_status = (!H.stat ? "true" : "false") else life_status = null - if (U.sensor_mode >= 2) + if (U.sensor_mode >= SENSOR_VITALS) dam1 = round(H.getOxyLoss(),1) dam2 = round(H.getToxLoss(),1) dam3 = round(H.getFireLoss(),1) @@ -184,7 +184,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) dam3 = null dam4 = null - if (U.sensor_mode >= 3) + if (U.sensor_mode >= SENSOR_COORDS) if (!pos) pos = get_turf(H) var/area/player_area = get_area(H) diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index b15378c3b3..8f7547eaff 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -202,7 +202,7 @@ item_color = "black" desc = "It's a plain jumpsuit. It has a small dial on the wrist." origin_tech = "syndicate=2" - sensor_mode = 0 //Hey who's this guy on the Syndicate Shuttle?? + sensor_mode = SENSOR_OFF //Hey who's this guy on the Syndicate Shuttle?? random_sensor = 0 resistance_flags = 0 armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 26b052d2ce..de76034e48 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -83,7 +83,7 @@ C.use(1) update_clothes_damaged_state(FALSE) obj_integrity = max_integrity - to_chat(user, "You fix the damages on [src] with [C].") + to_chat(user, "You fix the damage on [src] with [C].") return 1 if(pockets) var/i = pockets.attackby(W, user, params) @@ -161,7 +161,7 @@ /obj/item/clothing/obj_break(damage_flag) if(!damaged_clothes) update_clothes_damaged_state(TRUE) - + to_chat(usr, "Your [src] starts to fall apart!") /obj/item/clothing/proc/update_clothes_damaged_state(damaging = TRUE) var/index = "\ref[initial(icon)]-[initial(icon_state)]" @@ -519,9 +519,9 @@ BLIND // can't see anything slot_flags = SLOT_ICLOTHING armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) var/fitted = FEMALE_UNIFORM_FULL // For use in alternate clothing styles for women - var/has_sensor = 1//For the crew computer 2 = unable to change mode + var/has_sensor = HAS_SENSORS // For the crew computer var/random_sensor = 1 - var/sensor_mode = 0 /* 1 = Report living/dead, 2 = Report detailed damages, 3 = Report location */ + var/sensor_mode = NO_SENSORS var/can_adjust = 1 var/adjusted = NORMAL_STYLE var/alt_covers_chest = 0 // for adjusted/rolled-down jumpsuits, 0 = exposes chest and arms, 1 = exposes arms only @@ -633,15 +633,18 @@ BLIND // can't see anything to_chat(user, "Alt-click on [src] to wear it normally.") else to_chat(user, "Alt-click on [src] to wear it casually.") - switch(sensor_mode) - if(0) - to_chat(user, "Its sensors appear to be disabled.") - if(1) - to_chat(user, "Its binary life sensors appear to be enabled.") - if(2) - to_chat(user, "Its vital tracker appears to be enabled.") - if(3) - to_chat(user, "Its vital tracker and tracking beacon appear to be enabled.") + if (has_sensor == BROKEN_SENSORS) + to_chat(user, "Its sensors appear to be shorted out.") + else if(has_sensor > NO_SENSORS) + switch(sensor_mode) + if(SENSOR_OFF) + to_chat(user, "Its sensors appear to be disabled.") + if(SENSOR_LIVING) + to_chat(user, "Its binary life sensors appear to be enabled.") + if(SENSOR_VITALS) + to_chat(user, "Its vital tracker appears to be enabled.") + if(SENSOR_COORDS) + to_chat(user, "Its vital tracker and tracking beacon appear to be enabled.") if(hastie) to_chat(user, "\A [hastie] is attached to it.") @@ -661,10 +664,13 @@ BLIND // can't see anything return if (!can_use(M)) return - if(src.has_sensor >= 2) + if(src.has_sensor == LOCKED_SENSORS) to_chat(usr, "The controls are locked.") return 0 - if(src.has_sensor <= 0) + if(src.has_sensor == BROKEN_SENSORS) + to_chat(usr, "The sensors have shorted out!") + return 0 + if(src.has_sensor <= NO_SENSORS) to_chat(usr, "This suit does not have any sensors.") return 0 diff --git a/code/modules/clothing/clothing.dm.rej b/code/modules/clothing/clothing.dm.rej new file mode 100644 index 0000000000..3deb315f37 --- /dev/null +++ b/code/modules/clothing/clothing.dm.rej @@ -0,0 +1,29 @@ +diff a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm (rejected hunks) +@@ -545,16 +545,26 @@ BLIND // can't see anything + tI.color = hastie.color + . += tI + ++/obj/item/clothing/under/attackby(obj/item/W, mob/user, params) ++ if((has_sensor == BROKEN_SENSORS) && istype(W, /obj/item/stack/cable_coil)) ++ var/obj/item/stack/cable_coil/C = W ++ C.use(1) ++ has_sensor = HAS_SENSORS ++ to_chat(user,"You repair the suit sensors on [src] with [C].") ++ return 1 ++ + /obj/item/clothing/under/update_clothes_damaged_state(damaging = TRUE) + ..() + if(ismob(loc)) + var/mob/M = loc + M.update_inv_w_uniform() ++ if(has_sensor > NO_SENSORS) ++ has_sensor = BROKEN_SENSORS + + /obj/item/clothing/under/New() + if(random_sensor) + //make the sensor mode favor higher levels, except coords. +- sensor_mode = pick(0, 1, 1, 2, 2, 2, 3, 3) ++ sensor_mode = pick(SENSOR_OFF, SENSOR_LIVING, SENSOR_LIVING, SENSOR_VITALS, SENSOR_VITALS, SENSOR_VITALS, SENSOR_COORDS, SENSOR_COORDS) + adjusted = NORMAL_STYLE + ..() + diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index eb0d9d0edf..8c30774c02 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -14,7 +14,7 @@ icon_state = "captain" item_state = "b_suit" item_color = "captain" - sensor_mode = 3 + sensor_mode = SENSOR_COORDS random_sensor = 0 /obj/item/clothing/under/rank/cargo diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 15ebee3875..b44070c0e4 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -18,7 +18,7 @@ armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30) strip_delay = 50 alt_covers_chest = 1 - sensor_mode = 3 + sensor_mode = SENSOR_COORDS random_sensor = 0 /obj/item/clothing/under/rank/security/grey @@ -27,7 +27,7 @@ icon_state = "security" item_state = "gy_suit" item_color = "security" - + /obj/item/clothing/under/rank/warden name = "security suit" diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index d7b7e8ee1f..6aedfc13e6 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -61,8 +61,8 @@ icon_state = "prisoner" item_state = "o_suit" item_color = "prisoner" - has_sensor = 2 - sensor_mode = 3 + has_sensor = LOCKED_SENSORS + sensor_mode = SENSOR_COORDS random_sensor = 0 /obj/item/clothing/under/rank/mailman @@ -404,7 +404,7 @@ /obj/item/clothing/under/gladiator/ash_walker desc = "This gladiator uniform appears to be covered in ash and fairly dated." - has_sensor = 0 + has_sensor = NO_SENSORS /obj/item/clothing/under/sundress name = "sundress" diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index 83e7e59253..72aed9b7cf 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -4,7 +4,7 @@ icon_state = "syndicate" item_state = "bl_suit" item_color = "syndicate" - has_sensor = 0 + has_sensor = NO_SENSORS armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 40) alt_covers_chest = 1 diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 38d742c5be..c31a241489 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -420,7 +420,7 @@ item_color = "golem" flags = ABSTRACT | NODROP resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - has_sensor = 0 + has_sensor = NO_SENSORS /obj/item/clothing/suit/golem name = "adamantine shell" From 30f275d5f90a38267a7e675cca5201a57075a49c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 27 Apr 2017 09:26:09 -0500 Subject: [PATCH 06/50] Fixes being unable to empty an emagged cloning pod via manual ejection. --- code/game/machinery/cloning.dm | 14 +++++++------ code/game/machinery/cloning.dm.rej | 28 +++++++++++++++++++++++++ code/modules/mob/living/carbon/death.dm | 6 +++++- 3 files changed, 41 insertions(+), 7 deletions(-) create mode 100644 code/game/machinery/cloning.dm.rej diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 5773db04be..4c7ecbe87e 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -317,7 +317,7 @@ return else connected_message("Authorized Ejection") - SPEAK("An authorized ejection of [occupant.real_name] has occurred.") + SPEAK("An authorized ejection of [clonemind.name] has occurred.") to_chat(user, "You force an emergency ejection. ") go_out() else @@ -345,7 +345,7 @@ if(mess) //Clean that mess and dump those gibs! mess = FALSE - new /obj/effect/gibspawner/generic(loc) + new /obj/effect/gibspawner/generic(loc) audible_message("You hear a splat.") icon_state = "pod_0" return @@ -358,7 +358,7 @@ to_chat(occupant, "There is a bright flash!
You feel like a new being.
") occupant.flash_act() - var/turf/T = get_turf(src) + var/turf/T = get_turf(src) occupant.forceMove(T) icon_state = "pod_0" occupant.domutcheck(1) //Waiting until they're out before possible monkeyizing. The 1 argument forces powers to manifest. @@ -370,6 +370,8 @@ SPEAK("Critical error! Please contact a Thinktronic Systems \ technician, as your warranty may be affected.") mess = TRUE + for(var/obj/item/O in unattached_flesh) + qdel(O) icon_state = "pod_g" if(occupant.mind != clonemind) clonemind.transfer_to(occupant) @@ -378,16 +380,16 @@ to_chat(occupant, "Agony blazes across your consciousness as your body is torn apart.
Is this what dying is like? Yes it is.
") playsound(src.loc, 'sound/machines/warning-buzzer.ogg', 50, 0) occupant << sound('sound/hallucinations/veryfar_noise.ogg',0,1,50) - QDEL_IN(occupant, 40) + QDEL_IN(occupant, 40) /obj/machinery/clonepod/relaymove(mob/user) if(user.stat == CONSCIOUS) go_out() /obj/machinery/clonepod/emp_act(severity) - if(prob(100/(severity*efficiency))) + if((occupant || mess) && prob(100/(severity*efficiency))) connected_message(Gibberish("EMP-caused Accidental Ejection", 0)) - SPEAK(Gibberish("Exposure to electromagnetic fields has caused the ejection of [occupant.real_name] prematurely." ,0)) + SPEAK(Gibberish("Exposure to electromagnetic fields has caused the ejection of [clonemind.name] prematurely." ,0)) go_out() ..() diff --git a/code/game/machinery/cloning.dm.rej b/code/game/machinery/cloning.dm.rej new file mode 100644 index 0000000000..bd2462c1de --- /dev/null +++ b/code/game/machinery/cloning.dm.rej @@ -0,0 +1,28 @@ +diff a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm (rejected hunks) +@@ -343,7 +343,7 @@ + if(mess) //Clean that mess and dump those gibs! + mess = FALSE + for(var/obj/A in contents) +- if(istype(A, /obj/item/organ) || istype(A, /obj/effect/decal/cleanable/blood/gibs)) ++ if(istype(A, /obj/effect/decal/cleanable/blood/gibs)) + A.forceMove(T) + audible_message("You hear a splat.") + icon_state = "pod_0" +@@ -378,10 +378,13 @@ + to_chat(occupant, "Agony blazes across your consciousness as your body is torn apart.
Is this what dying is like? Yes it is.
") + playsound(src.loc, 'sound/machines/warning-buzzer.ogg', 50, 0) + occupant << sound('sound/hallucinations/veryfar_noise.ogg',0,1,50) +- var/obj/item/organ/brain/B = occupant.getorganslot("brain") +- B.Remove(occupant) +- B.forceMove(src) +- occupant.gib(TRUE, TRUE, TRUE) ++ addtimer(CALLBACK(src, .proc/end_malfunction, occupant), 40) ++ ++/obj/machinery/clonepod/proc/end_malfunction(mob/victim) ++ if(!istype(victim)) //Where the hell did they go? ++ return ++ victim.ghostize(FALSE) ++ victim.gib(TRUE, TRUE, TRUE) + + /obj/machinery/clonepod/relaymove(mob/user) + if(user.stat == CONSCIOUS) diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index ba757bd713..1d6d373db5 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -24,7 +24,8 @@ if(!no_bodyparts) if(no_organs)//so the organs don't get transfered inside the bodyparts we'll drop. for(var/X in internal_organs) - qdel(X) + if(no_brain || !istype(X, /obj/item/organ/brain)) + qdel(X) else //we're going to drop all bodyparts except chest, so the only organs that needs spilling are those inside it. for(var/X in internal_organs) var/obj/item/organ/O = X @@ -42,6 +43,9 @@ if(no_brain && istype(I, /obj/item/organ/brain)) qdel(I) continue + if(no_organs && !istype(I, /obj/item/organ/brain)) + qdel(I) + continue I.Remove(src) I.forceMove(get_turf(src)) I.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) From 4a2e1367b5102f44ec089ff7ff9d3d7d342ad984 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 27 Apr 2017 17:01:29 -0500 Subject: [PATCH 07/50] Renames generic armor and athletic shorts --- code/modules/clothing/suits/armor.dm | 2 +- code/modules/clothing/suits/armor.dm.rej | 10 ++++++++++ code/modules/clothing/under/shorts.dm | 6 ++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 code/modules/clothing/suits/armor.dm.rej diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index f05923f899..a8ed4d2100 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -13,7 +13,7 @@ armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50) /obj/item/clothing/suit/armor/vest - name = "armor" + name = "armor vest" desc = "A slim armored vest that protects against most types of damage." icon_state = "armoralt" item_state = "armoralt" diff --git a/code/modules/clothing/suits/armor.dm.rej b/code/modules/clothing/suits/armor.dm.rej new file mode 100644 index 0000000000..5996d94b57 --- /dev/null +++ b/code/modules/clothing/suits/armor.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm (rejected hunks) +@@ -140,7 +140,7 @@ + return 1 + + /obj/item/clothing/suit/armor/vest/det_suit +- name = "armor" ++ name = "detective's armor vest" + desc = "An armored vest with a detective's badge on it." + icon_state = "detective-armor" + allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic) diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm index 119527ec4f..dfef527fe1 100644 --- a/code/modules/clothing/under/shorts.dm +++ b/code/modules/clothing/under/shorts.dm @@ -8,25 +8,31 @@ can_adjust = 0 /obj/item/clothing/under/shorts/red + name = "red athletic shorts" icon_state = "redshorts" item_color = "redshorts" /obj/item/clothing/under/shorts/green + name = "green athletic shorts" icon_state = "greenshorts" item_color = "greenshorts" /obj/item/clothing/under/shorts/blue + name = "blue athletic shorts" icon_state = "blueshorts" item_color = "blueshorts" /obj/item/clothing/under/shorts/black + name = "black athletic shorts" icon_state = "blackshorts" item_color = "blackshorts" /obj/item/clothing/under/shorts/grey + name = "grey athletic shorts" icon_state = "greyshorts" item_color = "greyshorts" /obj/item/clothing/under/shorts/purple + name = "purple athletic shorts" icon_state = "purpleshorts" item_color = "purpleshorts" \ No newline at end of file From 88323ff86c6e5af4852f9be7c37c753c96304ee2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 28 Apr 2017 20:53:13 -0500 Subject: [PATCH 08/50] Fixes Linux buildscript chime when server ready --- tools/linux_build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/linux_build.py b/tools/linux_build.py index bf23b2c531..99fb652b94 100644 --- a/tools/linux_build.py +++ b/tools/linux_build.py @@ -47,7 +47,7 @@ def stage3(profile_mode=False): try: while p.returncode is None: stdout = p.stdout.readline() - if "Initializations complete." in stdout: + if "Initializations complete" in stdout: play("sound/misc/server-ready.ogg") time_taken = time.time() - start_time print("{} seconds taken to fully start".format(time_taken)) From fb924f1f8ddeeecbbd71a385de49cfef32c56db5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 28 Apr 2017 21:01:48 -0500 Subject: [PATCH 09/50] Blood Cult removals and tweaks --- code/game/gamemodes/cult/runes.dm | 57 +++++---------------------- code/game/gamemodes/cult/runes.dm.rej | 10 +++++ code/game/gamemodes/cult/talisman.dm | 22 ++--------- 3 files changed, 22 insertions(+), 67 deletions(-) create mode 100644 code/game/gamemodes/cult/runes.dm.rej diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 296b248938..3a80ed54b3 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -211,7 +211,7 @@ structure_check() searches for nearby cultist structures required for the invoca log_game("Talisman Creation rune failed - already in use") return - for(var/I in subtypesof(/obj/item/weapon/paper/talisman) - /obj/item/weapon/paper/talisman/malformed - /obj/item/weapon/paper/talisman/supply - /obj/item/weapon/paper/talisman/supply/weak) + for(var/I in subtypesof(/obj/item/weapon/paper/talisman) - /obj/item/weapon/paper/talisman/malformed - /obj/item/weapon/paper/talisman/supply - /obj/item/weapon/paper/talisman/supply/weak - /obj/item/weapon/paper/talisman/summon_tome) var/obj/item/weapon/paper/talisman/J = I var/talisman_cult_name = initial(J.cultist_name) if(talisman_cult_name) @@ -633,9 +633,9 @@ structure_check() searches for nearby cultist structures required for the invoca qdel(src) //delete before pulsing because it's a delay reee empulse(E, 9*invokers.len, 12*invokers.len) // Scales now, from a single room to most of the station depending on # of chanters -//Rite of Astral Communion: Separates one's spirit from their body. They will take damage while it is active. -/obj/effect/rune/astral - cultist_name = "Astral Communion" +//Rite of Spirit Sight: Separates one's spirit from their body. They will take damage while it is active. +/obj/effect/rune/spirit + cultist_name = "Spirit Sight" cultist_desc = "severs the link between one's spirit and body. This effect is taxing and one's physical body will take damage while this is active." invocation = "Fwe'sh mah erl nyag r'ya!" icon_state = "7" @@ -644,24 +644,24 @@ structure_check() searches for nearby cultist structures required for the invoca construct_invoke = 0 var/mob/living/affecting = null -/obj/effect/rune/astral/examine(mob/user) +/obj/effect/rune/spirit/examine(mob/user) ..() if(affecting) to_chat(user, "A translucent field encases [user] above the rune!") -/obj/effect/rune/astral/can_invoke(mob/living/user) +/obj/effect/rune/spirit/can_invoke(mob/living/user) if(rune_in_use) to_chat(user, "[src] cannot support more than one body!") - log_game("Astral Communion rune failed - more than one user") + log_game("Spirit Sight rune failed - more than one user") return list() var/turf/T = get_turf(src) if(!(user in T)) to_chat(user, "You must be standing on top of [src]!") - log_game("Astral Communion rune failed - user not standing on rune") + log_game("Spirit Sight rune failed - user not standing on rune") return list() return ..() -/obj/effect/rune/astral/invoke(var/list/invokers) +/obj/effect/rune/spirit/invoke(var/list/invokers) var/mob/living/user = invokers[1] ..() var/turf/T = get_turf(src) @@ -898,45 +898,6 @@ structure_check() searches for nearby cultist structures required for the invoca if(is_servant_of_ratvar(L)) L.adjustStaminaLoss(tick_damage*0.5) - -//Deals brute damage to all targets on the rune and heals the invoker for each target drained. -/obj/effect/rune/leeching - cultist_name = "Drain Life" - cultist_desc = "drains the life of all targets on the rune, restoring life to the user." - invocation = "Yu'gular faras desdae. Umathar uf'kal thenar!" - icon_state = "3" - color = "#9F1C34" - -/obj/effect/rune/leeching/can_invoke(mob/living/user) - if(world.time <= user.next_move) - return list() - var/turf/T = get_turf(src) - var/list/potential_targets = list() - for(var/mob/living/carbon/M in T.contents - user) - if(M.stat != DEAD) - potential_targets += M - if(!potential_targets.len) - to_chat(user, "There must be at least one valid target on the rune!") - log_game("Leeching rune failed - no valid targets") - return list() - return ..() - -/obj/effect/rune/leeching/invoke(var/list/invokers) - var/mob/living/user = invokers[1] - user.changeNext_move(CLICK_CD_CLICK_ABILITY) - ..() - var/turf/T = get_turf(src) - for(var/mob/living/carbon/M in T.contents - user) - if(M.stat != DEAD) - var/drained_amount = rand(10,20) - M.apply_damage(drained_amount, BRUTE, "chest") - user.adjustBruteLoss(-drained_amount) - to_chat(M, "You feel extremely weak.") - user.Beam(T,icon_state="drainbeam",time=5) - user.visible_message("Blood flows from the rune into [user]!", \ - "Blood flows into you, healing your wounds and revitalizing your spirit.") - - //Rite of Spectral Manifestation: Summons a ghost on top of the rune as a cultist human with no items. User must stand on the rune at all times, and takes damage for each summoned ghost. /obj/effect/rune/manifest cultist_name = "Manifest Spirit" diff --git a/code/game/gamemodes/cult/runes.dm.rej b/code/game/gamemodes/cult/runes.dm.rej new file mode 100644 index 0000000000..696dbe5ddd --- /dev/null +++ b/code/game/gamemodes/cult/runes.dm.rej @@ -0,0 +1,10 @@ +diff a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm (rejected hunks) +@@ -520,7 +520,7 @@ var/list/teleport_runes = list() + + //Rite of Resurrection: Requires the corpse of a cultist and that there have been less revives than the number of people sacrificed + /obj/effect/rune/raise_dead +- cultist_name = "Raise Dead" ++ cultist_name = "Resurrect Cultist" + cultist_desc = "requires the corpse of a cultist placed upon the rune. Provided there have been sufficient sacrifices, they will be revived." + invocation = null //Depends on the name of the user - see below + icon_state = "1" diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm index 2876e80373..2411f0c40d 100644 --- a/code/game/gamemodes/cult/talisman.dm +++ b/code/game/gamemodes/cult/talisman.dm @@ -176,7 +176,7 @@ invocation = "Kla'atu barada nikt'o!" health_cost = 1 creation_time = 30 - uses = 2 + uses = 6 var/revealing = FALSE //if it reveals or not /obj/item/weapon/paper/talisman/true_sight/invoke(mob/living/user, successfuluse = 1) @@ -186,7 +186,7 @@ "You speak the words of the talisman, hiding nearby runes.") invocation = "Nikt'o barada kla'atu!" revealing = TRUE - for(var/obj/effect/rune/R in range(3,user)) + for(var/obj/effect/rune/R in range(4,user)) R.talismanhide() else user.visible_message("A flash of light shines from [user]'s hand!", \ @@ -194,22 +194,6 @@ for(var/obj/effect/rune/R in range(3,user)) R.talismanreveal() -//Rite of False Truths: Same as rune -/obj/item/weapon/paper/talisman/make_runes_fake - cultist_name = "Talisman of Disguising" - cultist_desc = "A talisman that will make nearby runes appear fake." - color = "#ff80d5" // honk - invocation = "By'o nar'nar!" - creation_time = 20 - -/obj/item/weapon/paper/talisman/make_runes_fake/invoke(mob/living/user, successfuluse = 1) - . = ..() - user.visible_message("Dust flows from [user]s hand.", \ - "You speak the words of the talisman, making nearby runes appear fake.") - for(var/obj/effect/rune/R in orange(6,user)) - R.desc = "A rune vandalizing the station." - - //Rite of Disruption: Weaker than rune /obj/item/weapon/paper/talisman/emp cultist_name = "Talisman of Electromagnetic Pulse" @@ -379,7 +363,7 @@ cultist_desc = "Use this talisman on a victim to handcuff them with dark bindings." invocation = "In'totum Lig'abis!" color = "#B27300" // burnt-orange - uses = 4 + uses = 6 /obj/item/weapon/paper/talisman/shackle/invoke(mob/living/user, successfuluse = 0) if(successfuluse) //if we're forced to be successful(we normally aren't) then do the normal stuff From 15229c3ca1785bb6a77e30072edd65165094b092 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 28 Apr 2017 21:06:11 -0500 Subject: [PATCH 10/50] Gives Backup Shuttle Lighting and Fixes Auxiliary Tool Storage Plating on Delta --- .../map_files/Deltastation/DeltaStation2.dmm | 4 +- _maps/map_files/OmegaStation/OmegaStation.dmm | 14 ++--- .../OmegaStation/OmegaStation.dmm.rej | 60 +++++++++++++++++++ _maps/map_files/generic/Centcomm.dmm | 18 +++++- 4 files changed, 84 insertions(+), 12 deletions(-) create mode 100644 _maps/map_files/OmegaStation/OmegaStation.dmm.rej diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 2e275a194f..c46f6ea830 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -44697,9 +44697,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 2 }, -/turf/open/floor/plating{ - icon_state = "plating_warn_side" - }, +/turf/open/floor/plating, /area/maintenance/starboard) "bGN" = ( /obj/effect/decal/cleanable/dirt, diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index d841a0f335..0e3fea852f 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -72622,11 +72622,11 @@ aHl aIi aJs aKz -buW +buX aMR buZ -buZ -buW +bva +bvb aQL aRI aSS @@ -72883,7 +72883,7 @@ aLP aMS aMS aOC -buW +bvc aQM aRJ aST @@ -73911,7 +73911,7 @@ aLT aMW aMW aOD -buW +bve aQQ aRN aSX @@ -74164,11 +74164,11 @@ aHr aIo aJw aKE -buW +buY aMX aMX aMX -buW +bvf aQR aRO aSY diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm.rej b/_maps/map_files/OmegaStation/OmegaStation.dmm.rej new file mode 100644 index 0000000000..c23bd7e4c5 --- /dev/null +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm.rej @@ -0,0 +1,60 @@ +diff a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm (rejected hunks) +@@ -41755,58 +41743,6 @@ + "bvf" = ( + /turf/closed/wall/r_wall, + /area/engine/supermatter) +-"bvg" = ( +-/obj/machinery/light{ +- dir = 1 +- }, +-/turf/open/floor/plasteel/neutral/side{ +- dir = 1 +- }, +-/area/shuttle/escape) +-"bvh" = ( +-/obj/structure/chair{ +- dir = 8 +- }, +-/obj/effect/turf_decal/bot, +-/obj/machinery/light/small{ +- dir = 4 +- }, +-/turf/open/floor/plasteel, +-/area/shuttle/escape) +-"bvi" = ( +-/obj/structure/chair{ +- dir = 4 +- }, +-/obj/effect/turf_decal/bot, +-/obj/machinery/light/small{ +- dir = 8 +- }, +-/turf/open/floor/plasteel, +-/area/shuttle/escape) +-"bvj" = ( +-/obj/structure/chair{ +- dir = 8 +- }, +-/obj/effect/turf_decal/bot, +-/obj/machinery/light/small{ +- dir = 4 +- }, +-/turf/open/floor/plasteel, +-/area/shuttle/escape) +-"bvk" = ( +-/obj/structure/chair{ +- dir = 4 +- }, +-/obj/effect/turf_decal/bot, +-/obj/machinery/light/small{ +- dir = 8 +- }, +-/turf/open/floor/plasteel, +-/area/shuttle/escape) +-"bvl" = ( +-/obj/machinery/light, +-/turf/open/floor/plasteel/neutral/side, +-/area/shuttle/escape) + + (1,1,1) = {" + aaa diff --git a/_maps/map_files/generic/Centcomm.dmm b/_maps/map_files/generic/Centcomm.dmm index 6782e4cce4..e6e1e5022d 100644 --- a/_maps/map_files/generic/Centcomm.dmm +++ b/_maps/map_files/generic/Centcomm.dmm @@ -14883,6 +14883,20 @@ /obj/machinery/computer/emergency_shuttle, /turf/open/floor/mineral/titanium, /area/shuttle/escape) +"Me" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) +"Mf" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/escape) (1,1,1) = {" aa @@ -64444,7 +64458,7 @@ Fa Fh Fh Fh -Fh +Me Fh Fh Fa @@ -65729,7 +65743,7 @@ Fa Md Fp FC -Fh +Mf Fh Fh Fa From 480b4db2e1fc20b178e10c829cc87bcbd28984c0 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 28 Apr 2017 21:11:31 -0500 Subject: [PATCH 11/50] Cult Construct Non-Balance Update --- code/_onclick/hud/_defines.dm | 4 +++ code/_onclick/hud/constructs.dm | 18 +++++++++++ code/_onclick/hud/constructs.dm.rej | 25 ++++++++++++++++ code/_onclick/hud/screen_objects.dm | 6 ++++ .../mob/living/simple_animal/constructs.dm | 28 ++++++++++++++++-- .../living/simple_animal/constructs.dm.rej | 9 ++++++ .../living/simple_animal/hostile/statue.dm | 2 +- icons/mob/screen_construct.dmi | Bin 0 -> 12327 bytes tgstation.dme | 1 + 9 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 code/_onclick/hud/constructs.dm create mode 100644 code/_onclick/hud/constructs.dm.rej create mode 100644 code/modules/mob/living/simple_animal/constructs.dm.rej create mode 100644 icons/mob/screen_construct.dmi diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index 90c953a110..8c62d68963 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -111,6 +111,10 @@ #define ui_alienplasmadisplay "EAST-1:28,CENTER-2:15" #define ui_alien_queen_finder "EAST-1:28,CENTER-3:15" +//constructs +#define ui_construct_pull "EAST,CENTER-2:15" +#define ui_construct_health "EAST,CENTER:15" //same as borgs and humans + // AI #define ui_ai_core "SOUTH:6,WEST" diff --git a/code/_onclick/hud/constructs.dm b/code/_onclick/hud/constructs.dm new file mode 100644 index 0000000000..dc3cea7f99 --- /dev/null +++ b/code/_onclick/hud/constructs.dm @@ -0,0 +1,18 @@ + +/datum/hud/construct + ui_style_icon = 'icons/mob/screen_construct.dmi' + +/datum/hud/construct/New(mob/owner) + ..() + pull_icon = new /obj/screen/pull() + pull_icon.icon = ui_style_icon + pull_icon.update_icon(mymob) + pull_icon.screen_loc = ui_pull_resist + static_inventory += pull_icon + + healths = new /obj/screen/healths/construct() + infodisplay += healths + +/mob/living/simple_animal/hostile/construct/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/construct(src) diff --git a/code/_onclick/hud/constructs.dm.rej b/code/_onclick/hud/constructs.dm.rej new file mode 100644 index 0000000000..1ea29cde32 --- /dev/null +++ b/code/_onclick/hud/constructs.dm.rej @@ -0,0 +1,25 @@ +diff a/code/_onclick/hud/constructs.dm b/code/_onclick/hud/constructs.dm (rejected hunks) +@@ -1,18 +1,18 @@ + + /datum/hud/constructs + ui_style_icon = 'icons/mob/screen_construct.dmi' +- ++ + /datum/hud/constructs/New(mob/owner) + ..() + pull_icon = new /obj/screen/pull() +- pull_icon.icon = ui_style_icon ++ pull_icon.icon = 'icons/mob/screen_construct.dmi' + pull_icon.update_icon(mymob) +- pull_icon.screen_loc = ui_pull_resist ++ pull_icon.screen_loc = ui_construct_pull + static_inventory += pull_icon +- ++ + healths = new /obj/screen/healths/construct() + infodisplay += healths +- ++ + /mob/living/simple_animal/hostile/construct/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/constructs(src) diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 81754efc93..bfab19ba5f 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -532,6 +532,12 @@ screen_loc = ui_health mouse_opacity = 0 +/obj/screen/healths/construct + icon = 'icons/mob/screen_construct.dmi' + icon_state = "artificer_health0" + screen_loc = ui_construct_health + mouse_opacity = 0 + /obj/screen/healthdoll name = "health doll" screen_loc = ui_healthdoll diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index edb12a3fef..b879f1baf6 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -14,7 +14,8 @@ stop_automated_movement = 1 status_flags = CANPUSH attack_sound = 'sound/weapons/punch1.ogg' - see_in_dark = 7 + see_in_dark = 7 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 @@ -83,7 +84,11 @@ /mob/living/simple_animal/hostile/construct/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, tesla_shock = 0, illusion = 0, stun = TRUE) return 0 - + +/mob/living/simple_animal/hostile/construct/adjustHealth(amount, updating_health = TRUE, forced = FALSE) + . = ..() + if(updating_health) + update_health_hud() /////////////////Juggernaut/////////////// /mob/living/simple_animal/hostile/construct/armored @@ -268,3 +273,22 @@ /mob/living/simple_animal/hostile/construct/harvester/hostile //actually hostile, will move around, hit things AIStatus = AI_ON environment_smash = 1 //only token destruction, don't smash the cult wall NO STOP + + + +/////////////////////////////ui stuff///////////////////////////// + +/mob/living/simple_animal/hostile/construct/update_health_hud() + if(hud_used) + if(health >= maxHealth) + hud_used.healths.icon_state = "[icon_state]_health0" + else if(health > maxHealth*0.8) + hud_used.healths.icon_state = "[icon_state]_health2" + else if(health > maxHealth*0.6) + hud_used.healths.icon_state = "[icon_state]_health3" + else if(health > maxHealth*0.4) + hud_used.healths.icon_state = "[icon_state]_health4" + else if(health > maxHealth*0.2) + hud_used.healths.icon_state = "[icon_state]_health5" + else + hud_used.healths.icon_state = "[icon_state]_health6" \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/constructs.dm.rej b/code/modules/mob/living/simple_animal/constructs.dm.rej new file mode 100644 index 0000000000..d200533753 --- /dev/null +++ b/code/modules/mob/living/simple_animal/constructs.dm.rej @@ -0,0 +1,9 @@ +diff a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm (rejected hunks) +@@ -35,7 +35,6 @@ + + /mob/living/simple_animal/hostile/construct/Initialize() + . = ..() +- updateglow() + update_health_hud() + for(var/spell in construct_spells) + AddSpell(new spell(null)) diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index 455f893a5c..a810d3fd67 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -220,7 +220,7 @@ else target.lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE name = "Toggle Nightvision \[ON]" - target.update_sight() + target.update_sight() /mob/living/simple_animal/hostile/statue/sentience_act() faction -= "neutral" diff --git a/icons/mob/screen_construct.dmi b/icons/mob/screen_construct.dmi new file mode 100644 index 0000000000000000000000000000000000000000..82dbe19cf65bdc3b3ffb964a5515b95f0edd226a GIT binary patch literal 12327 zcmbVz2T)Vpw{HLuX`)mCDM}TjNG}qKfOJqPQX|rfM3hb_Dn+`|ix3bL1Oe&Qfb=T8 z1cU&A&_o~+$&mo>@O}S#=gylq^WMA}AZxF^_S!jXm)|Of7!#wr^fVka5D0``S4Z~FxUB*2u03Ss+ov99;$vuivrj_%;9(J235H~-wPu6Zi~j6&P% zk+L(h8N5d339{LrOBSSaKIJjRyvxz z^IA@vtGB-&Dt-vgz*R3ajQ>(PqHTFhw>Z&giGo0QA-bCCrUCDEa>IN~*P3?QUNOJW zU16R!C6CoK6nn2_IsVSqCga?85}yi-=P!{aaSxG<3I|Ku`rnJ#u^@N1md`3d<{!8j zo~1ME{~mq!oPnm+5MGx|z5b_yGfdr0QZM|Gj&z^S)nsaubI(sR1OMDU%JpwM>iv2A zOYM(;xg~$F^BI*aH_OAzi?NvWm1l9Hh9b-n zL1Nq|R7^0>;U9ZWg0(9X9;!g@T|-2btaoQdR(q^*WqIHRRRP}6L2XPYe9nMG(Qoh& z21A}IzHR?(Sp$K9lTw6nvA@B*8X_wh=Epu~DkZ)r162C1g3?k@`GQypjyIT2NvcWb zPJevM&dH!K*vB7h{pCTNZ_S)>owwc(G-5V1Jl_>iwnoj@Cc+e@D`_IsQAh?`J z%9C0E@VoS{N`{27ghQ)+K*gyUT(Sh3QmI$*BN&hF^+UQG*f^!_mq%oaLEBaPIJN^CbPBFJlo|mY=P(luC4FKE;Xyh4*nAGQ}-nprbx=1Sc7vxGNBjPzIttr zf9P|rIqx%7YBt;AF9EqSLk!jwm^pmqy+B6O$hj`A{4>z7~ml?aRH~n&MSSM)N+E>;|tYjg+hz(_C@!Q)iem1e(PF$*W#&y8=NDQ9(FoN&vAN zrvTVJ+t?8mHW~&s3x(*QuRNkZQoL}|lk;RCtOte)WK9*pFm@}?6N_&gOSV$8s^%MD zPEQUK$Zlp;YJb~xLS(TIE~fyjqQsqe326sKgcK-#^&Y23tCRE1IG7|RIg925g4G{- zco8||pCQYggC6mi9YLkGJwgevJtWM3XAMiw8WU?%pytb#xDn{9O_KS!p1wkLImhXQ zOe+K!gvr$*98sSbPpDr=NEce5Tv3~hC%68Kc68eGknY4`oSc6Tu?=Os<6lOy5*ej~ z*5YtwX|45liMGz#BWqw!YV9j_dlnOC?FJHwKc0z@hTvHCFO83k)$!m}+YCZ?*ABi&)gX?MuCX|G%d5<#&5*#wj%@(w9?6!7xr@h5u0gO`S0FTo=%mg za8$B!r>gEUhLsR~N%r=;O7-H3{t=m`TS#FqZ7)qBk|HIFlMu7wysGWf(e_bf#NPpW z???QP*NH?lIVKX&BMyNLBceaEGsi-vF|$0M{QE-u?u}HiPt#la8K2T}4%^Dt%%nC6 ziiyTc!s6Oio6JY(IDmL$9>+-7x4ecNqcg$DXqAmLvEjqdOmks z+^5S0{}_6L;?C@i^aAXLdNCO>S-p`)#PM9oif-%nV4BnV%!Va}z%q+{*1awA(JZ`hJ< z24;~_uGZvBp&EI`x!Lhj6f}J<>I?X(!Aqr1RP8d0g=Fh{dtb;J=6wvU#~^@Iggcr{ zGU?C}(PB7L%R>J~;!a6A7laUC-1Gk>B9v2+fY&!DvGRiqVO1&-N09+>k^afEY581a zemK5;tWI@gKv|@}GAb9)At@w#UR!iuUPy$yKp9mN`K@0!SOqj-=d(sGDgTdFQdbgR zKkG_4>*5a4FAe$Mt>cx9u814x*dCGG#s@ZnN>7DTwqzpqLtmWMCn2WXE+jXy>}c@- zr4yIb*+A-ynST~gGlaRjyB4he;ypE{ei>wY5m(snpxBs&v-h+(p{j`OD2cpVtN#dC z-*^At7#B+c(q1_yDxl}hZuhxZK^qELBu}VsC))@y1|elXn6(556kiKpK?|eZQBx6m zAt52uIwW2n9`rSsmj(;QU89>G=GT`2f>=Yg35b?l_%%V({c=H55J{sEXHZv0%_5ID z6DL0t?>rNiyBXRasMh|sy?lz`BOYshNT#EDftNvdS>|Kh6v2*on?G_QQ`~$cc$x5q z*~p>!p~`OL$esHN37d}(TG^og2*&;^sFg`dX4hkbE^N5rHt_S_y_$2WcL$=--hbFL@kOfT-&rXLRmnON%RYQ>py2BC;8S0!0agf z>0b+s+E&ZIjke`9qato`JciI-0iD=kn4;iL1Tmao46Mox!@?E8GsrDZj7GrxCqSZKQkx+O8_-z#Y?ENlG#f3xJdyFHslb;N#T}w;6p{c{^twKlJFskp!K$1ctmvYo@LVRlL z`jEZ^<@Zxl@n{AqcG5!DIKe=`daUF7h<14v+rOS&IqZDxUu;TW#QR^T-4eBX{Sog` zUju7cp;;!A6sLbHt%!~q_ZZstUY>DMeMGHh0W{HzJT1!+akjyYDdc2i;-{yB;x-R{ z){JPAyoWN3IwEqBPe2R&PZ!H5)x(vTyam9>5;opyiQU+`_h@j+0=5%7NGx?EBeLvK zDxYvH&CJ+5Pp~*Klp~GI@3&F3{zZFK9t@o7bDkvlkxr>eC(QuiD?V+RC6w~!7c7RM zwOigl#gjl0m5Vg|k9*aUVN0unn^$n?VV&A;-8z{zS3Y5c5Hq&6U{v2udE{&#Nnun+ z-U05HNNqKn&Wa|FPO^&vs`7OCN)#9$B3r6CWY%&{OLK&ZFIeZ#YJg&pZ`VgfgPaBWfuAWk} zGD-O2?HOQ90XdWrf1`OV!{#xm@jDfCvrT38;X79#ZZnbx>TZhar&@p!57lp+`Ya*F zF?vAQbWhkGwC9v=-*^)%FLm;p{In~k9nfymmO+~NJQjVP%>K!`(Pwj<@l^?bcBMwO zYj#}kFfKK7j2861mQ8N&u^PX>k_8v$hh|BznFF*qP9;u8&=o6a3_XjK6s3^Ds)QQF zTgZ}kl7fBlxZsLOE#HC4leomnFsX(TnpLSGefrX~fJ8|! zv(3*)GI#-#gr&V|UN3&^L6ahBzviNBHOsx$gLvP_-gG&4Zz5&UV-2*-8KC-7-AkXks%2m*2%{vmy{>`-p*V(}!;yXX_mGY@C58~ah0 zLx}V(9*ro*=~llvCp?CDAWP69Ou6Gua~`1rGh9!OXmL3iql1S|UdrIYw^FtiNs9m6 z-SzJZGd{)NFVcxJI8Vo?I-dhax!HgU6aV9u%q*U&Ca_)XZm>~c?iG^16UR#mS zDvWY+70x^5bH`bjCdlBTR;-`h@g})T*ZQlMiC=NMs>F$r@{vm%K4qJ0$v5NUOSrR7 zOfLwynuDSE_0kT7)y?Du?V3x*qV+1_74*cF@HH{kV~v{wYsxD0m!D|G)xReTs(+vMlaliHx(m~tJ8!6uj*ik0p~Pu= zBExGF$jmg%46b-}^d|B!L{!F7cN#Y0x?4V%&6MH`Kg*c-bygD08@nwu4=Y39-&>$sIADHSQyv7LFuiY>|nNU?+76pO&t(i{jQRv?X|4LTV>ypK{kvu~q1#V}& zBG)241qyIy;E;p#R_Em4(5`IW5`na*-gt1e4Zbs1cRB1TA*7$-ieIQ4RL-ZfA&wfW z&HU-8w5+0|KSe0v^qlS6svV;G-JW_Z6&L$_B9D)wr!q=Ps-8_Tx3Ow42`5_>I|0HW zv2;WW6Tt>U+=7I>ttuxrUw5$H_tomDU)he0f70#G%sx-Ac0g)MM~b~3()*26J0(-w z`#-5J?3-<#l01*Eq3rhOSP)xDf`>|0{jx!X6Vk$);hXRb$jy34y0bRyj`9%Q5@#b`$z-%~S^sXH}DBgKo z8i2g4DhY*5PEU8ZJ-cEDlq8#*nH7Becpfr}M#p^oDCpzk!<#dlEvNVU&mWQ9Cv1f- zt@|O;`CF=CPq$3@Q*>_&WKjmmtWbTY!l!NSG+^q#COrf;>||wSU7tLWwVRoni+!bfOdm!iE$H+1PbiVDTlFTxYD{a~%o+sM~f)^BId#fAd!a6O32Omp!%9X&lTfcdIy zbCRc`;zZzLmz)`uv^XGDhL`Q&3m2$bLptf@6~1X9GM+X6X>xt*n@SG#ext)L8FqpI zA272=*%a826&3sQ!wOU<6_++f8|K?bx{Fwv=XfK6aj0>bKZG$i)2V4!Gx4n`PYk4q z4qBNv;Ri%-NlNmDB!&@+C)`Xy!xa`%z{UT{`0bFJvtG{*4JF3UI-n-mZ zk|t`Ai2o6-{yMB>W^yvWriQ7-j|FMW&!|1)@#iO6dnR6Aj_j@cKJ@d?jW^~REMbSg zsGSG|!Nuq)Zes8s=4d)QAdu;B=`t>JfScaE3puZvuGHM z;eO)wma?0D264Y>!AR)u(kq5|-RNJxykul$*%t(%l*SKsP4}z)Gv&>N>IaJt0|zx$ zSn6tOCYZuLw)2b*wdpSH?)AyjZS;PEOO)z-(4eP1#EJo5eC#t+Z;Dyhd!{y<$t?34 zeWQ@fla3e48-ov?rp)F^4%3Vuk8jH0zUO*a72(nrZXn|=`1XQnNiV_y$JTE0wy*7& z9vRiucZ5KYzBdzw6$Y zLF4NLGyTM$=RPs;Vz|b^{odTH1mtKE#$@Y9)INI_0fcqVxJiT_h8`xvW2;;cBaxj{ z!9{3CUdR-Mxy@!SIq6;Yy$^pz$NK}ndnW+Lch4ej##W+CR1gOseK)N^0> zF*JhpLV6!JKV8Rf%k02=i>Hm9q2rVMbrF_y#G!v%zt37fpZ0;@5qfa)^i&`lzR3O+ zK%XeC;w5O%2%E=|_v&AY?`E+Wbx!y$D#hPDiAeU>k%)J5w}JSOX!) zIH!Tfo)n|zCNL>B7NK--D3lm!bwU$Q&qUsRoC~g&f|rAVsi*O(i-H-poi1E%TULGS z$K#BoKmG$mz!!R;u%{{5cGbR4P&nJVC#>sbTVcCJ0!5M&e(L~?eGGl z&W8G^X1c114+1}&F0f`p}|_*??zNwfm{~2((26W4=3hzZW77p&^9Bg9CQk4?aq^o|I&38m$KAoEZ&X3mne}ip?*XNOVzk zW4;kfBLn0S4idtcw*|hU=JwaJ{fahlh3%j^sZH0*S`!nYT8qbwh8OZ(yIy{dzx$s4 zJ9vmc-pUYG4jp^+z5YEgjIsaLAeF}jYi4h`p0@Q}R%R%qq;hvl(uh3X9~#pWrH+iq zH-7}8!^W>)a=A_(;59wnQ?fldGehMmkGb!&bhTHVl%sY;RHf*b| z>>`rI!6jMXtcATDfpGN3M%ibp^Y6zBc&VjFK7UhQ`H9$5^}ZnK&N63jY;|$Sn&=2c zY?{e|RptF|O?EI7lqGoq8e>Imo`$$sQ|+2T9kqXp+*a#h%|~Fd>`E3C3;o0(fwe!%@bWc2408Y z&6ePSs_eIPOludH`b`TJ?0rp~MwIot!?T6`be9JmAYG4QKo z-Bjf;)3}%9HCH5{Iv=o3ftM9&P#iC3Oj7vdQw`Q)FhCCjzcS;8Z7{;|f7KY$#qf6b z!+R}+hoaOH@D3@qLe+Ul$g?NxOn!OmWMjANWl$-z6wn8H6?~zJQbP^r)N%+_AD+DY zzMl*V-z8ORx$s-wzIr0SoBcM=!^1(!Re`8csS7sl3_7Vr#4N@N2_E*9KsWJNW0V&4yP@C+TYq4!euT0Yzm2;}3;S zo7P}z{)eHrQN;@A%lilWZpAe4%Y$pdZ$EKbT^Px1lz{&R^==0L{rmUL;M$N_{yfRm z)^=_Eu4r_d|L%ziu&{7h)d0FMFM+c7U|#f?o|98MP(RZaskMSSC--D7qC1W)qg5zl zaCx-gjuu5wf6^b~qecLor^qUP3K(=Tq+n)d);Zg3J{im|E+$6OvSr(aZH!)Xl*(!) zE5{es-E3yHwN2S4F5M`6^jnDw9BJpn_2*Z4yL9ifg1xX>SF+}oLo6_4(#7z?c=uW% z=*;m=X|xVRRJNTcCHFt(%`y;l$ctFUi2EQ=WggZ0=PQ9Ryx^~ISZ;jH&VuzlIaT<| zaX=3RviafKUV`4$eOm(H@f9C~w(o36nZlFX7Kbqj*Y?a4a9F`r*z0EI?Dvd{Sh*=IzCPbJn?lc8C zLZ?N#MDz*DeV-FUislaL8+-qC!dK;r-7#t3*J=!UF0^Zv3T=bNJ^D04`cj3!dEtz~rj@cpzQD_M5i$f_!E@m!^KACxE)`wH zc|S5G?nuSZ3L59Neypx$WV7|T3_T$_tUgl&e|{hc!`d3uUMPVXin=MaYR1>Fhlru< z^foA2@gD9(y7Bk8{(g)xqN9=L4FmaLrN6H)8RROV*s01<(8QXWUx;jpxOPIuo0!I0l?_laFay03d5D@eOBo~NSXBIIOeqbm1OMBf6* z{rrjCDzSxklO8X&241<+*Ko1H7^s8}bXC}n>JWmpMiJ4F(eRcOB}pCXOptUmzQoY3fI_Qk%vyt?9TjA(By zm@9K7k20>`L&7)bqEGZ)mVPTAdHWpDAh!Aw0x6XGleEi`Lx>_r0bj$KS=2m+G|=-!M>+|H{L{N_B2CGZ1lWQC<%TpcxX5axR9h?5>rwc5zWRnOXaho&K|RI>mb z7Ct_;+ZRnuc{2tTS13A+(xp;uub&fj#-a+#EFci0wi*oaaAS)F_uH|WWxx=@Tk!!wh7{^lM#Q~WtNSWa7OSb5==lJMg5FOsKq zIwrBwxbi~6=?}cbl4yVFYaYh7PoJo3Tt+TN@obXQTQ9WzVXRw(E#F z4EwpTLHzvwD-ZWH1d8}m{_Ij}r$BxcSrH|!JZ?skz#D!Ngco8D*__;}^lgBsBZISE z)DNv;T8K`{Kl-A0V0*aChZ~-)ZA)Rj8Tc}mq=XE*n#ulM;_kz8>R4R*noBS)lQQf} zyG1;ObTQ#S9*7fZUHaL{oF@4fcB%tjRW5j)prE;zJZXo8y50F|X3Sa!-{#Rx-Smo(K#Kd?nTv~d4qF)`8Zoq4S_?`?LlY zgt<5I(U@1`db1RDUL5D*zh8mzNVL_%#JJytW-O=r<^$hlA zf7zj7huH59I6jymTNQeIwxp6g5QBWPlj&)5A3wkMDAeLc*n~Ov-;kqU=jQy@teb|u z0O~X4R;pzo{uRVm)V1`hAkU5Ps=~T1G<0u9ka0Gi)PP9Z%ilJ~oPg!V>o4kS0CRCB zY1NHpvu%H9s%pmIHEE@6_}Ys1L}#Pd*xx4f;ij2sx`E)U6d~i4)&7(y0Fs(%9CSSo zmGBu~$U=|v6y@lzBzbDRQk;*)$zw_$U2J#^49nBuo{DB;NM8owSB93&Wf~Coyc*u$ za}CaKJg;LtCJq?hQowga(vHo{WXR`dkX+~ebH1(o;Suf6JM3cfD$Hp!Z@g<7`W3Mc zUE4EzKZ5g+QnK523WZz~P7zVf_Wta;XDSS!;~lilpaVcRzOF=$jGRB; z-M|Q+`kctu&#z2PwmPgUC`0F(!IR)DIkEW^Uo%GM{1B1-EsnUnw^^sYzte>&3tDtT zWP+f3Ez2O=TFop}Mu}yFcA(pzvuNUE-KFrszWx5DX+Rf4v~lsut5xN<7wOn?UpK_Z8!nL92`Afz%BW@^zvkKRTvblX z1svI{be`jes=UaWx?ZdUsb|gvqGhIZ@=KL{Y7WDb57y(KosClZi=-(A7H@9Z44-)* zsQE+hn10JXgp-g<)i?lVP(Tml8Nb)6-(R34Zb$#+ce9@gr%F6>b#K~&p}Y51Y6-NsLSgS_u$ms5{P8Q84851y_`IBistuRb5C5bqWzR|> zjxPiXy7j|1&sxedgw1&Vr0Bvl)fyS@L?dYK<<@~O$W&)Ge&{fK5{*)1X^9=>c=Nj6T-db57_Ii5;58hjbY z2rScB0cWEJMGB_D60Jh|0Ng{Z^5`HSw3c(mMc+#8?4L*zDBhTBCLinhJaHOA4#Rf@F1 zYx1w=83>L|O+{8zh~Knn91S>G=yZEG=ilzAkxL4Ro=`wPA3YnPq%ti?cs~+FUT3UgAr)+y=%=uB zy8a~aBz11kyK_QSBJ1nTyM9&oULZs-Kv*m$mp;14r48AocQ?c&(5zakLrPi^7k`m5 z(v#6G&m7q}nfn^ZA#XCDvuDfShMnpA`M9u@XrHEQ+GCN zFx-lRN&dgsjw9;WIdI~!FhX@^W5JxnzBf-@P!q-1p1N33cS)c5+*{sv>fi`DPzRj2 zbPa2@w)Xr|%dtMlu7a&#x&Ka&a0iVvri1f~|K0BSj}Bxkk2Bz4fuWda&cy_MxMg1( zBo*@fe&{-P`8-f=mOx!Nm9iOgNIo<9Ow45U%*oklhUW<5o25Zzo$F9n0LGTkETS>R@+rv{tGg=goyt zdDqi*7dbjkd5oS4JSk=m!+TMQFFmK(rVfm^F z+dRP<`fNX~k^KaZD{T#`2~j+%1s`ZjSE4OXMg{E`LA7BE^GtL6L#R$S(qTieMot7e zOd$d8e;6T0{T$S=D~*{wz3*A7I-L;ikB6529oY zjnt}J=kZ!O)XNP`6&hPxGc0r_(Qo7I1>7rX^625SAX`-s=6hEH} zs>W|V9OshQl^H5dgDIr@jEE}J6E;^Ts@}m*yo&Du;O*$xh%f{0%*U%Z4KUk){z9S= zKUEdGH5|?d)lbC>!pZ8-Q1_2Y*ggt;Op6zLpoX^~ofWZ*vLs|J{~F|D~|5 zH`-Pd#vk5j!{!^D6JJ-WxT%_rK@{)Xzg$sHU|_m}u}5U)6OFKi=gdQ+_w9SYD>;|a zmx;|8%#P01x;^NZ*He7P#3pzFmD4EsV$ZfKlKSPYptv6In*U`s=g+AyeG@?x-#gQL z_gh25F3?tbw$wb9o*rJNR!yZ&u79v zXJBSVe+x+gUn2Nl4mu~2ZqxM-&v26?b1I)$TtGOZ>dB4~c7R;X_T0e8(2SqCYTG;f z5l1$vp}djDRJQTMq(SKMWnr0+U~6yH5+i8jNBF$i4~Eh-*abt3oC!#!7#E=B3mbXv zdjPZro8Y@!hp+NP*A8W6RF=e5vNFQur2-9&acmfmASn!ydm;tsKFrP=YQP5@7|XE^ z?8cGpqK>?<6s>z5v=z|y)THmJ!xDEl-@b!SjK00zWQMjik%EDdjc}3@ z`+bqYVdA4H<7`8Su@sA2xg_GdtNP=43^juq?iaCKV=bEpQhe-X$u`80}58tMf!W~h6{|15i zE3!B1F3QgkqZ>xC<;1-_O2YbQJI))R?pw42@}|LQo;E_IC=@ru1T0j6v48=v5%0!o zn(^LpRL4P`iHtC=uBd08O$h!67QnPFu>lO(=JUe71sK*c362L$XnHSvH?~!_CqE(X z_m)&v%E$K#*u}+Pc5Cf#$dwEgb|>RYkT+y*cmv$ndg`Zh@I~>UC>7V z%}<%pie;{^#ZfU23+1t_mZvmcs&sGaTK_yvdd~_PI|Vd$EkkW#VW%YWrfSYC`FN)n zRUGl^4p$xctw4kA+!XGX^vU5#$Vo!JhTv@{4>4hFtK5&byG9PicB?wfW%FkZS*(qC z!#G~HAz?{^j@J`dD6@Iq4E2tjOLl#isrdAZqfq?9XMy2}*ve(;B6I0t(hqykiuY&7 zgLo~{dBo)3$kCNN=aQ6qR8++~L%UyEQ8Iv7A+w3i?74Ga6I-K$HAL-1+{=P5cSH(s z)*b!*tGDt}TiO14f;{k8twll72+V^1bA&uxgR+1hI2YPxmUshhx10Uo#nlvWn@6C9 zR~|sS;vPh+zb}~ut%jgCM6z?q_5>Lb3irVT#Fe)_Iq!cvj!9`2T{<`=Q&P>j&DI_w S0saF3L|4m5vqIz1%l`%K2^yOK literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 1647912f6c..f1439e8d5e 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -137,6 +137,7 @@ #include "code\_onclick\hud\blob_overmind.dm" #include "code\_onclick\hud\blobbernauthud.dm" #include "code\_onclick\hud\clockwork_marauder.dm" +#include "code\_onclick\hud\constructs.dm" #include "code\_onclick\hud\devil.dm" #include "code\_onclick\hud\drones.dm" #include "code\_onclick\hud\fullscreen.dm" From 101f1337a6d48fe29d180484d5f97b486352fd32 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 29 Apr 2017 07:43:07 -0500 Subject: [PATCH 12/50] manual merge --- code/modules/admin/verbs/debug.dm | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 54be219a48..1817f2024a 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -83,17 +83,22 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that to_chat(usr, .) feedback_add_details("admin_verb","Advanced ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -GLOBAL_VAR_INIT(AdminProcCall, null) -GLOBAL_PROTECT(AdminProcCall) +GLOBAL_VAR_INIT(AdminProcCaller, null) +GLOBAL_PROTECT(AdminProcCaller) +GLOBAL_VAR_INIT(AdminProcCallCount, 0) +GLOBAL_PROTECT(AdminProcCallCount) /proc/WrapAdminProcCall(target, procname, list/arguments) - if(GLOB.AdminProcCall) - to_chat(usr, "Another admin called proc is still running, your proc will be run after theirs finishes") - UNTIL(!GLOB.AdminProcCall) + var/current_caller = GLOB.AdminProcCaller + var/ckey = usr.client.ckey + if(current_caller && current_caller != ckey) + to_chat(usr, "Another set of admin called procs are still running, your proc will be run after theirs finish.") + UNTIL(!GLOB.AdminProcCaller) to_chat(usr, "Running your proc") - GLOB.AdminProcCall = usr.client.ckey //if this runtimes, too bad for you + GLOB.AdminProcCaller = ckey //if this runtimes, too bad for you . = world.WrapAdminProcCall(target, procname, arguments) - GLOB.AdminProcCall = null + if(--GLOB.AdminProcCallCount == 0) + GLOB.AdminProcCaller = null //adv proc call this, ya nerds /world/proc/WrapAdminProcCall(target, procname, list/arguments) @@ -103,7 +108,7 @@ GLOBAL_PROTECT(AdminProcCall) return call(target, procname)(arglist(arguments)) /proc/IsAdminAdvancedProcCall() - return usr && usr.client && GLOB.AdminProcCall == usr.client.ckey + return usr && usr.client && GLOB.AdminProcCaller == usr.client.ckey /client/proc/callproc_datum(datum/A as null|area|mob|obj|turf) set category = "Debug" From 0cf401934b7e987830aa72a09bd7cebdcbbc54f0 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 29 Apr 2017 07:57:16 -0500 Subject: [PATCH 13/50] manual merge --- code/game/objects/effects/overlays.dm | 4 ++-- code/modules/station_goals/bsa.dm | 4 ++-- code/modules/vehicles/atv.dm | 4 ++-- code/modules/vehicles/speedbike.dm | 11 +---------- 4 files changed, 7 insertions(+), 16 deletions(-) diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index ab17503447..3935b86c92 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -31,8 +31,8 @@ . = ..() deltimer(timerid) -/obj/effect/overlay/temp/New() - ..() +/obj/effect/overlay/temp/Initialize() + . = ..() if(randomdir) setDir(pick(GLOB.cardinal)) diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index 53a7198302..5f808035fd 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -161,8 +161,8 @@ return locate(world.maxx,y,z) return get_turf(src) -/obj/machinery/bsa/full/New(loc,cannon_direction = WEST) - ..() +/obj/machinery/bsa/full/Initialize(mapload, cannon_direction = WEST) + . = ..() top_layer = top_layer || mutable_appearance(icon, layer = ABOVE_MOB_LAYER) switch(cannon_direction) if(WEST) diff --git a/code/modules/vehicles/atv.dm b/code/modules/vehicles/atv.dm index 4450f6bab8..35aff0867f 100644 --- a/code/modules/vehicles/atv.dm +++ b/code/modules/vehicles/atv.dm @@ -9,8 +9,8 @@ . = ..() riding_datum = new/datum/riding/atv -/obj/vehicle/atv/New() - ..() +/obj/vehicle/atv/Initialize() + .=..() atvcover = atvcover || mutable_appearance(icon, "atvcover", ABOVE_MOB_LAYER) diff --git a/code/modules/vehicles/speedbike.dm b/code/modules/vehicles/speedbike.dm index 21d8cff1be..15337d8a28 100644 --- a/code/modules/vehicles/speedbike.dm +++ b/code/modules/vehicles/speedbike.dm @@ -15,20 +15,11 @@ overlay = overlay || mutable_appearance(icon, overlay_state, ABOVE_MOB_LAYER) add_overlay(overlay) -/obj/effect/overlay/temp/speedbike_trail - name = "speedbike trails" - icon_state = "ion_fade" - layer = BELOW_MOB_LAYER - duration = 10 - randomdir = 0 -/obj/effect/overlay/temp/speedbike_trail/New(loc,move_dir) - ..() - setDir(move_dir) /obj/vehicle/space/speedbike/Move(newloc,move_dir) if(has_buckled_mobs()) - new /obj/effect/overlay/temp/speedbike_trail(loc,move_dir) + new /obj/effect/overlay/temp/dir_setting/speedbike_trail(loc,move_dir) . = ..() /obj/vehicle/space/speedbike/red From 991fb8335c8e71d0f0c79141c4fff6e8c0928c06 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 29 Apr 2017 11:42:28 -0500 Subject: [PATCH 14/50] manual merge --- code/citadel/_cit_helpers.dm | 6 +- code/controllers/subsystem/blackbox.dm | 260 +++++++++--------- code/controllers/subsystem/server_maint.dm | 19 +- code/game/gamemodes/game_mode.dm | 20 +- code/game/machinery/telecomms/broadcasting.dm | 25 +- code/game/machinery/vending.dm | 4 +- code/game/objects/items/charter.dm | 2 +- code/game/objects/items/weapons/handcuffs.dm | 6 +- code/game/turfs/simulated/minerals.dm | 4 +- code/modules/admin/admin.dm | 42 +-- code/modules/admin/secrets.dm | 54 ++-- code/modules/admin/topic.dm | 30 +- code/modules/admin/verbs/adminhelp.dm | 18 +- code/modules/admin/verbs/adminjump.dm | 16 +- code/modules/admin/verbs/debug.dm | 6 +- code/modules/admin/verbs/panicbunker.dm | 2 +- code/modules/admin/verbs/randomverbs.dm | 66 ++--- .../admin/verbs/reestablish_db_connection.dm | 4 +- code/modules/events/_event.dm | 4 +- code/modules/mining/equipment.dm | 6 +- .../mining/lavaland/necropolis_chests.dm | 6 +- .../chemistry/recipes/slime_extracts.dm | 2 +- code/modules/uplink/uplink_item.dm | 10 +- code/world.dm | 7 +- tgstation.dme | 2 +- 25 files changed, 301 insertions(+), 320 deletions(-) diff --git a/code/citadel/_cit_helpers.dm b/code/citadel/_cit_helpers.dm index 6e4ea762f1..db0626fa9c 100644 --- a/code/citadel/_cit_helpers.dm +++ b/code/citadel/_cit_helpers.dm @@ -117,7 +117,7 @@ GLOBAL_VAR_INIT(dlooc_allowed, 1) prefs.chat_toggles ^= CHAT_LOOC prefs.save_preferences() src << "You will [(prefs.chat_toggles & CHAT_LOOC) ? "now" : "no longer"] see messages on the LOOC channel." - feedback_add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/togglelooc() set category = "Server" @@ -126,7 +126,7 @@ GLOBAL_VAR_INIT(dlooc_allowed, 1) toggle_looc() log_admin("[key_name(usr)] toggled LOOC.") message_admins("[key_name_admin(usr)] toggled LOOC.") - feedback_add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /proc/toggle_looc(toggle = null) if(toggle != null) //if we're specifically en/disabling ooc @@ -146,7 +146,7 @@ GLOBAL_VAR_INIT(dlooc_allowed, 1) log_admin("[key_name(usr)] toggled Dead LOOC.") message_admins("[key_name_admin(usr)] toggled Dead LOOC.") - feedback_add_details("admin_verb","TDLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","TDLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /mob/living/carbon/proc/has_penis() diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm index d6cdcda6c1..1b14b352df 100644 --- a/code/controllers/subsystem/blackbox.dm +++ b/code/controllers/subsystem/blackbox.dm @@ -1,9 +1,7 @@ -GLOBAL_DATUM_INIT(blackbox, /datum/feedback, new) - -//the feedback datum; stores all feedback -/datum/feedback - var/list/messages = list() - var/list/messages_admin = list() +SUBSYSTEM_DEF(blackbox) + name = "Blackbox" + wait = 6000 + flags = SS_NO_TICK_CHECK var/list/msg_common = list() var/list/msg_science = list() @@ -15,21 +13,47 @@ GLOBAL_DATUM_INIT(blackbox, /datum/feedback, new) var/list/msg_syndicate = list() var/list/msg_service = list() var/list/msg_cargo = list() + var/list/msg_other = list() - var/list/datum/feedback_variable/feedback = new() + var/list/feedback = list() //list of datum/feedback_variable -/datum/feedback/proc/find_feedback_datum(variable) - for (var/datum/feedback_variable/FV in feedback) - if (FV.get_variable() == variable) - return FV - var/datum/feedback_variable/FV = new(variable) - feedback += FV - return FV +//poll population +/datum/controller/subsystem/blackbox/fire() + if(!SSdbcore.Connect()) + return + var/playercount = 0 + for(var/mob/M in GLOB.player_list) + if(M.client) + playercount += 1 + var/admincount = GLOB.admins.len + var/datum/DBQuery/query_record_playercount = SSdbcore.NewQuery("INSERT INTO [format_table_name("legacy_population")] (playercount, admincount, time, server_ip, server_port) VALUES ([playercount], [admincount], '[SQLtime()]', INET_ATON('[world.internet_address]'), '[world.port]')") + query_record_playercount.Execute() -/datum/feedback/proc/get_round_feedback() - return feedback +/datum/controller/subsystem/blackbox/Recover() + msg_common = SSblackbox.msg_common + msg_science = SSblackbox.msg_science + msg_command = SSblackbox.msg_command + msg_medical = SSblackbox.msg_medical + msg_engineering = SSblackbox.msg_engineering + msg_security = SSblackbox.msg_security + msg_deathsquad = SSblackbox.msg_deathsquad + msg_syndicate = SSblackbox.msg_syndicate + msg_service = SSblackbox.msg_service + msg_cargo = SSblackbox.msg_cargo + msg_other = SSblackbox.msg_other -/datum/feedback/proc/round_end_data_gathering() + feedback = SSblackbox.feedback + +//no touchie +/datum/controller/subsystem/blackbox/can_vv_get(var_name) + if(var_name == "feedback") + return FALSE + return ..() + +/datum/controller/subsystem/blackbox/vv_edit_var(var_name, var_value) + return FALSE + +/datum/controller/subsystem/blackbox/Shutdown() var/pda_msg_amt = 0 var/rc_msg_amt = 0 @@ -39,30 +63,27 @@ GLOBAL_DATUM_INIT(blackbox, /datum/feedback, new) if (MS.rc_msgs.len > rc_msg_amt) rc_msg_amt = MS.rc_msgs.len - feedback_set_details("radio_usage","") + set_details("radio_usage","") - feedback_add_details("radio_usage","COM-[msg_common.len]") - feedback_add_details("radio_usage","SCI-[msg_science.len]") - feedback_add_details("radio_usage","HEA-[msg_command.len]") - feedback_add_details("radio_usage","MED-[msg_medical.len]") - feedback_add_details("radio_usage","ENG-[msg_engineering.len]") - feedback_add_details("radio_usage","SEC-[msg_security.len]") - feedback_add_details("radio_usage","DTH-[msg_deathsquad.len]") - feedback_add_details("radio_usage","SYN-[msg_syndicate.len]") - feedback_add_details("radio_usage","SRV-[msg_service.len]") - feedback_add_details("radio_usage","CAR-[msg_cargo.len]") - feedback_add_details("radio_usage","OTH-[messages.len]") - feedback_add_details("radio_usage","PDA-[pda_msg_amt]") - feedback_add_details("radio_usage","RC-[rc_msg_amt]") + add_details("radio_usage","COM-[msg_common.len]") + add_details("radio_usage","SCI-[msg_science.len]") + add_details("radio_usage","HEA-[msg_command.len]") + add_details("radio_usage","MED-[msg_medical.len]") + add_details("radio_usage","ENG-[msg_engineering.len]") + add_details("radio_usage","SEC-[msg_security.len]") + add_details("radio_usage","DTH-[msg_deathsquad.len]") + add_details("radio_usage","SYN-[msg_syndicate.len]") + add_details("radio_usage","SRV-[msg_service.len]") + add_details("radio_usage","CAR-[msg_cargo.len]") + add_details("radio_usage","OTH-[msg_other.len]") + add_details("radio_usage","PDA-[pda_msg_amt]") + add_details("radio_usage","RC-[rc_msg_amt]") - feedback_set_details("round_end","[time2text(world.realtime)]") //This one MUST be the last one that gets set. + set_details("round_end","[time2text(world.realtime)]") //This one MUST be the last one that gets set. -//This proc is only to be called at round end. -/datum/feedback/proc/save_all_data_to_sql() - if (!feedback) return + if (!SSdbcore.Connect()) + return - round_end_data_gathering() //round_end time logging and some other data processing - if (!SSdbcore.Connect()) return var/round_id var/datum/DBQuery/query_feedback_max_id = SSdbcore.NewQuery("SELECT MAX(round_id) AS round_id FROM [format_table_name("feedback")]") @@ -89,69 +110,99 @@ GLOBAL_DATUM_INIT(blackbox, /datum/feedback, new) var/datum/DBQuery/query_feedback_save = SSdbcore.NewQuery("INSERT DELAYED IGNORE INTO [format_table_name("feedback")] VALUES " + sqlrowlist) query_feedback_save.Execute() +/datum/controller/subsystem/blackbox/proc/LogBroadcast(blackbox_msg, freq) + switch(freq) + if(1459) + msg_common += blackbox_msg + if(1351) + msg_science += blackbox_msg + if(1353) + msg_command += blackbox_msg + if(1355) + msg_medical += blackbox_msg + if(1357) + msg_engineering += blackbox_msg + if(1359) + msg_security += blackbox_msg + if(1441) + msg_deathsquad += blackbox_msg + if(1213) + msg_syndicate += blackbox_msg + if(1349) + msg_service += blackbox_msg + if(1347) + msg_cargo += blackbox_msg + else + msg_other += blackbox_msg -/proc/feedback_set(variable,value) - if(!GLOB.blackbox) - return +/datum/controller/subsystem/blackbox/proc/find_feedback_datum(variable) + for(var/datum/feedback_variable/FV in feedback) + if(FV.get_variable() == variable) + return FV - var/datum/feedback_variable/FV = GLOB.blackbox.find_feedback_datum(variable) - - if(!FV) - return + var/datum/feedback_variable/FV = new(variable) + feedback += FV + return FV +/datum/controller/subsystem/blackbox/proc/set_val(variable, value) + var/datum/feedback_variable/FV = find_feedback_datum(variable) FV.set_value(value) -/proc/feedback_inc(variable,value) - if(!GLOB.blackbox) - return - - var/datum/feedback_variable/FV = GLOB.blackbox.find_feedback_datum(variable) - - if(!FV) - return - +/datum/controller/subsystem/blackbox/proc/inc(variable, value) + var/datum/feedback_variable/FV = find_feedback_datum(variable) FV.inc(value) -/proc/feedback_dec(variable,value) - if(!GLOB.blackbox) - return - - var/datum/feedback_variable/FV = GLOB.blackbox.find_feedback_datum(variable) - - if(!FV) - return - +/datum/controller/subsystem/blackbox/proc/dec(variable,value) + var/datum/feedback_variable/FV = find_feedback_datum(variable) FV.dec(value) -/proc/feedback_set_details(variable,details) - if(!GLOB.blackbox) - return - - var/datum/feedback_variable/FV = GLOB.blackbox.find_feedback_datum(variable) - - if(!FV) - return - +/datum/controller/subsystem/blackbox/proc/set_details(variable,details) + var/datum/feedback_variable/FV = find_feedback_datum(variable) FV.set_details(details) -/proc/feedback_add_details(variable,details) - if(!GLOB.blackbox) - return - - var/datum/feedback_variable/FV = GLOB.blackbox.find_feedback_datum(variable) - - if(!FV) - return - +/datum/controller/subsystem/blackbox/proc/add_details(variable,details) + var/datum/feedback_variable/FV = find_feedback_datum(variable) FV.add_details(details) +/datum/controller/subsystem/blackbox/proc/ReportDeath(mob/living/L) + if(!SSdbcore.Connect()) + return + if(!L || !L.key || !L.mind) + return + var/turf/T = get_turf(L) + var/area/placeofdeath = get_area(T.loc) + var/sqlname = sanitizeSQL(L.real_name) + var/sqlkey = sanitizeSQL(L.ckey) + var/sqljob = sanitizeSQL(L.mind.assigned_role) + var/sqlspecial = sanitizeSQL(L.mind.special_role) + var/sqlpod = sanitizeSQL(placeofdeath.name) + var/laname + var/lakey + if(L.lastattacker && ismob(L.lastattacker)) + var/mob/LA = L.lastattacker + laname = sanitizeSQL(LA.real_name) + lakey = sanitizeSQL(LA.key) + var/sqlgender = sanitizeSQL(L.gender) + var/sqlbrute = sanitizeSQL(L.getBruteLoss()) + var/sqlfire = sanitizeSQL(L.getFireLoss()) + var/sqlbrain = sanitizeSQL(L.getBrainLoss()) + var/sqloxy = sanitizeSQL(L.getOxyLoss()) + var/sqltox = sanitizeSQL(L.getStaminaLoss()) + var/sqlclone = sanitizeSQL(L.getStaminaLoss()) + var/sqlstamina = sanitizeSQL(L.getStaminaLoss()) + var/coord = sanitizeSQL("[L.x], [L.y], [L.z]") + var/map = sanitizeSQL(SSmapping.config.map_name) + var/datum/DBQuery/query_report_death = SSdbcore.NewQuery("INSERT INTO [format_table_name("death")] (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss, toxloss, cloneloss, staminaloss, coord, mapname, server_ip, server_port) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[SQLtime()]', '[laname]', '[lakey]', '[sqlgender]', [sqlbrute], [sqlfire], [sqlbrain], [sqloxy], [sqltox], [sqlclone], [sqlstamina], '[coord]', '[map]', INET_ATON('[world.internet_address]'), '[world.port]')") + query_report_death.Execute() + + //feedback variable datum, for storing all kinds of data /datum/feedback_variable var/variable var/value var/details -/datum/feedback_variable/New(var/param_variable,var/param_value = 0) +/datum/feedback_variable/New(param_variable, param_value = 0) variable = param_variable value = param_value @@ -204,50 +255,3 @@ GLOBAL_DATUM_INIT(blackbox, /datum/feedback, new) /datum/feedback_variable/proc/get_parsed() return list(variable,value,details) - -//sql reporting procs -/proc/sql_poll_population() - if(!config.sql_enabled) - return - if(!SSdbcore.Connect()) - return - var/playercount = 0 - for(var/mob/M in GLOB.player_list) - if(M.client) - playercount += 1 - var/admincount = GLOB.admins.len - var/datum/DBQuery/query_record_playercount = SSdbcore.NewQuery("INSERT INTO [format_table_name("legacy_population")] (playercount, admincount, time, server_ip, server_port) VALUES ([playercount], [admincount], '[SQLtime()]', INET_ATON('[world.internet_address]'), '[world.port]')") - query_record_playercount.Execute() - -/proc/sql_report_death(mob/living/L) - if(!config.sql_enabled) - return - if(!SSdbcore.Connect()) - return - if(!L || !L.key || !L.mind) - return - var/turf/T = get_turf(L) - var/area/placeofdeath = get_area(T.loc) - var/sqlname = sanitizeSQL(L.real_name) - var/sqlkey = sanitizeSQL(L.ckey) - var/sqljob = sanitizeSQL(L.mind.assigned_role) - var/sqlspecial = sanitizeSQL(L.mind.special_role) - var/sqlpod = sanitizeSQL(placeofdeath.name) - var/laname - var/lakey - if(L.lastattacker && ismob(L.lastattacker)) - var/mob/LA = L.lastattacker - laname = sanitizeSQL(LA.real_name) - lakey = sanitizeSQL(LA.key) - var/sqlgender = sanitizeSQL(L.gender) - var/sqlbrute = sanitizeSQL(L.getBruteLoss()) - var/sqlfire = sanitizeSQL(L.getFireLoss()) - var/sqlbrain = sanitizeSQL(L.getBrainLoss()) - var/sqloxy = sanitizeSQL(L.getOxyLoss()) - var/sqltox = sanitizeSQL(L.getStaminaLoss()) - var/sqlclone = sanitizeSQL(L.getStaminaLoss()) - var/sqlstamina = sanitizeSQL(L.getStaminaLoss()) - var/coord = sanitizeSQL("[L.x], [L.y], [L.z]") - var/map = sanitizeSQL(SSmapping.config.map_name) - var/datum/DBQuery/query_report_death = SSdbcore.NewQuery("INSERT INTO [format_table_name("death")] (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss, toxloss, cloneloss, staminaloss, coord, mapname, server_ip, server_port) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[SQLtime()]', '[laname]', '[lakey]', '[sqlgender]', [sqlbrute], [sqlfire], [sqlbrain], [sqloxy], [sqltox], [sqlclone], [sqlstamina], '[coord]', '[map]', INET_ATON('[world.internet_address]'), '[world.port]')") - query_report_death.Execute() diff --git a/code/controllers/subsystem/server_maint.dm b/code/controllers/subsystem/server_maint.dm index 9c730e92b1..d3a0862112 100644 --- a/code/controllers/subsystem/server_maint.dm +++ b/code/controllers/subsystem/server_maint.dm @@ -13,20 +13,21 @@ SUBSYSTEM_DEF(server_maint) ..() /datum/controller/subsystem/server_maint/fire(resumed = FALSE) - if (!resumed) + if(!resumed) src.currentrun = GLOB.clients.Copy() - var/round_started = Master.round_started var/list/currentrun = src.currentrun - while (length(currentrun)) - var/client/C = currentrun[currentrun.len] - currentrun.len-- + var/round_started = Master.round_started - if(config.kick_inactive) - if(round_started && C.is_afk(INACTIVITY_KICK)) - if(!istype(C.mob, /mob/dead)) + for(var/I in currentrun) + var/client/C = I + //handle kicking inactive players + if(round_started && config.kick_inactive) + if(C.is_afk(config.afk_period)) + var/cmob = C.mob + if(!(istype(cmob, /mob/dead/observer) || (istype(cmob, /mob/dead) && C.holder))) log_access("AFK: [key_name(C)]") - to_chat(C, "You have been inactive for more than 10 minutes and have been disconnected.") + to_chat(C, "You have been inactive for more than [config.afk_period / 600] minutes and have been disconnected.") qdel(C) if (!(!C || world.time - C.connection_time < PING_BUFFER_TIME || C.inactivity >= (wait-1))) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 44d1121f45..a496715af2 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -80,12 +80,12 @@ report = config.intercept addtimer(CALLBACK(GLOBAL_PROC, .proc/display_roundstart_logout_report), ROUNDSTART_LOGOUT_REPORT_TIME) - feedback_set_details("round_start","[time2text(world.realtime)]") + SSblackbox.set_details("round_start","[time2text(world.realtime)]") if(SSticker && SSticker.mode) - feedback_set_details("game_mode","[SSticker.mode]") + SSblackbox.set_details("game_mode","[SSticker.mode]") if(GLOB.revdata.commit) - feedback_set_details("revision","[GLOB.revdata.commit]") - feedback_set_details("server_ip","[world.internet_address]:[world.port]") + SSblackbox.set_details("revision","[GLOB.revdata.commit]") + SSblackbox.set_details("server_ip","[world.internet_address]:[world.port]") if(report) addtimer(CALLBACK(src, .proc/send_intercept, 0), rand(waittime_l, waittime_h)) generate_station_goals() @@ -246,17 +246,17 @@ ghosts++ if(clients > 0) - SSblackbox.set_val("round_end_clients",clients) + SSblackbox.set_val("round_end_clients",clients) if(ghosts > 0) - SSblackbox.set_val("round_end_ghosts",ghosts) + SSblackbox.set_val("round_end_ghosts",ghosts) if(surviving_humans > 0) - SSblackbox.set_val("survived_human",surviving_humans) + SSblackbox.set_val("survived_human",surviving_humans) if(surviving_total > 0) - SSblackbox.set_val("survived_total",surviving_total) + SSblackbox.set_val("survived_total",surviving_total) if(escaped_humans > 0) - SSblackbox.set_val("escaped_human",escaped_humans) + SSblackbox.set_val("escaped_human",escaped_humans) if(escaped_total > 0) - SSblackbox.set_val("escaped_total",escaped_total) + SSblackbox.set_val("escaped_total",escaped_total) send2irc("Server", "Round just ended.") return 0 diff --git a/code/game/machinery/telecomms/broadcasting.dm b/code/game/machinery/telecomms/broadcasting.dm index d6c6cdc151..6c1fd431e5 100644 --- a/code/game/machinery/telecomms/broadcasting.dm +++ b/code/game/machinery/telecomms/broadcasting.dm @@ -144,30 +144,7 @@ // --- This following recording is intended for research and feedback in the use of department radio channels --- var/blackbox_msg = "[AM] [AM.say_quote(message, spans)]" - if(istype(GLOB.blackbox)) - switch(freq) - if(1459) - GLOB.blackbox.msg_common += blackbox_msg - if(1351) - GLOB.blackbox.msg_science += blackbox_msg - if(1353) - GLOB.blackbox.msg_command += blackbox_msg - if(1355) - GLOB.blackbox.msg_medical += blackbox_msg - if(1357) - GLOB.blackbox.msg_engineering += blackbox_msg - if(1359) - GLOB.blackbox.msg_security += blackbox_msg - if(1441) - GLOB.blackbox.msg_deathsquad += blackbox_msg - if(1213) - GLOB.blackbox.msg_syndicate += blackbox_msg - if(1349) - GLOB.blackbox.msg_service += blackbox_msg - if(1347) - GLOB.blackbox.msg_cargo += blackbox_msg - else - GLOB.blackbox.messages += blackbox_msg + SSblackbox.LogBroadcast(blackbox_msg, freq) sleep(50) if(!QDELETED(virt)) //It could happen to YOU diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index cbb4efd6b0..ac661ad988 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -297,7 +297,7 @@ to_chat(user, "You [panel_open ? "open" : "close"] the maintenance panel.") cut_overlays() if(panel_open) - add_overlay("[initial(icon_state)]-panel") + add_overlay("[initial(icon_state)]-panel") playsound(src.loc, W.usesound, 50, 1) updateUsrDialog() else @@ -528,7 +528,7 @@ if(icon_vend) //Show the vending animation if needed flick(icon_vend,src) new R.product_path(get_turf(src)) - feedback_add_details("vending_machine_usage","[src.type]|[R.product_path]") + SSblackbox.add_details("vending_machine_usage","[src.type]|[R.product_path]") vend_ready = 1 return diff --git a/code/game/objects/items/charter.dm b/code/game/objects/items/charter.dm index 41a793df30..0cf73fd9ff 100644 --- a/code/game/objects/items/charter.dm +++ b/code/game/objects/items/charter.dm @@ -86,7 +86,7 @@ name = "station charter for [station_name()]" desc = "An official document entrusting the governance of \ [station_name()] and surrounding space to Captain [uname]." - feedback_set_details("station_renames","[station_name()]") + SSblackbox.set_details("station_renames","[station_name()]") if(!unlimited_uses) used = TRUE diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 49cc975546..0ab74a019d 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -45,7 +45,7 @@ if(do_mob(user, C, 30) && (C.get_num_arms() >= 2 || C.get_arm_ignore())) apply_cuffs(C,user) to_chat(user, "You handcuff [C].") - feedback_add_details("handcuffs","[type]") + SSblackbox.add_details("handcuffs","[type]") add_logs(user, C, "handcuffed") else @@ -275,7 +275,7 @@ C.legcuffed = src src.loc = C C.update_inv_legcuffed() - feedback_add_details("handcuffs","[type]") + SSblackbox.add_details("handcuffs","[type]") else if(isanimal(L)) var/mob/living/simple_animal/SA = L if(SA.mob_size > MOB_SIZE_TINY) @@ -336,7 +336,7 @@ C.legcuffed = src src.loc = C C.update_inv_legcuffed() - feedback_add_details("handcuffs","[type]") + SSblackbox.add_details("handcuffs","[type]") to_chat(C, "\The [src] ensnares you!") C.Weaken(weaken) diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index 5805d75e56..398ff190f2 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -63,7 +63,7 @@ if(ismineralturf(src)) to_chat(user, "You finish cutting into the rock.") gets_drilled(user) - feedback_add_details("pick_used_mining","[P.type]") + SSblackbox.add_details("pick_used_mining","[P.type]") else return attack_hand(user) @@ -72,7 +72,7 @@ var/i for(i in 1 to mineralAmt) new mineralType(src) - feedback_add_details("ore_mined",mineralType) + SSblackbox.add_details("ore_mined",mineralType) ChangeTurf(turf_type, defer_change) addtimer(CALLBACK(src, .proc/AfterChange), 1, TIMER_UNIQUE) playsound(src, 'sound/effects/break_stone.ogg', 50, 1) //beautiful destruction diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index cfe8bd4ee2..25ddc4d68d 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -42,8 +42,8 @@ body += "TP - " body += "PM - " body += "SM - " - body += "FLW - " - body += "LOGS\]
" + body += "FLW - " + body += "LOGS\]
" body += "Mob type = [M.type]

" @@ -166,7 +166,7 @@ body += "" usr << browse(body, "window=adminplayeropts-\ref[M];size=550x515") - SSblackbox.add_details("admin_verb","Player Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Player Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/access_news_network() //MARKER @@ -410,7 +410,7 @@ /datum/admins/proc/restart() set category = "Server" - set name = "Reboot World" + set name = "Reboot World" set desc="Restarts the world immediately" if (!usr.client.holder) return @@ -419,7 +419,7 @@ return if(confirm == "Yes") SSticker.delay_end = 0 - feedback_add_details("admin_verb","Reboot World") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Reboot World") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! world.Reboot("Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key].", "end_error", "admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]", 10) /datum/admins/proc/end_round() @@ -434,7 +434,7 @@ return if(confirm == "Yes") SSticker.force_ending = 1 - SSblackbox.add_details("admin_verb","End Round") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","End Round") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/announce() @@ -450,7 +450,7 @@ message = adminscrub(message,500) to_chat(world, "[usr.client.holder.fakekey ? "Administrator" : usr.key] Announces:\n \t [message]") log_admin("Announce: [key_name(usr)] : [message]") - SSblackbox.add_details("admin_verb","Announce") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Announce") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/set_admin_notice() set category = "Special Verbs" @@ -471,7 +471,7 @@ message_admins("[key_name(usr)] set the admin notice.") log_admin("[key_name(usr)] set the admin notice:\n[new_admin_notice]") to_chat(world, "Admin Notice:\n \t [new_admin_notice]") - SSblackbox.add_details("admin_verb","Set Admin Notice") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Set Admin Notice") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! GLOB.admin_notice = new_admin_notice return @@ -482,7 +482,7 @@ toggle_ooc() log_admin("[key_name(usr)] toggled OOC.") message_admins("[key_name_admin(usr)] toggled OOC.") - SSblackbox.add_details("admin_toggle","Toggle OOC|[GLOB.ooc_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle OOC|[GLOB.ooc_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/toggleoocdead() set category = "Server" @@ -492,7 +492,7 @@ log_admin("[key_name(usr)] toggled OOC.") message_admins("[key_name_admin(usr)] toggled Dead OOC.") - SSblackbox.add_details("admin_toggle","Toggle Dead OOC|[GLOB.dooc_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Dead OOC|[GLOB.dooc_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/startnow() set category = "Server" @@ -507,7 +507,7 @@ started as soon as possible.)" message_admins("\ [usr.key] has started the game.[msg]") - SSblackbox.add_details("admin_verb","Start Now") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Start Now") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return 1 else to_chat(usr, "Error: Start Now: Game has already started.") @@ -526,7 +526,7 @@ log_admin("[key_name(usr)] toggled new player game entering.") message_admins("[key_name_admin(usr)] toggled new player game entering.") world.update_status() - SSblackbox.add_details("admin_toggle","Toggle Entering|[GLOB.enter_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Entering|[GLOB.enter_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/toggleAI() set category = "Server" @@ -539,7 +539,7 @@ to_chat(world, "The AI job is chooseable now.") log_admin("[key_name(usr)] toggled AI allowed.") world.update_status() - SSblackbox.add_details("admin_toggle","Toggle AI|[config.allow_ai]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle AI|[config.allow_ai]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/toggleaban() set category = "Server" @@ -553,7 +553,7 @@ message_admins("[key_name_admin(usr)] toggled respawn to [GLOB.abandon_allowed ? "On" : "Off"].") log_admin("[key_name(usr)] toggled respawn to [GLOB.abandon_allowed ? "On" : "Off"].") world.update_status() - SSblackbox.add_details("admin_toggle","Toggle Respawn|[GLOB.abandon_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Respawn|[GLOB.abandon_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/delay() set category = "Server" @@ -572,7 +572,7 @@ to_chat(world, "The game will start in [newtime] seconds.") world << 'sound/ai/attention.ogg' log_admin("[key_name(usr)] set the pre-game delay to [newtime] seconds.") - SSblackbox.add_details("admin_verb","Delay Game Start") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Delay Game Start") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/unprison(mob/M in GLOB.mob_list) set category = "Admin" @@ -583,7 +583,7 @@ log_admin("[key_name(usr)] has unprisoned [key_name(M)]") else alert("[M.name] is not prisoned.") - SSblackbox.add_details("admin_verb","Unprison") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Unprison") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! ////////////////////////////////////////////////////////////////////////////////////////////////ADMIN HELPER PROCS @@ -624,7 +624,7 @@ A.admin_spawned = TRUE log_admin("[key_name(usr)] spawned [chosen] at ([usr.x],[usr.y],[usr.z])") - SSblackbox.add_details("admin_verb","Spawn Atom") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Spawn Atom") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/show_traitor_panel(mob/M in GLOB.mob_list) @@ -640,7 +640,7 @@ return M.mind.edit_memory() - SSblackbox.add_details("admin_verb","Traitor Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Traitor Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/toggletintedweldhelmets() @@ -654,7 +654,7 @@ to_chat(world, "The tinted_weldhelh has been disabled!") log_admin("[key_name(usr)] toggled tinted_weldhelh.") message_admins("[key_name_admin(usr)] toggled tinted_weldhelh.") - SSblackbox.add_details("admin_toggle","Toggle Tinted Welding Helmets|[GLOB.tinted_weldhelh]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Tinted Welding Helmets|[GLOB.tinted_weldhelh]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/toggleguests() set category = "Server" @@ -667,7 +667,7 @@ to_chat(world, "Guests may now enter the game.") log_admin("[key_name(usr)] toggled guests game entering [GLOB.guests_allowed?"":"dis"]allowed.") message_admins("[key_name_admin(usr)] toggled guests game entering [GLOB.guests_allowed?"":"dis"]allowed.") - SSblackbox.add_details("admin_toggle","Toggle Guests|[GLOB.guests_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Guests|[GLOB.guests_allowed]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/output_ai_laws() var/ai_number = 0 @@ -796,7 +796,7 @@ message_admins("[key_name_admin(usr)] has put [frommob.ckey] in control of [tomob.name].") log_admin("[key_name(usr)] stuffed [frommob.ckey] into [tomob.name].") - SSblackbox.add_details("admin_verb","Ghost Drag Control") + SSblackbox.add_details("admin_verb","Ghost Drag Control") tomob.ckey = frommob.ckey qdel(frommob) diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index 7f0479eac9..aea7d3521a 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -198,7 +198,7 @@ if("moveminingshuttle") if(!check_rights(R_ADMIN)) return - feedback_add_details("admin_secrets_fun_used","Send Mining Shuttle") + SSblackbox.add_details("admin_secrets_fun_used","Send Mining Shuttle") if(!SSshuttle.toggleShuttle("mining","mining_home","mining_away")) message_admins("[key_name_admin(usr)] moved mining shuttle") log_admin("[key_name(usr)] moved the mining shuttle") @@ -206,7 +206,7 @@ if("movelaborshuttle") if(!check_rights(R_ADMIN)) return - feedback_add_details("admin_secrets_fun_used","Send Labor Shuttle") + SSblackbox.add_details("admin_secrets_fun_used","Send Labor Shuttle") if(!SSshuttle.toggleShuttle("laborcamp","laborcamp_home","laborcamp_away")) message_admins("[key_name_admin(usr)] moved labor shuttle") log_admin("[key_name(usr)] moved the labor shuttle") @@ -214,7 +214,7 @@ if("moveferry") if(!check_rights(R_ADMIN)) return - feedback_add_details("admin_secrets_fun_used","Send Centcom Ferry") + SSblackbox.add_details("admin_secrets_fun_used","Send Centcom Ferry") if(!SSshuttle.toggleShuttle("ferry","ferry_home","ferry_away")) message_admins("[key_name_admin(usr)] moved the centcom ferry") log_admin("[key_name(usr)] moved the centcom ferry") @@ -226,7 +226,7 @@ if(A) var/new_perma = !A.perma_docked A.perma_docked = new_perma - feedback_add_details("admin_toggle","Permadock Arrivals Shuttle|[new_perma]") + SSblackbox.add_details("admin_toggle","Permadock Arrivals Shuttle|[new_perma]") message_admins("[key_name_admin(usr)] [new_perma ? "stopped" : "started"] the arrivals shuttle") log_admin("[key_name(usr)] [new_perma ? "stopped" : "started"] the arrivals shuttle") else @@ -276,7 +276,7 @@ if("monkey") if(!check_rights(R_FUN)) return - feedback_add_details("admin_secrets_fun_used","Monkeyize All Humans") + SSblackbox.add_details("admin_secrets_fun_used","Monkeyize All Humans") for(var/mob/living/carbon/human/H in GLOB.mob_list) spawn(0) H.monkeyize() @@ -287,7 +287,7 @@ return var/result = input(usr, "Please choose a new species","Species") as null|anything in GLOB.species_list if(result) - feedback_add_details("admin_secrets_fun_used","Mass Species Change([result])") + SSblackbox.add_details("admin_secrets_fun_used","Mass Species Change([result])") log_admin("[key_name(usr)] turned all humans into [result]", 1) message_admins("\blue [key_name_admin(usr)] turned all humans into [result]") var/newtype = GLOB.species_list[result] @@ -298,12 +298,12 @@ if(!check_rights(R_FUN)) return usr.client.triple_ai() - feedback_add_details("admin_secrets_fun_used","Triple AI") + SSblackbox.add_details("admin_secrets_fun_used","Triple AI") if("power") if(!check_rights(R_FUN)) return - feedback_add_details("admin_secrets_fun_used","Power All APCs") + SSblackbox.add_details("admin_secrets_fun_used","Power All APCs") log_admin("[key_name(usr)] made all areas powered", 1) message_admins("[key_name_admin(usr)] made all areas powered") power_restore() @@ -311,7 +311,7 @@ if("unpower") if(!check_rights(R_FUN)) return - feedback_add_details("admin_secrets_fun_used","Depower All APCs") + SSblackbox.add_details("admin_secrets_fun_used","Depower All APCs") log_admin("[key_name(usr)] made all areas unpowered", 1) message_admins("[key_name_admin(usr)] made all areas unpowered") power_failure() @@ -319,7 +319,7 @@ if("quickpower") if(!check_rights(R_FUN)) return - feedback_add_details("admin_secrets_fun_used","Power All SMESs") + SSblackbox.add_details("admin_secrets_fun_used","Power All SMESs") log_admin("[key_name(usr)] made all SMESs powered", 1) message_admins("[key_name_admin(usr)] made all SMESs powered") power_restore_quick() @@ -333,7 +333,7 @@ var/objective = copytext(sanitize(input("Enter an objective")),1,MAX_MESSAGE_LEN) if(!objective) return - feedback_add_details("admin_secrets_fun_used","Traitor All ([objective])") + SSblackbox.add_details("admin_secrets_fun_used","Traitor All ([objective])") for(var/mob/living/carbon/human/H in GLOB.player_list) if(H.stat == 2 || !H.client || !H.mind) continue if(is_special_character(H)) continue @@ -365,7 +365,7 @@ if("changebombcap") if(!check_rights(R_FUN)) return - feedback_add_details("admin_secrets_fun_used","Bomb Cap") + SSblackbox.add_details("admin_secrets_fun_used","Bomb Cap") var/newBombCap = input(usr,"What would you like the new bomb cap to be. (entered as the light damage range (the 3rd number in common (1,2,3) notation)) Must be above 4)", "New Bomb Cap", GLOB.MAX_EX_LIGHT_RANGE) as num|null if (newBombCap < 4) @@ -384,7 +384,7 @@ if("blackout") if(!check_rights(R_FUN)) return - feedback_add_details("admin_secrets_fun_used","Break All Lights") + SSblackbox.add_details("admin_secrets_fun_used","Break All Lights") message_admins("[key_name_admin(usr)] broke all lights") for(var/obj/machinery/light/L in GLOB.machines) L.break_light_tube() @@ -400,7 +400,7 @@ if(animetype == "Cancel" || droptype == "Cancel") return - feedback_add_details("admin_secrets_fun_used","Chinese Cartoons") + SSblackbox.add_details("admin_secrets_fun_used","Chinese Cartoons") message_admins("[key_name_admin(usr)] made everything kawaii.") for(var/mob/living/carbon/human/H in GLOB.mob_list) H << sound('sound/AI/animes.ogg') @@ -430,7 +430,7 @@ if("whiteout") if(!check_rights(R_FUN)) return - feedback_add_details("admin_secrets_fun_used","Fix All Lights") + SSblackbox.add_details("admin_secrets_fun_used","Fix All Lights") message_admins("[key_name_admin(usr)] fixed all lights") for(var/obj/machinery/light/L in GLOB.machines) L.fix() @@ -441,7 +441,7 @@ if("virus") if(!check_rights(R_FUN)) return - feedback_add_details("admin_secrets_fun_used","Virus Outbreak") + SSblackbox.add_details("admin_secrets_fun_used","Virus Outbreak") switch(alert("Do you want this to be a random disease or do you have something in mind?",,"Make Your Own","Random","Choose")) if("Make Your Own") AdminCreateVirus(usr.client) @@ -456,7 +456,7 @@ if("retardify") if(!check_rights(R_FUN)) return - feedback_add_details("admin_secrets_fun_used","Mass Braindamage") + SSblackbox.add_details("admin_secrets_fun_used","Mass Braindamage") for(var/mob/living/carbon/human/H in GLOB.player_list) to_chat(H, "You suddenly feel stupid.") H.setBrainLoss(60) @@ -465,7 +465,7 @@ if("eagles")//SCRAW if(!check_rights(R_FUN)) return - feedback_add_details("admin_secrets_fun_used","Egalitarian Station") + SSblackbox.add_details("admin_secrets_fun_used","Egalitarian Station") for(var/obj/machinery/door/airlock/W in GLOB.machines) if(W.z == ZLEVEL_STATION && !istype(get_area(W), /area/bridge) && !istype(get_area(W), /area/crew_quarters) && !istype(get_area(W), /area/security/prison)) W.req_access = list() @@ -475,7 +475,7 @@ if("guns") if(!check_rights(R_FUN)) return - feedback_add_details("admin_secrets_fun_used","Summon Guns") + SSblackbox.add_details("admin_secrets_fun_used","Summon Guns") var/survivor_probability = 0 switch(alert("Do you want this to create survivors antagonists?",,"No Antags","Some Antags","All Antags!")) if("Some Antags") @@ -488,7 +488,7 @@ if("magic") if(!check_rights(R_FUN)) return - feedback_add_details("admin_secrets_fun_used","Summon Magic") + SSblackbox.add_details("admin_secrets_fun_used","Summon Magic") var/survivor_probability = 0 switch(alert("Do you want this to create survivors antagonists?",,"No Antags","Some Antags","All Antags!")) if("Some Antags") @@ -504,22 +504,22 @@ if(!SSevents.wizardmode) if(alert("Do you want to toggle summon events on?",,"Yes","No") == "Yes") summonevents() - feedback_add_details("admin_secrets_fun_used","Activate Summon Events") + SSblackbox.add_details("admin_secrets_fun_used","Activate Summon Events") else switch(alert("What would you like to do?",,"Intensify Summon Events","Turn Off Summon Events","Nothing")) if("Intensify Summon Events") summonevents() - feedback_add_details("admin_secrets_fun_used","Intensify Summon Events") + SSblackbox.add_details("admin_secrets_fun_used","Intensify Summon Events") if("Turn Off Summon Events") SSevents.toggleWizardmode() SSevents.resetFrequency() - feedback_add_details("admin_secrets_fun_used","Disable Summon Events") + SSblackbox.add_details("admin_secrets_fun_used","Disable Summon Events") if("dorf") if(!check_rights(R_FUN)) return - feedback_add_details("admin_secrets_fun_used","Dwarf Beards") + SSblackbox.add_details("admin_secrets_fun_used","Dwarf Beards") for(var/mob/living/carbon/human/B in GLOB.mob_list) B.facial_hair_style = "Dward Beard" B.update_hair() @@ -528,21 +528,21 @@ if("onlyone") if(!check_rights(R_FUN)) return - feedback_add_details("admin_secrets_fun_used","There Can Be Only One") + SSblackbox.add_details("admin_secrets_fun_used","There Can Be Only One") usr.client.only_one() send_to_playing_players('sound/misc/highlander.ogg') if("delayed_onlyone") if(!check_rights(R_FUN)) return - feedback_add_details("admin_secrets_fun_used","There Can Be Only One") + SSblackbox.add_details("admin_secrets_fun_used","There Can Be Only One") usr.client.only_one_delayed() send_to_playing_players('sound/misc/highlander_delayed.ogg') if("onlyme") if(!check_rights(R_FUN)) return - feedback_add_details("admin_secrets_fun_used","There Can Be Only Me") + SSblackbox.add_details("admin_secrets_fun_used","There Can Be Only Me") only_me() if("maint_access_brig") diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 5d46c1d409..e1bc663a0c 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -498,7 +498,7 @@ GLOB.Banlist["minutes"] << minutes GLOB.Banlist["bannedby"] << usr.ckey GLOB.Banlist.cd = "/base" - SSblackbox.inc("ban_edit",1) + SSblackbox.inc("ban_edit",1) unbanpanel() /////////////////////////////////////new ban stuff @@ -520,7 +520,7 @@ if("Yes") ban_unban_log_save("[key_name(usr)] removed [key_name(M)]'s appearance ban.") log_admin_private("[key_name(usr)] removed [key_name(M)]'s appearance ban.") - SSblackbox.inc("ban_appearance_unban", 1) + SSblackbox.inc("ban_appearance_unban", 1) DB_ban_unban(M.ckey, BANTYPE_ANY_JOB, "appearance") if(M.client) jobban_buildcache(M.client) @@ -539,7 +539,7 @@ jobban_buildcache(M.client) ban_unban_log_save("[key_name(usr)] appearance banned [key_name(M)]. reason: [reason]") log_admin_private("[key_name(usr)] appearance banned [key_name(M)]. \nReason: [reason]") - SSblackbox.inc("ban_appearance",1) + SSblackbox.inc("ban_appearance",1) create_message("note", M.ckey, null, "Appearance banned - [reason]", null, null, 0, 0) message_admins("[key_name_admin(usr)] appearance banned [key_name_admin(M)].") to_chat(M, "You have been appearance banned by [usr.client.ckey].") @@ -924,8 +924,8 @@ jobban_buildcache(M.client) ban_unban_log_save("[key_name(usr)] temp-jobbanned [key_name(M)] from [job] for [mins] minutes. reason: [reason]") log_admin_private("[key_name(usr)] temp-jobbanned [key_name(M)] from [job] for [mins] minutes.") - SSblackbox.inc("ban_job_tmp",1) - SSblackbox.add_details("ban_job_tmp","- [job]") + SSblackbox.inc("ban_job_tmp",1) + SSblackbox.add_details("ban_job_tmp","- [job]") if(!msg) msg = job else @@ -949,8 +949,8 @@ jobban_buildcache(M.client) ban_unban_log_save("[key_name(usr)] perma-jobbanned [key_name(M)] from [job]. reason: [reason]") log_admin_private("[key_name(usr)] perma-banned [key_name(M)] from [job]") - SSblackbox.inc("ban_job",1) - SSblackbox.add_details("ban_job","- [job]") + SSblackbox.inc("ban_job",1) + SSblackbox.add_details("ban_job","- [job]") if(!msg) msg = job else @@ -980,8 +980,8 @@ DB_ban_unban(M.ckey, BANTYPE_ANY_JOB, job) if(M.client) jobban_buildcache(M.client) - SSblackbox.inc("ban_job_unban",1) - SSblackbox.add_details("ban_job_unban","- [job]") + SSblackbox.inc("ban_job_unban",1) + SSblackbox.add_details("ban_job_unban","- [job]") if(!msg) msg = job else @@ -1116,8 +1116,8 @@ ban_unban_log_save("[key_name(usr)] has banned [key_name(M)]. - Reason: [reason] - This will be removed in [mins] minutes.") to_chat(M, "You have been banned by [usr.client.ckey].\nReason: [reason]") to_chat(M, "This is a temporary ban, it will be removed in [mins] minutes.") - SSblackbox.inc("ban_tmp",1) - SSblackbox.inc("ban_tmp_mins",mins) + SSblackbox.inc("ban_tmp",1) + SSblackbox.inc("ban_tmp_mins",mins) if(config.banappeals) to_chat(M, "To try to resolve this matter head to [config.banappeals]") else @@ -1156,7 +1156,7 @@ var/datum/admin_help/AH = M.client ? M.client.current_ticket : null if(AH) AH.Resolve() - feedback_inc("ban_perma",1) + SSblackbox.inc("ban_perma",1) qdel(M.client) if("Cancel") return @@ -1687,7 +1687,7 @@ log_admin("[key_name(H)] got their cookie, spawned by [key_name(src.owner)].") message_admins("[key_name(H)] got their cookie, spawned by [key_name(src.owner)].") - SSblackbox.inc("admin_cookies_spawned",1) + SSblackbox.inc("admin_cookies_spawned",1) to_chat(H, "Your prayers have been answered!! You received the best cookie!") H << 'sound/effects/pray_chaplain.ogg' @@ -1987,7 +1987,7 @@ var/choice = alert("Please confirm Feed channel creation.","Network Channel Handler","Confirm","Cancel") if(choice=="Confirm") GLOB.news_network.CreateFeedChannel(src.admincaster_feed_channel.channel_name, src.admin_signature, src.admincaster_feed_channel.locked, 1) - SSblackbox.inc("newscaster_channels",1) + SSblackbox.inc("newscaster_channels",1) log_admin("[key_name(usr)] created command feed channel: [src.admincaster_feed_channel.channel_name]!") src.admincaster_screen=5 src.access_news_network() @@ -2010,7 +2010,7 @@ src.admincaster_screen = 6 else GLOB.news_network.SubmitArticle(src.admincaster_feed_message.returnBody(-1), src.admin_signature, src.admincaster_feed_channel.channel_name, null, 1) - SSblackbox.inc("newscaster_stories",1) + SSblackbox.inc("newscaster_stories",1) src.admincaster_screen=4 for(var/obj/machinery/newscaster/NEWSCASTER in GLOB.allCasters) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 3c0bc185b8..dff21ae0a3 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -90,7 +90,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) C.current_ticket = CKey2ActiveTicket(C.ckey) if(C.current_ticket) C.current_ticket.AddInteraction("Client reconnected.") - C.current_ticket.initiator = C + C.current_ticket.initiator = C //Dissasociate ticket /datum/admin_help_tickets/proc/ClientLogout(client/C) @@ -264,9 +264,9 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) GLOB.ahelp_tickets.resolved_tickets -= src switch(state) if(AHELP_CLOSED) - feedback_dec("ahelp_close") + SSblackbox.dec("ahelp_close") if(AHELP_RESOLVED) - feedback_dec("ahelp_resolve") + SSblackbox.dec("ahelp_resolve") state = AHELP_ACTIVE closed_at = null if(initiator) @@ -276,7 +276,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) var/msg = "Ticket [TicketHref("#[id]")] reopened by [key_name_admin(usr)]." message_admins(msg) log_admin_private(msg) - feedback_inc("ahelp_reopen") + SSblackbox.inc("ahelp_reopen") TicketPanel() //can only be done from here, so refresh it //private @@ -298,7 +298,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) GLOB.ahelp_tickets.ListInsert(src) AddInteraction("Closed by [key_name].") if(!silent) - feedback_inc("ahelp_close") + SSblackbox.inc("ahelp_close") var/msg = "Ticket [TicketHref("#[id]")] closed by [key_name]." message_admins(msg) log_admin_private(msg) @@ -316,7 +316,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) AddInteraction("Resolved by [key_name].") if(!silent) - feedback_inc("ahelp_resolve") + SSblackbox.inc("ahelp_resolve") var/msg = "Ticket [TicketHref("#[id]")] resolved by [key_name]" message_admins(msg) log_admin_private(msg) @@ -335,7 +335,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) to_chat(initiator, "Your admin help was rejected. The adminhelp verb has been returned to you so that you may try again.") to_chat(initiator, "Please try to be calm, clear, and descriptive in admin helps, do not assume the admin has seen any related events, and clearly state the names of anybody you are reporting.") - feedback_inc("ahelp_reject") + SSblackbox.inc("ahelp_reject") var/msg = "Ticket [TicketHref("#[id]")] rejected by [key_name]" message_admins(msg) log_admin_private(msg) @@ -354,7 +354,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) if(initiator) to_chat(initiator, msg) - feedback_inc("ahelp_icissue") + SSblackbox.inc("ahelp_icissue") msg = "Ticket [TicketHref("#[id]")] marked as IC by [key_name]" message_admins(msg) log_admin_private(msg) @@ -472,7 +472,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) if(!msg) return - feedback_add_details("admin_verb","Adminhelp") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Adminhelp") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! if(current_ticket) if(alert(usr, "You already have a ticket open. Is this for the same issue?",,"Yes","No") != "No") if(current_ticket) diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm index 7a6167a986..202750cadd 100644 --- a/code/modules/admin/verbs/adminjump.dm +++ b/code/modules/admin/verbs/adminjump.dm @@ -23,7 +23,7 @@ usr.forceMove(T) log_admin("[key_name(usr)] jumped to [A]") message_admins("[key_name_admin(usr)] jumped to [A]") - SSblackbox.add_details("admin_verb","Jump To Area") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Jump To Area") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/jumptoturf(turf/T in world) set name = "Jump to Turf" @@ -35,7 +35,7 @@ log_admin("[key_name(usr)] jumped to [T.x],[T.y],[T.z] in [T.loc]") message_admins("[key_name_admin(usr)] jumped to [T.x],[T.y],[T.z] in [T.loc]") usr.loc = T - SSblackbox.add_details("admin_verb","Jump To Turf") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Jump To Turf") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return /client/proc/jumptomob(mob/M in GLOB.mob_list) @@ -52,7 +52,7 @@ var/mob/A = src.mob var/turf/T = get_turf(M) if(T && isturf(T)) - SSblackbox.add_details("admin_verb","Jump To Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Jump To Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! A.forceMove(M.loc) else to_chat(A, "This mob is not located in the game world.") @@ -70,7 +70,7 @@ A.x = tx A.y = ty A.z = tz - SSblackbox.add_details("admin_verb","Jump To Coordiate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Jump To Coordiate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! message_admins("[key_name_admin(usr)] jumped to coordinates [tx], [ty], [tz]") /client/proc/jumptokey() @@ -94,7 +94,7 @@ usr.forceMove(M.loc) - SSblackbox.add_details("admin_verb","Jump To Key") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Jump To Key") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/Getmob(mob/M in GLOB.mob_list) set category = "Admin" @@ -110,7 +110,7 @@ message_admins(msg) admin_ticket_log(M, msg) M.forceMove(loc) - feedback_add_details("admin_verb","Get Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Get Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/Getkey() set category = "Admin" @@ -138,7 +138,7 @@ if(M) M.forceMove(get_turf(usr)) usr.loc = M.loc - SSblackbox.add_details("admin_verb","Get Key") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Get Key") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/sendmob(mob/M in sortmobs()) set category = "Admin" @@ -156,4 +156,4 @@ admin_ticket_log(M, msg) else to_chat(src, "Failed to move mob to a valid location.") - feedback_add_details("admin_verb","Send Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! \ No newline at end of file + SSblackbox.add_details("admin_verb","Send Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! \ No newline at end of file diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 38b0052eaf..4036247eac 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -81,7 +81,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that . = get_callproc_returnval(returnval, procname) if(.) to_chat(usr, .) - feedback_add_details("admin_verb","Advanced ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Advanced ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! GLOBAL_VAR_INIT(AdminProcCall, null) GLOBAL_PROTECT(AdminProcCall) @@ -130,7 +130,7 @@ GLOBAL_PROTECT(AdminProcCall) var/msg = "[key_name(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"]." message_admins(msg) admin_ticket_log(A, msg) - feedback_add_details("admin_verb","Atom ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Atom ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! var/returnval = WrapAdminProcCall(A, procname, lst) // Pass the lst as an argument list to the proc . = get_callproc_returnval(returnval,procname) @@ -784,7 +784,7 @@ GLOBAL_PROTECT(AdminProcCall) global.medals_enabled = !global.medals_enabled message_admins("[key_name_admin(src)] [global.medals_enabled ? "disabled" : "enabled"] the medal hub lockout.") - feedback_add_details("admin_verb","Toggle Medal Disable") // If... + SSblackbox.add_details("admin_verb","Toggle Medal Disable") // If... log_admin("[key_name(src)] [global.medals_enabled ? "disabled" : "enabled"] the medal hub lockout.") /client/proc/view_runtimes() diff --git a/code/modules/admin/verbs/panicbunker.dm b/code/modules/admin/verbs/panicbunker.dm index b0c1aac982..3da486be78 100644 --- a/code/modules/admin/verbs/panicbunker.dm +++ b/code/modules/admin/verbs/panicbunker.dm @@ -11,5 +11,5 @@ message_admins("[key_name_admin(usr)] has toggled the Panic Bunker, it is now [(config.panic_bunker?"enabled":"disabled")].") if (config.panic_bunker && (!SSdbcore || !SSdbcore.IsConnected())) message_admins("The Database is not connected! Panic bunker will not work until the connection is reestablished.") - feedback_add_details("admin_toggle","Toggle Panic Bunker|[config.panic_bunker]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Panic Bunker|[config.panic_bunker]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 6e77b8daf8..f905ab879c 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -18,7 +18,7 @@ var/msg = "[key_name_admin(usr)] made [key_name_admin(M)] drop everything!" message_admins(msg) admin_ticket_log(M, msg) - feedback_add_details("admin_verb","Drop Everything") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Drop Everything") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_subtle_message(mob/M in GLOB.mob_list) set category = "Special Verbs" @@ -45,7 +45,7 @@ msg = " SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] : [msg]" message_admins(msg) admin_ticket_log(M, msg) - feedback_add_details("admin_verb","Subtle Message") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Subtle Message") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_world_narrate() set category = "Special Verbs" @@ -62,7 +62,7 @@ to_chat(world, "[msg]") log_admin("GlobalNarrate: [key_name(usr)] : [msg]") message_admins("[key_name_admin(usr)] Sent a global narrate") - SSblackbox.add_details("admin_verb","Global Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Global Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_direct_narrate(mob/M) set category = "Special Verbs" @@ -88,7 +88,7 @@ msg = " DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]
" message_admins(msg) admin_ticket_log(M, msg) - feedback_add_details("admin_verb","Direct Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Direct Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_local_narrate(atom/A) set category = "Special Verbs" @@ -110,7 +110,7 @@ log_admin("LocalNarrate: [key_name(usr)] at ([get_area(A)]): [msg]") message_admins(" LocalNarrate: [key_name_admin(usr)] at ([get_area(A)]): [msg]
") - SSblackbox.add_details("admin_verb","Local Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Local Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_godmode(mob/M in GLOB.mob_list) set category = "Special Verbs" @@ -125,7 +125,7 @@ var/msg = "[key_name_admin(usr)] has toggled [key_name_admin(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]" message_admins(msg) admin_ticket_log(M, msg) - feedback_add_details("admin_toggle","Godmode|[M.status_flags & GODMODE]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Godmode|[M.status_flags & GODMODE]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /proc/cmd_admin_mute(whom, mute_type, automute = 0) @@ -187,7 +187,7 @@ message_admins("SPAM AUTOMUTE: [muteunmute] [key_name_admin(whom)] from [mute_string].") if(C) to_chat(C, "You have been [muteunmute] from [mute_string] by the SPAM AUTOMUTE system. Contact an admin.") - SSblackbox.add_details("admin_toggle","Auto Mute [feedback_string]|1") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Auto Mute [feedback_string]|1") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return if(P.muted & mute_type) @@ -201,7 +201,7 @@ message_admins("[key_name_admin(usr)] has [muteunmute] [key_name_admin(whom)] from [mute_string].") if(C) to_chat(C, "You have been [muteunmute] from [mute_string] by [key_name(usr, include_name = FALSE)].") - SSblackbox.add_details("admin_toggle","Mute [feedback_string]|[P.muted & mute_type]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Mute [feedback_string]|[P.muted & mute_type]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //I use this proc for respawn character too. /N @@ -423,7 +423,7 @@ Traitors and the like can also be revived with the previous role mostly intact. to_chat(new_character, "You have been fully respawned. Enjoy the game.") - SSblackbox.add_details("admin_verb","Respawn Character") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Respawn Character") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return new_character /client/proc/cmd_admin_add_freeform_ai_law() @@ -446,7 +446,7 @@ Traitors and the like can also be revived with the previous role mostly intact. ion.announceEvent = announce_ion_laws ion.ionMessage = input - SSblackbox.add_details("admin_verb","Add Custom AI Law") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Add Custom AI Law") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_rejuvenate(mob/living/M in GLOB.mob_list) set category = "Special Verbs" @@ -465,7 +465,7 @@ Traitors and the like can also be revived with the previous role mostly intact. var/msg = "Admin [key_name_admin(usr)] healed / revived [key_name_admin(M)]!" message_admins(msg) admin_ticket_log(M, msg) - feedback_add_details("admin_verb","Rejuvinate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Rejuvinate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_create_centcom_report() set category = "Special Verbs" @@ -490,7 +490,7 @@ Traitors and the like can also be revived with the previous role mostly intact. log_admin("[key_name(src)] has created a command report: [input]") message_admins("[key_name_admin(src)] has created a command report") - SSblackbox.add_details("admin_verb","Create Command Report") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Create Command Report") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_change_command_name() set category = "Special Verbs" @@ -516,7 +516,7 @@ Traitors and the like can also be revived with the previous role mostly intact. if (alert(src, "Are you sure you want to delete:\n[O]\nat ([O.x], [O.y], [O.z])?", "Confirmation", "Yes", "No") == "Yes") log_admin("[key_name(usr)] deleted [O] at ([O.x],[O.y],[O.z])") message_admins("[key_name_admin(usr)] deleted [O] at ([O.x],[O.y],[O.z])") - SSblackbox.add_details("admin_verb","Delete") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Delete") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! if(isturf(O)) var/turf/T = O T.ChangeTurf(T.baseturf) @@ -531,7 +531,7 @@ Traitors and the like can also be revived with the previous role mostly intact. to_chat(src, "Only administrators may use this command.") return holder.manage_free_slots() - SSblackbox.add_details("admin_verb","Manage Job Slots") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Manage Job Slots") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_explosion(atom/O as obj|mob|turf in world) set category = "Special Verbs" @@ -560,7 +560,7 @@ Traitors and the like can also be revived with the previous role mostly intact. explosion(O, devastation, heavy, light, flash, null, null,flames) log_admin("[key_name(usr)] created an explosion ([devastation],[heavy],[light],[flames]) at ([O.x],[O.y],[O.z])") message_admins("[key_name_admin(usr)] created an explosion ([devastation],[heavy],[light],[flames]) at ([O.x],[O.y],[O.z])") - SSblackbox.add_details("admin_verb","Explosion") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Explosion") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return else return @@ -583,7 +583,7 @@ Traitors and the like can also be revived with the previous role mostly intact. empulse(O, heavy, light) log_admin("[key_name(usr)] created an EM Pulse ([heavy],[light]) at ([O.x],[O.y],[O.z])") message_admins("[key_name_admin(usr)] created an EM PUlse ([heavy],[light]) at ([O.x],[O.y],[O.z])") - SSblackbox.add_details("admin_verb","EM Pulse") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","EM Pulse") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return else @@ -614,7 +614,7 @@ Traitors and the like can also be revived with the previous role mostly intact. M.gib() else M.gib(1) - SSblackbox.add_details("admin_verb","Gib") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Gib") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_gib_self() set name = "Gibself" @@ -624,7 +624,7 @@ Traitors and the like can also be revived with the previous role mostly intact. if(confirm == "Yes") log_admin("[key_name(usr)] used gibself.") message_admins("[key_name_admin(usr)] used gibself.") - SSblackbox.add_details("admin_verb","Gib Self") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Gib Self") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! mob.gib(1, 1, 1) /client/proc/cmd_admin_check_contents(mob/living/M in GLOB.mob_list) @@ -634,7 +634,7 @@ Traitors and the like can also be revived with the previous role mostly intact. var/list/L = M.get_contents() for(var/t in L) to_chat(usr, "[t]") - SSblackbox.add_details("admin_verb","Check Contents") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Check Contents") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/toggle_view_range() set category = "Special Verbs" @@ -649,7 +649,7 @@ Traitors and the like can also be revived with the previous role mostly intact. log_admin("[key_name(usr)] changed their view range to [view].") //message_admins("\blue [key_name_admin(usr)] changed their view range to [view].") //why? removed by order of XSI - SSblackbox.add_details("admin_toggle","Change View Range|[view]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Change View Range|[view]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/admin_call_shuttle() @@ -668,7 +668,7 @@ Traitors and the like can also be revived with the previous role mostly intact. return SSshuttle.emergency.request() - SSblackbox.add_details("admin_verb","Call Shuttle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Call Shuttle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] admin-called the emergency shuttle.") message_admins("[key_name_admin(usr)] admin-called the emergency shuttle.") return @@ -685,7 +685,7 @@ Traitors and the like can also be revived with the previous role mostly intact. return SSshuttle.emergency.cancel() - SSblackbox.add_details("admin_verb","Cancel Shuttle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Cancel Shuttle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] admin-recalled the emergency shuttle.") message_admins("[key_name_admin(usr)] admin-recalled the emergency shuttle.") @@ -720,7 +720,7 @@ Traitors and the like can also be revived with the previous role mostly intact. to_chat(usr, "Remember: you can always disable the randomness by using the verb again, assuming the round hasn't started yet.") config.force_random_names = 1 - SSblackbox.add_details("admin_verb","Make Everyone Random") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Make Everyone Random") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/toggle_random_events() @@ -735,7 +735,7 @@ Traitors and the like can also be revived with the previous role mostly intact. config.allow_random_events = 0 to_chat(usr, "Random events disabled") message_admins("Admin [key_name_admin(usr)] has disabled random events.") - SSblackbox.add_details("admin_toggle","Toggle Random Events|[config.allow_random_events]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Random Events|[config.allow_random_events]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/admin_change_sec_level() @@ -753,7 +753,7 @@ Traitors and the like can also be revived with the previous role mostly intact. log_admin("[key_name(usr)] changed the security level to [level]") message_admins("[key_name_admin(usr)] changed the security level to [level]") - SSblackbox.add_details("admin_verb","Set Security Level [capitalize(level)]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Set Security Level [capitalize(level)]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/toggle_nuke(obj/machinery/nuclearbomb/N in GLOB.nuke_list) set name = "Toggle Nuke" @@ -772,7 +772,7 @@ Traitors and the like can also be revived with the previous role mostly intact. log_admin("[key_name(usr)] [N.timing ? "activated" : "deactivated"] a nuke at ([N.x],[N.y],[N.z]).") message_admins("[ADMIN_LOOKUPFLW(usr)] [N.timing ? "activated" : "deactivated"] a nuke at [ADMIN_COORDJMP(N)].") - SSblackbox.add_details("admin_toggle","Toggle Nuke|[N.timing]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Nuke|[N.timing]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits @@ -970,11 +970,11 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits to_chat(usr, "You toggled your admin antag HUD [adding_hud ? "ON" : "OFF"].") message_admins("[key_name_admin(usr)] toggled their admin antag HUD [adding_hud ? "ON" : "OFF"].") log_admin("[key_name(usr)] toggled their admin antag HUD [adding_hud ? "ON" : "OFF"].") - SSblackbox.add_details("admin_toggle","Toggle Antag HUD|[adding_hud]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggle Antag HUD|[adding_hud]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/has_antag_hud() var/datum/atom_hud/A = GLOB.huds[ANTAG_HUD_TRAITOR] - return A.hudusers[mob] + return A.hudusers[mob] /client/proc/open_shuttle_manipulator() set category = "Admin" @@ -1002,7 +1002,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits message_admins("[key_name_admin(usr)] added a latent zombie infection to all humans.") log_admin("[key_name(usr)] added a latent zombie infection to all humans.") - SSblackbox.add_details("admin_verb","Mass Zombie Infection") + SSblackbox.add_details("admin_verb","Mass Zombie Infection") /client/proc/mass_zombie_cure() set category = "Fun" @@ -1020,7 +1020,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits message_admins("[key_name_admin(usr)] cured all zombies.") log_admin("[key_name(usr)] cured all zombies.") - SSblackbox.add_details("admin_verb","Mass Zombie Cure") + SSblackbox.add_details("admin_verb","Mass Zombie Cure") /client/proc/polymorph_all() set category = "Fun" @@ -1039,7 +1039,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits message_admins("[key_name_admin(usr)] started polymorphed all living mobs.") log_admin("[key_name(usr)] polymorphed all living mobs.") - SSblackbox.add_details("admin_verb","Polymorph All") + SSblackbox.add_details("admin_verb","Polymorph All") for(var/mob/living/M in mobs) CHECK_TICK @@ -1080,7 +1080,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits message_admins("[key_name_admin(usr)] sent a tip of the round.") log_admin("[key_name(usr)] sent \"[input]\" as the Tip of the Round.") - SSblackbox.add_details("admin_verb","Show Tip") + SSblackbox.add_details("admin_verb","Show Tip") #define ON_PURRBATION(H) (!(H.dna.features["tail_human"] == "None" && H.dna.features["ears"] == "None")) @@ -1157,7 +1157,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits if (world.visibility && !world.reachable) message_admins("WARNING: The server will not show up on the hub because byond is detecting that a filewall is blocking incoming connections.") - SSblackbox.add_details("admin_toggle","Toggled Hub Visibility|[world.visibility]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_toggle","Toggled Hub Visibility|[world.visibility]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/smite(mob/living/carbon/human/target as mob) set name = "Smite" diff --git a/code/modules/admin/verbs/reestablish_db_connection.dm b/code/modules/admin/verbs/reestablish_db_connection.dm index 3b134eaff0..133a39185e 100644 --- a/code/modules/admin/verbs/reestablish_db_connection.dm +++ b/code/modules/admin/verbs/reestablish_db_connection.dm @@ -17,11 +17,11 @@ SSdbcore.Disconnect() log_admin("[key_name(usr)] has forced the database to disconnect") message_admins("[key_name_admin(usr)] has forced the database to disconnect!") - feedback_add_details("admin_verb","Force Reestablished Database Connection") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Force Reestablished Database Connection") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] is attempting to re-established the DB Connection") message_admins("[key_name_admin(usr)] is attempting to re-established the DB Connection") - feedback_add_details("admin_verb","Reestablished Database Connection") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.add_details("admin_verb","Reestablished Database Connection") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! SSdbcore.failed_connections = 0 if(!SSdbcore.Connect()) diff --git a/code/modules/events/_event.dm b/code/modules/events/_event.dm index 4046e7dcb8..4eef1c06a3 100644 --- a/code/modules/events/_event.dm +++ b/code/modules/events/_event.dm @@ -78,13 +78,13 @@ triggering = FALSE message_admins("[key_name_admin(usr)] cancelled event [name].") log_admin_private("[key_name(usr)] cancelled event [name].") - feedback_add_details("event_admin_cancelled","[typepath]") + SSblackbox.add_details("event_admin_cancelled","[typepath]") /datum/round_event_control/proc/runEvent(random) var/datum/round_event/E = new typepath() E.current_players = get_active_player_count(alive_check = 1, afk_check = 1, human_check = 1) E.control = src - feedback_add_details("event_ran","[E]") + SSblackbox.add_details("event_ran","[E]") occurrences++ testing("[time2text(world.time, "hh:mm:ss")] [E.type]") diff --git a/code/modules/mining/equipment.dm b/code/modules/mining/equipment.dm index 144a2634ba..dd8766bdc9 100644 --- a/code/modules/mining/equipment.dm +++ b/code/modules/mining/equipment.dm @@ -68,7 +68,7 @@ /obj/item/device/wormhole_jaunter/attack_self(mob/user) user.visible_message("[user.name] activates the [src.name]!") - feedback_add_details("jaunter", "User") // user activated + SSblackbox.add_details("jaunter", "User") // user activated activate(user) /obj/item/device/wormhole_jaunter/proc/turf_check(mob/user) @@ -124,13 +124,13 @@ if(triggered) usr.visible_message("The [src] overloads and activates!") - feedback_add_details("jaunter","EMP") // EMP accidental activation + SSblackbox.add_details("jaunter","EMP") // EMP accidental activation activate(usr) /obj/item/device/wormhole_jaunter/proc/chasm_react(mob/user) if(user.get_item_by_slot(slot_belt) == src) to_chat(user, "Your [src] activates, saving you from the chasm!
") - feedback_add_details("jaunter","Chasm") // chasm automatic activation + SSblackbox.add_details("jaunter","Chasm") // chasm automatic activation activate(user) else to_chat(user, "The [src] is not attached to your belt, preventing it from saving you from the chasm. RIP.
") diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 911a4d97df..6b1179a585 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -86,7 +86,7 @@ user.sight |= SEE_MOBS icon_state = "lantern" wisp.orbit(user, 20) - feedback_add_details("wisp_lantern","Freed") + SSblackbox.add_details("wisp_lantern","Freed") else to_chat(user, "You return the wisp to the lantern.") @@ -101,7 +101,7 @@ wisp.stop_orbit() wisp.loc = src icon_state = "lantern-blue" - feedback_add_details("wisp_lantern","Returned") + SSblackbox.add_details("wisp_lantern","Returned") /obj/item/device/wisp_lantern/Initialize() ..() @@ -228,7 +228,7 @@ /obj/item/device/immortality_talisman/attack_self(mob/user) if(cooldown < world.time) - feedback_add_details("immortality_talisman","Activated") // usage + SSblackbox.add_details("immortality_talisman","Activated") // usage cooldown = world.time + 600 user.visible_message("[user] vanishes from reality, leaving a a hole in [user.p_their()] place!") var/obj/effect/immortality_talisman/Z = new(get_turf(src.loc)) diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index 52205b2497..a1c4a74795 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -3,7 +3,7 @@ var/deletes_extract = TRUE /datum/chemical_reaction/slime/on_reaction(datum/reagents/holder) - feedback_add_details("slime_cores_used","[type]") + SSblackbox.add_details("slime_cores_used","[type]") if(deletes_extract) delete_extract(holder) diff --git a/code/modules/uplink/uplink_item.dm b/code/modules/uplink/uplink_item.dm index 9ed0565ee7..62d0a032d9 100644 --- a/code/modules/uplink/uplink_item.dm +++ b/code/modules/uplink/uplink_item.dm @@ -88,7 +88,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. /datum/uplink_item/proc/spawn_item(turf/loc, obj/item/device/uplink/U) if(item) - feedback_add_details("traitor_uplink_items_bought", "[name]|[cost]") + SSblackbox.add_details("traitor_uplink_items_bought", "[name]|[cost]") return new item(loc) /datum/uplink_item/proc/buy(mob/user, obj/item/device/uplink/U) @@ -1158,7 +1158,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. /datum/uplink_item/cyber_implants/spawn_item(turf/loc, obj/item/device/uplink/U) if(item) if(istype(item, /obj/item/organ)) - feedback_add_details("traitor_uplink_items_bought", "[item]|[cost]") + SSblackbox.add_details("traitor_uplink_items_bought", "[item]|[cost]") return new /obj/item/weapon/storage/box/cyber_implants(loc, item) else return ..() @@ -1326,7 +1326,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. new I.item(C) U.purchase_log += "\icon[I.item]" - feedback_add_details("traitor_uplink_items_bought", "[name]|[cost]") + SSblackbox.add_details("traitor_uplink_items_bought", "[name]|[cost]") return C /datum/uplink_item/badass/random @@ -1352,6 +1352,6 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. var/datum/uplink_item/I = pick(possible_items) U.telecrystals -= I.cost U.spent_telecrystals += I.cost - feedback_add_details("traitor_uplink_items_bought","[name]|[I.cost]") - feedback_add_details("traitor_random_uplink_items_gotten","[I.name]") + SSblackbox.add_details("traitor_uplink_items_bought","[name]|[I.cost]") + SSblackbox.add_details("traitor_random_uplink_items_gotten","[I.name]") return new I.item(loc) diff --git a/code/world.dm b/code/world.dm index 7af27a1504..4e00c32f60 100644 --- a/code/world.dm +++ b/code/world.dm @@ -209,12 +209,11 @@ WORLD_REBOOT(0) #undef WORLD_REBOOT + /world/proc/OnReboot(reason, feedback_c, feedback_r, round_end_sound_sent) - feedback_set_details("[feedback_c]","[feedback_r]") + SSblackbox.set_details("[feedback_c]","[feedback_r]") log_game("Rebooting World. [reason]") - feedback_set("ahelp_unresolved", GLOB.ahelp_tickets.active_tickets.len) - if(GLOB.blackbox) - GLOB.blackbox.save_all_data_to_sql() + SSblackbox.set_val("ahelp_unresolved", GLOB.ahelp_tickets.active_tickets.len) Master.Shutdown() //run SS shutdowns RoundEndAnimation(round_end_sound_sent) kick_clients_in_lobby("The round came to an end with you in the lobby.", 1) //second parameter ensures only afk clients are kicked diff --git a/tgstation.dme b/tgstation.dme index cead10a6c2..758fe70896 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -189,6 +189,7 @@ #include "code\controllers\subsystem\assets.dm" #include "code\controllers\subsystem\atoms.dm" #include "code\controllers\subsystem\augury.dm" +#include "code\controllers\subsystem\blackbox.dm" #include "code\controllers\subsystem\communications.dm" #include "code\controllers\subsystem\dbcore.dm" #include "code\controllers\subsystem\disease.dm" @@ -2152,7 +2153,6 @@ #include "code\modules\VR\vr_sleeper.dm" #include "code\modules\zombie\items.dm" #include "code\modules\zombie\organs.dm" -#include "code\orphaned_procs\statistics.dm" #include "interface\interface.dm" #include "interface\stylesheet.dm" #include "interface\skin.dmf" From 29720a0bb5a0cd468d2d3579b6062e87d8336c7e Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 29 Apr 2017 12:01:32 -0500 Subject: [PATCH 15/50] Update randomverbs.dm --- code/modules/admin/verbs/randomverbs.dm | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index b4f8927133..8d21a8c531 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -522,11 +522,7 @@ Traitors and the like can also be revived with the previous role mostly intact. T.ChangeTurf(T.baseturf) else qdel(O) - - T.ChangeTurf(T.baseturf) - else - qdel(D) - + /client/proc/cmd_admin_list_open_jobs() set category = "Admin" set name = "Manage Job Slots" @@ -1193,4 +1189,4 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits var/msg = "[key_name_admin(usr)] punished [key_name_admin(target)] with [punishment]." message_admins(msg) admin_ticket_log(target, msg) - log_admin("[key_name(usr)] punished [key_name(target)] with [punishment].") \ No newline at end of file + log_admin("[key_name(usr)] punished [key_name(target)] with [punishment].") From 724082121cbfd561da5f345cadcb0f780b891343 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 30 Apr 2017 12:23:29 -0500 Subject: [PATCH 16/50] [FUN REMOVAL] Makes fire not able to become ice. --- code/modules/atmospherics/environmental/LINDA_fire.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm index a52a725954..bbbc3f12ed 100644 --- a/code/modules/atmospherics/environmental/LINDA_fire.dm +++ b/code/modules/atmospherics/environmental/LINDA_fire.dm @@ -64,6 +64,8 @@ setDir(pick(GLOB.cardinal)) air_update_turf() +/obj/effect/hotspot/make_frozen_visual() + return //you take my fun i take yours /obj/effect/hotspot/proc/perform_exposure() var/turf/open/location = loc From 7a4f1496e97dbbb46df925d1bca230b3aecc07d6 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 May 2017 07:24:45 -0500 Subject: [PATCH 17/50] Changes a lot of ticker and ticker.mode checks to SSticker.hasRoundStarted --- code/controllers/subsystem/vote.dm | 2 +- code/datums/mind.dm | 2 +- code/game/machinery/doors/airlock.dm | 2 -- code/game/machinery/doors/door.dm | 2 -- code/game/machinery/doors/windowdoor.dm | 2 -- code/modules/admin/secrets.dm | 4 ++-- code/modules/admin/topic.dm | 10 +++++----- code/modules/admin/topic.dm.rej | 10 ++++++++++ code/modules/admin/verbs/debug.dm | 12 ++++++------ code/modules/admin/verbs/onlyone.dm | 4 ++-- code/modules/admin/verbs/randomverbs.dm | 2 +- code/modules/mob/dead/observer/observer.dm | 4 ++-- code/modules/mob/living/carbon/human/death.dm.rej | 10 ++++++++++ code/modules/mob/living/living.dm | 2 +- code/modules/mob/living/living_defense.dm | 2 +- code/modules/mob/living/silicon/ai/ai_defense.dm | 2 +- code/modules/mob/mob_helpers.dm | 2 +- code/world.dm | 2 +- 18 files changed, 45 insertions(+), 31 deletions(-) create mode 100644 code/modules/admin/topic.dm.rej create mode 100644 code/modules/mob/living/carbon/human/death.dm.rej diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index b3b6dce98a..5deb0adf85 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -124,7 +124,7 @@ SUBSYSTEM_DEF(vote) if("gamemode") if(GLOB.master_mode != .) world.save_mode(.) - if(SSticker && SSticker.mode) + if(SSticker.HasRoundStarted()) restart = 1 else GLOB.master_mode = . diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 5a6c34bcc4..9077db63e1 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -255,7 +255,7 @@ to_chat(recipient, "[output]") /datum/mind/proc/edit_memory() - if(!SSticker || !SSticker.mode) + if(!SSticker.HasRoundStarted()) alert("Not before round-start!", "Alert") return diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index a9331cd142..7ff38f53c9 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1283,8 +1283,6 @@ if(!density) return 1 - if(!SSticker || !SSticker.mode) - return 0 operating = 1 update_icon(AIRLOCK_OPENING, 1) src.set_opacity(0) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index cd587a0c44..4e076e3338 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -229,8 +229,6 @@ return 1 if(operating) return - if(!SSticker || !SSticker.mode) - return 0 operating = 1 do_animate("opening") set_opacity(0) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 20dd6860ea..99cdc1adc3 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -129,8 +129,6 @@ /obj/machinery/door/window/open(forced=0) if (src.operating == 1) //doors can still open when emag-disabled return 0 - if(!SSticker || !SSticker.mode) - return 0 if(!forced) if(!hasPower()) return 0 diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index 7f0479eac9..a7a42da6d9 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -238,7 +238,7 @@ if("showgm") if(!check_rights(R_ADMIN)) return - if(!SSticker || !SSticker.mode) + if(!SSticker.HasRoundStarted()) alert("The game hasn't started yet!") else if (SSticker.mode) alert("The game mode is [SSticker.mode.name]") @@ -327,7 +327,7 @@ if("traitor_all") if(!check_rights(R_FUN)) return - if(!SSticker || !SSticker.mode) + if(!SSticker.HasRoundStarted()) alert("The game hasn't started yet!") return var/objective = copytext(sanitize(input("Enter an objective")),1,MAX_MESSAGE_LEN) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index dd32085681..c05db79983 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1170,7 +1170,7 @@ if(!check_rights(R_ADMIN)) return - if(SSticker && SSticker.mode) + if(SSticker.HasRoundStarted()) return alert(usr, "The game has already started.", null, null, null, null) var/dat = {"What mode do you wish to play?
"} for(var/mode in config.modes) @@ -1184,7 +1184,7 @@ if(!check_rights(R_ADMIN)) return - if(SSticker && SSticker.mode) + if(SSticker.HasRoundStarted()) return alert(usr, "The game has already started.", null, null, null, null) if(GLOB.master_mode != "secret") return alert(usr, "The game mode has to be secret!", null, null, null, null) @@ -1199,7 +1199,7 @@ if(!check_rights(R_ADMIN|R_SERVER)) return - if (SSticker && SSticker.mode) + if (SSticker.HasRoundStarted()) return alert(usr, "The game has already started.", null, null, null, null) GLOB.master_mode = href_list["c_mode2"] log_admin("[key_name(usr)] set the mode as [GLOB.master_mode].") @@ -1213,7 +1213,7 @@ if(!check_rights(R_ADMIN|R_SERVER)) return - if(SSticker && SSticker.mode) + if(SSticker.HasRoundStarted()) return alert(usr, "The game has already started.", null, null, null, null) if(GLOB.master_mode != "secret") return alert(usr, "The game mode has to be secret!", null, null, null, null) @@ -1810,7 +1810,7 @@ if(!check_rights(R_ADMIN)) return - if(!SSticker || !SSticker.mode) + if(!SSticker.HasRoundStarted()) alert("The game hasn't started yet!") return diff --git a/code/modules/admin/topic.dm.rej b/code/modules/admin/topic.dm.rej new file mode 100644 index 0000000000..041ae92107 --- /dev/null +++ b/code/modules/admin/topic.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm (rejected hunks) +@@ -8,7 +8,7 @@ + if(href_list["ahelp"]) + if(!check_rights(R_ADMIN)) + return +- ++ + var/ahelp_ref = href_list["ahelp"] + var/datum/admin_help/AH = locate(ahelp_ref) + if(AH) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index c9014da3b0..c49240ed66 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -207,7 +207,7 @@ GLOBAL_PROTECT(AdminProcCall) set category = "Fun" set name = "Make Robot" - if(!SSticker || !SSticker.mode) + if(!SSticker.HasRoundStarted()) alert("Wait until the game starts") return if(ishuman(M)) @@ -223,7 +223,7 @@ GLOBAL_PROTECT(AdminProcCall) set category = "Fun" set name = "Make Blob" - if(!SSticker || !SSticker.mode) + if(!SSticker.HasRoundStarted()) alert("Wait until the game starts") return if(ishuman(M)) @@ -241,7 +241,7 @@ GLOBAL_PROTECT(AdminProcCall) set category = "Fun" set name = "Make Simple Animal" - if(!SSticker || !SSticker.mode) + if(!SSticker.HasRoundStarted()) alert("Wait until the game starts") return @@ -289,7 +289,7 @@ GLOBAL_PROTECT(AdminProcCall) set category = "Fun" set name = "Make Alien" - if(!SSticker || !SSticker.mode) + if(!SSticker.HasRoundStarted()) alert("Wait until the game starts") return if(ishuman(M)) @@ -306,7 +306,7 @@ GLOBAL_PROTECT(AdminProcCall) set category = "Fun" set name = "Make slime" - if(!SSticker || !SSticker.mode) + if(!SSticker.HasRoundStarted()) alert("Wait until the game starts") return if(ishuman(M)) @@ -417,7 +417,7 @@ GLOBAL_PROTECT(AdminProcCall) set category = "Admin" set name = "Grant Full Access" - if(!SSticker || !SSticker.mode) + if(!SSticker.HasRoundStarted()) alert("Wait until the game starts") return if(ishuman(M)) diff --git a/code/modules/admin/verbs/onlyone.dm b/code/modules/admin/verbs/onlyone.dm index dd56f2a6a0..37dab65b0c 100644 --- a/code/modules/admin/verbs/onlyone.dm +++ b/code/modules/admin/verbs/onlyone.dm @@ -1,6 +1,6 @@ GLOBAL_VAR_INIT(highlander, FALSE) /client/proc/only_one() //Gives everyone kilts, berets, claymores, and pinpointers, with the objective to hijack the emergency shuttle. - if(!SSticker || !SSticker.mode) + if(!SSticker.HasRoundStarted()) alert("The game hasn't started yet!") return GLOB.highlander = TRUE @@ -79,7 +79,7 @@ GLOBAL_VAR_INIT(highlander, FALSE) Activate it in your hand, and it will lead to the nearest target. Attack the nuclear authentication disk with it, and you will store it.
") /proc/only_me() - if(!SSticker || !SSticker.mode) + if(!SSticker.HasRoundStarted()) alert("The game hasn't started yet!") return diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index f4dcc36576..04cf3e855a 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -701,7 +701,7 @@ Traitors and the like can also be revived with the previous role mostly intact. set name = "Make Everyone Random" set desc = "Make everyone have a random appearance. You can only use this before rounds!" - if(SSticker && SSticker.mode) + if(SSticker.HasRoundStarted()) to_chat(usr, "Nope you can't do this, the game's already started. This only works before rounds!") return diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index ab6377b096..7d05d15624 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -298,7 +298,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/dead/observer/Stat() ..() if(statpanel("Status")) - if(SSticker && SSticker.mode) + if(SSticker.HasRoundStarted()) for(var/datum/gang/G in SSticker.mode.gangs) if(G.is_dominating) stat(null, "[G.name] Gang Takeover: [max(G.domination_time_remaining(), 0)]") @@ -361,7 +361,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(!A.hidden) filtered += A var/area/thearea = input("Area to jump to", "BOOYEA") as null|anything in filtered - + if(!thearea) return diff --git a/code/modules/mob/living/carbon/human/death.dm.rej b/code/modules/mob/living/carbon/human/death.dm.rej new file mode 100644 index 0000000000..a4a1fc5a7c --- /dev/null +++ b/code/modules/mob/living/carbon/human/death.dm.rej @@ -0,0 +1,10 @@ +diff a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm (rejected hunks) +@@ -32,7 +32,7 @@ + + dna.species.spec_death(gibbed, src) + +- if(SSticker && SSticker.mode) ++ if(SSticker.HasRoundStarted()) + SSblackbox.ReportDeath(src) + if(mind && mind.devilinfo) + INVOKE_ASYNC(mind.devilinfo, /datum/devilinfo.proc/beginResurrectionCheck, src) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index e3502e7a90..d707f01e60 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -600,7 +600,7 @@ return name /mob/living/update_gravity(has_gravity,override = 0) - if(!SSticker || !SSticker.mode) + if(!SSticker.HasRoundStarted()) return if(has_gravity) clear_alert("weightless") diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 6ea921e560..e4129e642d 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -172,7 +172,7 @@ /mob/living/attack_slime(mob/living/simple_animal/slime/M) - if(!SSticker || !SSticker.mode) + if(!SSticker.HasRoundStarted()) to_chat(M, "You cannot attack people before the game has started.") return diff --git a/code/modules/mob/living/silicon/ai/ai_defense.dm b/code/modules/mob/living/silicon/ai/ai_defense.dm index 75ef88768f..d07f85ef6a 100644 --- a/code/modules/mob/living/silicon/ai/ai_defense.dm +++ b/code/modules/mob/living/silicon/ai/ai_defense.dm @@ -6,7 +6,7 @@ /mob/living/silicon/ai/attack_alien(mob/living/carbon/alien/humanoid/M) - if(!SSticker || !SSticker.mode) + if(!SSticker.HasRoundStarted()) to_chat(M, "You cannot attack people before the game has started.") return ..() diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 834d799b79..65e83d3c5d 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -326,7 +326,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp return 0 /proc/is_special_character(mob/M) // returns 1 for special characters and 2 for heroes of gamemode //moved out of admins.dm because things other than admin procs were calling this. - if(!SSticker || !SSticker.mode) + if(!SSticker.HasRoundStarted()) return 0 if(!istype(M)) return 0 diff --git a/code/world.dm b/code/world.dm index 7af27a1504..c3ded147f2 100644 --- a/code/world.dm +++ b/code/world.dm @@ -116,7 +116,7 @@ s["map_name"] = SSmapping.config.map_name - if(key_valid && SSticker && SSticker.mode) + if(key_valid && SSticker.HasRoundStarted()) s["real_mode"] = SSticker.mode.name // Key-authed callers may know the truth behind the "secret" From 1842665af6c38f1aa6c78a4e8187909e4aac9752 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 1 May 2017 08:38:03 -0500 Subject: [PATCH 18/50] idjeet --- code/game/machinery/dance_machine.dm | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index d38ff18340..cf18a99875 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -13,7 +13,6 @@ var/list/rangers = list() var/charge = 35 var/stop = 0 - var/list/select_name = list() var/list/spotlights = list() var/list/sparkles = list() var/static/list/songs = list( @@ -46,9 +45,8 @@ if(!beat) beat = 5 if(!length) - length = 2400 //Unless there's a way to discern via BYOND. + length = 2400 //Unless there's a way to discern via BYOND. var/datum/track/T = new /datum/track(name, file, length, beat) - available |= T.song_name songs += T /obj/machinery/disco/Initialize() @@ -143,14 +141,11 @@ var/list/available = list() for(var/datum/track/S in songs) - available += S.song_name - select_name = input(usr, "Choose your song", "Track:") as null|anything in available - if (QDELETED(src)) + available[S.song_name] = S + var/selected = input(usr, "Choose your song", "Track:") as null|anything in available + if(QDELETED(src) || !selected || !istype(available[selected], /datum/track)) return - for(var/datum/track/S in songs) - if(select_name == S.song_name) - selection = S - break + selection = available[selected] updateUsrDialog() if("horn") deejay('sound/items/AirHorn2.ogg') From 99754380b59084ea0f87de37d4cbfd8bd07a918a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 May 2017 08:39:14 -0500 Subject: [PATCH 19/50] Makes surplus crates less likely to contain implants --- code/modules/uplink/uplink_item.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/uplink/uplink_item.dm b/code/modules/uplink/uplink_item.dm index 7fcbb87c59..da0840b551 100644 --- a/code/modules/uplink/uplink_item.dm +++ b/code/modules/uplink/uplink_item.dm @@ -1100,6 +1100,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. // Implants /datum/uplink_item/implants category = "Implants" + surplus = 50 /datum/uplink_item/implants/freedom name = "Freedom Implant" From 242cc65eac5aa7651eb3ff8dc6f24f2b9a0599fe Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 May 2017 11:05:28 -0500 Subject: [PATCH 20/50] Gang Pen Is now Stealthy --- code/game/gamemodes/gang/gang_pen.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/gang/gang_pen.dm b/code/game/gamemodes/gang/gang_pen.dm index 0e01532190..621d40cc45 100644 --- a/code/game/gamemodes/gang/gang_pen.dm +++ b/code/game/gamemodes/gang/gang_pen.dm @@ -11,7 +11,7 @@ ..() last_used = world.time -/obj/item/weapon/pen/gang/attack(mob/living/M, mob/user) +/obj/item/weapon/pen/gang/attack(mob/living/M, mob/user, stealth = TRUE) if(!istype(M)) return if(ishuman(M) && ishuman(user) && M.stat != DEAD) From 1426a20834757cf5cc38cb295a511f212ceeeb57 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 May 2017 11:07:33 -0500 Subject: [PATCH 21/50] Gaining Vanguard will remove existing stuns --- code/datums/status_effects/buffs.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index d07f66609b..3f261c7991 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -72,6 +72,8 @@ add_logs(owner, null, "gained Vanguard stun immunity") owner.add_stun_absorption("vanguard", 200, 1, "'s yellow aura momentarily intensifies!", "Your ward absorbs the stun!", " radiating with a soft yellow light!") owner.visible_message("[owner] begins to faintly glow!", "You will absorb all stuns for the next twenty seconds.") + owner.SetStunned(0, FALSE) + owner.SetWeakened(0) progbar = new(owner, duration, owner) progbar.bar.color = list("#FAE48C", "#FAE48C", "#FAE48C", rgb(0,0,0)) progbar.update(duration - world.time) From 34a701a1bcf06f388e8105cd1a606ac05f4a4f6d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 May 2017 11:38:04 -0500 Subject: [PATCH 22/50] You can no longer queue up ahelps by queing up prompts --- code/modules/admin/verbs/adminhelp.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 16249b4b6d..c912584851 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -485,6 +485,10 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) current_ticket.AddInteraction("[key_name_admin(usr)] opened a new ticket.") current_ticket.Close() + if(!(/client/verb/adminhelp in verbs)) + to_chat(usr, "Nice try!") + return + new /datum/admin_help(msg, src, FALSE) //admin proc From 185e077f33cf7af4062b6821f36d03078238121c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 May 2017 11:38:08 -0500 Subject: [PATCH 23/50] Port SM shards to initialize --- code/modules/power/supermatter/supermatter.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index fee8859de4..4b48d19857 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -127,7 +127,7 @@ /obj/machinery/power/supermatter_shard/make_frozen_visual() return -/obj/machinery/power/supermatter_shard/New() +/obj/machinery/power/supermatter_shard/Initialize() . = ..() countdown = new(src) countdown.start() From faaf0c17ba70f5a071046f3f8b1b0a974941cd1a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 May 2017 11:39:13 -0500 Subject: [PATCH 24/50] Small fixes to spatial gateways --- .../clock_effects/spatial_gateway.dm | 13 +++---- .../clock_structures/clockwork_obelisk.dm | 39 +++++++++++-------- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_effects/spatial_gateway.dm b/code/game/gamemodes/clock_cult/clock_effects/spatial_gateway.dm index f376410124..1c49d36693 100644 --- a/code/game/gamemodes/clock_cult/clock_effects/spatial_gateway.dm +++ b/code/game/gamemodes/clock_cult/clock_effects/spatial_gateway.dm @@ -15,9 +15,8 @@ var/obj/effect/clockwork/spatial_gateway/linked_gateway //The gateway linked to this one var/timerid -/obj/effect/clockwork/spatial_gateway/New() - ..() - update_light() +/obj/effect/clockwork/spatial_gateway/Initialize() + . = ..() addtimer(CALLBACK(src, .proc/check_setup), 1) /obj/effect/clockwork/spatial_gateway/Destroy() @@ -99,12 +98,12 @@ if(severity == 1 && uses) uses = 0 visible_message("[src] is disrupted!") - animate(src, alpha = 0, transform = matrix()*2, time = 10) + animate(src, alpha = 0, transform = matrix()*2, time = 10, flags = ANIMATION_END_NOW) deltimer(timerid) timerid = QDEL_IN(src, 10) linked_gateway.uses = 0 linked_gateway.visible_message("[linked_gateway] is disrupted!") - animate(linked_gateway, alpha = 0, transform = matrix()*2, time = 10) + animate(linked_gateway, alpha = 0, transform = matrix()*2, time = 10, flags = ANIMATION_END_NOW) deltimer(linked_gateway.timerid) linked_gateway.timerid = QDEL_IN(linked_gateway, 10) return TRUE @@ -131,9 +130,9 @@ playsound(src, 'sound/effects/EMPulse.ogg', 50, 1) playsound(linked_gateway, 'sound/effects/EMPulse.ogg', 50, 1) transform = matrix() * 1.5 - animate(src, transform = matrix() / 1.5, time = 10) + animate(src, transform = matrix() / 1.5, time = 10, flags = ANIMATION_END_NOW) linked_gateway.transform = matrix() * 1.5 - animate(linked_gateway, transform = matrix() / 1.5, time = 10) + animate(linked_gateway, transform = matrix() / 1.5, time = 10, flags = ANIMATION_END_NOW) A.forceMove(get_turf(linked_gateway)) if(!no_cost) uses = max(0, uses - 1) diff --git a/code/game/gamemodes/clock_cult/clock_structures/clockwork_obelisk.dm b/code/game/gamemodes/clock_cult/clock_structures/clockwork_obelisk.dm index c32bcb0b4b..2bebb4c9a5 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/clockwork_obelisk.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/clockwork_obelisk.dm @@ -44,45 +44,50 @@ /obj/structure/destructible/clockwork/powered/clockwork_obelisk/attack_hand(mob/living/user) if(!is_servant_of_ratvar(user) || total_accessable_power() < hierophant_cost || !anchored) - to_chat(user, "You place your hand on the obelisk, but it doesn't react.") + to_chat(user, "You place your hand on [src], but it doesn't react.") return - var/choice = alert(user,"You place your hand on the obelisk...",,"Hierophant Broadcast","Spatial Gateway","Cancel") + var/choice = alert(user,"You place your hand on [src]...",,"Hierophant Broadcast","Spatial Gateway","Cancel") switch(choice) if("Hierophant Broadcast") if(active) - to_chat(user, "The obelisk is sustaining a gateway and cannot broadcast!") + to_chat(user, "[src] is sustaining a gateway and cannot broadcast!") return if(!user.can_speak_vocal()) - to_chat(user, "You cannot speak through the obelisk!") + to_chat(user, "You cannot speak through [src]!") return var/input = stripped_input(usr, "Please choose a message to send over the Hierophant Network.", "Hierophant Broadcast", "") if(!is_servant_of_ratvar(user) || !input || !user.canUseTopic(src, !issilicon(user))) return + if(anchored) + to_chat(user, "[src] is no longer secured!") + return FALSE if(active) - to_chat(user, "The obelisk is sustaining a gateway and cannot broadcast!") - return - if(!try_use_power(hierophant_cost)) - to_chat(user, "The obelisk lacks the power to broadcast!") + to_chat(user, "[src] is sustaining a gateway and cannot broadcast!") return if(!user.can_speak_vocal()) - to_chat(user, "You cannot speak through the obelisk!") + to_chat(user, "You cannot speak through [src]!") + return + if(!try_use_power(hierophant_cost)) + to_chat(user, "[src] lacks the power to broadcast!") return clockwork_say(user, text2ratvar("Hierophant Broadcast, activate! [html_decode(input)]")) titled_hierophant_message(user, input, "big_brass", "large_brass") if("Spatial Gateway") if(active) - to_chat(user, "The obelisk is already sustaining a gateway!") - return - if(!try_use_power(gateway_cost)) - to_chat(user, "The obelisk lacks the power to open a gateway!") + to_chat(user, "[src] is already sustaining a gateway!") return if(!user.can_speak_vocal()) to_chat(user, "You need to be able to speak to open a gateway!") return - if(procure_gateway(user, round(100 * get_efficiency_mod(), 1), round(5 * get_efficiency_mod(), 1), 1) && !active) - clockwork_say(user, text2ratvar("Spatial Gateway, activate!")) - else - return_power(gateway_cost) + if(!try_use_power(gateway_cost)) + to_chat(user, "[src] lacks the power to open a gateway!") + return + if(procure_gateway(user, round(100 * get_efficiency_mod(), 1), round(5 * get_efficiency_mod(), 1), 1)) + process() + if(!active) + clockwork_say(user, text2ratvar("Spatial Gateway, activate!")) + return + return_power(gateway_cost) //if we didn't return above, ie, successfully create a gateway, we give the power back /obj/structure/destructible/clockwork/powered/clockwork_obelisk/process() if(!anchored) From e2a95703de58f3a5b51bcc8b641e0b9cc9d5735a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 May 2017 11:54:33 -0500 Subject: [PATCH 25/50] Ore redemption machine cleanup --- code/modules/mining/machine_processing.dm | 4 +- code/modules/mining/machine_redemption.dm | 214 +++++++++++----------- 2 files changed, 114 insertions(+), 104 deletions(-) diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index e62392a8c8..668013e0de 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -71,7 +71,6 @@ var/selected_material = MAT_METAL var/selected_alloy = null var/datum/research/files - var/list/categories = list("Alloys") /obj/machinery/mineral/processing_unit/Initialize() . = ..() @@ -81,7 +80,8 @@ /obj/machinery/mineral/processing_unit/Destroy() CONSOLE = null - qdel(materials) + QDEL_NULL(materials) + QDEL_NULL(files) return ..() /obj/machinery/mineral/processing_unit/HasProximity(atom/movable/AM) diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index db0b400fda..d93bcb5028 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -12,9 +12,6 @@ output_dir = SOUTH req_access = list(GLOB.access_mineral_storeroom) var/req_access_reclaim = GLOB.access_mining_station - var/stk_types = list() - var/stk_amt = list() - var/stack_list = list() //Key: Type. Value: Instance of type. var/obj/item/weapon/card/id/inserted_id var/points = 0 var/ore_pickup_rate = 15 @@ -24,11 +21,20 @@ speed_process = 1 var/message_sent = FALSE var/list/ore_buffer = list() + var/datum/material_container/materials + var/datum/research/files -/obj/machinery/mineral/ore_redemption/New() - ..() +/obj/machinery/mineral/ore_redemption/Initialize() + . = ..() var/obj/item/weapon/circuitboard/machine/ore_redemption/B = new B.apply_default_parts(src) + materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE),INFINITY) + files = new /datum/research/smelter(src) + +/obj/machinery/mineral/ore_redemption/Destroy() + QDEL_NULL(materials) + QDEL_NULL(files) + return ..() /obj/item/weapon/circuitboard/machine/ore_redemption name = "Ore Redemption (Machine Board)" @@ -55,35 +61,67 @@ point_upgrade = point_upgrade_temp sheet_per_ore = sheet_per_ore_temp -/obj/machinery/mineral/ore_redemption/proc/process_sheet(obj/item/weapon/ore/O) - var/obj/item/stack/sheet/processed_sheet = SmeltMineral(O) - if(processed_sheet) - var/obj/item/stack/sheet/s - if(!stack_list[processed_sheet]) - s = new processed_sheet(src, FALSE) - s.amount = 0 - stack_list[processed_sheet] = s - s = stack_list[processed_sheet] - s.amount += sheet_per_ore //Stack the sheets - ore_buffer -= O - qdel(O) //... garbage collect +/obj/machinery/mineral/ore_redemption/proc/smelt_ore(obj/item/weapon/ore/O) + + ore_buffer -= O + + if(O && O.refined_type) + points += O.points * point_upgrade + + var/material_amount = materials.get_item_material_amount(O) + + if(!material_amount) + qdel(O) //no materials, incinerate it + + else if(!materials.has_space(material_amount)) //if there is no space, eject it + unload_mineral(O) + + else + materials.insert_item(O) //insert it + qdel(O) + +/obj/machinery/mineral/ore_redemption/proc/can_smelt_alloy(datum/design/D) + if(D.make_reagents.len) + return 0 + + var/build_amount = 1 + + for(var/mat_id in D.materials) + var/M = D.materials[mat_id] + var/datum/material/redemption_mat = materials.materials[mat_id] + + if(!M || !redemption_mat) + return 0 + + build_amount = min(build_amount, round(redemption_mat.amount / M)) + + return build_amount /obj/machinery/mineral/ore_redemption/proc/process_ores(list/ores_to_process) var/current_amount = 0 for(var/ore in ores_to_process) if(current_amount >= ore_pickup_rate) break - process_sheet(ore) + smelt_ore(ore) /obj/machinery/mineral/ore_redemption/proc/send_console_message() - if(z != ZLEVEL_STATION || !LAZYLEN(stack_list)) + if(z != ZLEVEL_STATION) return message_sent = TRUE var/area/A = get_area(src) var/msg = "Now available in [A]:
" - for(var/s in stack_list) - var/obj/item/stack/sheet/sheet = stack_list[s] - msg += "[capitalize(sheet.name)]: [sheet.amount] sheets
" + + var/has_minerals = FALSE + + for(var/mat_id in materials.materials) + var/datum/material/M = materials.materials[mat_id] + var/mineral_amount = M.amount / MINERAL_MATERIAL_AMOUNT + if(mineral_amount) + has_minerals = TRUE + msg += "[capitalize(M.name)]: [mineral_amount] sheets
" + + if(!has_minerals) + return for(var/obj/machinery/requests_console/D in GLOB.allConsoles) if(D.receive_ore_updates) @@ -144,15 +182,8 @@ return ..() /obj/machinery/mineral/ore_redemption/on_deconstruction() - empty_content() - -/obj/machinery/mineral/ore_redemption/proc/SmeltMineral(obj/item/weapon/ore/O) - if(O && O.refined_type) - var/obj/item/stack/sheet/M = O.refined_type - points += O.points * point_upgrade - return M - qdel(O)//No refined type? Purge it. - return + materials.retrieve_all() + ..() /obj/machinery/mineral/ore_redemption/attack_hand(mob/user) if(..()) @@ -169,30 +200,26 @@ else dat += "No ID inserted. Insert ID.

" - for(var/O in stack_list) - var/obj/item/stack/sheet/s = stack_list[O] - if(s.amount) - dat += "[capitalize(s.name)]: [s.amount] Release
" + for(var/mat_id in materials.materials) + var/datum/material/M = materials.materials[mat_id] + if(M.amount) + var/sheet_amount = M.amount / MINERAL_MATERIAL_AMOUNT + dat += "[capitalize(M.name)]: [sheet_amount] " + if(sheet_amount >= 1) + dat += "Release
" + else + dat += "Release
" - var/obj/item/stack/sheet/metalstack - if(/obj/item/stack/sheet/metal in stack_list) - metalstack = stack_list[/obj/item/stack/sheet/metal] + for(var/v in files.known_designs) + var/datum/design/D = files.known_designs[v] + if(can_smelt_alloy(D)) + dat += "[D.name]: Smelt
" + else + dat += "[D.name]: Smelt
" - var/obj/item/stack/sheet/plasmastack - if((/obj/item/stack/sheet/mineral/plasma in stack_list)) - plasmastack = stack_list[/obj/item/stack/sheet/mineral/plasma] + dat += "
Mineral Value List:
[get_ore_values()]
" - var/obj/item/stack/sheet/mineral/titaniumstack - if((/obj/item/stack/sheet/mineral/titanium in stack_list)) - titaniumstack = stack_list[/obj/item/stack/sheet/mineral/titanium] - - if(metalstack && plasmastack && min(metalstack.amount, plasmastack.amount)) - dat += "Plasteel Alloy (Metal + Plasma): Smelt
" - if(titaniumstack && plasmastack && min(titaniumstack.amount, plasmastack.amount)) - dat += "Plastitanium Alloy (Titanium + Plasma): Smelt
" - dat += "
Mineral Value List:
[get_ore_values()]
" - - var/datum/browser/popup = new(user, "console_stacking_machine", "Ore Redemption Machine", 400, 500) + var/datum/browser/popup = new(user, "ore_redemption_machine", "Ore Redemption Machine", 400, 500) popup.set_content(dat) popup.open() return @@ -228,69 +255,52 @@ else to_chat(usr, "Not a valid ID!") if(href_list["release"]) - if(check_access(inserted_id) || allowed(usr)) //Check the ID inside, otherwise check the user. - if(!(text2path(href_list["release"]) in stack_list)) + if(check_access(inserted_id) || allowed(usr)) //Check the ID inside, otherwise check the user + var/mat_id = href_list["release"] + if(!materials.materials[mat_id]) return - var/obj/item/stack/sheet/inp = stack_list[text2path(href_list["release"])] - var/obj/item/stack/sheet/out = new inp.type(src, 0, FALSE) + + var/datum/material/mat = materials.materials[mat_id] + var/stored_amount = mat.amount / MINERAL_MATERIAL_AMOUNT + + if(!stored_amount) + return + var/desired = input("How many sheets?", "How many sheets to eject?", 1) as null|num - out.amount = round(min(desired,50,inp.amount)) - if(out.amount >= 1) - inp.amount -= out.amount - unload_mineral(out) - if(inp.amount < 1) - stack_list -= text2path(href_list["release"]) - qdel(inp) + var/sheets_to_remove = round(min(desired,50,stored_amount)) + + var/out = get_step(src, output_dir) + materials.retrieve_sheets(sheets_to_remove, mat_id, out) + else to_chat(usr, "Required access not found.") - if(href_list["alloytype1"] && href_list["alloytype2"] && href_list["alloytypeout"]) - var/alloytype1 = text2path(href_list["alloytype1"]) - var/alloytype2 = text2path(href_list["alloytype2"]) - var/alloytypeout = text2path(href_list["alloytypeout"]) - if(check_access(inserted_id) || allowed(usr)) - if(!(alloytype1 in stack_list)) - return - if(!(alloytype2 in stack_list)) - return - var/obj/item/stack/sheet/stack1 = stack_list[alloytype1] - var/obj/item/stack/sheet/stack2 = stack_list[alloytype2] + + if(href_list["alloy"]) + var/alloy_id = href_list["alloy"] + var/datum/design/alloy = files.FindDesignByID(alloy_id) + if((check_access(inserted_id) || allowed(usr)) && alloy) var/desired = input("How many sheets?", "How many sheets would you like to smelt?", 1) as null|num - var/obj/item/stack/sheet/alloyout = new alloytypeout - alloyout.amount = round(min(desired,50,stack1.amount,stack2.amount)) - if(alloyout.amount >= 1) - stack1.amount -= alloyout.amount - stack2.amount -= alloyout.amount - unload_mineral(alloyout) - if(stack1.amount < 1) - stack_list -= stack1 - qdel(stack1) - if(stack2.amount < 1) - stack_list -= stack2 - qdel(stack2) + var/smelt_amount = can_smelt_alloy(alloy) + var/amount = round(min(desired,50,smelt_amount)) + materials.use_amount(alloy.materials, amount) + + var/output = new alloy.build_path(src) + if(istype(output, /obj/item/stack/sheet)) + var/obj/item/stack/sheet/mineral/produced_alloy = output + produced_alloy.amount = amount + unload_mineral(produced_alloy) + else + unload_mineral(output) + else to_chat(usr, "Required access not found.") updateUsrDialog() return /obj/machinery/mineral/ore_redemption/ex_act(severity, target) - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(5, 1, src) - s.start() + do_sparks(5, TRUE, src) ..() -//empty the redemption machine by stacks of at most max_amount (50 at this time) size -/obj/machinery/mineral/ore_redemption/proc/empty_content() - var/obj/item/stack/sheet/s - - for(var/O in stack_list) - s = stack_list[O] - while(s.amount > s.max_amount) - new s.type(loc,s.max_amount) - s.use(s.max_amount) - s.forceMove(get_turf(src)) - s.layer = initial(s.layer) - s.plane = initial(s.plane) - /obj/machinery/mineral/ore_redemption/power_change() ..() update_icon() From 3e80105ffb962857aeed64e9b0d3e418ab5c3833 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 May 2017 12:55:45 -0500 Subject: [PATCH 26/50] Saline-glucose changes --- .../chemistry/reagents/medicine_reagents.dm | 37 +++++++++++++------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index aa913ba8f0..500147d233 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -288,30 +288,43 @@ /datum/reagent/medicine/salglu_solution name = "Saline-Glucose Solution" id = "salglu_solution" - description = "Has a 33% chance per metabolism cycle to heal brute and burn damage. Can be used as a blood substitute on an IV drip." + description = "Has a 33% chance per metabolism cycle to heal brute and burn damage. Can be used as a temporary blood substitute." reagent_state = LIQUID color = "#DCDCDC" metabolization_rate = 0.5 * REAGENTS_METABOLISM + overdose_threshold = 60 taste_description = "sweetness and salt" + var/last_added = 0 + var/maximum_reachable = BLOOD_VOLUME_NORMAL - 10 //So that normal blood regeneration can continue with salglu active /datum/reagent/medicine/salglu_solution/on_mob_life(mob/living/M) + if(last_added) + M.blood_volume -= last_added + last_added = 0 + if(M.blood_volume < maximum_reachable) //Can only up to double your effective blood level. + var/amount_to_add = min(M.blood_volume, volume*5) + var/new_blood_level = min(M.blood_volume + amount_to_add, maximum_reachable) + last_added = new_blood_level - M.blood_volume + M.blood_volume = new_blood_level if(prob(33)) M.adjustBruteLoss(-0.5*REM, 0) M.adjustFireLoss(-0.5*REM, 0) - if(iscarbon(M)) - var/mob/living/carbon/C = M - C.blood_volume += 0.2 . = 1 ..() -/datum/reagent/medicine/salglu_solution/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1) - if(ishuman(M) && method == INJECT) - var/mob/living/carbon/human/H = M - if(H.dna && !(NOBLOOD in H.dna.species.species_traits)) - var/efficiency = (BLOOD_VOLUME_NORMAL-H.blood_volume)/700 + 0.2//The lower the blood of the patient, the better it is as a blood substitute. - efficiency = Clamp(efficiency, 0.1, 0.75) - //As it's designed for an IV drip, make large injections not as effective as repeated small injections. - H.blood_volume += round(efficiency * min(5,reac_volume), 0.1) +/datum/reagent/medicine/salglu_solution/overdose_process(mob/living/M) + if(prob(3)) + to_chat(M, "You feel salty.") + holder.add_reagent("sodiumchloride", 1) + holder.remove_reagent("salglu_solution", 0.5) + else if(prob(3)) + to_chat(M, "You feel sweet.") + holder.add_reagent("sugar", 1) + holder.remove_reagent("salglu_solution", 0.5) + if(prob(33)) + M.adjustBruteLoss(0.5*REM, 0) + M.adjustFireLoss(0.5*REM, 0) + . = 1 ..() /datum/reagent/medicine/mine_salve From 161891e51b8b8fd6e2cadbc700f7645ad9509e49 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 1 May 2017 15:26:17 -0500 Subject: [PATCH 27/50] conflict res --- code/game/gamemodes/wizard/artefact.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index e409b087d8..137514d1e3 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -471,7 +471,7 @@ else if(istype(I,/obj/item/weapon/bikehorn)) to_chat(target, "HONK") target << 'sound/items/AirHorn.ogg' - target.adjustEarDamage(0,3) + target.adjustEarDamage(0,3) GiveHint(target) cooldown = world.time +cooldown_time return @@ -630,6 +630,6 @@ duration = 40 pixel_x = 500 -/obj/effect/overlay/temp/tornado/Initialize() - . = ..() +/obj/effect/overlay/temp/tornado/Initialize() + . = ..() animate(src, pixel_x = -500, time = 40) From 64fd72f1cf5c4086b99608141a237e4bb7197427 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 1 May 2017 15:31:51 -0500 Subject: [PATCH 28/50] Update artefact.dm --- code/game/gamemodes/wizard/artefact.dm | 645 +------------------------ 1 file changed, 1 insertion(+), 644 deletions(-) diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index b22fa60986..137514d1e3 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -1,3 +1,4 @@ + //Apprenticeship contract - moved to antag_spawner.dm ///////////////////////////Veil Render////////////////////// @@ -632,647 +633,3 @@ /obj/effect/overlay/temp/tornado/Initialize() . = ..() animate(src, pixel_x = -500, time = 40) -======= - -//Apprenticeship contract - moved to antag_spawner.dm - -///////////////////////////Veil Render////////////////////// - -/obj/item/weapon/veilrender - name = "veil render" - desc = "A wicked curved blade of alien origin, recovered from the ruins of a vast city." - icon = 'icons/obj/wizard.dmi' - icon_state = "render" - item_state = "render" - force = 15 - throwforce = 10 - w_class = WEIGHT_CLASS_NORMAL - hitsound = 'sound/weapons/bladeslice.ogg' - var/charges = 1 - var/spawn_type = /obj/singularity/wizard - var/spawn_amt = 1 - var/activate_descriptor = "reality" - var/rend_desc = "You should run now." - var/spawn_fast = 0 //if 1, ignores checking for mobs on loc before spawning - -/obj/item/weapon/veilrender/attack_self(mob/user) - if(charges > 0) - new /obj/effect/rend(get_turf(user), spawn_type, spawn_amt, rend_desc, spawn_fast) - charges-- - user.visible_message("[src] hums with power as [user] deals a blow to [activate_descriptor] itself!") - else - to_chat(user, "The unearthly energies that powered the blade are now dormant.") - -/obj/effect/rend - name = "tear in the fabric of reality" - desc = "You should run now." - icon = 'icons/obj/biomass.dmi' - icon_state = "rift" - density = 1 - anchored = 1 - var/spawn_path = /mob/living/simple_animal/cow //defaulty cows to prevent unintentional narsies - var/spawn_amt_left = 20 - var/spawn_fast = 0 - -/obj/effect/rend/New(loc, var/spawn_type, var/spawn_amt, var/desc, var/spawn_fast) - src.spawn_path = spawn_type - src.spawn_amt_left = spawn_amt - src.desc = desc - src.spawn_fast = spawn_fast - START_PROCESSING(SSobj, src) - return - -/obj/effect/rend/process() - if(!spawn_fast) - if(locate(/mob) in loc) - return - new spawn_path(loc) - spawn_amt_left-- - if(spawn_amt_left <= 0) - qdel(src) - -/obj/effect/rend/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/nullrod)) - user.visible_message("[user] seals \the [src] with \the [I].") - qdel(src) - return - else - return ..() - -/obj/item/weapon/veilrender/vealrender - name = "veal render" - desc = "A wicked curved blade of alien origin, recovered from the ruins of a vast farm." - spawn_type = /mob/living/simple_animal/cow - spawn_amt = 20 - activate_descriptor = "hunger" - rend_desc = "Reverberates with the sound of ten thousand moos." - -/obj/item/weapon/veilrender/honkrender - name = "honk render" - desc = "A wicked curved blade of alien origin, recovered from the ruins of a vast circus." - spawn_type = /mob/living/simple_animal/hostile/retaliate/clown - spawn_amt = 10 - activate_descriptor = "depression" - rend_desc = "Gently wafting with the sounds of endless laughter." - icon_state = "clownrender" - -////TEAR IN REALITY - -/obj/singularity/wizard - name = "tear in the fabric of reality" - desc = "This isn't right." - icon = 'icons/effects/224x224.dmi' - icon_state = "reality" - pixel_x = -96 - pixel_y = -96 - grav_pull = 6 - consume_range = 3 - current_size = STAGE_FOUR - allowed_size = STAGE_FOUR - -/obj/singularity/wizard/process() - move() - eat() - return -/////////////////////////////////////////Scrying/////////////////// - -/obj/item/weapon/scrying - name = "scrying orb" - desc = "An incandescent orb of otherworldly energy, staring into it gives you vision beyond mortal means." - icon = 'icons/obj/projectiles.dmi' - icon_state ="bluespace" - throw_speed = 3 - throw_range = 7 - throwforce = 15 - damtype = BURN - force = 15 - hitsound = 'sound/items/welder2.ogg' - -/obj/item/weapon/scrying/attack_self(mob/user) - to_chat(user, "You can see...everything!") - visible_message("[user] stares into [src], their eyes glazing over.") - user.ghostize(1) - return - -/////////////////////////////////////////Necromantic Stone/////////////////// - -/obj/item/device/necromantic_stone - name = "necromantic stone" - desc = "A shard capable of resurrecting humans as skeleton thralls." - icon = 'icons/obj/wizard.dmi' - icon_state = "necrostone" - item_state = "electronic" - origin_tech = "bluespace=4;materials=4" - w_class = WEIGHT_CLASS_TINY - var/list/spooky_scaries = list() - var/unlimited = 0 - -/obj/item/device/necromantic_stone/unlimited - unlimited = 1 - -/obj/item/device/necromantic_stone/attack(mob/living/carbon/human/M, mob/living/carbon/human/user) - if(!istype(M)) - return ..() - - if(!istype(user) || !user.canUseTopic(M,1)) - return - - if(M.stat != DEAD) - to_chat(user, "This artifact can only affect the dead!") - return - - if(!M.mind || !M.client) - to_chat(user, "There is no soul connected to this body...") - return - - check_spooky()//clean out/refresh the list - if(spooky_scaries.len >= 3 && !unlimited) - to_chat(user, "This artifact can only affect three undead at a time!") - return - - M.set_species(/datum/species/skeleton, icon_update=0) - M.revive(full_heal = 1, admin_revive = 1) - spooky_scaries |= M - to_chat(M, "You have been revived by [user.real_name]!") - to_chat(M, "[user.p_they(TRUE)] [user.p_are()] your master now, assist them even if it costs you your new life!") - - equip_roman_skeleton(M) - - desc = "A shard capable of resurrecting humans as skeleton thralls[unlimited ? "." : ", [spooky_scaries.len]/3 active thralls."]" - -/obj/item/device/necromantic_stone/proc/check_spooky() - if(unlimited) //no point, the list isn't used. - return - - for(var/X in spooky_scaries) - if(!ishuman(X)) - spooky_scaries.Remove(X) - continue - var/mob/living/carbon/human/H = X - if(H.stat == DEAD) - spooky_scaries.Remove(X) - continue - listclearnulls(spooky_scaries) - -//Funny gimmick, skeletons always seem to wear roman/ancient armour -/obj/item/device/necromantic_stone/proc/equip_roman_skeleton(mob/living/carbon/human/H) - for(var/obj/item/I in H) - H.dropItemToGround(I) - - var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionaire) - H.equip_to_slot_or_del(new hat(H), slot_head) - H.equip_to_slot_or_del(new /obj/item/clothing/under/roman(H), slot_w_uniform) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), slot_shoes) - H.put_in_hands_or_del(new /obj/item/weapon/shield/riot/roman(H)) - H.put_in_hands_or_del(new /obj/item/weapon/claymore(H)) - H.equip_to_slot_or_del(new /obj/item/weapon/twohanded/spear(H), slot_back) - - - -/////////////////////Multiverse Blade//////////////////// - -/obj/item/weapon/multisword - name = "multiverse sword" - desc = "A weapon capable of conquering the universe and beyond. Activate it to summon copies of yourself from others dimensions to fight by your side." - icon = 'icons/obj/weapons.dmi' - icon_state = "multiverse" - item_state = "multiverse" - hitsound = 'sound/weapons/bladeslice.ogg' - flags = CONDUCT - slot_flags = SLOT_BELT - sharpness = IS_SHARP - force = 20 - throwforce = 10 - w_class = WEIGHT_CLASS_NORMAL - attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - var/faction = list("unassigned") - var/cooldown = 0 - var/assigned = "unassigned" - var/static/list/multiverse = list() - -/obj/item/weapon/multisword/New() - ..() - multiverse += src - - -/obj/item/weapon/multisword/Destroy() - multiverse.Remove(src) - return ..() - -/obj/item/weapon/multisword/attack_self(mob/user) - if(user.mind.special_role == "apprentice") - to_chat(user, "You know better than to touch your teacher's stuff.") - return - if(cooldown < world.time) - var/faction_check = 0 - for(var/F in faction) - if(F in user.faction) - faction_check = 1 - break - if(faction_check == 0) - faction = list("[user.real_name]") - assigned = "[user.real_name]" - user.faction = list("[user.real_name]") - to_chat(user, "You bind the sword to yourself. You can now use it to summon help.") - if(!is_gangster(user)) - var/datum/gang/multiverse/G = new(src, "[user.real_name]") - SSticker.mode.gangs += G - G.bosses += user.mind - G.add_gang_hud(user.mind) - user.mind.gang_datum = G - to_chat(user, "With your new found power you could easily conquer the station!") - var/datum/objective/hijackclone/hijack_objective = new /datum/objective/hijackclone - hijack_objective.owner = user.mind - user.mind.objectives += hijack_objective - hijack_objective.explanation_text = "Ensure only [user.real_name] and their copies are on the shuttle!" - to_chat(user, "Objective #[1]: [hijack_objective.explanation_text]") - SSticker.mode.traitors += user.mind - user.mind.special_role = "[user.real_name] Prime" - else - var/list/candidates = get_candidates(ROLE_WIZARD) - if(candidates.len) - var/client/C = pick(candidates) - spawn_copy(C, get_turf(user.loc), user) - to_chat(user, "The sword flashes, and you find yourself face to face with...you!") - cooldown = world.time + 400 - for(var/obj/item/weapon/multisword/M in multiverse) - if(M.assigned == assigned) - M.cooldown = cooldown - - else - to_chat(user, "You fail to summon any copies of yourself. Perhaps you should try again in a bit.") - else - to_chat(user, "[src] is recharging! Keep in mind it shares a cooldown with the swords wielded by your copies.") - - -/obj/item/weapon/multisword/proc/spawn_copy(var/client/C, var/turf/T, mob/user) - var/mob/living/carbon/human/M = new/mob/living/carbon/human(T) - C.prefs.copy_to(M, icon_updates=0) - M.key = C.key - M.mind.name = user.real_name - to_chat(M, "You are an alternate version of [user.real_name] from another universe! Help them accomplish their goals at all costs.") - SSticker.mode.add_gangster(M.mind, user.mind.gang_datum, FALSE) - M.real_name = user.real_name - M.name = user.real_name - M.faction = list("[user.real_name]") - if(prob(50)) - var/list/all_species = list() - for(var/speciestype in subtypesof(/datum/species)) - var/datum/species/S = speciestype - if(!initial(S.dangerous_existence)) - all_species += speciestype - M.set_species(pick(all_species), icon_update=0) - M.update_body() - M.update_hair() - M.update_body_parts() - M.dna.update_dna_identity() - equip_copy(M) - -/obj/item/weapon/multisword/proc/equip_copy(var/mob/living/carbon/human/M) - - var/obj/item/weapon/multisword/sword = new /obj/item/weapon/multisword - sword.assigned = assigned - sword.faction = list("[assigned]") - - var/randomize = pick("mobster","roman","wizard","cyborg","syndicate","assistant", "animu", "cultist", "highlander", "clown", "killer", "pirate", "soviet", "officer", "gladiator") - - switch(randomize) - if("mobster") - M.equip_to_slot_or_del(new /obj/item/clothing/head/fedora(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses) - M.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket/really_black(M), slot_w_uniform) - M.put_in_hands_or_del(sword) - - if("roman") - var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionaire) - M.equip_to_slot_or_del(new hat(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/under/roman(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(M), slot_shoes) - M.put_in_hands_or_del(new /obj/item/weapon/shield/riot/roman(M)) - M.put_in_hands_or_del(sword) - - if("wizard") - M.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/red(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/red(M), slot_head) - M.put_in_hands_or_del(sword) - if("cyborg") - for(var/X in M.bodyparts) - var/obj/item/bodypart/affecting = X - affecting.change_bodypart_status(BODYPART_ROBOTIC, FALSE, TRUE) - M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/eyepatch(M), slot_glasses) - M.put_in_hands_or_del(sword) - - if("syndicate") - M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) - M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/swat(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(M),slot_wear_mask) - M.put_in_hands_or_del(sword) - - if("assistant") - M.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(M), slot_shoes) - M.put_in_hands_or_del(sword) - - if("animu") - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/head/kitty(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/under/schoolgirl/red(M), slot_w_uniform) - M.put_in_hands_or_del(sword) - - if("cultist") - M.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.put_in_hands_or_del(sword) - - if("highlander") - M.equip_to_slot_or_del(new /obj/item/clothing/under/kilt(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/head/beret(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) - M.put_in_hands_or_del(sword) - - if("clown") - M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(M), slot_wear_mask) - M.equip_to_slot_or_del(new /obj/item/weapon/bikehorn(M), slot_l_store) - M.put_in_hands_or_del(sword) - - if("killer") - M.equip_to_slot_or_del(new /obj/item/clothing/under/overalls(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/white(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/latex(M), slot_gloves) - M.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(M), slot_wear_mask) - M.equip_to_slot_or_del(new /obj/item/clothing/head/welding(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/weapon/kitchen/knife(M), slot_l_store) - M.equip_to_slot_or_del(new /obj/item/weapon/scalpel(M), slot_r_store) - M.put_in_hands_or_del(sword) - for(var/obj/item/carried_item in M.get_equipped_items()) - carried_item.add_mob_blood(M) - for(var/obj/item/I in M.held_items) - I.add_mob_blood(M) - if("pirate") - M.equip_to_slot_or_del(new /obj/item/clothing/under/pirate(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/brown(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/head/bandana(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.put_in_hands_or_del(sword) - - if("soviet") - M.equip_to_slot_or_del(new /obj/item/clothing/head/pirate/captain(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/pirate/captain(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/clothing/under/soviet(M), slot_w_uniform) - M.put_in_hands_or_del(sword) - - if("officer") - M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/beret(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) - M.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar/havana(M), slot_wear_mask) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/jacket/miljacket(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(M), slot_glasses) - M.put_in_hands_or_del(sword) - - if("gladiator") - M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/gladiator(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/clothing/under/gladiator(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) - M.put_in_hands_or_del(sword) - - - else - return - - M.update_body_parts() - - var/obj/item/weapon/card/id/W = new /obj/item/weapon/card/id - W.icon_state = "centcom" - W.access += GLOB.access_maint_tunnels - W.assignment = "Multiverse Traveller" - W.registered_name = M.real_name - W.update_label(M.real_name) - M.equip_to_slot_or_del(W, slot_wear_id) - - -/obj/item/voodoo - name = "wicker doll" - desc = "Something creepy about it." - icon = 'icons/obj/wizard.dmi' - icon_state = "voodoo" - item_state = "electronic" - var/mob/living/carbon/human/target = null - var/list/mob/living/carbon/human/possible = list() - var/obj/item/link = null - var/cooldown_time = 30 //3s - var/cooldown = 0 - obj_integrity = 10 - max_integrity = 10 - resistance_flags = FLAMMABLE - -/obj/item/voodoo/attackby(obj/item/I, mob/user, params) - if(target && cooldown < world.time) - if(I.is_hot()) - to_chat(target, "You suddenly feel very hot") - target.bodytemperature += 50 - GiveHint(target) - else if(is_pointed(I)) - to_chat(target, "You feel a stabbing pain in [parse_zone(user.zone_selected)]!") - target.Weaken(2) - GiveHint(target) - else if(istype(I,/obj/item/weapon/bikehorn)) - to_chat(target, "HONK") - target << 'sound/items/AirHorn.ogg' - target.adjustEarDamage(0,3) - GiveHint(target) - cooldown = world.time +cooldown_time - return - - if(!link) - if(I.loc == user && istype(I) && I.w_class <= WEIGHT_CLASS_SMALL) - user.drop_item() - I.loc = src - link = I - to_chat(user, "You attach [I] to the doll.") - update_targets() - -/obj/item/voodoo/check_eye(mob/user) - if(loc != user) - user.reset_perspective(null) - user.unset_machine() - -/obj/item/voodoo/attack_self(mob/user) - if(!target && possible.len) - target = input(user, "Select your victim!", "Voodoo") as null|anything in possible - return - - if(user.zone_selected == "chest") - if(link) - target = null - link.loc = get_turf(src) - to_chat(user, "You remove the [link] from the doll.") - link = null - update_targets() - return - - if(target && cooldown < world.time) - switch(user.zone_selected) - if("mouth") - var/wgw = sanitize(input(user, "What would you like the victim to say", "Voodoo", null) as text) - target.say(wgw) - log_game("[user][user.key] made [target][target.key] say [wgw] with a voodoo doll.") - if("eyes") - user.set_machine(src) - user.reset_perspective(target) - spawn(100) - user.reset_perspective(null) - user.unset_machine() - if("r_leg","l_leg") - to_chat(user, "You move the doll's legs around.") - var/turf/T = get_step(target,pick(GLOB.cardinal)) - target.Move(T) - if("r_arm","l_arm") - target.click_random_mob() - GiveHint(target) - if("head") - to_chat(user, "You smack the doll's head with your hand.") - target.Dizzy(10) - to_chat(target, "You suddenly feel as if your head was hit with a hammer!") - GiveHint(target,user) - if("groin") - if(target.canbearoused) - to_chat(user, "You rub the groin on [src]. You're weird.") - target.adjustArousalLoss(5) - to_chat(target, "You suddenly feel hot... and quite good") - if(prob(33)) - target.emote(pick("moan","blush")) - GiveHint(target, user) - cooldown = world.time + cooldown_time - -/obj/item/voodoo/proc/update_targets() - possible = list() - if(!link) - return - for(var/mob/living/carbon/human/H in GLOB.living_mob_list) - if(md5(H.dna.uni_identity) in link.fingerprints) - possible |= H - -/obj/item/voodoo/proc/GiveHint(mob/victim,force=0) - if(prob(50) || force) - var/way = dir2text(get_dir(victim,get_turf(src))) - to_chat(victim, "You feel a dark presence from [way]") - if(prob(20) || force) - var/area/A = get_area(src) - to_chat(victim, "You feel a dark presence from [A.name]") - -/obj/item/voodoo/fire_act(exposed_temperature, exposed_volume) - if(target) - target.adjust_fire_stacks(20) - target.IgniteMob() - GiveHint(target,1) - return ..() - - -//Provides a decent heal, need to pump every 6 seconds -/obj/item/organ/heart/cursed/wizard - pump_delay = 60 - heal_brute = 25 - heal_burn = 25 - heal_oxy = 25 - -//Warp Whistle: Provides uncontrolled long distance teleportation. - -/obj/item/warpwhistle - name = "warp whistle" - desc = "One toot on this whistle will send you to a far away land!" - icon = 'icons/obj/wizard.dmi' - icon_state = "whistle" - var/on_cooldown = 0 //0: usable, 1: in use, 2: on cooldown - var/mob/living/carbon/last_user - -/obj/item/warpwhistle/proc/interrupted(mob/living/carbon/user) - if(!user || QDELETED(src)) - on_cooldown = FALSE - return TRUE - return FALSE - -/obj/item/warpwhistle/attack_self(mob/living/carbon/user) - if(!istype(user) || on_cooldown) - return - on_cooldown = TRUE - last_user = user - var/turf/T = get_turf(user) - playsound(T,'sound/magic/WarpWhistle.ogg', 200, 1) - user.canmove = 0 - new /obj/effect/overlay/temp/tornado(T) - sleep(20) - if(interrupted(user)) - return - user.invisibility = INVISIBILITY_MAXIMUM - user.status_flags |= GODMODE - sleep(20) - if(interrupted(user)) - return - var/breakout = 0 - while(breakout < 50) - var/turf/potential_T = find_safe_turf() - if(T.z != potential_T.z || abs(get_dist_euclidian(potential_T,T)) > 50 - breakout) - user.forceMove(potential_T) - user.canmove = 0 - T = potential_T - break - breakout += 1 - new /obj/effect/overlay/temp/tornado(T) - sleep(20) - if(interrupted(user)) - return - user.invisibility = initial(user.invisibility) - user.status_flags &= ~GODMODE - user.canmove = 1 - on_cooldown = 2 - sleep(40) - on_cooldown = 0 - -/obj/item/warpwhistle/Destroy() - if(on_cooldown == 1 && last_user) //Flute got dunked somewhere in the teleport - last_user.invisibility = initial(last_user.invisibility) - last_user.status_flags &= ~GODMODE - last_user.canmove = 1 - return ..() - -/obj/effect/overlay/temp/tornado - icon = 'icons/obj/wizard.dmi' - icon_state = "tornado" - name = "tornado" - desc = "This thing sucks!" - layer = FLY_LAYER - randomdir = 0 - duration = 40 - pixel_x = 500 - -/obj/effect/overlay/temp/tornado/New(loc) - ..() - animate(src, pixel_x = -500, time = 40) From 875879127842cbb46cbe2f848039040bf9d8d553 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 May 2017 17:28:18 -0500 Subject: [PATCH 29/50] Fixes Biogenerator --- code/modules/research/research.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index 25b3a98980..dfd64c3101 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -185,7 +185,7 @@ research holder datum. if((D.build_type & SMELTER) && ("initial" in D.category)) AddDesign2Known(D) -/datum/research/biogenerator/AddDesign2Known(datum/design/D) +/datum/research/smelter/AddDesign2Known(datum/design/D) if(!(D.build_type & SMELTER)) return ..() From 3fff6d4a1d36706e15adc3c4002123de4cf52718 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 May 2017 20:27:03 -0500 Subject: [PATCH 30/50] Fixes cult datum giving the action button to the mind instead of mob --- code/datums/antagonists/datum_clockcult.dm | 2 +- code/datums/antagonists/datum_cult.dm | 26 +++++++++++++--------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/code/datums/antagonists/datum_clockcult.dm b/code/datums/antagonists/datum_clockcult.dm index ba18e76f02..85ff6f8930 100644 --- a/code/datums/antagonists/datum_clockcult.dm +++ b/code/datums/antagonists/datum_clockcult.dm @@ -16,7 +16,7 @@ if(!istype(current)) return if(jobban_isbanned(current, ROLE_SERVANT_OF_RATVAR)) - addtimer(CALLBACK(SSticker.mode, /datum/game_mode.proc/replace_jobbaned_player, owner, ROLE_SERVANT_OF_RATVAR, ROLE_SERVANT_OF_RATVAR), 0) + addtimer(CALLBACK(SSticker.mode, /datum/game_mode.proc/replace_jobbaned_player, current, ROLE_SERVANT_OF_RATVAR, ROLE_SERVANT_OF_RATVAR), 0) owner.current.log_message("Has been converted to the cult of Ratvar!", INDIVIDUAL_ATTACK_LOG) if(issilicon(current)) var/mob/living/silicon/S = owner diff --git a/code/datums/antagonists/datum_cult.dm b/code/datums/antagonists/datum_cult.dm index 69c9849782..e6db239241 100644 --- a/code/datums/antagonists/datum_cult.dm +++ b/code/datums/antagonists/datum_cult.dm @@ -10,24 +10,30 @@ if(!owner) return if(jobban_isbanned(owner.current, ROLE_CULTIST)) - addtimer(CALLBACK(SSticker.mode, /datum/game_mode.proc/replace_jobbaned_player, owner, ROLE_CULTIST, ROLE_CULTIST), 0) + addtimer(CALLBACK(SSticker.mode, /datum/game_mode.proc/replace_jobbaned_player, owner.current, ROLE_CULTIST, ROLE_CULTIST), 0) owner.current.log_message("Has been converted to the cult of Nar'Sie!", INDIVIDUAL_ATTACK_LOG) -/datum/antagonist/cult/apply_innate_effects() +/datum/antagonist/cult/apply_innate_effects(mob/living/mob_override) . = ..() - owner.current.faction |= "cult" - owner.current.verbs += /mob/living/proc/cult_help - communion.Grant(owner) + var/mob/living/current = owner.current + if(mob_override) + current = mob_override + current.faction |= "cult" + current.verbs += /mob/living/proc/cult_help + communion.Grant(current) -/datum/antagonist/cult/remove_innate_effects() +/datum/antagonist/cult/remove_innate_effects(mob/living/mob_override) . = ..() - owner.current.faction -= "cult" - owner.current.verbs -= /mob/living/proc/cult_help - + var/mob/living/current = owner.current + if(mob_override) + current = mob_override + current.faction -= "cult" + current.verbs -= /mob/living/proc/cult_help + communion.Remove(current) /datum/antagonist/cult/on_removal() . = ..() to_chat(owner, "An unfamiliar white light flashes through your mind, cleansing the taint of the Dark One and all your memories as its servant.") owner.current.log_message("Has renounced the cult of Nar'Sie!", INDIVIDUAL_ATTACK_LOG) if(!silent) - owner.current.visible_message("[owner] looks like [owner.current.p_they()] just reverted to their old faith!") \ No newline at end of file + owner.current.visible_message("[owner] looks like [owner.current.p_they()] just reverted to their old faith!") From 22f6aecdf7df4c25b3a79eabccaa76b017d6b092 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 May 2017 21:03:40 -0500 Subject: [PATCH 31/50] Fixes cult and clockcult icons --- code/datums/antagonists/datum_clockcult.dm | 3 ++- code/datums/antagonists/datum_cult.dm | 1 + code/datums/antagonists/datum_cult.dm.rej | 9 +++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 code/datums/antagonists/datum_cult.dm.rej diff --git a/code/datums/antagonists/datum_clockcult.dm b/code/datums/antagonists/datum_clockcult.dm index ba18e76f02..f30c6505c5 100644 --- a/code/datums/antagonists/datum_clockcult.dm +++ b/code/datums/antagonists/datum_clockcult.dm @@ -29,6 +29,7 @@ else if(isbrain(current) || isclockmob(current)) to_chat(current, "You can communicate with other servants by using the Hierophant Network action button in the upper left.") ..() + SSticker.mode.update_servant_icons_added(owner) if(istype(SSticker.mode, /datum/game_mode/clockwork_cult)) var/datum/game_mode/clockwork_cult/C = SSticker.mode C.present_tasks(owner) //Memorize the objectives @@ -39,7 +40,6 @@ if(istype(mob_override)) current = mob_override GLOB.all_clockwork_mobs += current - SSticker.mode.update_servant_icons_added(owner) current.faction |= "ratvar" current.grant_language(/datum/language/ratvar) current.update_action_buttons_icon() //because a few clockcult things are action buttons and we may be wearing/holding them for whatever reason, we need to update buttons @@ -117,6 +117,7 @@ /datum/antagonist/clockcult/on_removal() . = ..() + SSticker.mode.update_servant_icons_removed(owner) if(!silent) owner.current.visible_message("[owner] seems to have remembered their true allegiance!", \ "A cold, cold darkness flows through your mind, extinguishing the Justiciar's light and all of your memories as his servant.") diff --git a/code/datums/antagonists/datum_cult.dm b/code/datums/antagonists/datum_cult.dm index 69c9849782..691494568c 100644 --- a/code/datums/antagonists/datum_cult.dm +++ b/code/datums/antagonists/datum_cult.dm @@ -27,6 +27,7 @@ /datum/antagonist/cult/on_removal() . = ..() + SSticker.mode.update_cult_icons_removed(owner) to_chat(owner, "An unfamiliar white light flashes through your mind, cleansing the taint of the Dark One and all your memories as its servant.") owner.current.log_message("Has renounced the cult of Nar'Sie!", INDIVIDUAL_ATTACK_LOG) if(!silent) diff --git a/code/datums/antagonists/datum_cult.dm.rej b/code/datums/antagonists/datum_cult.dm.rej new file mode 100644 index 0000000000..991ad512c9 --- /dev/null +++ b/code/datums/antagonists/datum_cult.dm.rej @@ -0,0 +1,9 @@ +diff a/code/datums/antagonists/datum_cult.dm b/code/datums/antagonists/datum_cult.dm (rejected hunks) +@@ -11,6 +11,7 @@ + return + if(jobban_isbanned(owner.current, ROLE_CULTIST)) + addtimer(CALLBACK(SSticker.mode, /datum/game_mode.proc/replace_jobbaned_player, owner.current, ROLE_CULTIST, ROLE_CULTIST), 0) ++ SSticker.mode.update_cult_icons_added(owner) + owner.current.log_message("Has been converted to the cult of Nar'Sie!", INDIVIDUAL_ATTACK_LOG) + + /datum/antagonist/cult/apply_innate_effects(mob/living/mob_override) From fa888cc5214c69f433512cad7f4535f1c9b8c65f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 2 May 2017 02:49:41 -0500 Subject: [PATCH 32/50] Fixes drakes continuing to swoop when killed (#713) --- .../mob/living/simple_animal/hostile/megafauna/dragon.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm index 3425d08e23..45139747fa 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm @@ -187,8 +187,9 @@ Difficulty: Medium animate(src, transform = matrix()*0.9, time = 3, easing = BOUNCE_EASING) for(var/i in 1 to 3) sleep(1) - if(QDELETED(src)) //we got hit and died, rip us + if(QDELETED(src) || stat == DEAD) //we got hit and died, rip us qdel(F) + swooping &= ~SWOOP_DAMAGEABLE return animate(src, transform = matrix()*0.7, time = 7) swooping |= SWOOP_INVULNERABLE From ed39a1200282716fedb05e9de0a80af2a367b495 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 2 May 2017 03:04:10 -0500 Subject: [PATCH 33/50] Automatic changelog generation for PR #686 [ci skip] --- html/changelogs/AutoChangeLog-pr-686.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-686.yml diff --git a/html/changelogs/AutoChangeLog-pr-686.yml b/html/changelogs/AutoChangeLog-pr-686.yml new file mode 100644 index 0000000000..a99d84632f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-686.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - tweak: "Syndicate surplus crates now contain fewer implants" From 596a4e5a9c2dc77cd086a89062d8fbf47c0b479d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 2 May 2017 03:04:26 -0500 Subject: [PATCH 34/50] Automatic changelog generation for PR #689 [ci skip] --- html/changelogs/AutoChangeLog-pr-689.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-689.yml diff --git a/html/changelogs/AutoChangeLog-pr-689.yml b/html/changelogs/AutoChangeLog-pr-689.yml new file mode 100644 index 0000000000..6c917057bc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-689.yml @@ -0,0 +1,4 @@ +author: "Joan" +delete-after: True +changes: + - rscadd: "Gaining Vanguard, such as from the Linked Vanguard scripture, will remove existing stuns." From 4a6ffec4129612c61df11d1391e8e2d4fd9d70a1 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 2 May 2017 04:56:46 -0500 Subject: [PATCH 35/50] rej cleanup --- code/__DEFINES/subsystems.dm.rej | 18 ------- code/controllers/subsystem/atoms.dm.rej | 9 ---- code/game/objects/effects/overlays.dm.rej | 21 --------- code/game/objects/items.dm.rej | 10 ---- code/modules/admin/admin_verbs.dm.rej | 11 ----- code/modules/admin/verbs/debug.dm.rej | 41 ---------------- code/modules/holodeck/computer.dm.rej | 47 ------------------- .../mob/dead/new_player/new_player.dm.rej | 9 ---- .../hostile/megafauna/colossus.dm.rej | 10 ---- .../hostile/megafauna/dragon.dm.rej | 23 --------- code/modules/recycling/conveyor2.dm.rej | 10 ---- code/modules/shuttle/arrivals.dm.rej | 11 ----- code/modules/shuttle/shuttle.dm.rej | 10 ---- code/modules/station_goals/bsa.dm.rej | 12 ----- .../surgery/organs/organ_internal.dm.rej | 10 ---- code/modules/surgery/surgery.dm.rej | 10 ---- code/modules/vehicles/atv.dm.rej | 12 ----- code/modules/vehicles/speedbike.dm.rej | 23 --------- 18 files changed, 297 deletions(-) delete mode 100644 code/__DEFINES/subsystems.dm.rej delete mode 100644 code/controllers/subsystem/atoms.dm.rej delete mode 100644 code/game/objects/effects/overlays.dm.rej delete mode 100644 code/game/objects/items.dm.rej delete mode 100644 code/modules/admin/admin_verbs.dm.rej delete mode 100644 code/modules/admin/verbs/debug.dm.rej delete mode 100644 code/modules/holodeck/computer.dm.rej delete mode 100644 code/modules/mob/dead/new_player/new_player.dm.rej delete mode 100644 code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm.rej delete mode 100644 code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm.rej delete mode 100644 code/modules/recycling/conveyor2.dm.rej delete mode 100644 code/modules/shuttle/arrivals.dm.rej delete mode 100644 code/modules/shuttle/shuttle.dm.rej delete mode 100644 code/modules/station_goals/bsa.dm.rej delete mode 100644 code/modules/surgery/organs/organ_internal.dm.rej delete mode 100644 code/modules/surgery/surgery.dm.rej delete mode 100644 code/modules/vehicles/atv.dm.rej delete mode 100644 code/modules/vehicles/speedbike.dm.rej diff --git a/code/__DEFINES/subsystems.dm.rej b/code/__DEFINES/subsystems.dm.rej deleted file mode 100644 index cf39977224..0000000000 --- a/code/__DEFINES/subsystems.dm.rej +++ /dev/null @@ -1,18 +0,0 @@ -diff a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm (rejected hunks) -@@ -26,4 +26,13 @@ - - #define INITIALIZE_HINT_NORMAL 0 //Nothing happens - #define INITIALIZE_HINT_LATELOAD 1 //Call LateInitialize --#define INITIALIZE_HINT_QDEL 2 //Call qdel on the atom -\ No newline at end of file -+#define INITIALIZE_HINT_QDEL 2 //Call qdel on the atom -+ -+//type and all subtypes should always call Initialize in New() -+#define INITIALIZE_IMMEDIATE(X) ##X/New(loc, ...){\ -+ ..();\ -+ if(!initialized) {\ -+ args[1] = TRUE;\ -+ SSatoms.InitAtom(src, args);\ -+ }\ -+} -\ No newline at end of file diff --git a/code/controllers/subsystem/atoms.dm.rej b/code/controllers/subsystem/atoms.dm.rej deleted file mode 100644 index 4d7225164f..0000000000 --- a/code/controllers/subsystem/atoms.dm.rej +++ /dev/null @@ -1,9 +0,0 @@ -diff a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm (rejected hunks) -@@ -12,6 +12,7 @@ SUBSYSTEM_DEF(atoms) - var/old_initialized - - var/list/late_loaders -+ var/list/created_atoms - - var/list/BadInitializeCalls = list() - diff --git a/code/game/objects/effects/overlays.dm.rej b/code/game/objects/effects/overlays.dm.rej deleted file mode 100644 index f25f8f24e9..0000000000 --- a/code/game/objects/effects/overlays.dm.rej +++ /dev/null @@ -1,21 +0,0 @@ -diff a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm (rejected hunks) -@@ -31,8 +31,8 @@ - . = ..() - deltimer(timerid) - --/obj/effect/overlay/temp/New() -- ..() -+/obj/effect/overlay/temp/Initialize() -+ . = ..() - if(randomdir) - setDir(pick(GLOB.cardinal)) - flick("[icon_state]", src) //Because we might be pulling it from a pool, flick whatever icon it uses so it starts at the start of the icon's animation. -@@ -214,7 +221,7 @@ - icon = 'icons/effects/fire.dmi' - icon_state = "3" - duration = 20 -- -+ - /obj/effect/overlay/temp/cult - randomdir = 0 - duration = 10 diff --git a/code/game/objects/items.dm.rej b/code/game/objects/items.dm.rej deleted file mode 100644 index 7366e22899..0000000000 --- a/code/game/objects/items.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/objects/items.dm b/code/game/objects/items.dm (rejected hunks) -@@ -102,7 +102,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s - /obj/item/Initialize() - if (!materials) - materials = list() -- ..() -+ . = ..() - for(var/path in actions_types) - new path(src) - actions_types = null diff --git a/code/modules/admin/admin_verbs.dm.rej b/code/modules/admin/admin_verbs.dm.rej deleted file mode 100644 index e710d417c2..0000000000 --- a/code/modules/admin/admin_verbs.dm.rej +++ /dev/null @@ -1,11 +0,0 @@ -diff a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm (rejected hunks) -@@ -153,7 +153,8 @@ var/list/admin_verbs_debug = list( - /client/proc/clear_dynamic_transit, - /client/proc/toggle_medal_disable, - /client/proc/view_runtimes, -- /client/proc/pump_random_event -+ /client/proc/pump_random_event, -+ /client/proc/cmd_display_init_log - ) - var/list/admin_verbs_possess = list( - /proc/possess, diff --git a/code/modules/admin/verbs/debug.dm.rej b/code/modules/admin/verbs/debug.dm.rej deleted file mode 100644 index b5277b316c..0000000000 --- a/code/modules/admin/verbs/debug.dm.rej +++ /dev/null @@ -1,41 +0,0 @@ -diff a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm (rejected hunks) -@@ -83,17 +83,23 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that - to_chat(usr, .) - feedback_add_details("admin_verb","Advanced ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - --GLOBAL_VAR_INIT(AdminProcCall, null) --GLOBAL_PROTECT(AdminProcCall) -+GLOBAL_VAR_INIT(AdminProcCaller, null) -+GLOBAL_PROTECT(AdminProcCaller) -+GLOBAL_VAR_INIT(AdminProcCallCount, 0) -+GLOBAL_PROTECT(AdminProcCallCount) - - /proc/WrapAdminProcCall(target, procname, list/arguments) -- if(GLOB.AdminProcCall) -- to_chat(usr, "Another admin called proc is still running, your proc will be run after theirs finishes") -- UNTIL(!GLOB.AdminProcCall) -+ var/current_caller = GLOB.AdminProcCaller -+ var/ckey = usr.client.ckey -+ if(current_caller && current_caller != ckey) -+ to_chat(usr, "Another set of admin called procs are still running, your proc will be run after theirs finish.") -+ UNTIL(!GLOB.AdminProcCaller) - to_chat(usr, "Running your proc") -- GLOB.AdminProcCall = usr.client.ckey //if this runtimes, too bad for you -+ GLOB.AdminProcCaller = ckey //if this runtimes, too bad for you -+ ++GLOB.AdminProcCallCount - world.WrapAdminProcCall(target, procname, arguments) -- GLOB.AdminProcCall = null -+ if(--GLOB.AdminProcCallCount == 0) -+ GLOB.AdminProcCaller = null - - //adv proc call this, ya nerds - /world/proc/WrapAdminProcCall(target, procname, list/arguments) -@@ -103,7 +109,7 @@ GLOBAL_PROTECT(AdminProcCall) - return call(procname)(arglist(arguments)) - - /proc/IsAdminAdvancedProcCall() -- return usr && usr.client && GLOB.AdminProcCall == usr.client.ckey -+ return usr && usr.client && GLOB.AdminProcCaller == usr.client.ckey - - /client/proc/callproc_datum(datum/A as null|area|mob|obj|turf) - set category = "Debug" diff --git a/code/modules/holodeck/computer.dm.rej b/code/modules/holodeck/computer.dm.rej deleted file mode 100644 index 7a8dcd75cd..0000000000 --- a/code/modules/holodeck/computer.dm.rej +++ /dev/null @@ -1,47 +0,0 @@ -diff a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm (rejected hunks) -@@ -64,25 +64,26 @@ - ..() - - /obj/machinery/computer/holodeck/Initialize(mapload) -- . = mapload //late-initialize, area_copy need turfs to have air -- if(!mapload) -- ..() -- program_cache = list() -- emag_programs = list() -- for(var/typekey in subtypesof(program_type)) -- var/area/holodeck/A = locate(typekey) -- if(!A || A == offline_program) continue -- if(A.contents.len == 0) continue // not loaded -- if(A.restricted) -- emag_programs += A -- else -- program_cache += A -- if(typekey == init_program) -- load_program(A,force=1) -- if(random_program && program_cache.len && init_program == null) -- load_program(pick(program_cache),force=1) -- else if(!program) -- load_program(offline_program) -+ ..() -+ return INITIALIZE_HINT_LATELOAD -+ -+/obj/machinery/computer/holodeck/LateInitialize() -+ program_cache = list() -+ emag_programs = list() -+ for(var/typekey in subtypesof(program_type)) -+ var/area/holodeck/A = locate(typekey) -+ if(!A || A == offline_program) continue -+ if(A.contents.len == 0) continue // not loaded -+ if(A.restricted) -+ emag_programs += A -+ else -+ program_cache += A -+ if(typekey == init_program) -+ load_program(A,force=1) -+ if(random_program && program_cache.len && init_program == null) -+ load_program(pick(program_cache),force=1) -+ else if(!program) -+ load_program(offline_program) - - /obj/machinery/computer/holodeck/power_change() - ..() diff --git a/code/modules/mob/dead/new_player/new_player.dm.rej b/code/modules/mob/dead/new_player/new_player.dm.rej deleted file mode 100644 index 9ebe59e8f8..0000000000 --- a/code/modules/mob/dead/new_player/new_player.dm.rej +++ /dev/null @@ -1,9 +0,0 @@ -diff a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm (rejected hunks) -@@ -30,6 +30,7 @@ - loc = pick(newplayer_start) - else - loc = locate(1,1,1) -+ return INITIALIZE_HINT_NORMAL - - /mob/dead/new_player/proc/new_player_panel() - diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm.rej b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm.rej deleted file mode 100644 index 3dab6ff0a6..0000000000 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm (rejected hunks) -@@ -106,7 +106,7 @@ Difficulty: Very Hard - var/target - - /obj/effect/overlay/temp/at_shield/Initialize(mapload, new_target) -- ..() -+ . = ..() - target = new_target - INVOKE_ASYNC(src, /atom/movable/proc/orbit, target, 0, FALSE, 0, 0, FALSE, TRUE) - diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm.rej b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm.rej deleted file mode 100644 index 84c2ab0b38..0000000000 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm.rej +++ /dev/null @@ -1,23 +0,0 @@ -diff a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm (rejected hunks) -@@ -96,8 +96,8 @@ Difficulty: Medium - duration = 12 - pixel_z = 500 - --/obj/effect/overlay/temp/fireball/Initialize(loc) -- ..() -+/obj/effect/overlay/temp/fireball/Initialize() -+ . = ..() - animate(src, pixel_z = 0, time = 12) - - /obj/effect/overlay/temp/target -@@ -121,8 +121,8 @@ Difficulty: Medium - /obj/effect/overlay/temp/target/ex_act() - return - --/obj/effect/overlay/temp/target/Initialize(loc) -- ..() -+/obj/effect/overlay/temp/target/Initialize() -+ . = ..() - INVOKE_ASYNC(src, .proc/fall) - - /obj/effect/overlay/temp/target/proc/fall() diff --git a/code/modules/recycling/conveyor2.dm.rej b/code/modules/recycling/conveyor2.dm.rej deleted file mode 100644 index 328ac26919..0000000000 --- a/code/modules/recycling/conveyor2.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm (rejected hunks) -@@ -220,7 +220,7 @@ - id = newid - update() - -- return INITIALIZE_HINT_LATELOAD -+ return INITIALIZE_HINT_LATELOAD //for machines list - - /obj/machinery/conveyor_switch/LateInitialize() - conveyors = list() diff --git a/code/modules/shuttle/arrivals.dm.rej b/code/modules/shuttle/arrivals.dm.rej deleted file mode 100644 index 8310a4f3db..0000000000 --- a/code/modules/shuttle/arrivals.dm.rej +++ /dev/null @@ -1,11 +0,0 @@ -diff a/code/modules/shuttle/arrivals.dm b/code/modules/shuttle/arrivals.dm (rejected hunks) -@@ -30,6 +30,9 @@ - ..() - - preferred_direction = dir -+ return INITIALIZE_HINT_LATELOAD //for latejoin list -+ -+/obj/docking_port/mobile/arrivals/LateInitialize() - areas = list() - - var/list/new_latejoin = list() diff --git a/code/modules/shuttle/shuttle.dm.rej b/code/modules/shuttle/shuttle.dm.rej deleted file mode 100644 index 5dc3c5a13a..0000000000 --- a/code/modules/shuttle/shuttle.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm (rejected hunks) -@@ -316,7 +316,7 @@ - if(!check_dock(S)) - testing("check_dock failed on request for [src]") - return -- -+ - if(mode == SHUTTLE_IGNITING && destination == S) - return - diff --git a/code/modules/station_goals/bsa.dm.rej b/code/modules/station_goals/bsa.dm.rej deleted file mode 100644 index d252acd18d..0000000000 --- a/code/modules/station_goals/bsa.dm.rej +++ /dev/null @@ -1,12 +0,0 @@ -diff a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm (rejected hunks) -@@ -161,8 +161,8 @@ - return locate(world.maxx,y,z) - return get_turf(src) - --/obj/machinery/bsa/full/New(loc,cannon_direction = WEST) -- ..() -+/obj/machinery/bsa/full/Initialize(mapload,cannon_direction = WEST) -+ . = ..() - switch(cannon_direction) - if(WEST) - dir = WEST diff --git a/code/modules/surgery/organs/organ_internal.dm.rej b/code/modules/surgery/organs/organ_internal.dm.rej deleted file mode 100644 index 51db3e41ea..0000000000 --- a/code/modules/surgery/organs/organ_internal.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm (rejected hunks) -@@ -655,7 +655,7 @@ - var/phomeme_type = "sans" - var/list/phomeme_types = list("sans", "papyrus") - --/obj/item/organ/tongue/bone/New() -+/obj/item/organ/tongue/bone/Initialize() - . = ..() - phomeme_type = pick(phomeme_types) - diff --git a/code/modules/surgery/surgery.dm.rej b/code/modules/surgery/surgery.dm.rej deleted file mode 100644 index 04205e9e66..0000000000 --- a/code/modules/surgery/surgery.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm (rejected hunks) -@@ -54,7 +54,7 @@ - return new step_type - - /datum/surgery/proc/complete() -- feedback_add_details("surgeries_completed", type) -+ feedback_add_details("surgeries_completed", "[type]") - qdel(src) - - diff --git a/code/modules/vehicles/atv.dm.rej b/code/modules/vehicles/atv.dm.rej deleted file mode 100644 index 4595beddc4..0000000000 --- a/code/modules/vehicles/atv.dm.rej +++ /dev/null @@ -1,12 +0,0 @@ -diff a/code/modules/vehicles/atv.dm b/code/modules/vehicles/atv.dm (rejected hunks) -@@ -9,8 +9,8 @@ - . = ..() - riding_datum = new/datum/riding/atv - --/obj/vehicle/atv/New() -- ..() -+/obj/vehicle/atv/Initialize() -+ . = ..() - if(!atvcover) - atvcover = image("icons/obj/vehicles.dmi", "atvcover") - atvcover.layer = ABOVE_MOB_LAYER diff --git a/code/modules/vehicles/speedbike.dm.rej b/code/modules/vehicles/speedbike.dm.rej deleted file mode 100644 index 26fe1428c9..0000000000 --- a/code/modules/vehicles/speedbike.dm.rej +++ /dev/null @@ -1,23 +0,0 @@ -diff a/code/modules/vehicles/speedbike.dm b/code/modules/vehicles/speedbike.dm (rejected hunks) -@@ -16,20 +16,9 @@ - overlay.layer = ABOVE_MOB_LAYER - add_overlay(overlay) - --/obj/effect/overlay/temp/speedbike_trail -- name = "speedbike trails" -- icon_state = "ion_fade" -- layer = BELOW_MOB_LAYER -- duration = 10 -- randomdir = 0 -- --/obj/effect/overlay/temp/speedbike_trail/New(loc,move_dir) -- ..() -- setDir(move_dir) -- - /obj/vehicle/space/speedbike/Move(newloc,move_dir) - if(has_buckled_mobs()) -- new /obj/effect/overlay/temp/speedbike_trail(loc,move_dir) -+ new /obj/effect/overlay/temp/dir_setting/speedbike_trail(loc,move_dir) - . = ..() - - /obj/vehicle/space/speedbike/red From a8e6de5795f70c8c41fbaf285c97b2a56601779f Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 2 May 2017 05:06:13 -0500 Subject: [PATCH 36/50] manual merge --- code/datums/datumvars.dm | 28 ++++++++++++------------- code/modules/admin/verbs/randomverbs.dm | 23 ++++++++++++-------- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 7de57e4bb9..fbbf97a6ca 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -27,7 +27,7 @@ . += "---" .["Call Proc"] = "?_src_=vars;proc_call=\ref[src]" .["Mark Object"] = "?_src_=vars;mark_object=\ref[src]" - .["Delete"] = "?_src_=vars;delete=\ref[src]" + .["Delete"] = "?_src_=vars;delete=\ref[src]" /datum/proc/on_reagent_change() @@ -94,7 +94,6 @@ CLONE:[M.getCloneLoss()] BRAIN:[M.getBrainLoss()] STAMINA:[M.getStaminaLoss()] - AROUSAL:[M.getArousalLoss()] "} else @@ -447,7 +446,7 @@ var/list/L = value var/list/items = list() - if (L.len > 0 && !(name == "underlays" || name == "overlays" || L.len > (IS_NORMAL_LIST(L) ? 50 : 150))) + if (L.len > 0 && !(name == "underlays" || name == "overlays" || L.len > (IS_NORMAL_LIST(L) ? 50 : 150))) for (var/i in 1 to L.len) var/key = L[i] var/val @@ -527,16 +526,16 @@ if(T) callproc_datum(T) - else if(href_list["delete"]) - if(!check_rights(R_DEBUG, 0)) - return - - var/datum/D = locate(href_list["delete"]) - if(!D) - to_chat(usr, "Unable to locate item!") - admin_delete(D) - href_list["datumrefresh"] = href_list["delete"] - + else if(href_list["delete"]) + if(!check_rights(R_DEBUG, 0)) + return + + var/datum/D = locate(href_list["delete"]) + if(!D) + to_chat(usr, "Unable to locate item!") + admin_delete(D) + href_list["datumrefresh"] = href_list["delete"] + else if(href_list["regenerateicons"]) if(!check_rights(0)) return @@ -1166,8 +1165,6 @@ L.adjustCloneLoss(amount) if("stamina") L.adjustStaminaLoss(amount) - if("arousal") - L.adjustArousalLoss(amount) else to_chat(usr, "You caused an error. DEBUG: Text:[Text] Mob:[L]") return @@ -1178,3 +1175,4 @@ message_admins(msg) admin_ticket_log(L, msg) href_list["datumrefresh"] = href_list["mobToDamage"] + diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 8d21a8c531..1ae2095323 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -108,8 +108,8 @@ for(var/mob/M in view(range,A)) to_chat(M, msg) - log_admin("LocalNarrate: [key_name(usr)] at ([get_area(A)]): [msg]") - message_admins(" LocalNarrate: [key_name_admin(usr)] at ([get_area(A)]): [msg]
") + log_admin("LocalNarrate: [key_name(usr)] at [get_area(A)][COORD(A)]: [msg]") + message_admins(" LocalNarrate: [key_name_admin(usr)] at [get_area(A)][ADMIN_JMP(A)]: [msg]
") SSblackbox.add_details("admin_verb","Local Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_godmode(mob/M in GLOB.mob_list) @@ -513,16 +513,21 @@ Traitors and the like can also be revived with the previous role mostly intact. to_chat(src, "Only administrators may use this command.") return - if (alert(src, "Are you sure you want to delete:\n[O]\nat ([O.x], [O.y], [O.z])?", "Confirmation", "Yes", "No") == "Yes") - log_admin("[key_name(usr)] deleted [O] at ([O.x],[O.y],[O.z])") - message_admins("[key_name_admin(usr)] deleted [O] at ([O.x],[O.y],[O.z])") + admin_delete(A) + +/client/proc/admin_delete(datum/D) + var/atom/A = D + var/coords = istype(A) ? " at ([A.x], [A.y], [A.z])" : "" + if (alert(src, "Are you sure you want to delete:\n[D]\nat[coords]?", "Confirmation", "Yes", "No") == "Yes") + log_admin("[key_name(usr)] deleted [D][coords]") + message_admins("[key_name_admin(usr)] deleted [D][coords]") SSblackbox.add_details("admin_verb","Delete") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - if(isturf(O)) - var/turf/T = O + if(isturf(D)) + var/turf/T = D T.ChangeTurf(T.baseturf) else - qdel(O) - + qdel(D) + /client/proc/cmd_admin_list_open_jobs() set category = "Admin" set name = "Manage Job Slots" From f7fe20887acdf1335dcfd816d7dd2a256d7d9c0c Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 2 May 2017 08:40:10 -0500 Subject: [PATCH 37/50] manual merge --- code/controllers/subsystem/ticker.dm | 6 ++++++ code/modules/power/singularity/emitter.dm | 10 +++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 305dbc0678..5a180527bb 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -672,6 +672,12 @@ SUBSYSTEM_DEF(ticker) return INVOKE_ASYNC(SSmapping, /datum/controller/subsystem/mapping/.proc/maprotate) +/datum/controller/subsystem/ticker/proc/HasRoundStarted() + return current_state >= GAME_STATE_PLAYING + +/datum/controller/subsystem/ticker/proc/IsRoundInProgress() + return current_state == GAME_STATE_PLAYING + /proc/send_gamemode_vote() SSticker.modevoted = TRUE SSvote.initiate_vote("roundtype","server") diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 39085ab8e3..4316d852d8 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -7,7 +7,7 @@ anchored = 0 density = 1 req_access = list(GLOB.access_engine_equip) - + // The following 3 vars are mostly for the prototype var/manual = FALSE var/charge = 0 @@ -88,7 +88,7 @@ rotate() /obj/machinery/power/emitter/Initialize() - . = ..() + . = ..() if(state == 2 && anchored) connect_to_network() @@ -96,7 +96,7 @@ sparks.set_up(5, TRUE, src) /obj/machinery/power/emitter/Destroy() - if(SSticker && SSticker.current_state == GAME_STATE_PLAYING) + if(SSticker && SSticker.IsRoundInProgress()) message_admins("Emitter deleted at ([x],[y],[z] - JMP)",0,1) log_game("Emitter deleted at ([x],[y],[z])") investigate_log("deleted at ([x],[y],[z]) at [get_area(src)]","singulo") @@ -199,8 +199,8 @@ /obj/machinery/power/emitter/proc/fire_beam(atom/targeted_atom, mob/user) var/turf/targets_from = get_turf(src) - if(targeted_atom && (targeted_atom == user || targeted_atom == targets_from || targeted_atom == src)) - return + if(targeted_atom && (targeted_atom == user || targeted_atom == targets_from || targeted_atom == src)) + return var/obj/item/projectile/P = new projectile_type(targets_from) playsound(src.loc, projectile_sound, 50, 1) if(prob(35)) From fd251eb56ac9227394389f1e1f6724105898225f Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 2 May 2017 08:43:10 -0500 Subject: [PATCH 38/50] oops --- code/controllers/subsystem/ticker.dm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 5a180527bb..f3ac66e001 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -682,11 +682,6 @@ SUBSYSTEM_DEF(ticker) SSticker.modevoted = TRUE SSvote.initiate_vote("roundtype","server") -/world/proc/has_round_started() - if (SSticker && SSticker.current_state >= GAME_STATE_PLAYING) - return TRUE - return FALSE - /datum/controller/subsystem/ticker/Recover() current_state = SSticker.current_state force_ending = SSticker.force_ending From c6e0c95f4205054b446d2016c3d2e78fb5b095fd Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 2 May 2017 09:17:52 -0500 Subject: [PATCH 39/50] heh. --- code/controllers/subsystem/server_maint.dm | 32 ++++++++++++++++------ 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/code/controllers/subsystem/server_maint.dm b/code/controllers/subsystem/server_maint.dm index 3ef088b328..08f60d23e6 100644 --- a/code/controllers/subsystem/server_maint.dm +++ b/code/controllers/subsystem/server_maint.dm @@ -1,17 +1,28 @@ +#define PING_BUFFER_TIME 25 + SUBSYSTEM_DEF(server_maint) name = "Server Tasks" - wait = 6000 - flags = SS_NO_TICK_CHECK + wait = 6 + flags = SS_POST_FIRE_TIMING|SS_FIRE_IN_LOBBY + priority = 10 + var/list/currentrun /datum/controller/subsystem/server_maint/Initialize(timeofday) if (config.hub) world.visibility = 1 ..() -/datum/controller/subsystem/server_maint/fire() - //handle kicking inactive players - if(config.kick_inactive) - for(var/client/C in GLOB.clients) +/datum/controller/subsystem/server_maint/fire(resumed = FALSE) + if(!resumed) + src.currentrun = GLOB.clients.Copy() + + var/list/currentrun = src.currentrun + var/round_started = SSticker.HasRoundStarted() + + for(var/I in currentrun) + var/client/C = I + //handle kicking inactive players + if(round_started && config.kick_inactive) if(C.is_afk(config.afk_period)) var/cmob = C.mob if(!(istype(cmob, /mob/dead/observer) || (istype(cmob, /mob/dead) && C.holder))) @@ -19,5 +30,10 @@ SUBSYSTEM_DEF(server_maint) to_chat(C, "You have been inactive for more than [config.afk_period / 600] minutes and have been disconnected.") qdel(C) - if(config.sql_enabled) - sql_poll_population() + if (!(!C || world.time - C.connection_time < PING_BUFFER_TIME || C.inactivity >= (wait-1))) + winset(C, null, "command=.update_ping+[world.time+world.tick_lag*world.tick_usage/100]") + + if (MC_TICK_CHECK) //one day, when ss13 has 1000 people per server, you guys are gonna be glad I added this tick check + return + +#undef PING_BUFFER_TIME From 587043f1e8232f363bb33fe9a34d0651ea09fcb8 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 2 May 2017 09:44:19 -0500 Subject: [PATCH 40/50] pls --- code/modules/clothing/clothing.dm | 92 +++++++++++++++++-------------- 1 file changed, 51 insertions(+), 41 deletions(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index de76034e48..20f59d0435 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -83,7 +83,7 @@ C.use(1) update_clothes_damaged_state(FALSE) obj_integrity = max_integrity - to_chat(user, "You fix the damage on [src] with [C].") + to_chat(user, "You fix the damage on [src] with [C].") return 1 if(pockets) var/i = pockets.attackby(W, user, params) @@ -161,7 +161,7 @@ /obj/item/clothing/obj_break(damage_flag) if(!damaged_clothes) update_clothes_damaged_state(TRUE) - to_chat(usr, "Your [src] starts to fall apart!") + to_chat(usr, "Your [src] starts to fall apart!") /obj/item/clothing/proc/update_clothes_damaged_state(damaging = TRUE) var/index = "\ref[initial(icon)]-[initial(icon_state)]" @@ -201,7 +201,7 @@ /obj/item/clothing/ears/earmuffs/Initialize(mapload) ..() SET_SECONDARY_FLAG(src, BANG_PROTECT) - SET_SECONDARY_FLAG(src, HEALS_EARS) + SET_SECONDARY_FLAG(src, HEALS_EARS) //Glasses /obj/item/clothing/glasses @@ -251,9 +251,9 @@ BLIND // can't see anything . = list() if(!isinhands) if(damaged_clothes) - . += mutable_appearance('icons/effects/item_damage.dmi', "damagedgloves") + . += mutable_appearance('icons/effects/item_damage.dmi', "damagedgloves") if(blood_DNA) - . += mutable_appearance('icons/effects/blood.dmi', "bloodyhands") + . += mutable_appearance('icons/effects/blood.dmi', "bloodyhands") /obj/item/clothing/gloves/update_clothes_damaged_state(damaging = TRUE) ..() @@ -279,9 +279,9 @@ BLIND // can't see anything . = list() if(!isinhands) if(damaged_clothes) - . += mutable_appearance('icons/effects/item_damage.dmi', "damagedhelmet") + . += mutable_appearance('icons/effects/item_damage.dmi', "damagedhelmet") if(blood_DNA) - . += mutable_appearance('icons/effects/blood.dmi', "helmetblood") + . += mutable_appearance('icons/effects/blood.dmi', "helmetblood") /obj/item/clothing/head/update_clothes_damaged_state(damaging = TRUE) ..() @@ -304,9 +304,9 @@ BLIND // can't see anything if(!isinhands) if(body_parts_covered & HEAD) if(damaged_clothes) - . += mutable_appearance('icons/effects/item_damage.dmi', "damagedmask") + . += mutable_appearance('icons/effects/item_damage.dmi', "damagedmask") if(blood_DNA) - . += mutable_appearance('icons/effects/blood.dmi', "maskblood") + . += mutable_appearance('icons/effects/blood.dmi', "maskblood") //Mask @@ -326,9 +326,9 @@ BLIND // can't see anything if(!isinhands) if(body_parts_covered & HEAD) if(damaged_clothes) - . += mutable_appearance('icons/effects/item_damage.dmi', "damagedmask") + . += mutable_appearance('icons/effects/item_damage.dmi', "damagedmask") if(blood_DNA) - . += mutable_appearance('icons/effects/blood.dmi', "maskblood") + . += mutable_appearance('icons/effects/blood.dmi', "maskblood") /obj/item/clothing/mask/update_clothes_damaged_state(damaging = TRUE) ..() @@ -400,9 +400,9 @@ BLIND // can't see anything bloody = bloody_shoes[BLOOD_STATE_HUMAN] if(damaged_clothes) - . += mutable_appearance('icons/effects/item_damage.dmi', "damagedshoe") + . += mutable_appearance('icons/effects/item_damage.dmi', "damagedshoe") if(bloody) - . += mutable_appearance('icons/effects/blood.dmi', "shoeblood") + . += mutable_appearance('icons/effects/blood.dmi', "shoeblood") /obj/item/clothing/shoes/equipped(mob/user, slot) . = ..() @@ -455,9 +455,9 @@ BLIND // can't see anything . = list() if(!isinhands) if(damaged_clothes) - . += mutable_appearance('icons/effects/item_damage.dmi', "damaged[blood_overlay_type]") + . += mutable_appearance('icons/effects/item_damage.dmi', "damaged[blood_overlay_type]") if(blood_DNA) - . += mutable_appearance('icons/effects/blood.dmi', "[blood_overlay_type]blood") + . += mutable_appearance('icons/effects/blood.dmi', "[blood_overlay_type]blood") /obj/item/clothing/suit/update_clothes_damaged_state(damaging = TRUE) ..() @@ -519,9 +519,9 @@ BLIND // can't see anything slot_flags = SLOT_ICLOTHING armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) var/fitted = FEMALE_UNIFORM_FULL // For use in alternate clothing styles for women - var/has_sensor = HAS_SENSORS // For the crew computer + var/has_sensor = HAS_SENSORS // For the crew computer var/random_sensor = 1 - var/sensor_mode = NO_SENSORS + var/sensor_mode = NO_SENSORS var/can_adjust = 1 var/adjusted = NORMAL_STYLE var/alt_covers_chest = 0 // for adjusted/rolled-down jumpsuits, 0 = exposes chest and arms, 1 = exposes arms only @@ -534,28 +534,38 @@ BLIND // can't see anything if(!isinhands) if(damaged_clothes) - . += mutable_appearance('icons/effects/item_damage.dmi', "damageduniform") + . += mutable_appearance('icons/effects/item_damage.dmi', "damageduniform") if(blood_DNA) - . += mutable_appearance('icons/effects/blood.dmi', "uniformblood") + . += mutable_appearance('icons/effects/blood.dmi', "uniformblood") if(hastie) var/tie_color = hastie.item_color if(!tie_color) tie_color = hastie.icon_state - var/mutable_appearance/tie = mutable_appearance('icons/mob/ties.dmi', "[tie_color]") - tie.alpha = hastie.alpha - tie.color = hastie.color - . += tie + var/mutable_appearance/tie = mutable_appearance('icons/mob/ties.dmi', "[tie_color]") + tie.alpha = hastie.alpha + tie.color = hastie.color + . += tie + +/obj/item/clothing/under/attackby(obj/item/W, mob/user, params) + if((has_sensor == BROKEN_SENSORS) && istype(W, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = W + C.use(1) + has_sensor = HAS_SENSORS + to_chat(user,"You repair the suit sensors on [src] with [C].") + return 1 /obj/item/clothing/under/update_clothes_damaged_state(damaging = TRUE) ..() if(ismob(loc)) var/mob/M = loc M.update_inv_w_uniform() + if(has_sensor > NO_SENSORS) + has_sensor = BROKEN_SENSORS /obj/item/clothing/under/New() if(random_sensor) //make the sensor mode favor higher levels, except coords. - sensor_mode = pick(0, 1, 1, 2, 2, 2, 3, 3) + sensor_mode = pick(SENSOR_OFF, SENSOR_LIVING, SENSOR_LIVING, SENSOR_VITALS, SENSOR_VITALS, SENSOR_VITALS, SENSOR_COORDS, SENSOR_COORDS) adjusted = NORMAL_STYLE ..() @@ -633,18 +643,18 @@ BLIND // can't see anything to_chat(user, "Alt-click on [src] to wear it normally.") else to_chat(user, "Alt-click on [src] to wear it casually.") - if (has_sensor == BROKEN_SENSORS) - to_chat(user, "Its sensors appear to be shorted out.") - else if(has_sensor > NO_SENSORS) - switch(sensor_mode) - if(SENSOR_OFF) - to_chat(user, "Its sensors appear to be disabled.") - if(SENSOR_LIVING) - to_chat(user, "Its binary life sensors appear to be enabled.") - if(SENSOR_VITALS) - to_chat(user, "Its vital tracker appears to be enabled.") - if(SENSOR_COORDS) - to_chat(user, "Its vital tracker and tracking beacon appear to be enabled.") + if (has_sensor == BROKEN_SENSORS) + to_chat(user, "Its sensors appear to be shorted out.") + else if(has_sensor > NO_SENSORS) + switch(sensor_mode) + if(SENSOR_OFF) + to_chat(user, "Its sensors appear to be disabled.") + if(SENSOR_LIVING) + to_chat(user, "Its binary life sensors appear to be enabled.") + if(SENSOR_VITALS) + to_chat(user, "Its vital tracker appears to be enabled.") + if(SENSOR_COORDS) + to_chat(user, "Its vital tracker and tracking beacon appear to be enabled.") if(hastie) to_chat(user, "\A [hastie] is attached to it.") @@ -664,13 +674,13 @@ BLIND // can't see anything return if (!can_use(M)) return - if(src.has_sensor == LOCKED_SENSORS) + if(src.has_sensor == LOCKED_SENSORS) to_chat(usr, "The controls are locked.") return 0 - if(src.has_sensor == BROKEN_SENSORS) - to_chat(usr, "The sensors have shorted out!") - return 0 - if(src.has_sensor <= NO_SENSORS) + if(src.has_sensor == BROKEN_SENSORS) + to_chat(usr, "The sensors have shorted out!") + return 0 + if(src.has_sensor <= NO_SENSORS) to_chat(usr, "This suit does not have any sensors.") return 0 From 913a0c7c7f91a694d2f94ab85aef5f7a5179c53a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 2 May 2017 09:55:15 -0500 Subject: [PATCH 41/50] Fixes proximity sensors not tracking correctly --- code/game/objects/effects/proximity.dm | 50 +++++++++++++------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/code/game/objects/effects/proximity.dm b/code/game/objects/effects/proximity.dm index 8a6893c887..bfa6cd8fa9 100644 --- a/code/game/objects/effects/proximity.dm +++ b/code/game/objects/effects/proximity.dm @@ -9,10 +9,12 @@ host = _host last_host_loc = _host.loc ignore_if_not_on_turf = _ignore_if_not_on_turf + checkers = list() SetRange(range) /datum/proximity_monitor/Destroy() host = null + last_host_loc = null QDEL_LIST(checkers) return ..() @@ -34,46 +36,47 @@ current_range = range - var/list/old_checkers = checkers - var/old_checkers_len = LAZYLEN(old_checkers) + var/list/checkers_local = checkers + var/old_checkers_len = checkers_local.len - var/atom/host_loc = host.loc + var/atom/_host = host - var/atom/loc_to_use = ignore_if_not_on_turf ? host_loc : get_turf(host) + var/atom/loc_to_use = ignore_if_not_on_turf ? _host.loc : get_turf(_host) if(!isturf(loc_to_use)) //only check the host's loc if(range) var/obj/effect/abstract/proximity_checker/pc if(old_checkers_len) - pc = old_checkers[old_checkers_len] - --old_checkers.len + pc = checkers_local[old_checkers_len] + --checkers_local.len + QDEL_LIST(checkers_local) else - pc = new(host_loc, src) + pc = new(loc_to_use, src) - checkers = list(pc) //only check the host's loc + checkers_local += pc //only check the host's loc return var/list/turfs = RANGE_TURFS(range, loc_to_use) - var/old_checkers_used = min(turfs.len, old_checkers_len) + var/turfs_len = turfs.len + var/old_checkers_used = min(turfs_len, old_checkers_len) //reuse what we can for(var/I in 1 to old_checkers_len) if(I <= old_checkers_used) - var/obj/effect/abstract/proximity_checker/pc = old_checkers[I] + var/obj/effect/abstract/proximity_checker/pc = checkers_local[I] pc.loc = turfs[I] else - qdel(old_checkers[I]) //delete the leftovers + qdel(checkers_local[I]) //delete the leftovers - LAZYCLEARLIST(old_checkers) - - //create what we lack - var/list/checkers_local = list() - for(var/I in (old_checkers_used + 1) to turfs.len) - checkers_local += new /obj/effect/abstract/proximity_checker(turfs[I], src) - - checkers = checkers_local + if(old_checkers_len < turfs_len) + //create what we lack + for(var/I in (old_checkers_used + 1) to turfs_len) + checkers_local += new /obj/effect/abstract/proximity_checker(turfs[I], src) + else + checkers_local.Cut(old_checkers_used + 1, old_checkers_len) /obj/effect/abstract/proximity_checker invisibility = INVISIBILITY_ABSTRACT + anchored = TRUE var/datum/proximity_monitor/monitor /obj/effect/abstract/proximity_checker/Initialize(mapload, datum/proximity_monitor/_monitor) @@ -81,8 +84,8 @@ if(_monitor) monitor = _monitor else - stack_trace("proximity_checker created without proximity_monitor") - qdel(src) + stack_trace("proximity_checker created without host") + return INITIALIZE_HINT_QDEL /obj/effect/abstract/proximity_checker/Destroy() monitor = null @@ -90,9 +93,6 @@ /obj/effect/abstract/proximity_checker/Crossed(atom/movable/AM) set waitfor = FALSE - var/datum/proximity_monitor/M = monitor - if(!M.current_range) - return - var/atom/H = M.host + var/atom/H = monitor.host testing("HasProx: [H] -> [AM]") H.HasProximity(AM) From 25f1b24f62d41c9be47e5568cf7ecb2693088dfe Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 2 May 2017 10:00:33 -0500 Subject: [PATCH 42/50] Makes golems able to transfer into empty shells --- .../objects/structures/ghost_role_spawners.dm | 22 +++++++++++++++++-- code/modules/awaymissions/corpse.dm | 7 +++--- .../carbon/human/species_types/golems.dm | 13 +++++++---- 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index f1a808938e..d087b14390 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -101,6 +101,7 @@ death = FALSE anchored = 0 density = 0 + var/can_transfer = TRUE //if golems can switch bodies to this new shell var/mob/living/owner = null //golem's owner if it has one flavour_text = "You are a Free Golem. Your family worships The Liberator. In his infinite and divine wisdom, he set your clan free to \ travel the stars with a single declaration: \"Yeah go do whatever.\" Though you are bound to the one who created you, it is customary in your society to repeat those same words to newborn \ @@ -119,7 +120,7 @@ Serve [creator], and assist [creator.p_them()] in completing [creator.p_their()] goals at any cost." owner = creator -/obj/effect/mob_spawn/human/golem/special(mob/living/new_spawn) +/obj/effect/mob_spawn/human/golem/special(mob/living/new_spawn, name) var/datum/species/golem/X = mob_species to_chat(new_spawn, "[initial(X.info_text)]") if(!owner) @@ -132,7 +133,23 @@ if(ishuman(new_spawn)) var/mob/living/carbon/human/H = new_spawn H.set_cloned_appearance() - H.real_name = H.dna.species.random_name() + if(!name) + H.real_name = H.dna.species.random_name() + else + H.real_name = name + +/obj/effect/mob_spawn/human/golem/attack_hand(mob/user) + if(isgolem(user) && can_transfer) + var/transfer = alert("Transfer your soul to [src]? (Warning, your old body will die!)",,"Yes","No") + if(!transfer) + return + log_game("[user.ckey] golem-swapped into [src]") + user.visible_message("A faint light leaves [user], moving to [src] and animating it!","You leave your old body behind, and transfer into [src]!") + create(ckey = user.ckey, flavour = FALSE, name = user.real_name) + user.death() + return + ..() + /obj/effect/mob_spawn/human/golem/adamantine name = "dust-caked golem shell" @@ -140,6 +157,7 @@ mob_name = "a free golem" anchored = 1 density = 1 + can_transfer = FALSE mob_species = /datum/species/golem/adamantine //Malfunctioning cryostasis sleepers: Spawns in makeshift shelters in lavaland. Ghosts become hermits with knowledge of how they got to where they are now. diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 96c0bc35de..9fa0fbf5a5 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -53,7 +53,7 @@ /obj/effect/mob_spawn/proc/equip(mob/M) return -/obj/effect/mob_spawn/proc/create(ckey) +/obj/effect/mob_spawn/proc/create(ckey, flavour = TRUE, name) var/mob/living/M = new mob_type(get_turf(src)) //living mobs only if(!random) M.real_name = mob_name ? mob_name : M.name @@ -71,12 +71,13 @@ if(ckey) M.ckey = ckey - to_chat(M, "[flavour_text]") + if(flavour) + to_chat(M, "[flavour_text]") var/datum/mind/MM = M.mind if(objectives) for(var/objective in objectives) MM.objectives += new/datum/objective(objective) - special(M) + special(M, name) MM.name = M.real_name if(uses > 0) uses-- diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index 8eb5343a30..0390661c78 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -71,10 +71,14 @@ prefix = "Plasma" special_names = list("Flood","Fire","Bar","Man") -/datum/species/golem/plasma/spec_death(gibbed, mob/living/carbon/human/H) - explosion(get_turf(H),0,1,2,flame_range = 5) - if(H) - H.gib() +/datum/species/golem/plasma/spec_life(mob/living/carbon/human/H) + if(H.bodytemperature > 900 && H.on_fire) + explosion(get_turf(H),1,2,4,flame_range = 5) + if(H) + H.gib() + if(H.fire_stacks < 2) //flammable + H.adjust_fire_stacks(1) + ..() //Harder to hurt /datum/species/golem/diamond @@ -501,6 +505,7 @@ sexes = FALSE info_text = "As a Runic Golem, you possess eldritch powers granted by the Elder God Nar'Sie." species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOGUNS,NOBLOOD,RADIMMUNE,VIRUSIMMUNE,PIERCEIMMUNE,NODISMEMBER) //no mutcolors + prefix = "Runic" var/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/golem/phase_shift var/obj/effect/proc_holder/spell/targeted/abyssal_gaze/abyssal_gaze From e4c417687462f1c733aa2f0b06864e4f1e469b76 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 2 May 2017 11:10:15 -0500 Subject: [PATCH 43/50] Automatic changelog generation for PR #591 [ci skip] --- html/changelogs/AutoChangeLog-pr-591.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-591.yml diff --git a/html/changelogs/AutoChangeLog-pr-591.yml b/html/changelogs/AutoChangeLog-pr-591.yml new file mode 100644 index 0000000000..a41e268954 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-591.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - tweak: "When jumpsuits take severe damage, their suit sensors break. They can be fixed by applying a cable coil." From 284fc2f43aac601a3f929b1b93e9e0bf8510ca85 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 2 May 2017 11:14:15 -0500 Subject: [PATCH 44/50] Automatic changelog generation for PR #602 [ci skip] --- html/changelogs/AutoChangeLog-pr-602.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-602.yml diff --git a/html/changelogs/AutoChangeLog-pr-602.yml b/html/changelogs/AutoChangeLog-pr-602.yml new file mode 100644 index 0000000000..77630400ef --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-602.yml @@ -0,0 +1,4 @@ +author: "QualityVan" +delete-after: True +changes: + - bugfix: "You can hit emagged cloning pods with a medical ID to empty them" From 85c9b40ede159554379316b8f0aa963073777de1 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 2 May 2017 11:15:55 -0500 Subject: [PATCH 45/50] Automatic changelog generation for PR #641 [ci skip] --- html/changelogs/AutoChangeLog-pr-641.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-641.yml diff --git a/html/changelogs/AutoChangeLog-pr-641.yml b/html/changelogs/AutoChangeLog-pr-641.yml new file mode 100644 index 0000000000..d2781f8377 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-641.yml @@ -0,0 +1,5 @@ +author: "BeeSting12" +delete-after: True +changes: + - bugfix: "The emergency backup shuttle has lighting now." + - bugfix: "Plating in deltastation's aux tool storage is no longer checkered." From 63102925318e2184c210b0077ebba99024901c53 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 2 May 2017 11:19:14 -0500 Subject: [PATCH 46/50] woo --- .../OmegaStation/OmegaStation.dmm.rej | 60 -- code/_onclick/hud/constructs.dm.rej | 25 - code/controllers/subsystem/blackbox.dm.rej | 512 ------------------ .../controllers/subsystem/server_maint.dm.rej | 7 - code/controllers/subsystem/ticker.dm.rej | 17 - code/game/gamemodes/cult/runes.dm.rej | 10 - code/game/gamemodes/game_mode.dm.rej | 18 - code/game/machinery/cloning.dm.rej | 28 - .../machinery/telecomms/broadcasting.dm.rej | 33 -- code/game/machinery/vending.dm.rej | 10 - .../objects/items/weapons/handcuffs.dm.rej | 31 -- code/game/turfs/simulated/minerals.dm.rej | 19 - code/modules/admin/admin.dm.rej | 10 - code/modules/admin/secrets.dm.rej | 291 ---------- code/modules/admin/topic.dm.rej | 10 - code/modules/admin/verbs/adminhelp.dm.rej | 10 - code/modules/admin/verbs/adminjump.dm.rej | 16 - code/modules/admin/verbs/debug.dm.rej | 28 - code/modules/admin/verbs/panicbunker.dm.rej | 8 - code/modules/admin/verbs/randomverbs.dm.rej | 46 -- .../verbs/reestablish_db_connection.dm.rej | 15 - code/modules/clothing/clothing.dm.rej | 29 - code/modules/clothing/suits/armor.dm.rej | 10 - code/modules/events/_event.dm.rej | 17 - code/modules/mining/equipment.dm.rej | 26 - .../mining/lavaland/necropolis_chests.dm.rej | 28 - .../living/simple_animal/constructs.dm.rej | 9 - code/modules/mob/logout.dm.rej | 10 - code/modules/power/singularity/emitter.dm.rej | 10 - .../chemistry/recipes/slime_extracts.dm.rej | 442 --------------- code/modules/uplink/uplink_item.dm.rej | 17 - code/world.dm.rej | 19 - tgstation.dme.rej | 17 - 33 files changed, 1838 deletions(-) delete mode 100644 _maps/map_files/OmegaStation/OmegaStation.dmm.rej delete mode 100644 code/_onclick/hud/constructs.dm.rej delete mode 100644 code/controllers/subsystem/blackbox.dm.rej delete mode 100644 code/controllers/subsystem/server_maint.dm.rej delete mode 100644 code/controllers/subsystem/ticker.dm.rej delete mode 100644 code/game/gamemodes/cult/runes.dm.rej delete mode 100644 code/game/gamemodes/game_mode.dm.rej delete mode 100644 code/game/machinery/cloning.dm.rej delete mode 100644 code/game/machinery/telecomms/broadcasting.dm.rej delete mode 100644 code/game/machinery/vending.dm.rej delete mode 100644 code/game/objects/items/weapons/handcuffs.dm.rej delete mode 100644 code/game/turfs/simulated/minerals.dm.rej delete mode 100644 code/modules/admin/admin.dm.rej delete mode 100644 code/modules/admin/secrets.dm.rej delete mode 100644 code/modules/admin/topic.dm.rej delete mode 100644 code/modules/admin/verbs/adminhelp.dm.rej delete mode 100644 code/modules/admin/verbs/adminjump.dm.rej delete mode 100644 code/modules/admin/verbs/debug.dm.rej delete mode 100644 code/modules/admin/verbs/panicbunker.dm.rej delete mode 100644 code/modules/admin/verbs/randomverbs.dm.rej delete mode 100644 code/modules/admin/verbs/reestablish_db_connection.dm.rej delete mode 100644 code/modules/clothing/clothing.dm.rej delete mode 100644 code/modules/clothing/suits/armor.dm.rej delete mode 100644 code/modules/events/_event.dm.rej delete mode 100644 code/modules/mining/equipment.dm.rej delete mode 100644 code/modules/mining/lavaland/necropolis_chests.dm.rej delete mode 100644 code/modules/mob/living/simple_animal/constructs.dm.rej delete mode 100644 code/modules/mob/logout.dm.rej delete mode 100644 code/modules/power/singularity/emitter.dm.rej delete mode 100644 code/modules/reagents/chemistry/recipes/slime_extracts.dm.rej delete mode 100644 code/modules/uplink/uplink_item.dm.rej delete mode 100644 code/world.dm.rej delete mode 100644 tgstation.dme.rej diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm.rej b/_maps/map_files/OmegaStation/OmegaStation.dmm.rej deleted file mode 100644 index c23bd7e4c5..0000000000 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm.rej +++ /dev/null @@ -1,60 +0,0 @@ -diff a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm (rejected hunks) -@@ -41755,58 +41743,6 @@ - "bvf" = ( - /turf/closed/wall/r_wall, - /area/engine/supermatter) --"bvg" = ( --/obj/machinery/light{ -- dir = 1 -- }, --/turf/open/floor/plasteel/neutral/side{ -- dir = 1 -- }, --/area/shuttle/escape) --"bvh" = ( --/obj/structure/chair{ -- dir = 8 -- }, --/obj/effect/turf_decal/bot, --/obj/machinery/light/small{ -- dir = 4 -- }, --/turf/open/floor/plasteel, --/area/shuttle/escape) --"bvi" = ( --/obj/structure/chair{ -- dir = 4 -- }, --/obj/effect/turf_decal/bot, --/obj/machinery/light/small{ -- dir = 8 -- }, --/turf/open/floor/plasteel, --/area/shuttle/escape) --"bvj" = ( --/obj/structure/chair{ -- dir = 8 -- }, --/obj/effect/turf_decal/bot, --/obj/machinery/light/small{ -- dir = 4 -- }, --/turf/open/floor/plasteel, --/area/shuttle/escape) --"bvk" = ( --/obj/structure/chair{ -- dir = 4 -- }, --/obj/effect/turf_decal/bot, --/obj/machinery/light/small{ -- dir = 8 -- }, --/turf/open/floor/plasteel, --/area/shuttle/escape) --"bvl" = ( --/obj/machinery/light, --/turf/open/floor/plasteel/neutral/side, --/area/shuttle/escape) - - (1,1,1) = {" - aaa diff --git a/code/_onclick/hud/constructs.dm.rej b/code/_onclick/hud/constructs.dm.rej deleted file mode 100644 index 1ea29cde32..0000000000 --- a/code/_onclick/hud/constructs.dm.rej +++ /dev/null @@ -1,25 +0,0 @@ -diff a/code/_onclick/hud/constructs.dm b/code/_onclick/hud/constructs.dm (rejected hunks) -@@ -1,18 +1,18 @@ - - /datum/hud/constructs - ui_style_icon = 'icons/mob/screen_construct.dmi' -- -+ - /datum/hud/constructs/New(mob/owner) - ..() - pull_icon = new /obj/screen/pull() -- pull_icon.icon = ui_style_icon -+ pull_icon.icon = 'icons/mob/screen_construct.dmi' - pull_icon.update_icon(mymob) -- pull_icon.screen_loc = ui_pull_resist -+ pull_icon.screen_loc = ui_construct_pull - static_inventory += pull_icon -- -+ - healths = new /obj/screen/healths/construct() - infodisplay += healths -- -+ - /mob/living/simple_animal/hostile/construct/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/constructs(src) diff --git a/code/controllers/subsystem/blackbox.dm.rej b/code/controllers/subsystem/blackbox.dm.rej deleted file mode 100644 index 79c407851f..0000000000 --- a/code/controllers/subsystem/blackbox.dm.rej +++ /dev/null @@ -1,512 +0,0 @@ -diff a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm (rejected hunks) -@@ -1,253 +1,257 @@ --GLOBAL_DATUM_INIT(blackbox, /datum/feedback, new) -- --//the feedback datum; stores all feedback --/datum/feedback -- var/list/messages = list() -- var/list/messages_admin = list() -- -- var/list/msg_common = list() -- var/list/msg_science = list() -- var/list/msg_command = list() -- var/list/msg_medical = list() -- var/list/msg_engineering = list() -- var/list/msg_security = list() -- var/list/msg_deathsquad = list() -- var/list/msg_syndicate = list() -- var/list/msg_service = list() -- var/list/msg_cargo = list() -- -- var/list/datum/feedback_variable/feedback = new() -- --/datum/feedback/proc/find_feedback_datum(variable) -- for (var/datum/feedback_variable/FV in feedback) -- if (FV.get_variable() == variable) -- return FV -- var/datum/feedback_variable/FV = new(variable) -- feedback += FV -- return FV -- --/datum/feedback/proc/get_round_feedback() -- return feedback -- --/datum/feedback/proc/round_end_data_gathering() -- var/pda_msg_amt = 0 -- var/rc_msg_amt = 0 -- -- for (var/obj/machinery/message_server/MS in GLOB.message_servers) -- if (MS.pda_msgs.len > pda_msg_amt) -- pda_msg_amt = MS.pda_msgs.len -- if (MS.rc_msgs.len > rc_msg_amt) -- rc_msg_amt = MS.rc_msgs.len -- -- feedback_set_details("radio_usage","") -- -- feedback_add_details("radio_usage","COM-[msg_common.len]") -- feedback_add_details("radio_usage","SCI-[msg_science.len]") -- feedback_add_details("radio_usage","HEA-[msg_command.len]") -- feedback_add_details("radio_usage","MED-[msg_medical.len]") -- feedback_add_details("radio_usage","ENG-[msg_engineering.len]") -- feedback_add_details("radio_usage","SEC-[msg_security.len]") -- feedback_add_details("radio_usage","DTH-[msg_deathsquad.len]") -- feedback_add_details("radio_usage","SYN-[msg_syndicate.len]") -- feedback_add_details("radio_usage","SRV-[msg_service.len]") -- feedback_add_details("radio_usage","CAR-[msg_cargo.len]") -- feedback_add_details("radio_usage","OTH-[messages.len]") -- feedback_add_details("radio_usage","PDA-[pda_msg_amt]") -- feedback_add_details("radio_usage","RC-[rc_msg_amt]") -- -- feedback_set_details("round_end","[time2text(world.realtime)]") //This one MUST be the last one that gets set. -- --//This proc is only to be called at round end. --/datum/feedback/proc/save_all_data_to_sql() -- if (!feedback) return -- -- round_end_data_gathering() //round_end time logging and some other data processing -- if (!GLOB.dbcon.Connect()) return -- var/round_id -- -- var/DBQuery/query_feedback_max_id = GLOB.dbcon.NewQuery("SELECT MAX(round_id) AS round_id FROM [format_table_name("feedback")]") -- if(!query_feedback_max_id.Execute()) -- return -- while (query_feedback_max_id.NextRow()) -- round_id = query_feedback_max_id.item[1] -- -- if (!isnum(round_id)) -- round_id = text2num(round_id) -- round_id++ -- -- var/sqlrowlist = "" -- -- for (var/datum/feedback_variable/FV in feedback) -- if (sqlrowlist != "") -- sqlrowlist += ", " //a comma (,) at the start of the first row to insert will trigger a SQL error -- -- sqlrowlist += "(null, Now(), [round_id], \"[sanitizeSQL(FV.get_variable())]\", [FV.get_value()], \"[sanitizeSQL(FV.get_details())]\")" -- -- if (sqlrowlist == "") -- return -- -- var/DBQuery/query_feedback_save = GLOB.dbcon.NewQuery("INSERT DELAYED IGNORE INTO [format_table_name("feedback")] VALUES " + sqlrowlist) -- query_feedback_save.Execute() -- -- --/proc/feedback_set(variable,value) -- if(!GLOB.blackbox) -- return -- -- var/datum/feedback_variable/FV = GLOB.blackbox.find_feedback_datum(variable) -- -- if(!FV) -- return -- -- FV.set_value(value) -- --/proc/feedback_inc(variable,value) -- if(!GLOB.blackbox) -- return -- -- var/datum/feedback_variable/FV = GLOB.blackbox.find_feedback_datum(variable) -- -- if(!FV) -- return -- -- FV.inc(value) -- --/proc/feedback_dec(variable,value) -- if(!GLOB.blackbox) -- return -- -- var/datum/feedback_variable/FV = GLOB.blackbox.find_feedback_datum(variable) -- -- if(!FV) -- return -- -- FV.dec(value) -- --/proc/feedback_set_details(variable,details) -- if(!GLOB.blackbox) -- return -- -- var/datum/feedback_variable/FV = GLOB.blackbox.find_feedback_datum(variable) -- -- if(!FV) -- return -- -- FV.set_details(details) -- --/proc/feedback_add_details(variable,details) -- if(!GLOB.blackbox) -- return -- -- var/datum/feedback_variable/FV = GLOB.blackbox.find_feedback_datum(variable) -- -- if(!FV) -- return -- -- FV.add_details(details) -- --//feedback variable datum, for storing all kinds of data --/datum/feedback_variable -- var/variable -- var/value -- var/details -- --/datum/feedback_variable/New(var/param_variable,var/param_value = 0) -- variable = param_variable -- value = param_value -- --/datum/feedback_variable/proc/inc(num = 1) -- if (isnum(value)) -- value += num -- else -- value = text2num(value) -- if (isnum(value)) -- value += num -- else -- value = num -- --/datum/feedback_variable/proc/dec(num = 1) -- if (isnum(value)) -- value -= num -- else -- value = text2num(value) -- if (isnum(value)) -- value -= num -- else -- value = -num -- --/datum/feedback_variable/proc/set_value(num) -- if (isnum(num)) -- value = num -- --/datum/feedback_variable/proc/get_value() -- if (!isnum(value)) -- return 0 -- return value -- --/datum/feedback_variable/proc/get_variable() -- return variable -- --/datum/feedback_variable/proc/set_details(text) -- if (istext(text)) -- details = text -- --/datum/feedback_variable/proc/add_details(text) -- if (istext(text)) -- text = replacetext(text, " ", "_") -- if (!details) -- details = text -- else -- details += " [text]" -- --/datum/feedback_variable/proc/get_details() -- return details -- --/datum/feedback_variable/proc/get_parsed() -- return list(variable,value,details) -- --//sql reporting procs --/proc/sql_poll_population() -- if(!config.sql_enabled) -- return -- if(!GLOB.dbcon.Connect()) -- return -- var/playercount = 0 -- for(var/mob/M in GLOB.player_list) -- if(M.client) -- playercount += 1 -- var/admincount = GLOB.admins.len -- var/DBQuery/query_record_playercount = GLOB.dbcon.NewQuery("INSERT INTO [format_table_name("legacy_population")] (playercount, admincount, time, server_ip, server_port) VALUES ([playercount], [admincount], '[SQLtime()]', INET_ATON('[world.internet_address]'), '[world.port]')") -- query_record_playercount.Execute() -- --/proc/sql_report_death(mob/living/L) -- if(!config.sql_enabled) -- return -- if(!GLOB.dbcon.Connect()) -- return -- if(!L || !L.key || !L.mind) -- return -- var/turf/T = get_turf(L) -- var/area/placeofdeath = get_area(T.loc) -- var/sqlname = sanitizeSQL(L.real_name) -- var/sqlkey = sanitizeSQL(L.ckey) -- var/sqljob = sanitizeSQL(L.mind.assigned_role) -- var/sqlspecial = sanitizeSQL(L.mind.special_role) -- var/sqlpod = sanitizeSQL(placeofdeath.name) -- var/laname -- var/lakey -- if(L.lastattacker && ismob(L.lastattacker)) -- var/mob/LA = L.lastattacker -- laname = sanitizeSQL(LA.real_name) -- lakey = sanitizeSQL(LA.key) -- var/sqlgender = sanitizeSQL(L.gender) -- var/sqlbrute = sanitizeSQL(L.getBruteLoss()) -- var/sqlfire = sanitizeSQL(L.getFireLoss()) -- var/sqlbrain = sanitizeSQL(L.getBrainLoss()) -- var/sqloxy = sanitizeSQL(L.getOxyLoss()) -- var/sqltox = sanitizeSQL(L.getStaminaLoss()) -- var/sqlclone = sanitizeSQL(L.getStaminaLoss()) -- var/sqlstamina = sanitizeSQL(L.getStaminaLoss()) -- var/coord = sanitizeSQL("[L.x], [L.y], [L.z]") -- var/map = sanitizeSQL(SSmapping.config.map_name) -- var/DBQuery/query_report_death = GLOB.dbcon.NewQuery("INSERT INTO [format_table_name("death")] (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss, toxloss, cloneloss, staminaloss, coord, mapname, server_ip, server_port) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[SQLtime()]', '[laname]', '[lakey]', '[sqlgender]', [sqlbrute], [sqlfire], [sqlbrain], [sqloxy], [sqltox], [sqlclone], [sqlstamina], '[coord]', '[map]', INET_ATON('[world.internet_address]'), '[world.port]')") -- query_report_death.Execute() -+SUBSYSTEM_DEF(blackbox) -+ name = "Blackbox" -+ wait = 6000 -+ flags = SS_NO_TICK_CHECK -+ -+ var/list/msg_common = list() -+ var/list/msg_science = list() -+ var/list/msg_command = list() -+ var/list/msg_medical = list() -+ var/list/msg_engineering = list() -+ var/list/msg_security = list() -+ var/list/msg_deathsquad = list() -+ var/list/msg_syndicate = list() -+ var/list/msg_service = list() -+ var/list/msg_cargo = list() -+ var/list/msg_other = list() -+ -+ var/list/feedback = list() //list of datum/feedback_variable -+ -+//poll population -+/datum/controller/subsystem/blackbox/fire() -+ if(!GLOB.dbcon.Connect()) -+ return -+ var/playercount = 0 -+ for(var/mob/M in GLOB.player_list) -+ if(M.client) -+ playercount += 1 -+ var/admincount = GLOB.admins.len -+ var/DBQuery/query_record_playercount = GLOB.dbcon.NewQuery("INSERT INTO [format_table_name("legacy_population")] (playercount, admincount, time, server_ip, server_port) VALUES ([playercount], [admincount], '[SQLtime()]', INET_ATON('[world.internet_address]'), '[world.port]')") -+ query_record_playercount.Execute() -+ -+/datum/controller/subsystem/blackbox/Recover() -+ msg_common = SSblackbox.msg_common -+ msg_science = SSblackbox.msg_science -+ msg_command = SSblackbox.msg_command -+ msg_medical = SSblackbox.msg_medical -+ msg_engineering = SSblackbox.msg_engineering -+ msg_security = SSblackbox.msg_security -+ msg_deathsquad = SSblackbox.msg_deathsquad -+ msg_syndicate = SSblackbox.msg_syndicate -+ msg_service = SSblackbox.msg_service -+ msg_cargo = SSblackbox.msg_cargo -+ msg_other = SSblackbox.msg_other -+ -+ feedback = SSblackbox.feedback -+ -+//no touchie -+/datum/controller/subsystem/blackbox/can_vv_get(var_name) -+ if(var_name == "feedback") -+ return FALSE -+ return ..() -+ -+/datum/controller/subsystem/blackbox/vv_edit_var(var_name, var_value) -+ return FALSE -+ -+/datum/controller/subsystem/blackbox/Shutdown() -+ var/pda_msg_amt = 0 -+ var/rc_msg_amt = 0 -+ -+ for (var/obj/machinery/message_server/MS in GLOB.message_servers) -+ if (MS.pda_msgs.len > pda_msg_amt) -+ pda_msg_amt = MS.pda_msgs.len -+ if (MS.rc_msgs.len > rc_msg_amt) -+ rc_msg_amt = MS.rc_msgs.len -+ -+ set_details("radio_usage","") -+ -+ add_details("radio_usage","COM-[msg_common.len]") -+ add_details("radio_usage","SCI-[msg_science.len]") -+ add_details("radio_usage","HEA-[msg_command.len]") -+ add_details("radio_usage","MED-[msg_medical.len]") -+ add_details("radio_usage","ENG-[msg_engineering.len]") -+ add_details("radio_usage","SEC-[msg_security.len]") -+ add_details("radio_usage","DTH-[msg_deathsquad.len]") -+ add_details("radio_usage","SYN-[msg_syndicate.len]") -+ add_details("radio_usage","SRV-[msg_service.len]") -+ add_details("radio_usage","CAR-[msg_cargo.len]") -+ add_details("radio_usage","OTH-[msg_other.len]") -+ add_details("radio_usage","PDA-[pda_msg_amt]") -+ add_details("radio_usage","RC-[rc_msg_amt]") -+ -+ set_details("round_end","[time2text(world.realtime)]") //This one MUST be the last one that gets set. -+ -+ if (!GLOB.dbcon.Connect()) -+ return -+ -+ var/round_id -+ -+ var/DBQuery/query_feedback_max_id = GLOB.dbcon.NewQuery("SELECT MAX(round_id) AS round_id FROM [format_table_name("feedback")]") -+ if(!query_feedback_max_id.Execute()) -+ return -+ while (query_feedback_max_id.NextRow()) -+ round_id = query_feedback_max_id.item[1] -+ -+ if (!isnum(round_id)) -+ round_id = text2num(round_id) -+ round_id++ -+ -+ var/sqlrowlist = "" -+ -+ for (var/datum/feedback_variable/FV in feedback) -+ if (sqlrowlist != "") -+ sqlrowlist += ", " //a comma (,) at the start of the first row to insert will trigger a SQL error -+ -+ sqlrowlist += "(null, Now(), [round_id], \"[sanitizeSQL(FV.get_variable())]\", [FV.get_value()], \"[sanitizeSQL(FV.get_details())]\")" -+ -+ if (sqlrowlist == "") -+ return -+ -+ var/DBQuery/query_feedback_save = GLOB.dbcon.NewQuery("INSERT DELAYED IGNORE INTO [format_table_name("feedback")] VALUES " + sqlrowlist) -+ query_feedback_save.Execute() -+ -+/datum/controller/subsystem/blackbox/proc/LogBroadcast(blackbox_msg, freq) -+ switch(freq) -+ if(1459) -+ msg_common += blackbox_msg -+ if(1351) -+ msg_science += blackbox_msg -+ if(1353) -+ msg_command += blackbox_msg -+ if(1355) -+ msg_medical += blackbox_msg -+ if(1357) -+ msg_engineering += blackbox_msg -+ if(1359) -+ msg_security += blackbox_msg -+ if(1441) -+ msg_deathsquad += blackbox_msg -+ if(1213) -+ msg_syndicate += blackbox_msg -+ if(1349) -+ msg_service += blackbox_msg -+ if(1347) -+ msg_cargo += blackbox_msg -+ else -+ msg_other += blackbox_msg -+ -+/datum/controller/subsystem/blackbox/proc/find_feedback_datum(variable) -+ for(var/datum/feedback_variable/FV in feedback) -+ if(FV.get_variable() == variable) -+ return FV -+ -+ var/datum/feedback_variable/FV = new(variable) -+ feedback += FV -+ return FV -+ -+/datum/controller/subsystem/blackbox/proc/set_val(variable, value) -+ var/datum/feedback_variable/FV = find_feedback_datum(variable) -+ FV.set_value(value) -+ -+/datum/controller/subsystem/blackbox/proc/inc(variable, value) -+ var/datum/feedback_variable/FV = find_feedback_datum(variable) -+ FV.inc(value) -+ -+/datum/controller/subsystem/blackbox/proc/dec(variable,value) -+ var/datum/feedback_variable/FV = find_feedback_datum(variable) -+ FV.dec(value) -+ -+/datum/controller/subsystem/blackbox/proc/set_details(variable,details) -+ var/datum/feedback_variable/FV = find_feedback_datum(variable) -+ FV.set_details(details) -+ -+/datum/controller/subsystem/blackbox/proc/add_details(variable,details) -+ var/datum/feedback_variable/FV = find_feedback_datum(variable) -+ FV.add_details(details) -+ -+/datum/controller/subsystem/blackbox/proc/ReportDeath(mob/living/L) -+ if(!GLOB.dbcon.Connect()) -+ return -+ if(!L || !L.key || !L.mind) -+ return -+ var/turf/T = get_turf(L) -+ var/area/placeofdeath = get_area(T.loc) -+ var/sqlname = sanitizeSQL(L.real_name) -+ var/sqlkey = sanitizeSQL(L.ckey) -+ var/sqljob = sanitizeSQL(L.mind.assigned_role) -+ var/sqlspecial = sanitizeSQL(L.mind.special_role) -+ var/sqlpod = sanitizeSQL(placeofdeath.name) -+ var/laname -+ var/lakey -+ if(L.lastattacker && ismob(L.lastattacker)) -+ var/mob/LA = L.lastattacker -+ laname = sanitizeSQL(LA.real_name) -+ lakey = sanitizeSQL(LA.key) -+ var/sqlgender = sanitizeSQL(L.gender) -+ var/sqlbrute = sanitizeSQL(L.getBruteLoss()) -+ var/sqlfire = sanitizeSQL(L.getFireLoss()) -+ var/sqlbrain = sanitizeSQL(L.getBrainLoss()) -+ var/sqloxy = sanitizeSQL(L.getOxyLoss()) -+ var/sqltox = sanitizeSQL(L.getStaminaLoss()) -+ var/sqlclone = sanitizeSQL(L.getStaminaLoss()) -+ var/sqlstamina = sanitizeSQL(L.getStaminaLoss()) -+ var/coord = sanitizeSQL("[L.x], [L.y], [L.z]") -+ var/map = sanitizeSQL(SSmapping.config.map_name) -+ var/DBQuery/query_report_death = GLOB.dbcon.NewQuery("INSERT INTO [format_table_name("death")] (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss, toxloss, cloneloss, staminaloss, coord, mapname, server_ip, server_port) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[SQLtime()]', '[laname]', '[lakey]', '[sqlgender]', [sqlbrute], [sqlfire], [sqlbrain], [sqloxy], [sqltox], [sqlclone], [sqlstamina], '[coord]', '[map]', INET_ATON('[world.internet_address]'), '[world.port]')") -+ query_report_death.Execute() -+ -+ -+//feedback variable datum, for storing all kinds of data -+/datum/feedback_variable -+ var/variable -+ var/value -+ var/details -+ -+/datum/feedback_variable/New(param_variable, param_value = 0) -+ variable = param_variable -+ value = param_value -+ -+/datum/feedback_variable/proc/inc(num = 1) -+ if (isnum(value)) -+ value += num -+ else -+ value = text2num(value) -+ if (isnum(value)) -+ value += num -+ else -+ value = num -+ -+/datum/feedback_variable/proc/dec(num = 1) -+ if (isnum(value)) -+ value -= num -+ else -+ value = text2num(value) -+ if (isnum(value)) -+ value -= num -+ else -+ value = -num -+ -+/datum/feedback_variable/proc/set_value(num) -+ if (isnum(num)) -+ value = num -+ -+/datum/feedback_variable/proc/get_value() -+ if (!isnum(value)) -+ return 0 -+ return value -+ -+/datum/feedback_variable/proc/get_variable() -+ return variable -+ -+/datum/feedback_variable/proc/set_details(text) -+ if (istext(text)) -+ details = text -+ -+/datum/feedback_variable/proc/add_details(text) -+ if (istext(text)) -+ text = replacetext(text, " ", "_") -+ if (!details) -+ details = text -+ else -+ details += " [text]" -+ -+/datum/feedback_variable/proc/get_details() -+ return details -+ -+/datum/feedback_variable/proc/get_parsed() -+ return list(variable,value,details) diff --git a/code/controllers/subsystem/server_maint.dm.rej b/code/controllers/subsystem/server_maint.dm.rej deleted file mode 100644 index f759db5330..0000000000 --- a/code/controllers/subsystem/server_maint.dm.rej +++ /dev/null @@ -1,7 +0,0 @@ -diff a/code/controllers/subsystem/server_maint.dm b/code/controllers/subsystem/server_maint.dm (rejected hunks) -@@ -18,5 +18,3 @@ SUBSYSTEM_DEF(server_maint) - to_chat(C, "You have been inactive for more than 10 minutes and have been disconnected.") - qdel(C) - -- if(config.sql_enabled) -- sql_poll_population() diff --git a/code/controllers/subsystem/ticker.dm.rej b/code/controllers/subsystem/ticker.dm.rej deleted file mode 100644 index 1dbd2f038a..0000000000 --- a/code/controllers/subsystem/ticker.dm.rej +++ /dev/null @@ -1,17 +0,0 @@ -diff a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm (rejected hunks) -@@ -667,11 +667,11 @@ SUBSYSTEM_DEF(ticker) - return - INVOKE_ASYNC(SSmapping, /datum/controller/subsystem/mapping/.proc/maprotate) - -+/datum/controller/subsystem/ticker/proc/HasRoundStarted() -+ return current_state >= GAME_STATE_PLAYING - --/world/proc/has_round_started() -- if (SSticker && SSticker.current_state >= GAME_STATE_PLAYING) -- return TRUE -- return FALSE -+/datum/controller/subsystem/ticker/proc/IsRoundInProgress() -+ return current_state == GAME_STATE_PLAYING - - /datum/controller/subsystem/ticker/Recover() - current_state = SSticker.current_state diff --git a/code/game/gamemodes/cult/runes.dm.rej b/code/game/gamemodes/cult/runes.dm.rej deleted file mode 100644 index 696dbe5ddd..0000000000 --- a/code/game/gamemodes/cult/runes.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm (rejected hunks) -@@ -520,7 +520,7 @@ var/list/teleport_runes = list() - - //Rite of Resurrection: Requires the corpse of a cultist and that there have been less revives than the number of people sacrificed - /obj/effect/rune/raise_dead -- cultist_name = "Raise Dead" -+ cultist_name = "Resurrect Cultist" - cultist_desc = "requires the corpse of a cultist placed upon the rune. Provided there have been sufficient sacrifices, they will be revived." - invocation = null //Depends on the name of the user - see below - icon_state = "1" diff --git a/code/game/gamemodes/game_mode.dm.rej b/code/game/gamemodes/game_mode.dm.rej deleted file mode 100644 index 2ee380eecf..0000000000 --- a/code/game/gamemodes/game_mode.dm.rej +++ /dev/null @@ -1,18 +0,0 @@ -diff a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm (rejected hunks) -@@ -81,12 +81,12 @@ - spawn (ROUNDSTART_LOGOUT_REPORT_TIME) - display_roundstart_logout_report() - -- feedback_set_details("round_start","[time2text(world.realtime)]") -+ SSblackbox.set_details("round_start","[time2text(world.realtime)]") - if(SSticker && SSticker.mode) -- feedback_set_details("game_mode","[SSticker.mode]") -+ SSblackbox.set_details("game_mode","[SSticker.mode]") - if(GLOB.revdata.commit) -- feedback_set_details("revision","[GLOB.revdata.commit]") -- feedback_set_details("server_ip","[world.internet_address]:[world.port]") -+ SSblackbox.set_details("revision","[GLOB.revdata.commit]") -+ SSblackbox.set_details("server_ip","[world.internet_address]:[world.port]") - if(report) - spawn (rand(waittime_l, waittime_h)) - send_intercept(0) diff --git a/code/game/machinery/cloning.dm.rej b/code/game/machinery/cloning.dm.rej deleted file mode 100644 index bd2462c1de..0000000000 --- a/code/game/machinery/cloning.dm.rej +++ /dev/null @@ -1,28 +0,0 @@ -diff a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm (rejected hunks) -@@ -343,7 +343,7 @@ - if(mess) //Clean that mess and dump those gibs! - mess = FALSE - for(var/obj/A in contents) -- if(istype(A, /obj/item/organ) || istype(A, /obj/effect/decal/cleanable/blood/gibs)) -+ if(istype(A, /obj/effect/decal/cleanable/blood/gibs)) - A.forceMove(T) - audible_message("You hear a splat.") - icon_state = "pod_0" -@@ -378,10 +378,13 @@ - to_chat(occupant, "Agony blazes across your consciousness as your body is torn apart.
Is this what dying is like? Yes it is.
") - playsound(src.loc, 'sound/machines/warning-buzzer.ogg', 50, 0) - occupant << sound('sound/hallucinations/veryfar_noise.ogg',0,1,50) -- var/obj/item/organ/brain/B = occupant.getorganslot("brain") -- B.Remove(occupant) -- B.forceMove(src) -- occupant.gib(TRUE, TRUE, TRUE) -+ addtimer(CALLBACK(src, .proc/end_malfunction, occupant), 40) -+ -+/obj/machinery/clonepod/proc/end_malfunction(mob/victim) -+ if(!istype(victim)) //Where the hell did they go? -+ return -+ victim.ghostize(FALSE) -+ victim.gib(TRUE, TRUE, TRUE) - - /obj/machinery/clonepod/relaymove(mob/user) - if(user.stat == CONSCIOUS) diff --git a/code/game/machinery/telecomms/broadcasting.dm.rej b/code/game/machinery/telecomms/broadcasting.dm.rej deleted file mode 100644 index 7033970bd3..0000000000 --- a/code/game/machinery/telecomms/broadcasting.dm.rej +++ /dev/null @@ -1,33 +0,0 @@ -diff a/code/game/machinery/telecomms/broadcasting.dm b/code/game/machinery/telecomms/broadcasting.dm (rejected hunks) -@@ -142,30 +142,7 @@ - // --- This following recording is intended for research and feedback in the use of department radio channels --- - - var/blackbox_msg = "[AM] [AM.say_quote(message, spans)]" -- if(istype(GLOB.blackbox)) -- switch(freq) -- if(1459) -- GLOB.blackbox.msg_common += blackbox_msg -- if(1351) -- GLOB.blackbox.msg_science += blackbox_msg -- if(1353) -- GLOB.blackbox.msg_command += blackbox_msg -- if(1355) -- GLOB.blackbox.msg_medical += blackbox_msg -- if(1357) -- GLOB.blackbox.msg_engineering += blackbox_msg -- if(1359) -- GLOB.blackbox.msg_security += blackbox_msg -- if(1441) -- GLOB.blackbox.msg_deathsquad += blackbox_msg -- if(1213) -- GLOB.blackbox.msg_syndicate += blackbox_msg -- if(1349) -- GLOB.blackbox.msg_service += blackbox_msg -- if(1347) -- GLOB.blackbox.msg_cargo += blackbox_msg -- else -- GLOB.blackbox.messages += blackbox_msg -+ SSblackbox.LogBroadcast(blackbox_msg, freq) - - spawn(50) - qdel(virt) diff --git a/code/game/machinery/vending.dm.rej b/code/game/machinery/vending.dm.rej deleted file mode 100644 index a487eb51a1..0000000000 --- a/code/game/machinery/vending.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm (rejected hunks) -@@ -528,7 +528,7 @@ - if(icon_vend) //Show the vending animation if needed - flick(icon_vend,src) - new R.product_path(get_turf(src)) -- feedback_add_details("vending_machine_usage","[R.product_path]|[src.type]") -+ SSblackbox.add_details("vending_machine_usage","[R.product_path]|[src.type]") - vend_ready = 1 - return - diff --git a/code/game/objects/items/weapons/handcuffs.dm.rej b/code/game/objects/items/weapons/handcuffs.dm.rej deleted file mode 100644 index cfc1658267..0000000000 --- a/code/game/objects/items/weapons/handcuffs.dm.rej +++ /dev/null @@ -1,31 +0,0 @@ -diff a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm (rejected hunks) -@@ -46,9 +46,9 @@ - apply_cuffs(C,user) - to_chat(user, "You handcuff [C].") - if(istype(src, /obj/item/weapon/restraints/handcuffs/cable)) -- feedback_add_details("handcuffs","C") -+ SSblackbox.add_details("handcuffs","C") - else -- feedback_add_details("handcuffs","H") -+ SSblackbox.add_details("handcuffs","H") - - add_logs(user, C, "handcuffed") - else -@@ -278,7 +278,7 @@ - C.legcuffed = src - src.loc = C - C.update_inv_legcuffed() -- feedback_add_details("handcuffs","B") //Yes, I know they're legcuffs. Don't change this, no need for an extra variable. The "B" is used to tell them apart. -+ SSblackbox.add_details("handcuffs","B") //Yes, I know they're legcuffs. Don't change this, no need for an extra variable. The "B" is used to tell them apart. - else if(isanimal(L)) - var/mob/living/simple_animal/SA = L - if(SA.mob_size > MOB_SIZE_TINY) -@@ -341,7 +341,7 @@ - C.legcuffed = src - src.loc = C - C.update_inv_legcuffed() -- feedback_add_details("handcuffs","B") -+ SSblackbox.add_details("handcuffs","B") - to_chat(C, "\The [src] ensnares you!") - C.Weaken(weaken) - diff --git a/code/game/turfs/simulated/minerals.dm.rej b/code/game/turfs/simulated/minerals.dm.rej deleted file mode 100644 index 2ac5181cc8..0000000000 --- a/code/game/turfs/simulated/minerals.dm.rej +++ /dev/null @@ -1,19 +0,0 @@ -diff a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm (rejected hunks) -@@ -64,7 +64,7 @@ - if(ismineralturf(src)) - to_chat(user, "You finish cutting into the rock.") - gets_drilled(user) -- feedback_add_details("pick_used_mining","[P.type]") -+ SSblackbox.add_details("pick_used_mining","[P.type]") - else - return attack_hand(user) - return -@@ -74,7 +74,7 @@ - var/i - for (i=0;i[key_name_admin(usr)] made all areas powered
") - power_restore() -@@ -326,8 +326,8 @@ - if("unpower") - if(!check_rights(R_FUN)) - return -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","UP") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","UP") - log_admin("[key_name(usr)] made all areas unpowered", 1) - message_admins("[key_name_admin(usr)] made all areas unpowered") - power_failure() -@@ -335,8 +335,8 @@ - if("quickpower") - if(!check_rights(R_FUN)) - return -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","QP") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","QP") - log_admin("[key_name(usr)] made all SMESs powered", 1) - message_admins("[key_name_admin(usr)] made all SMESs powered") - power_restore_quick() -@@ -350,8 +350,8 @@ - var/objective = copytext(sanitize(input("Enter an objective")),1,MAX_MESSAGE_LEN) - if(!objective) - return -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","TA([objective])") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","TA([objective])") - for(var/mob/living/carbon/human/H in GLOB.player_list) - if(H.stat == 2 || !H.client || !H.mind) continue - if(is_special_character(H)) continue -@@ -383,8 +383,8 @@ - if("changebombcap") - if(!check_rights(R_FUN)) - return -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","BC") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","BC") - - var/newBombCap = input(usr,"What would you like the new bomb cap to be. (entered as the light damage range (the 3rd number in common (1,2,3) notation)) Must be above 4)", "New Bomb Cap", GLOB.MAX_EX_LIGHT_RANGE) as num|null - if (newBombCap < 4) -@@ -404,16 +404,16 @@ - if("lightsout") - if(!check_rights(R_FUN)) - return -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","LO") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","LO") - message_admins("[key_name_admin(usr)] has broke a lot of lights") - E = new /datum/round_event/electrical_storm{lightsoutAmount = 2}() - - if("blackout") - if(!check_rights(R_FUN)) - return -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","BO") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","BO") - message_admins("[key_name_admin(usr)] broke all lights") - for(var/obj/machinery/light/L in GLOB.machines) - L.break_light_tube() -@@ -429,8 +429,8 @@ - - if(animetype == "Cancel" || droptype == "Cancel") - return -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","CC") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","CC") - message_admins("[key_name_admin(usr)] made everything kawaii.") - for(var/mob/living/carbon/human/H in GLOB.mob_list) - H << sound('sound/AI/animes.ogg') -@@ -460,8 +460,8 @@ - if("whiteout") - if(!check_rights(R_FUN)) - return -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","WO") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","WO") - message_admins("[key_name_admin(usr)] fixed all lights") - for(var/obj/machinery/light/L in GLOB.machines) - L.fix() -@@ -472,8 +472,8 @@ - if("virus") - if(!check_rights(R_FUN)) - return -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","V") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","V") - switch(alert("Do you want this to be a random disease or do you have something in mind?",,"Make Your Own","Random","Choose")) - if("Make Your Own") - AdminCreateVirus(usr.client) -@@ -488,8 +488,8 @@ - if("retardify") - if(!check_rights(R_FUN)) - return -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","RET") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","RET") - for(var/mob/living/carbon/human/H in GLOB.player_list) - to_chat(H, "You suddenly feel stupid.") - H.setBrainLoss(60) -@@ -498,8 +498,8 @@ - if("eagles")//SCRAW - if(!check_rights(R_FUN)) - return -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","EgL") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","EgL") - for(var/obj/machinery/door/airlock/W in GLOB.machines) - if(W.z == ZLEVEL_STATION && !istype(get_area(W), /area/bridge) && !istype(get_area(W), /area/crew_quarters) && !istype(get_area(W), /area/security/prison)) - W.req_access = list() -@@ -509,8 +509,8 @@ - if("guns") - if(!check_rights(R_FUN)) - return -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","SG") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","SG") - var/survivor_probability = 0 - switch(alert("Do you want this to create survivors antagonists?",,"No Antags","Some Antags","All Antags!")) - if("Some Antags") -@@ -523,8 +523,8 @@ - if("magic") - if(!check_rights(R_FUN)) - return -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","SM") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","SM") - var/survivor_probability = 0 - switch(alert("Do you want this to create survivors antagonists?",,"No Antags","Some Antags","All Antags!")) - if("Some Antags") -@@ -540,15 +540,15 @@ - if(!SSevents.wizardmode) - if(alert("Do you want to toggle summon events on?",,"Yes","No") == "Yes") - summonevents() -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","SE") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","SE") - - else - switch(alert("What would you like to do?",,"Intensify Summon Events","Turn Off Summon Events","Nothing")) - if("Intensify Summon Events") - summonevents() -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","SE") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","SE") - if("Turn Off Summon Events") - SSevents.toggleWizardmode() - SSevents.resetFrequency() -@@ -556,8 +556,8 @@ - if("dorf") - if(!check_rights(R_FUN)) - return -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","DF") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","DF") - for(var/mob/living/carbon/human/B in GLOB.mob_list) - B.facial_hair_style = "Dward Beard" - B.update_hair() -@@ -566,8 +566,8 @@ - if("onlyone") - if(!check_rights(R_FUN)) - return -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","OO") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","OO") - usr.client.only_one() - send_to_playing_players('sound/misc/highlander.ogg') - // message_admins("[key_name_admin(usr)] has triggered a battle to the death (only one)") -@@ -575,16 +575,16 @@ - if("delayed_onlyone") - if(!check_rights(R_FUN)) - return -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","OO") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","OO") - usr.client.only_one_delayed() - send_to_playing_players('sound/misc/highlander_delayed.ogg') - - if("onlyme") - if(!check_rights(R_FUN)) - return -- feedback_inc("admin_secrets_fun_used",1) -- feedback_add_details("admin_secrets_fun_used","OM") -+ SSblackbox.inc("admin_secrets_fun_used",1) -+ SSblackbox.add_details("admin_secrets_fun_used","OM") - only_me() - - if("maint_access_brig") diff --git a/code/modules/admin/topic.dm.rej b/code/modules/admin/topic.dm.rej deleted file mode 100644 index 5cbae46c98..0000000000 --- a/code/modules/admin/topic.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm (rejected hunks) -@@ -1175,7 +1175,7 @@ - ban_unban_log_save("[key_name(usr)] has permabanned [key_name(M)]. - Reason: [reason] - This is a permanent ban.") - log_admin_private("[key_name(usr)] has banned [key_name_admin(M)].\nReason: [reason]\nThis is a permanent ban.") - message_admins("[key_name_admin(usr)] has banned [key_name_admin(M)].\nReason: [reason]\nThis is a permanent ban.") -- feedback_inc("ban_perma",1) -+ SSblackbox.inc("ban_perma",1) - qdel(M.client) - if("Cancel") - return diff --git a/code/modules/admin/verbs/adminhelp.dm.rej b/code/modules/admin/verbs/adminhelp.dm.rej deleted file mode 100644 index 047041a5fc..0000000000 --- a/code/modules/admin/verbs/adminhelp.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm (rejected hunks) -@@ -127,7 +127,7 @@ - log_admin_private("HELP: [key_name(src)]: [original_msg] - heard by [admin_number_present] non-AFK admins who have +BAN.") - if(admin_number_present <= 0) - to_chat(src, "No active admins are online, your adminhelp was sent to the admin irc.") -- feedback_add_details("admin_verb","Adminhelp") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -+ SSblackbox.add_details("admin_verb","Adminhelp") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - return - - /proc/get_admin_counts(requiredflags = R_BAN) diff --git a/code/modules/admin/verbs/adminjump.dm.rej b/code/modules/admin/verbs/adminjump.dm.rej deleted file mode 100644 index d5eeea0944..0000000000 --- a/code/modules/admin/verbs/adminjump.dm.rej +++ /dev/null @@ -1,16 +0,0 @@ -diff a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm (rejected hunks) -@@ -107,7 +107,7 @@ - log_admin("[key_name(usr)] teleported [key_name(M)]") - message_admins("[key_name_admin(usr)] teleported [key_name_admin(M)]") - M.forceMove(get_turf(usr)) -- feedback_add_details("admin_verb","Get Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -+ SSblackbox.add_details("admin_verb","Get Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - /client/proc/Getkey() - set category = "Admin" -@@ -149,4 +149,4 @@ - message_admins("[key_name_admin(usr)] teleported [key_name_admin(M)] to [A]") - else - to_chat(src, "Failed to move mob to a valid location.") -- feedback_add_details("admin_verb","Send Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -+ SSblackbox.add_details("admin_verb","Send Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/debug.dm.rej b/code/modules/admin/verbs/debug.dm.rej deleted file mode 100644 index 5849ad1f2c..0000000000 --- a/code/modules/admin/verbs/debug.dm.rej +++ /dev/null @@ -1,28 +0,0 @@ -diff a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm (rejected hunks) -@@ -79,7 +79,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that - . = get_callproc_returnval(returnval, procname) - if(.) - to_chat(usr, .) -- feedback_add_details("admin_verb","Advanced ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -+ SSblackbox.add_details("admin_verb","Advanced ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - /client/proc/callproc_datum(datum/A as null|area|mob|obj|turf) - set category = "Debug" -@@ -104,7 +104,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that - return - log_admin("[key_name(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") - message_admins("[key_name(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") -- feedback_add_details("admin_verb","Atom ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -+ SSblackbox.add_details("admin_verb","Atom ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - var/returnval = call(A,procname)(arglist(lst)) // Pass the lst as an argument list to the proc - . = get_callproc_returnval(returnval,procname) -@@ -758,7 +758,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that - GLOB.medals_enabled = !GLOB.medals_enabled - - message_admins("[key_name_admin(src)] [GLOB.medals_enabled ? "disabled" : "enabled"] the medal hub lockout.") -- feedback_add_details("admin_verb","Toggle Medal Disable") // If... -+ SSblackbox.add_details("admin_verb","Toggle Medal Disable") // If... - log_admin("[key_name(src)] [GLOB.medals_enabled ? "disabled" : "enabled"] the medal hub lockout.") - - /client/proc/view_runtimes() diff --git a/code/modules/admin/verbs/panicbunker.dm.rej b/code/modules/admin/verbs/panicbunker.dm.rej deleted file mode 100644 index 5a4748cc3a..0000000000 --- a/code/modules/admin/verbs/panicbunker.dm.rej +++ /dev/null @@ -1,8 +0,0 @@ -diff a/code/modules/admin/verbs/panicbunker.dm b/code/modules/admin/verbs/panicbunker.dm (rejected hunks) -@@ -11,5 +11,5 @@ - message_admins("[key_name_admin(usr)] has toggled the Panic Bunker, it is now [(config.panic_bunker?"enabled":"disabled")].") - if (config.panic_bunker && (!GLOB.dbcon || !GLOB.dbcon.IsConnected())) - message_admins("The Database is not connected! Panic bunker will not work until the connection is reestablished.") -- feedback_add_details("admin_toggle","Toggle Panic Bunker|[config.panic_bunker]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -+ SSblackbox.add_details("admin_toggle","Toggle Panic Bunker|[config.panic_bunker]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - diff --git a/code/modules/admin/verbs/randomverbs.dm.rej b/code/modules/admin/verbs/randomverbs.dm.rej deleted file mode 100644 index 5622cb5975..0000000000 --- a/code/modules/admin/verbs/randomverbs.dm.rej +++ /dev/null @@ -1,46 +0,0 @@ -diff a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm (rejected hunks) -@@ -16,7 +16,7 @@ - - log_admin("[key_name(usr)] made [key_name(M)] drop everything!") - message_admins("[key_name_admin(usr)] made [key_name_admin(M)] drop everything!") -- feedback_add_details("admin_verb","Drop Everything") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -+ SSblackbox.add_details("admin_verb","Drop Everything") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - - /client/proc/cmd_admin_subtle_message(mob/M in GLOB.mob_list) -@@ -42,7 +42,7 @@ - - log_admin("SubtlePM: [key_name(usr)] -> [key_name(M)] : [msg]") - message_admins(" SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] : [msg]") -- feedback_add_details("admin_verb","Subtle Message") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -+ SSblackbox.add_details("admin_verb","Subtle Message") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - /client/proc/cmd_admin_world_narrate() - set category = "Special Verbs" -@@ -83,7 +83,7 @@ - to_chat(M, msg) - log_admin("DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]") - message_admins(" DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]
") -- feedback_add_details("admin_verb","Direct Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -+ SSblackbox.add_details("admin_verb","Direct Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - /client/proc/cmd_admin_local_narrate(atom/A) - set category = "Special Verbs" -@@ -118,7 +118,7 @@ - - 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"]") -- feedback_add_details("admin_toggle","Godmode|[M.status_flags & GODMODE]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -+ SSblackbox.add_details("admin_toggle","Godmode|[M.status_flags & GODMODE]") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - - /proc/cmd_admin_mute(whom, mute_type, automute = 0) -@@ -448,7 +448,7 @@ Traitors and the like can also be revived with the previous role mostly intact. - - log_admin("[key_name(usr)] healed / revived [key_name(M)]") - message_admins("Admin [key_name_admin(usr)] healed / revived [key_name_admin(M)]!") -- feedback_add_details("admin_verb","Rejuvinate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -+ SSblackbox.add_details("admin_verb","Rejuvinate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - /client/proc/cmd_admin_create_centcom_report() - set category = "Special Verbs" diff --git a/code/modules/admin/verbs/reestablish_db_connection.dm.rej b/code/modules/admin/verbs/reestablish_db_connection.dm.rej deleted file mode 100644 index b0aca5351d..0000000000 --- a/code/modules/admin/verbs/reestablish_db_connection.dm.rej +++ /dev/null @@ -1,15 +0,0 @@ -diff a/code/modules/admin/verbs/reestablish_db_connection.dm b/code/modules/admin/verbs/reestablish_db_connection.dm (rejected hunks) -@@ -17,11 +17,11 @@ - GLOB.dbcon.Disconnect() - log_admin("[key_name(usr)] has forced the database to disconnect") - message_admins("[key_name_admin(usr)] has forced the database to disconnect!") -- feedback_add_details("admin_verb","Force Reestablished Database Connection") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -+ SSblackbox.add_details("admin_verb","Force Reestablished Database Connection") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - log_admin("[key_name(usr)] is attempting to re-established the DB Connection") - message_admins("[key_name_admin(usr)] is attempting to re-established the DB Connection") -- feedback_add_details("admin_verb","Reestablished Database Connection") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -+ SSblackbox.add_details("admin_verb","Reestablished Database Connection") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - GLOB.dbcon.failed_connections = 0 - if(!GLOB.dbcon.Connect()) diff --git a/code/modules/clothing/clothing.dm.rej b/code/modules/clothing/clothing.dm.rej deleted file mode 100644 index 3deb315f37..0000000000 --- a/code/modules/clothing/clothing.dm.rej +++ /dev/null @@ -1,29 +0,0 @@ -diff a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm (rejected hunks) -@@ -545,16 +545,26 @@ BLIND // can't see anything - tI.color = hastie.color - . += tI - -+/obj/item/clothing/under/attackby(obj/item/W, mob/user, params) -+ if((has_sensor == BROKEN_SENSORS) && istype(W, /obj/item/stack/cable_coil)) -+ var/obj/item/stack/cable_coil/C = W -+ C.use(1) -+ has_sensor = HAS_SENSORS -+ to_chat(user,"You repair the suit sensors on [src] with [C].") -+ return 1 -+ - /obj/item/clothing/under/update_clothes_damaged_state(damaging = TRUE) - ..() - if(ismob(loc)) - var/mob/M = loc - M.update_inv_w_uniform() -+ if(has_sensor > NO_SENSORS) -+ has_sensor = BROKEN_SENSORS - - /obj/item/clothing/under/New() - if(random_sensor) - //make the sensor mode favor higher levels, except coords. -- sensor_mode = pick(0, 1, 1, 2, 2, 2, 3, 3) -+ sensor_mode = pick(SENSOR_OFF, SENSOR_LIVING, SENSOR_LIVING, SENSOR_VITALS, SENSOR_VITALS, SENSOR_VITALS, SENSOR_COORDS, SENSOR_COORDS) - adjusted = NORMAL_STYLE - ..() - diff --git a/code/modules/clothing/suits/armor.dm.rej b/code/modules/clothing/suits/armor.dm.rej deleted file mode 100644 index 5996d94b57..0000000000 --- a/code/modules/clothing/suits/armor.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm (rejected hunks) -@@ -140,7 +140,7 @@ - return 1 - - /obj/item/clothing/suit/armor/vest/det_suit -- name = "armor" -+ name = "detective's armor vest" - desc = "An armored vest with a detective's badge on it." - icon_state = "detective-armor" - allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic) diff --git a/code/modules/events/_event.dm.rej b/code/modules/events/_event.dm.rej deleted file mode 100644 index fefa119632..0000000000 --- a/code/modules/events/_event.dm.rej +++ /dev/null @@ -1,17 +0,0 @@ -diff a/code/modules/events/_event.dm b/code/modules/events/_event.dm (rejected hunks) -@@ -78,13 +78,13 @@ - triggering = FALSE - message_admins("[key_name_admin(usr)] cancelled event [name].") - log_admin_private("[key_name(usr)] cancelled event [name].") -- feedback_add_details("admin_verb","Cancel Event: [typepath]") -+ SSblackbox.add_details("admin_verb","Cancel Event: [typepath]") - - /datum/round_event_control/proc/runEvent(random) - var/datum/round_event/E = new typepath() - E.current_players = get_active_player_count(alive_check = 1, afk_check = 1, human_check = 1) - E.control = src -- feedback_add_details("event_ran","[E]") -+ SSblackbox.add_details("event_ran","[E]") - occurrences++ - - testing("[time2text(world.time, "hh:mm:ss")] [E.type]") diff --git a/code/modules/mining/equipment.dm.rej b/code/modules/mining/equipment.dm.rej deleted file mode 100644 index b8c7edb1c9..0000000000 --- a/code/modules/mining/equipment.dm.rej +++ /dev/null @@ -1,26 +0,0 @@ -diff a/code/modules/mining/equipment.dm b/code/modules/mining/equipment.dm (rejected hunks) -@@ -68,7 +68,7 @@ - - /obj/item/device/wormhole_jaunter/attack_self(mob/user) - user.visible_message("[user.name] activates the [src.name]!") -- feedback_add_details("jaunter", "U") // user activated -+ SSblackbox.add_details("jaunter", "U") // user activated - activate(user) - - /obj/item/device/wormhole_jaunter/proc/turf_check(mob/user) -@@ -124,13 +124,13 @@ - - if(triggered) - usr.visible_message("The [src] overloads and activates!") -- feedback_add_details("jaunter","E") // EMP accidental activation -+ SSblackbox.add_details("jaunter","E") // EMP accidental activation - activate(usr) - - /obj/item/device/wormhole_jaunter/proc/chasm_react(mob/user) - if(user.get_item_by_slot(slot_belt) == src) - to_chat(user, "Your [src] activates, saving you from the chasm!
") -- feedback_add_details("jaunter","C") // chasm automatic activation -+ SSblackbox.add_details("jaunter","C") // chasm automatic activation - activate(user) - else - to_chat(user, "The [src] is not attached to your belt, preventing it from saving you from the chasm. RIP.
") diff --git a/code/modules/mining/lavaland/necropolis_chests.dm.rej b/code/modules/mining/lavaland/necropolis_chests.dm.rej deleted file mode 100644 index 60981a7456..0000000000 --- a/code/modules/mining/lavaland/necropolis_chests.dm.rej +++ /dev/null @@ -1,28 +0,0 @@ -diff a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm (rejected hunks) -@@ -87,7 +87,7 @@ - user.sight |= SEE_MOBS - icon_state = "lantern" - wisp.orbit(user, 20) -- feedback_add_details("wisp_lantern","F") // freed -+ SSblackbox.add_details("wisp_lantern","F") // freed - - else - to_chat(user, "You return the wisp to the lantern.") -@@ -102,7 +102,7 @@ - wisp.stop_orbit() - wisp.loc = src - icon_state = "lantern-blue" -- feedback_add_details("wisp_lantern","R") // returned -+ SSblackbox.add_details("wisp_lantern","R") // returned - - /obj/item/device/wisp_lantern/Initialize() - ..() -@@ -229,7 +229,7 @@ - - /obj/item/device/immortality_talisman/attack_self(mob/user) - if(cooldown < world.time) -- feedback_add_details("immortality_talisman","U") // usage -+ SSblackbox.add_details("immortality_talisman","U") // usage - cooldown = world.time + 600 - user.visible_message("[user] vanishes from reality, leaving a a hole in [user.p_their()] place!") - var/obj/effect/immortality_talisman/Z = new(get_turf(src.loc)) diff --git a/code/modules/mob/living/simple_animal/constructs.dm.rej b/code/modules/mob/living/simple_animal/constructs.dm.rej deleted file mode 100644 index d200533753..0000000000 --- a/code/modules/mob/living/simple_animal/constructs.dm.rej +++ /dev/null @@ -1,9 +0,0 @@ -diff a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm (rejected hunks) -@@ -35,7 +35,6 @@ - - /mob/living/simple_animal/hostile/construct/Initialize() - . = ..() -- updateglow() - update_health_hud() - for(var/spell in construct_spells) - AddSpell(new spell(null)) diff --git a/code/modules/mob/logout.dm.rej b/code/modules/mob/logout.dm.rej deleted file mode 100644 index 809131d9f4..0000000000 --- a/code/modules/mob/logout.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/mob/logout.dm b/code/modules/mob/logout.dm (rejected hunks) -@@ -3,7 +3,7 @@ - unset_machine() - GLOB.player_list -= src - if(GLOB.admin_datums[src.ckey]) -- if (SSticker && SSticker.current_state == GAME_STATE_PLAYING) //Only report this stuff if we are currently playing. -+ if (SSticker && SSticker.IsRoundInProgress()) //Only report this stuff if we are currently playing. - var/admins_number = GLOB.admins.len - if(admins_number == 0) //Apparently the admin logging out is no longer an admin at this point, so we have to check this towards 0 and not towards 1. Awell. - var/cheesy_message = pick( list( \ diff --git a/code/modules/power/singularity/emitter.dm.rej b/code/modules/power/singularity/emitter.dm.rej deleted file mode 100644 index ea82e4cb0c..0000000000 --- a/code/modules/power/singularity/emitter.dm.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm (rejected hunks) -@@ -88,7 +88,7 @@ - connect_to_network() - - /obj/machinery/power/emitter/Destroy() -- if(SSticker && SSticker.current_state == GAME_STATE_PLAYING) -+ if(SSticker && SSticker.IsRoundInProgress()) - message_admins("Emitter deleted at ([x],[y],[z] - JMP)",0,1) - log_game("Emitter deleted at ([x],[y],[z])") - investigate_log("deleted at ([x],[y],[z]) at [get_area(src)]","singulo") diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm.rej b/code/modules/reagents/chemistry/recipes/slime_extracts.dm.rej deleted file mode 100644 index 7a34c24c52..0000000000 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm.rej +++ /dev/null @@ -1,442 +0,0 @@ -diff a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm (rejected hunks) -@@ -19,7 +19,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimespawn/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/mob/living/simple_animal/slime/S - S = new(get_turf(holder.my_atom), "grey") - S.visible_message("Infused with plasma, the \ -@@ -36,7 +36,7 @@ - required_container = /obj/item/slime_extract/grey - - /datum/chemical_reaction/slime/slimeinaprov/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - ..() - - /datum/chemical_reaction/slime/slimemonkey -@@ -47,7 +47,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimemonkey/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - for(var/i = 1, i <= 3, i++) - var /obj/item/weapon/reagent_containers/food/snacks/monkeycube/M = new /obj/item/weapon/reagent_containers/food/snacks/monkeycube - M.loc = get_turf(holder.my_atom) -@@ -63,7 +63,7 @@ - required_container = /obj/item/slime_extract/green - - /datum/chemical_reaction/slime/slimemutate/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - ..() - - //Mutated Green -@@ -77,7 +77,7 @@ - mix_message = "The mixture rapidly expands and contracts, its appearance shifting into a sickening green." - - /datum/chemical_reaction/slime/slimemutate_unstable/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - ..() - - //Metal -@@ -89,7 +89,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimemetal/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/turf/location = get_turf(holder.my_atom) - new /obj/item/stack/sheet/plasteel (location, 5) - new /obj/item/stack/sheet/metal (location, 15) -@@ -103,7 +103,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimeglass/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/turf/location = get_turf(holder.my_atom) - new /obj/item/stack/sheet/rglass (location, 5) - new /obj/item/stack/sheet/glass (location, 15) -@@ -118,7 +118,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimecrit/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/turf/T = get_turf(holder.my_atom) - T.visible_message("The slime extract begins to vibrate violently !") - addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 5, "Gold Slime"), 50) -@@ -134,7 +134,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimecritlesser/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/turf/T = get_turf(holder.my_atom) - T.visible_message("The slime extract begins to vibrate violently !") - addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 3, "Lesser Gold Slime", "neutral"), 50) -@@ -150,7 +150,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimecritfriendly/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/turf/T = get_turf(holder.my_atom) - T.visible_message("The slime extract begins to vibrate adorably !") - addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 1, "Friendly Gold Slime", "neutral"), 50) -@@ -168,7 +168,7 @@ - - /datum/chemical_reaction/slime/slimebork/on_reaction(datum/reagents/holder) - -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/list/blocked = list(/obj/item/weapon/reagent_containers/food/snacks, - /obj/item/weapon/reagent_containers/food/snacks/store/bread, - /obj/item/weapon/reagent_containers/food/snacks/breadslice, -@@ -216,7 +216,7 @@ - - /datum/chemical_reaction/slime/slimebork2/on_reaction(datum/reagents/holder) - -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/list/borks = subtypesof(/obj/item/weapon/reagent_containers/food/drinks) - // BORK BORK BORK - -@@ -246,7 +246,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimefrost/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - ..() - - -@@ -258,7 +258,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimestabilizer/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/obj/item/slimepotion/stabilizer/P = new /obj/item/slimepotion/stabilizer - P.loc = get_turf(holder.my_atom) - ..() -@@ -273,7 +273,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimefoam/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - ..() - - -@@ -286,7 +286,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimefreeze/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/turf/T = get_turf(holder.my_atom) - T.visible_message("The slime extract begins to vibrate adorably!") - addtimer(CALLBACK(src, .proc/freeze, holder), 50) -@@ -310,7 +310,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimefireproof/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/obj/item/slimepotion/fireproof/P = new /obj/item/slimepotion/fireproof - P.loc = get_turf(holder.my_atom) - ..() -@@ -325,7 +325,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimecasp/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - ..() - - /datum/chemical_reaction/slime/slimefire -@@ -336,7 +336,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimefire/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/turf/TU = get_turf(holder.my_atom) - TU.visible_message("The slime extract begins to vibrate adorably!") - addtimer(CALLBACK(src, .proc/slime_burn, holder), 50) -@@ -360,7 +360,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimesmoke/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - ..() - - //Yellow -@@ -373,7 +373,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimeoverload/on_reaction(datum/reagents/holder, created_volume) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - empulse(get_turf(holder.my_atom), 3, 7) - ..() - -@@ -386,7 +386,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimecell/on_reaction(datum/reagents/holder, created_volume) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/obj/item/weapon/stock_parts/cell/high/slime/P = new /obj/item/weapon/stock_parts/cell/high/slime - P.loc = get_turf(holder.my_atom) - ..() -@@ -399,7 +399,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimeglow/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/turf/T = get_turf(holder.my_atom) - T.visible_message("The slime begins to emit a soft light. Squeezing it will cause it to grow brightly.") - var/obj/item/device/flashlight/slime/F = new /obj/item/device/flashlight/slime -@@ -416,7 +416,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimepsteroid/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/obj/item/slimepotion/steroid/P = new /obj/item/slimepotion/steroid - P.loc = get_turf(holder.my_atom) - ..() -@@ -430,7 +430,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimejam/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - ..() - - -@@ -443,7 +443,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimeplasma/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/turf/location = get_turf(holder.my_atom) - new /obj/item/stack/sheet/mineral/plasma (location, 3) - ..() -@@ -458,7 +458,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimemutator/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/obj/item/slimepotion/mutator/P = new /obj/item/slimepotion/mutator - P.loc = get_turf(holder.my_atom) - ..() -@@ -471,7 +471,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimebloodlust/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - for(var/mob/living/simple_animal/slime/slime in viewers(get_turf(holder.my_atom), null)) - slime.rabid = 1 - slime.visible_message("The [slime] is driven into a frenzy!") -@@ -486,7 +486,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimespeed/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/obj/item/slimepotion/speed/P = new /obj/item/slimepotion/speed - P.loc = get_turf(holder.my_atom) - ..() -@@ -501,7 +501,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/docility/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/obj/item/slimepotion/docility/P = new /obj/item/slimepotion/docility - P.loc = get_turf(holder.my_atom) - ..() -@@ -514,7 +514,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/gender/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/obj/item/slimepotion/genderchange/G = new /obj/item/slimepotion/genderchange - G.loc = get_turf(holder.my_atom) - ..() -@@ -529,7 +529,7 @@ - required_container = /obj/item/slime_extract/black - - /datum/chemical_reaction/slime/slimemutate2/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - ..() - - //Oil -@@ -541,7 +541,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimeexplosion/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/turf/T = get_turf(holder.my_atom) - var/lastkey = holder.my_atom.fingerprintslast - var/touch_msg = "N/A" -@@ -570,7 +570,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimecornoil/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - ..() - - //Light Pink -@@ -582,7 +582,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimepotion2/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/obj/item/slimepotion/sentience/P = new /obj/item/slimepotion/sentience - P.loc = get_turf(holder.my_atom) - ..() -@@ -596,7 +596,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimegolem/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/obj/effect/golemrune/Z = new /obj/effect/golemrune - Z.loc = get_turf(holder.my_atom) - notify_ghosts("Golem rune created in [get_area(Z)].", 'sound/effects/ghost2.ogg', source = Z) -@@ -610,7 +610,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimegolem2/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/obj/item/golem_shell/artificial/Z = new /obj/item/golem_shell/artificial - Z.loc = get_turf(holder.my_atom) - ..() -@@ -624,7 +624,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimefloor2/on_reaction(datum/reagents/holder, created_volume) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/obj/item/stack/tile/bluespace/P = new /obj/item/stack/tile/bluespace - P.amount = 25 - P.loc = get_turf(holder.my_atom) -@@ -639,7 +639,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimecrystal/on_reaction(datum/reagents/holder, created_volume) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - if(holder.my_atom) - var/obj/item/weapon/ore/bluespace_crystal/BC = new(get_turf(holder.my_atom)) - BC.visible_message("The [BC.name] appears out of thin air!") -@@ -654,7 +654,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimepsteroid2/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/obj/item/slimepotion/enhancer/P = new /obj/item/slimepotion/enhancer - P.loc = get_turf(holder.my_atom) - ..() -@@ -668,7 +668,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slime_territory/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/obj/item/areaeditor/blueprints/slime/P = new /obj/item/areaeditor/blueprints/slime - P.loc = get_turf(holder.my_atom) - ..() -@@ -682,7 +682,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimestop/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/mob/mob = get_mob_by_key(holder.my_atom.fingerprintslast) - var/obj/effect/timestop/T = new /obj/effect/timestop - T.loc = get_turf(holder.my_atom) -@@ -699,7 +699,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimecamera/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/obj/item/device/camera/P = new /obj/item/device/camera - P.loc = get_turf(holder.my_atom) - var/obj/item/device/camera_film/Z = new /obj/item/device/camera_film -@@ -714,7 +714,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimefloor/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/obj/item/stack/tile/sepia/P = new /obj/item/stack/tile/sepia - P.amount = 25 - P.loc = get_turf(holder.my_atom) -@@ -732,7 +732,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimepaint/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/list/paints = subtypesof(/obj/item/weapon/paint) - var/chosen = pick(paints) - var/obj/P = new chosen -@@ -749,7 +749,7 @@ - required_other = 1 - - /datum/chemical_reaction/slime/slimecrayon/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/list/crayons = difflist(subtypesof(/obj/item/toy/crayon),typesof(/obj/item/toy/crayon/spraycan)) - var/chosen = pick(crayons) - var/obj/P = new chosen -@@ -766,7 +766,7 @@ - required_container = /obj/item/slime_extract/rainbow - - /datum/chemical_reaction/slime/slimeRNG/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/mob/living/simple_animal/slime/random/S - S = new(get_turf(holder.my_atom)) - S.visible_message("Infused with plasma, the \ -@@ -782,7 +782,7 @@ - required_container = /obj/item/slime_extract/rainbow - - /datum/chemical_reaction/slime/slime_transfer/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - var/obj/item/slimepotion/transference/P = new /obj/item/slimepotion/transference - P.loc = get_turf(holder.my_atom) - ..() -@@ -795,7 +795,7 @@ - required_container = /obj/item/slime_extract/rainbow - - /datum/chemical_reaction/slime/flight_potion/on_reaction(datum/reagents/holder) -- feedback_add_details("slime_cores_used","[type]") -+ SSblackbox.add_details("slime_cores_used","[type]") - new/obj/item/weapon/reagent_containers/glass/bottle/potion/flight(get_turf(holder.my_atom)) - ..() - diff --git a/code/modules/uplink/uplink_item.dm.rej b/code/modules/uplink/uplink_item.dm.rej deleted file mode 100644 index 7709867051..0000000000 --- a/code/modules/uplink/uplink_item.dm.rej +++ /dev/null @@ -1,17 +0,0 @@ -diff a/code/modules/uplink/uplink_item.dm b/code/modules/uplink/uplink_item.dm (rejected hunks) -@@ -88,7 +88,7 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. - - /datum/uplink_item/proc/spawn_item(turf/loc, obj/item/device/uplink/U) - if(item) -- feedback_add_details("traitor_uplink_items_bought", "[item]") -+ SSblackbox.add_details("traitor_uplink_items_bought", "[item]") - return new item(loc) - - /datum/uplink_item/proc/buy(mob/user, obj/item/device/uplink/U) -@@ -1351,5 +1351,5 @@ GLOBAL_LIST_EMPTY(uplink_items) // Global list so we only initialize this once. - var/datum/uplink_item/I = pick(possible_items) - U.telecrystals -= I.cost - U.spent_telecrystals += I.cost -- feedback_add_details("traitor_uplink_items_bought","RN") -+ SSblackbox.add_details("traitor_uplink_items_bought","RN") - return new I.item(loc) diff --git a/code/world.dm.rej b/code/world.dm.rej deleted file mode 100644 index 61fdf99e06..0000000000 --- a/code/world.dm.rej +++ /dev/null @@ -1,19 +0,0 @@ -diff a/code/world.dm b/code/world.dm (rejected hunks) -@@ -208,7 +208,7 @@ - #undef WORLD_REBOOT - - /world/proc/OnReboot(reason, feedback_c, feedback_r, round_end_sound_sent) -- feedback_set_details("[feedback_c]","[feedback_r]") -+ SSblackbox.set_details("[feedback_c]","[feedback_r]") - log_game("Rebooting World. [reason]") - #ifdef dellogging - var/log = file("data/logs/del.log") -@@ -218,8 +218,6 @@ - if(count > 10) - log << "#[count]\t[index]" - #endif -- if(GLOB.blackbox) -- GLOB.blackbox.save_all_data_to_sql() - Master.Shutdown() //run SS shutdowns - RoundEndAnimation(round_end_sound_sent) - kick_clients_in_lobby("The round came to an end with you in the lobby.", 1) //second parameter ensures only afk clients are kicked diff --git a/tgstation.dme.rej b/tgstation.dme.rej deleted file mode 100644 index 02c9418835..0000000000 --- a/tgstation.dme.rej +++ /dev/null @@ -1,17 +0,0 @@ -diff a/tgstation.dme b/tgstation.dme (rejected hunks) -@@ -158,6 +158,7 @@ - #include "code\controllers\subsystem\assets.dm" - #include "code\controllers\subsystem\atoms.dm" - #include "code\controllers\subsystem\augury.dm" -+#include "code\controllers\subsystem\blackbox.dm" - #include "code\controllers\subsystem\communications.dm" - #include "code\controllers\subsystem\disease.dm" - #include "code\controllers\subsystem\events.dm" -@@ -2078,7 +2079,6 @@ - #include "code\orphaned_procs\AStar.dm" - #include "code\orphaned_procs\dbcore.dm" - #include "code\orphaned_procs\priority_announce.dm" --#include "code\orphaned_procs\statistics.dm" - #include "interface\interface.dm" - #include "interface\stylesheet.dm" - #include "interface\skin.dmf" From 4e620e54e624abacdcec0b3097f2e6d97e3cc7c3 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Tue, 2 May 2017 11:38:06 -0500 Subject: [PATCH 47/50] fix --- Test.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Test.txt b/Test.txt index fc816240e4..f052ebb735 100644 --- a/Test.txt +++ b/Test.txt @@ -1 +1 @@ -Ignore this \ No newline at end of file +Ignore this again \ No newline at end of file From 4a914a5e670d6021ee38c6b1ffa95dca2ead245f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 2 May 2017 12:24:26 -0500 Subject: [PATCH 48/50] Automatic changelog generation for PR #718 [ci skip] --- html/changelogs/AutoChangeLog-pr-718.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-718.yml diff --git a/html/changelogs/AutoChangeLog-pr-718.yml b/html/changelogs/AutoChangeLog-pr-718.yml new file mode 100644 index 0000000000..bf7c2e79f9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-718.yml @@ -0,0 +1,6 @@ +author: "XDTM" +delete-after: True +changes: + - rscadd: "Golems can now click on empty golem shells to transfer into them." + - tweak: "Plasma Golems now no longer explode on death. They instead explode if they're on fire and are hot enough. The explosion size has been increased." + - tweak: "Plasma Golems are now always flammable." From c6f4d299f295b18672cc7dd87a621cf1d560424f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 2 May 2017 18:44:55 -0500 Subject: [PATCH 49/50] Automatic changelog generation for PR #699 [ci skip] --- html/changelogs/AutoChangeLog-pr-699.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-699.yml diff --git a/html/changelogs/AutoChangeLog-pr-699.yml b/html/changelogs/AutoChangeLog-pr-699.yml new file mode 100644 index 0000000000..68fca1b6ac --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-699.yml @@ -0,0 +1,4 @@ +author: "QualityVan" +delete-after: True +changes: + - tweak: "Saline glucose now acts as temporary blood instead of increasing blood regeneration" From 5edd88cd076886a3f37e8edb08527ee320888ac1 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 2 May 2017 18:47:24 -0500 Subject: [PATCH 50/50] Automatic changelog generation for PR #705 [ci skip] --- html/changelogs/AutoChangeLog-pr-705.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-705.yml diff --git a/html/changelogs/AutoChangeLog-pr-705.yml b/html/changelogs/AutoChangeLog-pr-705.yml new file mode 100644 index 0000000000..a4861ed8f6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-705.yml @@ -0,0 +1,4 @@ +author: "CitadelStationBot" +delete-after: True +changes: + - bugfix: "The biogenerator will now show its recipes again."