From b77bceb44a3cfa93b23901ec7d86acf239b154cf Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Erikafox@users.noreply.github.com> Date: Thu, 14 Nov 2024 20:57:46 -0500 Subject: [PATCH] Adds marine armor to cargo. balances it somewhat. (#3750) ## About The Pull Request as title ## Why It's Good For The Game I think it's nice to have like. more armor progression. ## Changelog :cl: add: you can now buy marine armor at the outpost balance: marine armor now has different levels of protection. /:cl: --- code/__DEFINES/obj_flags.dm | 2 +- code/modules/cargo/packs/spacesuit_armor.dm | 18 +++++++++++++++++ code/modules/clothing/head/helmet.dm | 9 +++++---- code/modules/clothing/suits/armor.dm | 22 +++++++++++++++------ 4 files changed, 40 insertions(+), 11 deletions(-) diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm index 387f87c90acc..ab731a44f243 100644 --- a/code/__DEFINES/obj_flags.dm +++ b/code/__DEFINES/obj_flags.dm @@ -40,7 +40,7 @@ #define LAVAPROTECT (1<<0) #define STOPSPRESSUREDAMAGE (1<<1) //SUIT and HEAD items which stop pressure damage. To stop you taking all pressure damage you must have both a suit and head item with this flag. #define BLOCK_GAS_SMOKE_EFFECT (1<<2) // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY! -#define ALLOWINTERNALS (1<<3) // mask allows internals //WS Port - Changed Maskinternals to allowinternals +#define ALLOWINTERNALS (1<<3) // mask allows internals #define NOSLIP (1<<4) //prevents from slipping on wet floors, in space etc #define NOSLIP_ICE (1<<5) //prevents from slipping on frozen floors #define THICKMATERIAL (1<<6) //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. diff --git a/code/modules/cargo/packs/spacesuit_armor.dm b/code/modules/cargo/packs/spacesuit_armor.dm index 274798648cab..a74cf7cdeb4f 100644 --- a/code/modules/cargo/packs/spacesuit_armor.dm +++ b/code/modules/cargo/packs/spacesuit_armor.dm @@ -135,3 +135,21 @@ contains = list(/obj/item/clothing/suit/armor/laserproof) crate_name = "reflector vest crate" crate_type = /obj/structure/closet/crate/secure/plasma + +/datum/supply_pack/spacesuit_armor/marine_armor + name = "Tactical Armor Crate" + desc = "One set of well-rounded, tactical body armor. The set includes a helmet and vest." + cost = 1500 + contains = list(/obj/item/clothing/suit/armor/vest/marine, + /obj/item/clothing/head/helmet/marine) + crate_name = "armor crate" + crate_type = /obj/structure/closet/crate/secure/plasma + +/datum/supply_pack/spacesuit_armor/marine_armor + name = "Medium Tactical Armor Crate" + desc = "One set of well-rounded medium tactical body armor. The set includes a helmet and vest." + cost = 1500 + contains = list(/obj/item/clothing/suit/armor/vest/marine/medium, + /obj/item/clothing/head/helmet/marine) + crate_name = "armor crate" + crate_type = /obj/structure/closet/crate/secure/plasma diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 0e9e0143d6ac..93185618c33f 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -234,11 +234,12 @@ desc = "A tactical black helmet, sealed from outside hazards with a reinforced visor." icon_state = "marine_command" item_state = "helmetalt" - armor = list("melee" = 50, "bullet" = 75, "laser" = 55, "energy" = 25, "bomb" = 60, "bio" = 100, "fire" = 70, "acid" = 50) - slowdown = 0.3 - min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT - clothing_flags = STOPSPRESSUREDAMAGE + armor = list("melee" = 35, "bullet" = 55, "laser" = 45, "energy" = 25, "bomb" = 30, "bio" = 75, "fire" = 40, "acid" = 50) + slowdown = 0.1 + min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT + clothing_flags = STOPSPRESSUREDAMAGE | SNUG_FIT | BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS resistance_flags = FIRE_PROOF | ACID_PROOF + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF | SEALS_EYES can_flashlight = TRUE dog_fashion = null diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index b9eb2b6d7c53..198e36884c88 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -47,22 +47,32 @@ icon_state = "marine_light" item_state = "armor" clothing_flags = THICKMATERIAL - body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - armor = list("melee" = 50, "bullet" = 75, "laser" = 55, "energy" = 25, "bomb" = 60, "bio" = 100, "fire" = 70, "acid" = 50) - cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS + body_parts_covered = CHEST|GROIN + armor = list("melee" = 20, "bullet" = 45, "laser" = 45, "energy" = 25, "bomb" = 30, "bio" = 65, "fire" = 40, "acid" = 50) + cold_protection = CHEST|GROIN min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT - heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + heat_protection = CHEST|GROIN resistance_flags = FIRE_PROOF | ACID_PROOF supports_variations = VOX_VARIATION | DIGITIGRADE_VARIATION_NO_NEW_ICON - slowdown = 0.5 + slowdown = 0 //one day... /obj/item/clothing/suit/armor/vest/marine/medium name = "medium tactical armor vest" icon_state = "marine_medium" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + cold_protection = CHEST|GROIN|LEGS|ARMS + heat_protection = CHEST|GROIN|LEGS|ARMS + armor = list("melee" = 35, "bullet" = 55, "laser" = 45, "energy" = 25, "bomb" = 30, "bio" = 75, "fire" = 40, "acid" = 50) + slowdown = 0.1 /obj/item/clothing/suit/armor/vest/marine/heavy - name = "large tactical armor vest" + name = "heavy tactical armor vest" icon_state = "marine_heavy" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + cold_protection = CHEST|GROIN|LEGS|ARMS + heat_protection = CHEST|GROIN|LEGS|ARMS + armor = list("melee" = 60, "bullet" = 75, "laser" = 55, "energy" = 25, "bomb" = 50, "bio" = 75, "fire" = 40, "acid" = 50) + slowdown = 0.5 /obj/item/clothing/suit/armor/vest/old name = "degrading armor vest"