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 += "