BeeStation / NSV13

NSV13, a Ship-to-ship Combat SS13 Server
GNU Affero General Public License v3.0
115 stars 257 forks source link

Updates forgotten armor values and syndicate armor stacking during boarding #2638

Closed BlueHNT closed 2 weeks ago

BlueHNT commented 1 month ago

About The Pull Request

During #2459 there were some forgotten armors and outfits. I have not found all of them and decided to keep the old ones like corporate and other station outfits the same old melee 1 stamina 3 defense as they were instead of the bullet 2 melee 2 which the new security outfits have. Do note that even the basic undersuits have some basic bullet and melee protection and are available to all crew.

There are, however, still some forgotten things like berets and basic sec helmet/armor never being updated. But I am not going to touch @SerynEngi 's values too much since he probably has it thought out.

Why It's Good For The Game

Gupdate these outfits.

Testing Photographs and Procedure

Screenshots&Videos No.

Changelog

:cl: balance: Revalues many outfits that were forgotten about and attempts to solve armor stacking :cl:

BlueHNT commented 1 month ago

If there's any other outfits which got forgotten that are being used after the revalue that are reasonable enough to be changed then please comment them.

SerynEngi commented 1 month ago

If there's any other outfits which got forgotten that are being used after the revalue that are reasonable enough to be changed then please comment them.

Good catch. I mostly only checked things in the hardsuit and armor dm. It is entirely possible that armor thats in other more obscure places have been missed.

BlueHNT commented 1 month ago

Ok, cool. Seems like I was wrong about what I was doing.

Also turns out that there were shit tons of hidden values hidden EVERYWHERE. So, I asked Seryn about his thoughts and consensus was.

All undersuit protections with bullet are removed. security will have melee 10, stamina 30.

All syndicate boarding/crew undersuit protections have been updated as well since they are not supposed to have value.

All security suits have had their general value changed between 40-60 depending on type and coverage. With the basic MP armor now having substandard armor, but covering legs. While normal security armor has more armor, but protects only chest and groin.

Also does the same to syndicate armors which were all over the place due to armor stacking and undersuits.

Generally playable syndicates should have 60 bullet, 40 laser. With boss-like ones for boarding (admiral/captain/strategist) having upwards of 80-90 requiring piercing rounds or laser weaponry.

Also removed swat boots and syndicate cloak armor stacking since KMC left that there.

Please review and comment on the changes as needed.

Bokkiewokkie commented 1 month ago

TMing this but I'm going to make a more thorough review of the armor values later

BlueHNT commented 1 month ago

TMing this but I'm going to make a more thorough review of the armor values later

I'm still compiling some additional values I might have forgotten. There is a lot to go through after all

BlueHNT commented 1 month ago

Suggested edit:

I have come upon a realization that energy doesn't stop electrical shocks but instead manages ranged stamina damage from rubber bullets, beanbags and such. This should revert the energy nerfs which should make armors again resistant to ranged stamina weaponry.

diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index 0af18ab4f0d..81ee5de90c0 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -3,7 +3,7 @@
    desc = "Standard Security gear. Protects the head from impacts."
    icon_state = "helmet"
    item_state = "helmet"
-   armor = list("melee" = 30, "bullet" = 40, "laser" = 30,"energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "stamina" = 30) //NSV13
+   armor = list("melee" = 30, "bullet" = 40, "laser" = 30,"energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "stamina" = 30) //NSV13
    flags_inv = HIDEEARS
    cold_protection = HEAD
    heat_protection = HEAD
@@ -283,7 +283,7 @@
    desc = "An extremely robust, space-worthy helmet in a nefarious red and black stripe pattern."
    icon_state = "swatsyndie"
    item_state = "swatsyndie"
-   armor = list("melee" = 40, "bullet" = 40, "laser" = 30,"energy" = 10, "bomb" = 50, "bio" = 90, "rad" = 20, "fire" = 50, "acid" = 50, "stamina" = 50)
+   armor = list("melee" = 40, "bullet" = 40, "laser" = 30,"energy" = 40, "bomb" = 50, "bio" = 90, "rad" = 20, "fire" = 50, "acid" = 50, "stamina" = 50)
    cold_protection = HEAD
    min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
    heat_protection = HEAD
@@ -417,7 +417,7 @@
    desc = "It can hold a bottle of vodka."
    icon_state = "rus_helmet"
    item_state = "rus_helmet"
-   armor = list("melee" = 25, "bullet" = 30, "laser" = 0, "energy" = 5, "bomb" = 10, "bio" = 0, "rad" = 20, "fire" = 20, "acid" = 50, "stamina" = 20)
+   armor = list("melee" = 25, "bullet" = 30, "laser" = 0, "energy" = 10, "bomb" = 10, "bio" = 0, "rad" = 20, "fire" = 20, "acid" = 50, "stamina" = 20)
    pocket_storage_component_path = /datum/component/storage/concrete/pockets/helmet

 /obj/item/clothing/head/helmet/rus_ushanka
diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm
index c658e7b048a..ba8c4445b0b 100644
--- a/code/modules/clothing/head/jobs.dm
+++ b/code/modules/clothing/head/jobs.dm
@@ -31,7 +31,7 @@
    icon_state = "captain"
    item_state = "that"
    flags_inv = 0
-   armor = list("melee" = 25, "bullet" = 25, "laser" = 15, "energy" = 20, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "stamina" = 30) //NSV13
+   armor = list("melee" = 25, "bullet" = 25, "laser" = 15, "energy" = 30, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "stamina" = 30) //NSV13
    strip_delay = 60
    dog_fashion = /datum/dog_fashion/head/captain

@@ -48,7 +48,7 @@
    name = "head of personnel's cap"
    icon_state = "hopcap"
    desc = "The symbol of true bureaucratic micromanagement."
-   armor = list("melee" = 25, "bullet" = 25, "laser" = 15, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "stamina" = 30) //NSV13
+   armor = list("melee" = 25, "bullet" = 25, "laser" = 15, "energy" = 30, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "stamina" = 30) //NSV13
    dog_fashion = /datum/dog_fashion/head/hop

 //Chaplain
@@ -71,7 +71,7 @@
 /obj/item/clothing/head/fedora/det_hat
    name = "detective's fedora"
    desc = "There's only one man who can sniff out the dirty stench of crime, and he's likely wearing this hat."
-   armor = list("melee" = 25, "bullet" = 25, "laser" = 10, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 50, "stamina" = 25) //NSV13
+   armor = list("melee" = 25, "bullet" = 25, "laser" = 10, "energy" = 30, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 50, "stamina" = 25) //NSV13
    icon_state = "detective"
    var/candy_cooldown = 0
    pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/detective
@@ -148,7 +148,7 @@
    name = "head of security cap"
    desc = "The robust standard-issue cap of the Head of Security. For showing the officers who's in charge."
    icon_state = "hoscap"
-   armor = list("melee" = 40, "bullet" = 50, "laser" = 15, "energy" = 10, "bomb" = 25, "bio" = 10, "rad" = 0, "fire" = 50, "acid" = 60, "stamina" = 30) //NSV13
+   armor = list("melee" = 40, "bullet" = 50, "laser" = 15, "energy" = 30, "bomb" = 25, "bio" = 10, "rad" = 0, "fire" = 50, "acid" = 60, "stamina" = 30) //NSV13
    strip_delay = 80
    dynamic_hair_suffix = ""

@@ -246,14 +246,14 @@
    name = "corporate warden beret"
    desc = "A special black beret with the Warden's insignia in the middle. This one is commonly worn by wardens of the corporation."
    icon_state = "beret_corporate_warden"
-   armor = list("melee" = 40, "bullet" = 45, "laser" = 20, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 60, "stamina" = 30) //NSV13
+   armor = list("melee" = 40, "bullet" = 45, "laser" = 20, "energy" = 30, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 60, "stamina" = 30) //NSV13
    strip_delay = 60

 /obj/item/clothing/head/beret/sec
    name = "security beret"
    desc = "A robust beret with the security insignia emblazoned on it. Uses reinforced fabric to offer sufficient protection."
    icon_state = "beret_badge"
-   armor = list("melee" = 30, "bullet" = 40, "laser" = 20,"energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "stamina" = 30) //NSV13
+   armor = list("melee" = 30, "bullet" = 40, "laser" = 20,"energy" = 30, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "stamina" = 30) //NSV13
    strip_delay = 60
    dog_fashion = null

@@ -261,20 +261,20 @@
    name = "corporate security beret"
    desc = "A special black beret for the mundane life of a corporate security officer."
    icon_state = "beret_corporate_officer"
-   armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 50, "stamina" = 30) //NSV13
+   armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 30, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 50, "stamina" = 30) //NSV13
    strip_delay = 60

 /obj/item/clothing/head/beret/sec/navyhos
    name = "head of security's beret"
    desc = "A special beret with the Head of Security's insignia emblazoned on it. A symbol of excellence, a badge of courage, a mark of distinction."
    icon_state = "hosberet"
-   armor = list("melee" = 30, "bullet" = 50, "laser" = 20,"energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "stamina" = 40) //NSV13
+   armor = list("melee" = 30, "bullet" = 50, "laser" = 20,"energy" = 30, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "stamina" = 40) //NSV13

 /obj/item/clothing/head/beret/sec/navywarden
    name = "warden's beret"
    desc = "A special beret with the Warden's insignia emblazoned on it. For wardens with class."
    icon_state = "wardenberet"
-   armor = list("melee" = 40, "bullet" = 45, "laser" = 10, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 50, "stamina" = 30) //NSV13
+   armor = list("melee" = 40, "bullet" = 45, "laser" = 10, "energy" = 30, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 50, "stamina" = 30) //NSV13
    strip_delay = 60

 /obj/item/clothing/head/beret/sec/navyofficer
diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm
index 518a29cf3ac..04a59017f09 100644
--- a/code/modules/clothing/spacesuits/miscellaneous.dm
+++ b/code/modules/clothing/spacesuits/miscellaneous.dm
@@ -52,7 +52,7 @@ Contains:
    icon_state = "heavy"
    item_state = "swat_suit"
    allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/kitchen/knife/combat)
-   armor = list("melee" = 40, "bullet" = 50, "laser" = 15,"energy" = 10, "bomb" = 50, "bio" = 90, "rad" = 20, "fire" = 100, "acid" = 100, "stamina" = 60) //NSV13
+   armor = list("melee" = 40, "bullet" = 50, "laser" = 15,"energy" = 30, "bomb" = 50, "bio" = 90, "rad" = 20, "fire" = 100, "acid" = 100, "stamina" = 60) //NSV13
    strip_delay = 120
    resistance_flags = FIRE_PROOF | ACID_PROOF
    move_sound = list('sound/effects/suitstep1.ogg', 'sound/effects/suitstep2.ogg')
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index 94740ca0fc2..2d4c9e73666 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -9,7 +9,7 @@
    equip_delay_other = 40
    max_integrity = 250
    resistance_flags = NONE
-   armor = list("melee" = 30, "bullet" = 50, "laser" = 20, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "stamina" = 30) //NSV13
+   armor = list("melee" = 30, "bullet" = 50, "laser" = 20, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "stamina" = 30) //NSV13
    clothing_flags = THICKMATERIAL

 /obj/item/clothing/suit/armor/Initialize(mapload)
@@ -52,7 +52,7 @@
    icon_state = "secjacket"
    item_state = "secjacket"
    body_parts_covered = CHEST|GROIN|ARMS
-   armor = list("melee" = 35, "bullet" = 45, "laser" = 10, "energy" = 30, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 45, "acid" = 45, "stamina" = 30) //NSV13
+   armor = list("melee" = 35, "bullet" = 45, "laser" = 10, "energy" = 35, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 45, "acid" = 45, "stamina" = 30) //NSV13

 /obj/item/clothing/suit/armor/hos
    name = "armored greatcoat"
@@ -60,7 +60,7 @@
    icon_state = "hos"
    item_state = "greatcoat"
    body_parts_covered = CHEST|GROIN|ARMS|LEGS
-   armor = list("melee" = 40, "bullet" = 60, "laser" = 15, "energy" = 30, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 90, "stamina" = 40) //NSV13
+   armor = list("melee" = 40, "bullet" = 60, "laser" = 15, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 90, "stamina" = 40) //NSV13
    cold_protection = CHEST|GROIN|LEGS|ARMS
    heat_protection = CHEST|GROIN|LEGS|ARMS
    strip_delay = 80
diff --git a/nsv13/code/modules/clothing/custom_clothes.dm b/nsv13/code/modules/clothing/custom_clothes.dm
index d3f01860536..32ac219214a 100644
--- a/nsv13/code/modules/clothing/custom_clothes.dm
+++ b/nsv13/code/modules/clothing/custom_clothes.dm
@@ -85,7 +85,7 @@
    equip_delay_other = 40
    max_integrity = 250
    resistance_flags = NONE
-   armor = list("melee" = 30, "bullet" = 50, "laser" = 15, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 90, "stamina" = 30)
+   armor = list("melee" = 30, "bullet" = 50, "laser" = 15, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 90, "stamina" = 30)

 /obj/item/clothing/suit/ship/peacekeeper/Initialize(mapload)
    . = ..()
@@ -97,14 +97,14 @@
    item_state = "peacekeeper_jacket"
    desc = "A comfortable grey leather jacket. Despite its heavy armour, it's still extremely comfortable to wear."
    body_parts_covered = CHEST|GROIN|LEGS|ARMS
-   armor = list("melee" = 30, "bullet" = 60, "laser" = 15, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 90, "stamina" = 40)
+   armor = list("melee" = 30, "bullet" = 60, "laser" = 15, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 90, "stamina" = 40)

 /obj/item/clothing/suit/ship/peacekeeper/detective
    name = "DET jacket"
    desc = "A smart blue jacket, identifying the wearer as a forensics expert."
    icon_state = "det"
    item_state = "det"
-   armor = list("melee" = 30, "bullet" = 40, "laser" = 10, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 50)
+   armor = list("melee" = 30, "bullet" = 40, "laser" = 10, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 50)
    body_parts_covered = CHEST|ARMS

 /obj/item/clothing/suit/ship/peacekeeper/marine
diff --git a/nsv13/code/modules/jobs/job_types/marine/military_police.dm b/nsv13/code/modules/jobs/job_types/marine/military_police.dm
index 982dbcd7316..b494e388419 100644
--- a/nsv13/code/modules/jobs/job_types/marine/military_police.dm
+++ b/nsv13/code/modules/jobs/job_types/marine/military_police.dm
@@ -188,7 +188,7 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S
    desc = "A heavy-duty chestplate and shinpad combo which denotes that the user is a military police officer. Protects legs unlike a normal vest."
    icon_state = "military_police"
    w_class = 2
-   armor = list("melee" = 25, "bullet" = 40, "laser" = 15, "energy" = 10, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 35, "acid" = 50)
+   armor = list("melee" = 25, "bullet" = 40, "laser" = 15, "energy" = 40, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 35, "acid" = 50)
    min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
    body_parts_covered = CHEST|GROIN|LEGS
Bokkiewokkie commented 1 month ago

I have come upon a realization that energy doesn't stop electrical shocks but instead manages ranged stamina damage from rubber bullets, beanbags and such. This should revert the energy nerfs which should make armors again resistant to ranged stamina weaponry.

No it doesn't? That's what the stamina damage type is for??