From f83d1c4763b251f2d8d52635f8cf13a0428cf1a7 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sat, 7 Dec 2019 10:53:10 +0100 Subject: [PATCH 01/11] Made kevlar and armor padding accessories inconspicious and examine-proof. --- code/__DEFINES/inventory.dm | 1 + code/modules/clothing/under/_under.dm | 3 +++ code/modules/clothing/under/accessories.dm | 3 +++ code/modules/mob/living/carbon/human/examine.dm | 2 +- code/modules/uplink/uplink_items.dm | 6 +++--- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index f5ea8d835f..98ba432e52 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -110,6 +110,7 @@ #define HIDENECK (1<<10) #define HIDETAUR (1<<11) //gotta hide that snowflake #define HIDESNOUT (1<<12) //or do we actually hide our snoots +#define HIDEACCESSORY (1<<13) //hides the jumpsuit accessory. //bitflags for clothing coverage - also used for limbs #define HEAD (1<<0) diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index bb5f909521..508fece53b 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -102,6 +102,9 @@ if(user && notifyAttach) to_chat(user, "You attach [I] to [src].") + if((flags_inv & HIDEACCESSORY) || (A.flags_inv & HIDEACCESSORY)) + return TRUE + var/accessory_color = attached_accessory.item_color if(!accessory_color) accessory_color = attached_accessory.icon_state diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 0a0499b5f9..50038a03ac 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -373,6 +373,7 @@ icon_state = "padding" item_color = "nothing" armor = list("melee" = 15, "bullet" = 10, "laser" = 0, "energy" = 0, "bomb" = 5, "bio" = 0, "rad" = 0, "fire" = -20, "acid" = 45) + flags_inv = HIDEACCESSORY //hidden from indiscrete mob examines. /obj/item/clothing/accessory/kevlar name = "kevlar sheets" @@ -380,6 +381,7 @@ icon_state = "padding" item_color = "nothing" armor = list("melee" = 10, "bullet" = 20, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 25) + flags_inv = HIDEACCESSORY /obj/item/clothing/accessory/plastics name = "underling plastic sheet" @@ -387,6 +389,7 @@ icon_state = "plastics" item_color = "nothing" armor = list("melee" = 0, "bullet" = 0, "laser" = 20, "energy" = 10, "bomb" = 0, "bio" = 30, "rad" = 0, "fire" = 0, "acid" = -40) + flags_inv = HIDEACCESSORY ///////////////////// //Pokadots On Pants// diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 04ec0454f8..01f452df56 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -34,7 +34,7 @@ var/accessory_msg if(istype(w_uniform, /obj/item/clothing/under)) var/obj/item/clothing/under/U = w_uniform - if(U.attached_accessory) + if(U.attached_accessory && !(U.attached_accessory.flags_inv & HIDEACCESSORY) && !(U.flags_inv & HIDEACCESSORY)) accessory_msg += " with [icon2html(U.attached_accessory, user)] \a [U.attached_accessory]" . += "[t_He] [t_is] wearing [w_uniform.get_examine_string(user)][accessory_msg]." diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index cf663e353f..a6110f3464 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1332,21 +1332,21 @@ datum/uplink_item/stealthy_weapons/taeclowndo_shoes /datum/uplink_item/suits/padding name = "Soft Padding" - desc = "Padding to add to a jumpsuit to help against melee and bullets." + desc = "Inconspicious padding worn underneath jumpsuits to protect the user against melee and bullets." item = /obj/item/clothing/accessory/padding cost = 2 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) /datum/uplink_item/suits/kevlar name = "Kevlar sheets" - desc = "Kevlar sheets to add to jumpsuit to help against bullets and melee." + desc = "Inconspicious kevlar sheets worn underneath jumpsuits to protect the user against bullets and melee." item = /obj/item/clothing/accessory/kevlar cost = 2 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) /datum/uplink_item/suits/plastic name = "Plastic sheet" - desc = "Plastic body sheet to add to a jumpsuit to help against laser and energy harm." + desc = "Inconspicious plastic body sheet worn underneath jumpsuits to protect the user against laser and energy beams." item = /obj/item/clothing/accessory/plastics cost = 2 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) From 9ea99d4c810bf11a158e4f360e14585a1f58909b Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sun, 29 Dec 2019 20:01:21 -0500 Subject: [PATCH 02/11] nerfs limb stamcrit by doubling the base limb stam regen, making limbs regen stam at double the rate when disabled, and adding stam multiplier mechanics to limb stamloss --- code/modules/surgery/bodyparts/bodyparts.dm | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index a1b74942e0..f04cb0c602 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -29,6 +29,7 @@ var/burn_dam = 0 var/stamina_dam = 0 var/max_stamina_damage = 0 + var/incoming_stam_mult = 1 //Multiplier for incoming staminaloss, decreases when taking staminaloss when the limb is disabled, resets back to 1 when limb is no longer disabled. var/max_damage = 0 var/stam_heal_tick = 0 //per Life(). Defaults to 0 due to citadel changes @@ -141,7 +142,7 @@ //Return TRUE to get whatever mob this is in to update health. /obj/item/bodypart/proc/on_life() if(stam_heal_tick && stamina_dam > DAMAGE_PRECISION) //DO NOT update health here, it'll be done in the carbon's life. - if(heal_damage(brute = 0, burn = 0, stamina = stam_heal_tick, only_robotic = FALSE, only_organic = FALSE, updating_health = FALSE)) + if(heal_damage(brute = 0, burn = 0, stamina = (stam_heal_tick * (disabled ? 2 : 1)), only_robotic = FALSE, only_organic = FALSE, updating_health = FALSE)) . |= BODYPART_LIFE_UPDATE_HEALTH //Applies brute and burn damage to the organ. Returns 1 if the damage-icon states changed at all. @@ -153,7 +154,7 @@ var/dmg_mlt = CONFIG_GET(number/damage_multiplier) brute = round(max(brute * dmg_mlt, 0),DAMAGE_PRECISION) burn = round(max(burn * dmg_mlt, 0),DAMAGE_PRECISION) - stamina = round(max(stamina * dmg_mlt, 0),DAMAGE_PRECISION) + stamina = round(max((stamina * dmg_mlt) * incoming_stam_mult, 0),DAMAGE_PRECISION) brute = max(0, brute - brute_reduction) burn = max(0, burn - burn_reduction) //No stamina scaling.. for now.. @@ -184,6 +185,9 @@ var/available_damage = max_damage - current_damage stamina_dam += round(CLAMP(stamina, 0, min(max_stamina_damage - stamina_dam, available_damage)), DAMAGE_PRECISION) + if(disabled && stamina > 10) + incoming_stam_mult = max(0.01, incoming_stam_mult/(stamina*0.1)) + if(owner && updating_health) owner.updatehealth() if(stamina > DAMAGE_PRECISION) @@ -253,6 +257,8 @@ owner.update_health_hud() //update the healthdoll owner.update_body() owner.update_canmove() + if(!disabled) + incoming_stam_mult = 1 return TRUE //Updates an organ's brute/burn states for use by update_damage_overlays() @@ -646,7 +652,7 @@ held_index = 1 px_x = -6 px_y = 0 - stam_heal_tick = 2 + stam_heal_tick = 4 /obj/item/bodypart/l_arm/is_disabled() if(HAS_TRAIT(owner, TRAIT_PARALYSIS_L_ARM)) @@ -706,7 +712,7 @@ held_index = 2 px_x = 6 px_y = 0 - stam_heal_tick = 2 + stam_heal_tick = 4 max_stamina_damage = 50 /obj/item/bodypart/r_arm/is_disabled() @@ -766,7 +772,7 @@ body_damage_coeff = 0.75 px_x = -2 px_y = 12 - stam_heal_tick = 2 + stam_heal_tick = 4 max_stamina_damage = 50 var/blood_state = BLOOD_STATE_NOT_BLOODY var/list/bloody_legs = list(BLOOD_STATE_BLOOD = 0, BLOOD_STATE_OIL = 0, BLOOD_STATE_NOT_BLOODY = 0) @@ -827,7 +833,7 @@ px_x = 2 px_y = 12 max_stamina_damage = 50 - stam_heal_tick = 2 + stam_heal_tick = 4 var/blood_state = BLOOD_STATE_NOT_BLOODY var/list/bloody_legs = list(BLOOD_STATE_BLOOD = 0, BLOOD_STATE_OIL = 0, BLOOD_STATE_NOT_BLOODY = 0) From 2fe23b67dbdd2d4e95ace083605dbaf7a59f318f Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sat, 18 Jan 2020 03:37:30 +0100 Subject: [PATCH 03/11] fug --- code/modules/uplink/uplink_items/uplink_clothing.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/uplink/uplink_items/uplink_clothing.dm b/code/modules/uplink/uplink_items/uplink_clothing.dm index 2f8391c637..3a3c53288a 100644 --- a/code/modules/uplink/uplink_items/uplink_clothing.dm +++ b/code/modules/uplink/uplink_items/uplink_clothing.dm @@ -29,14 +29,14 @@ exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) /datum/uplink_item/suits/kevlar - name = "Kevlar sheets" + name = "Kevlar Padding" desc = "An inconspicious kevlar padding meant to be worn underneath jumpsuits, will cushion the wearer from ballistic harm." item = /obj/item/clothing/accessory/kevlar cost = 2 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) /datum/uplink_item/suits/plastic - name = "Plastic sheet" + name = "Ablative Padding" desc = "An inconspicious ablative padding meant to be worn underneath jumpsuits, will cushion the wearer from energy lasers harm." item = /obj/item/clothing/accessory/plastics cost = 2 From c612462b8c8ff179e5d5fa1ff006fac709facc39 Mon Sep 17 00:00:00 2001 From: Putnam Date: Sat, 18 Jan 2020 03:39:27 -0800 Subject: [PATCH 04/11] some demodularization + new eligibility stuff --- .../datums/elements/ghost_role_eligibility.dm | 2 + code/modules/admin/admin.dm | 40 +++++++++-- code/modules/admin/topic.dm | 69 ++++++++++++++++++- modular_citadel/code/modules/admin/admin.dm | 39 ----------- modular_citadel/code/modules/admin/topic.dm | 59 ---------------- tgstation.dme | 2 - 6 files changed, 106 insertions(+), 105 deletions(-) delete mode 100644 modular_citadel/code/modules/admin/admin.dm delete mode 100644 modular_citadel/code/modules/admin/topic.dm diff --git a/code/datums/elements/ghost_role_eligibility.dm b/code/datums/elements/ghost_role_eligibility.dm index 8ecb579bc8..e57aaddd5a 100644 --- a/code/datums/elements/ghost_role_eligibility.dm +++ b/code/datums/elements/ghost_role_eligibility.dm @@ -22,6 +22,8 @@ if(!(M.ckey in timeouts)) timeouts += M.ckey timeouts[M.ckey] = 0 + else if(timeouts[M.ckey] == CANT_REENTER_ROUND) + return timeouts[M.ckey] = max(timeouts[M.ckey],penalty) /datum/element/ghost_role_eligibility/Detach(mob/M) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 88e68158ed..372902e8d6 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -185,7 +185,6 @@ body += "Shade" body += "
" - if (M.client) body += "

" body += "Other actions:" body += "
" @@ -194,9 +193,9 @@ body += "Thunderdome 2 | " body += "Thunderdome Admin | " body += "Thunderdome Observer | " - - body += usr.client.citaPPoptions(M) // CITADEL - + body += "Make mentor | " + body += "Remove mentor" + body += "Allow reentering round" body += "
" body += "" @@ -1009,3 +1008,36 @@ "Admin login: [key_name(src)]") if(string) message_admins("[string]") + +/client/proc/cmd_admin_man_up(mob/M in GLOB.mob_list) + set category = "Special Verbs" + set name = "Man Up" + + if(!M) + return + if(!check_rights(R_ADMIN)) + return + + to_chat(M, "Man up, and deal with it.
Move on.") + M.playsound_local(M, 'sound/voice/manup.ogg', 50, FALSE, pressure_affected = FALSE) + + log_admin("Man up: [key_name(usr)] told [key_name(M)] to man up") + var/message = "[key_name_admin(usr)] told [key_name_admin(M)] to man up." + message_admins(message) + admin_ticket_log(M, message) + SSblackbox.record_feedback("tally", "admin_verb", 1, "Man Up") + +/client/proc/cmd_admin_man_up_global() + set category = "Special Verbs" + set name = "Man Up Global" + + if(!check_rights(R_ADMIN)) + return + + to_chat(world, "Man up, and deal with it.
Move on.") + for(var/mob/M in GLOB.player_list) + M.playsound_local(M, 'sound/voice/manup.ogg', 50, FALSE, pressure_affected = FALSE) + + log_admin("Man up global: [key_name(usr)] told everybody to man up") + message_admins("[key_name_admin(usr)] told everybody to man up.") + SSblackbox.record_feedback("tally", "admin_verb", 1, "Man Up Global") diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 88d4105124..119c214d6b 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -22,7 +22,10 @@ if(!CheckAdminHref(href, href_list)) return - citaTopic(href, href_list) //CITADEL EDIT, MENTORS + if(href_list["makementor"]) + makeMentor(href_list["makementor"]) + else if(href_list["removementor"]) + removeMentor(href_list["removementor"]) if(href_list["ahelp"]) if(!check_rights(R_ADMIN, TRUE)) @@ -1715,6 +1718,16 @@ log_admin("[key_name(usr)] forced [key_name(M)] to say: [speech]") message_admins("[key_name_admin(usr)] forced [key_name_admin(M)] to say: [speech]") + else if(href_list["makeeligible"]) + if(!check_rights(R_ADMIN)) + return + var/mob/M = locate(href_list["eligible"]) + if(!ismob(M)) + to_chat(usr, "this can only be used on instances of type /mob.") + var/datum/element/ghost_role_eligibility/eli = SSdcs.GetElement(/datum/element/ghost_role_eligibility) + if(M.ckey in eli.timeouts) + eli.timeouts -= M.ckey + else if(href_list["sendtoprison"]) if(!check_rights(R_ADMIN)) return @@ -2846,3 +2859,57 @@ dat += {"Random (default)
"} dat += {"Now: [GLOB.secret_force_mode]"} usr << browse(dat, "window=f_secret") + +/datum/admins/proc/makeMentor(ckey) + if(!usr.client) + return + if (!check_rights(0)) + return + if(!ckey) + return + var/client/C = GLOB.directory[ckey] + if(C) + if(check_rights_for(C, R_ADMIN,0)) + to_chat(usr, "The client chosen is an admin! Cannot mentorize.") + return + if(SSdbcore.Connect()) + var/datum/DBQuery/query_get_mentor = SSdbcore.NewQuery("SELECT id FROM [format_table_name("mentor")] WHERE ckey = '[ckey]'") + if(query_get_mentor.NextRow()) + to_chat(usr, "[ckey] is already a mentor.") + return + var/datum/DBQuery/query_add_mentor = SSdbcore.NewQuery("INSERT INTO `[format_table_name("mentor")]` (`id`, `ckey`) VALUES (null, '[ckey]')") + if(!query_add_mentor.warn_execute()) + return + var/datum/DBQuery/query_add_admin_log = SSdbcore.NewQuery("INSERT INTO `[format_table_name("admin_log")]` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Added new mentor [ckey]');") + if(!query_add_admin_log.warn_execute()) + return + else + to_chat(usr, "Failed to establish database connection. The changes will last only for the current round.") + new /datum/mentors(ckey) + to_chat(usr, "New mentor added.") + +/datum/admins/proc/removeMentor(ckey) + if(!usr.client) + return + if (!check_rights(0)) + return + if(!ckey) + return + var/client/C = GLOB.directory[ckey] + if(C) + if(check_rights_for(C, R_ADMIN,0)) + to_chat(usr, "The client chosen is an admin, not a mentor! Cannot de-mentorize.") + return + C.remove_mentor_verbs() + C.mentor_datum = null + GLOB.mentors -= C + if(SSdbcore.Connect()) + var/datum/DBQuery/query_remove_mentor = SSdbcore.NewQuery("DELETE FROM [format_table_name("mentor")] WHERE ckey = '[ckey]'") + if(!query_remove_mentor.warn_execute()) + return + var/datum/DBQuery/query_add_admin_log = SSdbcore.NewQuery("INSERT INTO `[format_table_name("admin_log")]` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Removed mentor [ckey]');") + if(!query_add_admin_log.warn_execute()) + return + else + to_chat(usr, "Failed to establish database connection. The changes will last only for the current round.") + to_chat(usr, "Mentor removed.") diff --git a/modular_citadel/code/modules/admin/admin.dm b/modular_citadel/code/modules/admin/admin.dm deleted file mode 100644 index 529d0c79ec..0000000000 --- a/modular_citadel/code/modules/admin/admin.dm +++ /dev/null @@ -1,39 +0,0 @@ -/client/proc/citaPPoptions(mob/M) // why is this client and not /datum/admins? noone knows, in PP src == client, instead of holder. wtf. - var/body = "
" - if(M.client) - body += "Make mentor | " - body += "Remove mentor" - return body - -/client/proc/cmd_admin_man_up(mob/M in GLOB.mob_list) - set category = "Special Verbs" - set name = "Man Up" - - if(!M) - return - if(!check_rights(R_ADMIN)) - return - - to_chat(M, "Man up, and deal with it.
Move on.") - M.playsound_local(M, 'sound/voice/manup.ogg', 50, FALSE, pressure_affected = FALSE) - - log_admin("Man up: [key_name(usr)] told [key_name(M)] to man up") - var/message = "[key_name_admin(usr)] told [key_name_admin(M)] to man up." - message_admins(message) - admin_ticket_log(M, message) - SSblackbox.record_feedback("tally", "admin_verb", 1, "Man Up") - -/client/proc/cmd_admin_man_up_global() - set category = "Special Verbs" - set name = "Man Up Global" - - if(!check_rights(R_ADMIN)) - return - - to_chat(world, "Man up, and deal with it.
Move on.") - for(var/mob/M in GLOB.player_list) - M.playsound_local(M, 'sound/voice/manup.ogg', 50, FALSE, pressure_affected = FALSE) - - log_admin("Man up global: [key_name(usr)] told everybody to man up") - message_admins("[key_name_admin(usr)] told everybody to man up.") - SSblackbox.record_feedback("tally", "admin_verb", 1, "Man Up Global") diff --git a/modular_citadel/code/modules/admin/topic.dm b/modular_citadel/code/modules/admin/topic.dm deleted file mode 100644 index 26bc902bef..0000000000 --- a/modular_citadel/code/modules/admin/topic.dm +++ /dev/null @@ -1,59 +0,0 @@ -/datum/admins/proc/citaTopic(href, href_list) - if(href_list["makementor"]) - makeMentor(href_list["makementor"]) - else if(href_list["removementor"]) - removeMentor(href_list["removementor"]) - -/datum/admins/proc/makeMentor(ckey) - if(!usr.client) - return - if (!check_rights(0)) - return - if(!ckey) - return - var/client/C = GLOB.directory[ckey] - if(C) - if(check_rights_for(C, R_ADMIN,0)) - to_chat(usr, "The client chosen is an admin! Cannot mentorize.") - return - if(SSdbcore.Connect()) - var/datum/DBQuery/query_get_mentor = SSdbcore.NewQuery("SELECT id FROM [format_table_name("mentor")] WHERE ckey = '[ckey]'") - if(query_get_mentor.NextRow()) - to_chat(usr, "[ckey] is already a mentor.") - return - var/datum/DBQuery/query_add_mentor = SSdbcore.NewQuery("INSERT INTO `[format_table_name("mentor")]` (`id`, `ckey`) VALUES (null, '[ckey]')") - if(!query_add_mentor.warn_execute()) - return - var/datum/DBQuery/query_add_admin_log = SSdbcore.NewQuery("INSERT INTO `[format_table_name("admin_log")]` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Added new mentor [ckey]');") - if(!query_add_admin_log.warn_execute()) - return - else - to_chat(usr, "Failed to establish database connection. The changes will last only for the current round.") - new /datum/mentors(ckey) - to_chat(usr, "New mentor added.") - -/datum/admins/proc/removeMentor(ckey) - if(!usr.client) - return - if (!check_rights(0)) - return - if(!ckey) - return - var/client/C = GLOB.directory[ckey] - if(C) - if(check_rights_for(C, R_ADMIN,0)) - to_chat(usr, "The client chosen is an admin, not a mentor! Cannot de-mentorize.") - return - C.remove_mentor_verbs() - C.mentor_datum = null - GLOB.mentors -= C - if(SSdbcore.Connect()) - var/datum/DBQuery/query_remove_mentor = SSdbcore.NewQuery("DELETE FROM [format_table_name("mentor")] WHERE ckey = '[ckey]'") - if(!query_remove_mentor.warn_execute()) - return - var/datum/DBQuery/query_add_admin_log = SSdbcore.NewQuery("INSERT INTO `[format_table_name("admin_log")]` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Removed mentor [ckey]');") - if(!query_add_admin_log.warn_execute()) - return - else - to_chat(usr, "Failed to establish database connection. The changes will last only for the current round.") - to_chat(usr, "Mentor removed.") \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index 1893edc33d..f90156d466 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -3091,11 +3091,9 @@ #include "modular_citadel\code\game\machinery\wishgranter.dm" #include "modular_citadel\code\game\objects\cit_screenshake.dm" #include "modular_citadel\code\game\objects\effects\temporary_visuals\souldeath.dm" -#include "modular_citadel\code\modules\admin\admin.dm" #include "modular_citadel\code\modules\admin\chat_commands.dm" #include "modular_citadel\code\modules\admin\holder2.dm" #include "modular_citadel\code\modules\admin\secrets.dm" -#include "modular_citadel\code\modules\admin\topic.dm" #include "modular_citadel\code\modules\arousal\arousal.dm" #include "modular_citadel\code\modules\arousal\genitals.dm" #include "modular_citadel\code\modules\arousal\genitals_sprite_accessories.dm" From 1bdb515592da0f1048393ad4f9eec809a668417e Mon Sep 17 00:00:00 2001 From: Putnam Date: Sun, 19 Jan 2020 03:44:45 -0800 Subject: [PATCH 05/11] made suicide a config flag --- code/controllers/configuration/entries/game_options.dm | 2 ++ code/modules/client/verbs/suicide.dm | 2 ++ config/game_options.txt | 3 +++ 3 files changed, 7 insertions(+) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index aeca31ebd2..6efc9eab12 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -408,3 +408,5 @@ /datum/config_entry/number/dropped_modes config_entry_value = 3 + +/datum/config_entry/flag/suicide_allowed diff --git a/code/modules/client/verbs/suicide.dm b/code/modules/client/verbs/suicide.dm index 2e643cc05d..43f1c4c198 100644 --- a/code/modules/client/verbs/suicide.dm +++ b/code/modules/client/verbs/suicide.dm @@ -207,6 +207,8 @@ message_admins("[key_name(src)] (job: [src.job ? "[src.job]" : "None"]) [is_special_character(src) ? "(ANTAG!) " : ""][ghosting ? "ghosted" : "committed suicide"] at [AREACOORD(src)].") /mob/living/proc/canSuicide() + if(!CONFIG_GET(flag/suicide_allowed)) + return FALSE switch(stat) if(CONSCIOUS) return TRUE diff --git a/config/game_options.txt b/config/game_options.txt index b8b89de17c..9fc50fcd0f 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -597,3 +597,6 @@ MODETIER_VOTING ## Number of modes dropped by the modetier vote during mode selection, after vote. DROPPED_MODES 3 + +## Whether the suicide verb is allowed. +# SUICIDE_ALLOWED From 705bb9c29ec1e3a184534aafcf521b4197f13991 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 19 Jan 2020 17:58:30 -0600 Subject: [PATCH 06/11] Automatic changelog generation for PR #10097 [ci skip] --- html/changelogs/AutoChangeLog-pr-10097.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-10097.yml diff --git a/html/changelogs/AutoChangeLog-pr-10097.yml b/html/changelogs/AutoChangeLog-pr-10097.yml new file mode 100644 index 0000000000..9b9a2c9a58 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10097.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - tweak: "Attached kevlar/soft/plastic padding accessories are now stealthier and will no longer be displayed on mob examine." From 16f9c1bf78b5ee183c33fe6e1aa8346005a3f219 Mon Sep 17 00:00:00 2001 From: Putnam Date: Sun, 19 Jan 2020 18:01:21 -0800 Subject: [PATCH 07/11] feedback, EORG allowed --- code/__HELPERS/roundend.dm | 2 +- code/modules/client/verbs/suicide.dm | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index 49825bcb50..19ee2b2a5a 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -178,7 +178,7 @@ if(!C.credits) C.RollCredits() C.playtitlemusic(40) - + CONFIG_SET(flag/suicide_allowed,TRUE) // EORG suicides allowed var/popcount = gather_roundend_feedback() display_report(popcount) diff --git a/code/modules/client/verbs/suicide.dm b/code/modules/client/verbs/suicide.dm index 43f1c4c198..255a5a2eec 100644 --- a/code/modules/client/verbs/suicide.dm +++ b/code/modules/client/verbs/suicide.dm @@ -208,6 +208,7 @@ /mob/living/proc/canSuicide() if(!CONFIG_GET(flag/suicide_allowed)) + to_chat(src, "Suicide is not enabled in the config.") return FALSE switch(stat) if(CONSCIOUS) From 56e58e5c5ea40d810372eed49bd9849dbd5c7bbf Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Sun, 19 Jan 2020 18:14:33 -0800 Subject: [PATCH 08/11] whoops Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/modules/admin/topic.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 119c214d6b..9c8081c046 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1721,7 +1721,7 @@ else if(href_list["makeeligible"]) if(!check_rights(R_ADMIN)) return - var/mob/M = locate(href_list["eligible"]) + var/mob/M = locate(href_list["makeeligible"]) if(!ismob(M)) to_chat(usr, "this can only be used on instances of type /mob.") var/datum/element/ghost_role_eligibility/eli = SSdcs.GetElement(/datum/element/ghost_role_eligibility) From 194647a7f4dc83a3cc6eee0410d237bec680da60 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 19 Jan 2020 20:24:02 -0600 Subject: [PATCH 09/11] Automatic changelog generation for PR #10614 [ci skip] --- html/changelogs/AutoChangeLog-pr-10614.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-10614.yml diff --git a/html/changelogs/AutoChangeLog-pr-10614.yml b/html/changelogs/AutoChangeLog-pr-10614.yml new file mode 100644 index 0000000000..4c4d8bfdbd --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10614.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - config: "Added suicide to the config." From 8e30dd228215ef3a58aa76d214d23190bc627d91 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 19 Jan 2020 20:24:49 -0600 Subject: [PATCH 10/11] Automatic changelog generation for PR #10597 [ci skip] --- html/changelogs/AutoChangeLog-pr-10597.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-10597.yml diff --git a/html/changelogs/AutoChangeLog-pr-10597.yml b/html/changelogs/AutoChangeLog-pr-10597.yml new file mode 100644 index 0000000000..9f28c4f84c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10597.yml @@ -0,0 +1,5 @@ +author: "Putnam3145" +delete-after: True +changes: + - code_imp: "demodularized player panel code, mostly" + - admin: "added ghost role eligibility delay removal to player panel" From 0f4f07dc95b0046fa2383fbada29b6863d90ce8d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 20 Jan 2020 00:11:05 -0600 Subject: [PATCH 11/11] Automatic changelog generation for PR #10346 [ci skip] --- html/changelogs/AutoChangeLog-pr-10346.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-10346.yml diff --git a/html/changelogs/AutoChangeLog-pr-10346.yml b/html/changelogs/AutoChangeLog-pr-10346.yml new file mode 100644 index 0000000000..3a0cd6dae4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10346.yml @@ -0,0 +1,6 @@ +author: "Bhijn" +delete-after: True +changes: + - rscadd: "Limbs now regenerate their stamina faster while disabled" + - rscadd: "Limbs now have the same incoming stamina damage multiplier mechanics as spacemen, where the more staminaloss they take while disabled, the less staminaloss they'll take." + - balance: "Limbs have had their base stamina regen rate doubled to match the doubled stamina regen rate of standard spacemen."